{
  "schema_version": 1,
  "report_kind": "SATE_AUDIT_REPORT_V0",
  "generated_at": "2026-05-23T16:39:17.563Z",
  "header": {
    "project_root_abs": "/home/amari/projects/maktabi_core",
    "laravel_version_resolution": {
      "resolved": "11.51.0",
      "major": 11,
      "minor": 51,
      "patch": 0,
      "confidence": "HIGH",
      "authoritySource": "RUNTIME",
      "sources": {
        "declared": "11.31.0",
        "locked": "11.51.0",
        "installed": null,
        "runtime": "11.51.0"
      },
      "findings": [
        {
          "code": "LARAVEL_VERSION_DRIFT_DECLARED",
          "message": "composer.json declares 11.31.0 but runtime reports 11.51.0 (declared constraint is looser than installed)",
          "evidence": {
            "declared": "11.31.0",
            "runtime": "11.51.0"
          }
        }
      ]
    },
    "laravel_major": 11,
    "sate_mode": "FULL_DETERMINISTIC"
  },
  "surface_enumeration": {
    "application_surfaces": {
      "total": 3281,
      "proof_ready": 2815,
      "blocked": 466
    },
    "test_corpus": {
      "test_files_on_disk": 5039,
      "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": 3281,
    "surfaces_proof_ready": 2815,
    "surfaces_blocked": 466,
    "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": 4718,
      "total_files_evaluated": 4825
    },
    "quality": {
      "gate": "v1 (v1, enabled=true)",
      "pass_files_count": 4523,
      "total_files_evaluated": 4825
    },
    "kb_eligible": {
      "semantics": "binary v1 (YES if QUALITY passes; LIMITED reserved for v2)",
      "eligible_files_count": 4502
    },
    "totals": {
      "files_scanned": 4841,
      "tests_discovered": 18483,
      "tests_approved": 17196
    },
    "runner_allowlist_files": 1
  },
  "manual_stage_cache": {
    "hits": 4834,
    "misses": 7,
    "writes": 7,
    "entries_loaded": 5075
  },
  "tier_classification": {
    "A": 216,
    "B": 33,
    "C": 2472,
    "FRAGILE": 94,
    "QUARANTINED": 0,
    "UNCLASSIFIED": 0
  },
  "refusal_ledger": {
    "note": "Each refusal cites the specific signal that triggered it. No mystery refusals.",
    "total_blocked": 466,
    "by_reason": {
      "NO_EXPLICIT_RETURN": {
        "count": 465,
        "surfaces": [
          {
            "surface_id": "method::app/Actions/Billing/AddOrganizationSubscriptionCreditsAction.php::App\\Actions\\Billing\\AddOrganizationSubscriptionCreditsAction::execute",
            "fqmn": "App\\Actions\\Billing\\AddOrganizationSubscriptionCreditsAction@execute",
            "file": "app/Actions/Billing/AddOrganizationSubscriptionCreditsAction.php"
          },
          {
            "surface_id": "method::app/Actions/Billing/AddUnitsToSubscriptionAction.php::App\\Actions\\Billing\\AddUnitsToSubscriptionAction::__construct",
            "fqmn": "App\\Actions\\Billing\\AddUnitsToSubscriptionAction@__construct",
            "file": "app/Actions/Billing/AddUnitsToSubscriptionAction.php"
          },
          {
            "surface_id": "method::app/Actions/Billing/RecordSubscriptionDiscountCodeUsageAction.php::App\\Actions\\Billing\\RecordSubscriptionDiscountCodeUsageAction::__construct",
            "fqmn": "App\\Actions\\Billing\\RecordSubscriptionDiscountCodeUsageAction@__construct",
            "file": "app/Actions/Billing/RecordSubscriptionDiscountCodeUsageAction.php"
          },
          {
            "surface_id": "method::app/Actions/Billing/SeedBillingNotificationDashboardDataAction.php::App\\Actions\\Billing\\SeedBillingNotificationDashboardDataAction::execute",
            "fqmn": "App\\Actions\\Billing\\SeedBillingNotificationDashboardDataAction@execute",
            "file": "app/Actions/Billing/SeedBillingNotificationDashboardDataAction.php"
          },
          {
            "surface_id": "method::app/Actions/Billing/SendSubscriptionEventNotificationAction.php::App\\Actions\\Billing\\SendSubscriptionEventNotificationAction::__construct",
            "fqmn": "App\\Actions\\Billing\\SendSubscriptionEventNotificationAction@__construct",
            "file": "app/Actions/Billing/SendSubscriptionEventNotificationAction.php"
          },
          {
            "surface_id": "method::app/Actions/Billing/SendSubscriptionEventNotificationAction.php::App\\Actions\\Billing\\SendSubscriptionEventNotificationAction::execute",
            "fqmn": "App\\Actions\\Billing\\SendSubscriptionEventNotificationAction@execute",
            "file": "app/Actions/Billing/SendSubscriptionEventNotificationAction.php"
          },
          {
            "surface_id": "method::app/Actions/Billing/SuspendOrganizationSubscriptionAction.php::App\\Actions\\Billing\\SuspendOrganizationSubscriptionAction::execute",
            "fqmn": "App\\Actions\\Billing\\SuspendOrganizationSubscriptionAction@execute",
            "file": "app/Actions/Billing/SuspendOrganizationSubscriptionAction.php"
          },
          {
            "surface_id": "method::app/Actions/DispatchRentCyclePaidTwiceAction.php::App\\Actions\\DispatchRentCyclePaidTwiceAction::execute",
            "fqmn": "App\\Actions\\DispatchRentCyclePaidTwiceAction@execute",
            "file": "app/Actions/DispatchRentCyclePaidTwiceAction.php"
          },
          {
            "surface_id": "method::app/Actions/EmailTemplates/IsEmailTemplateEnabledForOrganizationAction.php::App\\Actions\\EmailTemplates\\IsEmailTemplateEnabledForOrganizationAction::__construct",
            "fqmn": "App\\Actions\\EmailTemplates\\IsEmailTemplateEnabledForOrganizationAction@__construct",
            "file": "app/Actions/EmailTemplates/IsEmailTemplateEnabledForOrganizationAction.php"
          },
          {
            "surface_id": "method::app/Actions/EmailTemplates/RenderEmailTemplateAction.php::App\\Actions\\EmailTemplates\\RenderEmailTemplateAction::__construct",
            "fqmn": "App\\Actions\\EmailTemplates\\RenderEmailTemplateAction@__construct",
            "file": "app/Actions/EmailTemplates/RenderEmailTemplateAction.php"
          },
          {
            "surface_id": "method::app/Actions/EmailTemplates/SendEmailTemplateAction.php::App\\Actions\\EmailTemplates\\SendEmailTemplateAction::__construct",
            "fqmn": "App\\Actions\\EmailTemplates\\SendEmailTemplateAction@__construct",
            "file": "app/Actions/EmailTemplates/SendEmailTemplateAction.php"
          },
          {
            "surface_id": "method::app/Actions/EmailTemplates/SendEmailTemplateToManyRecipientsAction.php::App\\Actions\\EmailTemplates\\SendEmailTemplateToManyRecipientsAction::__construct",
            "fqmn": "App\\Actions\\EmailTemplates\\SendEmailTemplateToManyRecipientsAction@__construct",
            "file": "app/Actions/EmailTemplates/SendEmailTemplateToManyRecipientsAction.php"
          },
          {
            "surface_id": "method::app/Actions/EmailTemplates/SendEmailTemplateToUsersUsingTheirLocaleAction.php::App\\Actions\\EmailTemplates\\SendEmailTemplateToUsersUsingTheirLocaleAction::__construct",
            "fqmn": "App\\Actions\\EmailTemplates\\SendEmailTemplateToUsersUsingTheirLocaleAction@__construct",
            "file": "app/Actions/EmailTemplates/SendEmailTemplateToUsersUsingTheirLocaleAction.php"
          },
          {
            "surface_id": "method::app/Actions/Outreach/CheckFollowUpSafetyAction.php::App\\Actions\\Outreach\\CheckFollowUpSafetyAction::__construct",
            "fqmn": "App\\Actions\\Outreach\\CheckFollowUpSafetyAction@__construct",
            "file": "app/Actions/Outreach/CheckFollowUpSafetyAction.php"
          },
          {
            "surface_id": "method::app/Actions/Outreach/ImportLeadsAction.php::App\\Actions\\Outreach\\ImportLeadsAction::__construct",
            "fqmn": "App\\Actions\\Outreach\\ImportLeadsAction@__construct",
            "file": "app/Actions/Outreach/ImportLeadsAction.php"
          },
          {
            "surface_id": "method::app/Actions/Outreach/SaveTemplatesAction.php::App\\Actions\\Outreach\\SaveTemplatesAction::__construct",
            "fqmn": "App\\Actions\\Outreach\\SaveTemplatesAction@__construct",
            "file": "app/Actions/Outreach/SaveTemplatesAction.php"
          },
          {
            "surface_id": "method::app/Actions/Outreach/SaveTemplatesAction.php::App\\Actions\\Outreach\\SaveTemplatesAction::execute",
            "fqmn": "App\\Actions\\Outreach\\SaveTemplatesAction@execute",
            "file": "app/Actions/Outreach/SaveTemplatesAction.php"
          },
          {
            "surface_id": "method::app/Actions/OutreachAI/GenerateReplyOutcomeAction.php::App\\Actions\\OutreachAI\\GenerateReplyOutcomeAction::__construct",
            "fqmn": "App\\Actions\\OutreachAI\\GenerateReplyOutcomeAction@__construct",
            "file": "app/Actions/OutreachAI/GenerateReplyOutcomeAction.php"
          },
          {
            "surface_id": "method::app/Actions/OutreachAI/GetClosingActionNextStepAction.php::App\\Actions\\OutreachAI\\GetClosingActionNextStepAction::__construct",
            "fqmn": "App\\Actions\\OutreachAI\\GetClosingActionNextStepAction@__construct",
            "file": "app/Actions/OutreachAI/GetClosingActionNextStepAction.php"
          },
          {
            "surface_id": "method::app/Actions/OutreachAI/SalesAcceleration/RunQualificationOutcomeAction.php::App\\Actions\\OutreachAI\\SalesAcceleration\\RunQualificationOutcomeAction::__construct",
            "fqmn": "App\\Actions\\OutreachAI\\SalesAcceleration\\RunQualificationOutcomeAction@__construct",
            "file": "app/Actions/OutreachAI/SalesAcceleration/RunQualificationOutcomeAction.php"
          },
          {
            "surface_id": "method::app/Actions/OutreachAI/SalesAcceleration/RunSalesAccelerationOutcomeAction.php::App\\Actions\\OutreachAI\\SalesAcceleration\\RunSalesAccelerationOutcomeAction::__construct",
            "fqmn": "App\\Actions\\OutreachAI\\SalesAcceleration\\RunSalesAccelerationOutcomeAction@__construct",
            "file": "app/Actions/OutreachAI/SalesAcceleration/RunSalesAccelerationOutcomeAction.php"
          },
          {
            "surface_id": "method::app/Actions/OutreachAI/StoreGoalAction.php::App\\Actions\\OutreachAI\\StoreGoalAction::execute",
            "fqmn": "App\\Actions\\OutreachAI\\StoreGoalAction@execute",
            "file": "app/Actions/OutreachAI/StoreGoalAction.php"
          },
          {
            "surface_id": "method::app/Actions/Payments/CreatePaymentDeductionAction.php::App\\Actions\\Payments\\CreatePaymentDeductionAction::__construct",
            "fqmn": "App\\Actions\\Payments\\CreatePaymentDeductionAction@__construct",
            "file": "app/Actions/Payments/CreatePaymentDeductionAction.php"
          },
          {
            "surface_id": "method::app/Actions/Payments/FinalizeTransactionAction.php::App\\Actions\\Payments\\FinalizeTransactionAction::__construct",
            "fqmn": "App\\Actions\\Payments\\FinalizeTransactionAction@__construct",
            "file": "app/Actions/Payments/FinalizeTransactionAction.php"
          },
          {
            "surface_id": "method::app/Actions/Payments/FinalizeTransactionsAction.php::App\\Actions\\Payments\\FinalizeTransactionsAction::__construct",
            "fqmn": "App\\Actions\\Payments\\FinalizeTransactionsAction@__construct",
            "file": "app/Actions/Payments/FinalizeTransactionsAction.php"
          },
          {
            "surface_id": "method::app/Actions/Payments/FinalizeTransactionsAction.php::App\\Actions\\Payments\\FinalizeTransactionsAction::execute",
            "fqmn": "App\\Actions\\Payments\\FinalizeTransactionsAction@execute",
            "file": "app/Actions/Payments/FinalizeTransactionsAction.php"
          },
          {
            "surface_id": "method::app/Actions/Payments/RecordPaymentAction.php::App\\Actions\\Payments\\RecordPaymentAction::__construct",
            "fqmn": "App\\Actions\\Payments\\RecordPaymentAction@__construct",
            "file": "app/Actions/Payments/RecordPaymentAction.php"
          },
          {
            "surface_id": "method::app/Actions/SendEmailTemplateAction.php::App\\Actions\\SendEmailTemplateAction::__construct",
            "fqmn": "App\\Actions\\SendEmailTemplateAction@__construct",
            "file": "app/Actions/SendEmailTemplateAction.php"
          },
          {
            "surface_id": "method::app/Actions/Zoho/SyncZohoCustomerAction.php::App\\Actions\\Zoho\\SyncZohoCustomerAction::__construct",
            "fqmn": "App\\Actions\\Zoho\\SyncZohoCustomerAction@__construct",
            "file": "app/Actions/Zoho/SyncZohoCustomerAction.php"
          },
          {
            "surface_id": "method::app/Actions/Zoho/SyncZohoInvoiceAction.php::App\\Actions\\Zoho\\SyncZohoInvoiceAction::__construct",
            "fqmn": "App\\Actions\\Zoho\\SyncZohoInvoiceAction@__construct",
            "file": "app/Actions/Zoho/SyncZohoInvoiceAction.php"
          },
          {
            "surface_id": "method::app/Api/Controllers/BookingController.php::App\\Api\\Controllers\\BookingController::__construct",
            "fqmn": "App\\Api\\Controllers\\BookingController@__construct",
            "file": "app/Api/Controllers/BookingController.php"
          },
          {
            "surface_id": "method::app/Api/Controllers/FileController.php::App\\Api\\Controllers\\FileController::__construct",
            "fqmn": "App\\Api\\Controllers\\FileController@__construct",
            "file": "app/Api/Controllers/FileController.php"
          },
          {
            "surface_id": "method::app/Api/Controllers/LandlordController.php::App\\Api\\Controllers\\LandlordController::__construct",
            "fqmn": "App\\Api\\Controllers\\LandlordController@__construct",
            "file": "app/Api/Controllers/LandlordController.php"
          },
          {
            "surface_id": "method::app/Api/Controllers/LandlordDashboardController.php::App\\Api\\Controllers\\LandlordDashboardController::__construct",
            "fqmn": "App\\Api\\Controllers\\LandlordDashboardController@__construct",
            "file": "app/Api/Controllers/LandlordDashboardController.php"
          },
          {
            "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::__construct",
            "fqmn": "App\\Api\\Controllers\\LeaseController@__construct",
            "file": "app/Api/Controllers/LeaseController.php"
          },
          {
            "surface_id": "method::app/Api/Controllers/OrgDeductionSettingsController.php::App\\Api\\Controllers\\OrgDeductionSettingsController::__construct",
            "fqmn": "App\\Api\\Controllers\\OrgDeductionSettingsController@__construct",
            "file": "app/Api/Controllers/OrgDeductionSettingsController.php"
          },
          {
            "surface_id": "method::app/Api/Controllers/PaymentController.php::App\\Api\\Controllers\\PaymentController::__construct",
            "fqmn": "App\\Api\\Controllers\\PaymentController@__construct",
            "file": "app/Api/Controllers/PaymentController.php"
          },
          {
            "surface_id": "method::app/Api/Controllers/PaymentProofController.php::App\\Api\\Controllers\\PaymentProofController::__construct",
            "fqmn": "App\\Api\\Controllers\\PaymentProofController@__construct",
            "file": "app/Api/Controllers/PaymentProofController.php"
          },
          {
            "surface_id": "method::app/Api/Controllers/PropertyController.php::App\\Api\\Controllers\\PropertyController::__construct",
            "fqmn": "App\\Api\\Controllers\\PropertyController@__construct",
            "file": "app/Api/Controllers/PropertyController.php"
          },
          {
            "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::__construct",
            "fqmn": "App\\Api\\Controllers\\RentCycleController@__construct",
            "file": "app/Api/Controllers/RentCycleController.php"
          },
          {
            "surface_id": "method::app/Api/Controllers/ReportController.php::App\\Api\\Controllers\\ReportController::__construct",
            "fqmn": "App\\Api\\Controllers\\ReportController@__construct",
            "file": "app/Api/Controllers/ReportController.php"
          },
          {
            "surface_id": "method::app/Api/Controllers/ReportExportController.php::App\\Api\\Controllers\\ReportExportController::__construct",
            "fqmn": "App\\Api\\Controllers\\ReportExportController@__construct",
            "file": "app/Api/Controllers/ReportExportController.php"
          },
          {
            "surface_id": "method::app/Api/Controllers/SubscriptionController.php::App\\Api\\Controllers\\SubscriptionController::__construct",
            "fqmn": "App\\Api\\Controllers\\SubscriptionController@__construct",
            "file": "app/Api/Controllers/SubscriptionController.php"
          },
          {
            "surface_id": "method::app/Api/Controllers/TenantController.php::App\\Api\\Controllers\\TenantController::__construct",
            "fqmn": "App\\Api\\Controllers\\TenantController@__construct",
            "file": "app/Api/Controllers/TenantController.php"
          },
          {
            "surface_id": "method::app/Api/Controllers/TenantDashboardController.php::App\\Api\\Controllers\\TenantDashboardController::__construct",
            "fqmn": "App\\Api\\Controllers\\TenantDashboardController@__construct",
            "file": "app/Api/Controllers/TenantDashboardController.php"
          },
          {
            "surface_id": "method::app/Api/Controllers/TransferController.php::App\\Api\\Controllers\\TransferController::__construct",
            "fqmn": "App\\Api\\Controllers\\TransferController@__construct",
            "file": "app/Api/Controllers/TransferController.php"
          },
          {
            "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::__construct",
            "fqmn": "App\\Api\\Controllers\\UnitController@__construct",
            "file": "app/Api/Controllers/UnitController.php"
          },
          {
            "surface_id": "method::app/Billing/Dunning/ResolvedDunningPolicy.php::App\\Billing\\Dunning\\ResolvedDunningPolicy::__construct",
            "fqmn": "App\\Billing\\Dunning\\ResolvedDunningPolicy@__construct",
            "file": "app/Billing/Dunning/ResolvedDunningPolicy.php"
          },
          {
            "surface_id": "method::app/Console/Commands/CheckRoutesCommand.php::App\\Console\\Commands\\CheckRoutesCommand::handle",
            "fqmn": "App\\Console\\Commands\\CheckRoutesCommand@handle",
            "file": "app/Console/Commands/CheckRoutesCommand.php"
          },
          {
            "surface_id": "method::app/Console/Commands/ProcessTrialNudges.php::App\\Console\\Commands\\ProcessTrialNudges::handle",
            "fqmn": "App\\Console\\Commands\\ProcessTrialNudges@handle",
            "file": "app/Console/Commands/ProcessTrialNudges.php"
          },
          {
            "surface_id": "method::app/Console/Commands/RecalculateLeadStages.php::App\\Console\\Commands\\RecalculateLeadStages::handle",
            "fqmn": "App\\Console\\Commands\\RecalculateLeadStages@handle",
            "file": "app/Console/Commands/RecalculateLeadStages.php"
          },
          {
            "surface_id": "method::app/Console/Commands/RefreshAnnualAllowancesCommand.php::App\\Console\\Commands\\RefreshAnnualAllowancesCommand::handle",
            "fqmn": "App\\Console\\Commands\\RefreshAnnualAllowancesCommand@handle",
            "file": "app/Console/Commands/RefreshAnnualAllowancesCommand.php"
          },
          {
            "surface_id": "method::app/Console/Commands/RunFollowUpCalibration.php::App\\Console\\Commands\\RunFollowUpCalibration::handle",
            "fqmn": "App\\Console\\Commands\\RunFollowUpCalibration@handle",
            "file": "app/Console/Commands/RunFollowUpCalibration.php"
          },
          {
            "surface_id": "method::app/Console/Commands/RunOnAllEnvironments.php::App\\Console\\Commands\\RunOnAllEnvironments::handle",
            "fqmn": "App\\Console\\Commands\\RunOnAllEnvironments@handle",
            "file": "app/Console/Commands/RunOnAllEnvironments.php"
          },
          {
            "surface_id": "method::app/Console/Commands/RunRenewalChecksCommand.php::App\\Console\\Commands\\RunRenewalChecksCommand::handle",
            "fqmn": "App\\Console\\Commands\\RunRenewalChecksCommand@handle",
            "file": "app/Console/Commands/RunRenewalChecksCommand.php"
          },
          {
            "surface_id": "method::app/Console/Commands/SnapshotFollowUpMetrics.php::App\\Console\\Commands\\SnapshotFollowUpMetrics::handle",
            "fqmn": "App\\Console\\Commands\\SnapshotFollowUpMetrics@handle",
            "file": "app/Console/Commands/SnapshotFollowUpMetrics.php"
          },
          {
            "surface_id": "method::app/Console/Commands/SyncOutreachTemplates.php::App\\Console\\Commands\\SyncOutreachTemplates::handle",
            "fqmn": "App\\Console\\Commands\\SyncOutreachTemplates@handle",
            "file": "app/Console/Commands/SyncOutreachTemplates.php"
          },
          {
            "surface_id": "method::app/Console/Commands/WhatsAppDebugConfig.php::App\\Console\\Commands\\WhatsAppDebugConfig::handle",
            "fqmn": "App\\Console\\Commands\\WhatsAppDebugConfig@handle",
            "file": "app/Console/Commands/WhatsAppDebugConfig.php"
          },
          {
            "surface_id": "method::app/Console/Commands/WhatsAppSimulate360Inbound.php::App\\Console\\Commands\\WhatsAppSimulate360Inbound::handle",
            "fqmn": "App\\Console\\Commands\\WhatsAppSimulate360Inbound@handle",
            "file": "app/Console/Commands/WhatsAppSimulate360Inbound.php"
          },
          {
            "surface_id": "method::app/Domains/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::afterCreate",
            "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@afterCreate",
            "file": "app/Domains/Agencies/Resources/AgencyUserResource.php"
          },
          {
            "surface_id": "method::app/Domains/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::afterSave",
            "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@afterSave",
            "file": "app/Domains/Agencies/Resources/AgencyUserResource.php"
          },
          {
            "surface_id": "method::app/Domains/Billing/Actions/GenerateMaintenanceInvoices.php::App\\Domains\\Billing\\Actions\\GenerateMaintenanceInvoices::__construct",
            "fqmn": "App\\Domains\\Billing\\Actions\\GenerateMaintenanceInvoices@__construct",
            "file": "app/Domains/Billing/Actions/GenerateMaintenanceInvoices.php"
          },
          {
            "surface_id": "method::app/Domains/Billing/Actions/GenerateRentInvoices.php::App\\Domains\\Billing\\Actions\\GenerateRentInvoices::__construct",
            "fqmn": "App\\Domains\\Billing\\Actions\\GenerateRentInvoices@__construct",
            "file": "app/Domains/Billing/Actions/GenerateRentInvoices.php"
          },
          {
            "surface_id": "method::app/Domains/Billing/Services/InvoiceGeneratorService.php::App\\Domains\\Billing\\Services\\InvoiceGeneratorService::__construct",
            "fqmn": "App\\Domains\\Billing\\Services\\InvoiceGeneratorService@__construct",
            "file": "app/Domains/Billing/Services/InvoiceGeneratorService.php"
          },
          {
            "surface_id": "method::app/Domains/Files/Services/FileSecurityService.php::App\\Domains\\Files\\Services\\FileSecurityService::validate",
            "fqmn": "App\\Domains\\Files\\Services\\FileSecurityService@validate",
            "file": "app/Domains/Files/Services/FileSecurityService.php"
          },
          {
            "surface_id": "method::app/Domains/Files/Services/FileService.php::App\\Domains\\Files\\Services\\FileService::__construct",
            "fqmn": "App\\Domains\\Files\\Services\\FileService@__construct",
            "file": "app/Domains/Files/Services/FileService.php"
          },
          {
            "surface_id": "method::app/Domains/Leases/Actions/CreateLeaseAction.php::App\\Domains\\Leases\\Actions\\CreateLeaseAction::__construct",
            "fqmn": "App\\Domains\\Leases\\Actions\\CreateLeaseAction@__construct",
            "file": "app/Domains/Leases/Actions/CreateLeaseAction.php"
          },
          {
            "surface_id": "method::app/Domains/Leases/Actions/GenerateRentCyclesAction.php::App\\Domains\\Leases\\Actions\\GenerateRentCyclesAction::__construct",
            "fqmn": "App\\Domains\\Leases\\Actions\\GenerateRentCyclesAction@__construct",
            "file": "app/Domains/Leases/Actions/GenerateRentCyclesAction.php"
          },
          {
            "surface_id": "method::app/Domains/Leases/Actions/UpdateLeaseAction.php::App\\Domains\\Leases\\Actions\\UpdateLeaseAction::__construct",
            "fqmn": "App\\Domains\\Leases\\Actions\\UpdateLeaseAction@__construct",
            "file": "app/Domains/Leases/Actions/UpdateLeaseAction.php"
          },
          {
            "surface_id": "method::app/Domains/Leases/Services/BookingService.php::App\\Domains\\Leases\\Services\\BookingService::__construct",
            "fqmn": "App\\Domains\\Leases\\Services\\BookingService@__construct",
            "file": "app/Domains/Leases/Services/BookingService.php"
          },
          {
            "surface_id": "method::app/Domains/Leases/Services/BookingService.php::App\\Domains\\Leases\\Services\\BookingService::cancelBooking",
            "fqmn": "App\\Domains\\Leases\\Services\\BookingService@cancelBooking",
            "file": "app/Domains/Leases/Services/BookingService.php"
          },
          {
            "surface_id": "method::app/Domains/Leases/Services/LeaseService.php::App\\Domains\\Leases\\Services\\LeaseService::__construct",
            "fqmn": "App\\Domains\\Leases\\Services\\LeaseService@__construct",
            "file": "app/Domains/Leases/Services/LeaseService.php"
          },
          {
            "surface_id": "method::app/Domains/Maintenance/Actions/AssignSlaToTicketAction.php::App\\Domains\\Maintenance\\Actions\\AssignSlaToTicketAction::__construct",
            "fqmn": "App\\Domains\\Maintenance\\Actions\\AssignSlaToTicketAction@__construct",
            "file": "app/Domains/Maintenance/Actions/AssignSlaToTicketAction.php"
          },
          {
            "surface_id": "method::app/Domains/Maintenance/Actions/ExtendSlaAction.php::App\\Domains\\Maintenance\\Actions\\ExtendSlaAction::__construct",
            "fqmn": "App\\Domains\\Maintenance\\Actions\\ExtendSlaAction@__construct",
            "file": "app/Domains/Maintenance/Actions/ExtendSlaAction.php"
          },
          {
            "surface_id": "method::app/Domains/Maintenance/Actions/ExtendSlaAction.php::App\\Domains\\Maintenance\\Actions\\ExtendSlaAction::execute",
            "fqmn": "App\\Domains\\Maintenance\\Actions\\ExtendSlaAction@execute",
            "file": "app/Domains/Maintenance/Actions/ExtendSlaAction.php"
          },
          {
            "surface_id": "method::app/Domains/Maintenance/Actions/PauseSlaAction.php::App\\Domains\\Maintenance\\Actions\\PauseSlaAction::__construct",
            "fqmn": "App\\Domains\\Maintenance\\Actions\\PauseSlaAction@__construct",
            "file": "app/Domains/Maintenance/Actions/PauseSlaAction.php"
          },
          {
            "surface_id": "method::app/Domains/Maintenance/Actions/PauseSlaAction.php::App\\Domains\\Maintenance\\Actions\\PauseSlaAction::execute",
            "fqmn": "App\\Domains\\Maintenance\\Actions\\PauseSlaAction@execute",
            "file": "app/Domains/Maintenance/Actions/PauseSlaAction.php"
          },
          {
            "surface_id": "method::app/Domains/Maintenance/Actions/ResumeSlaAction.php::App\\Domains\\Maintenance\\Actions\\ResumeSlaAction::__construct",
            "fqmn": "App\\Domains\\Maintenance\\Actions\\ResumeSlaAction@__construct",
            "file": "app/Domains/Maintenance/Actions/ResumeSlaAction.php"
          },
          {
            "surface_id": "method::app/Domains/Maintenance/Actions/ResumeSlaAction.php::App\\Domains\\Maintenance\\Actions\\ResumeSlaAction::execute",
            "fqmn": "App\\Domains\\Maintenance\\Actions\\ResumeSlaAction@execute",
            "file": "app/Domains/Maintenance/Actions/ResumeSlaAction.php"
          },
          {
            "surface_id": "method::app/Domains/Maintenance/Jobs/AggregateMaintenanceMetricsJob.php::App\\Domains\\Maintenance\\Jobs\\AggregateMaintenanceMetricsJob::__construct",
            "fqmn": "App\\Domains\\Maintenance\\Jobs\\AggregateMaintenanceMetricsJob@__construct",
            "file": "app/Domains/Maintenance/Jobs/AggregateMaintenanceMetricsJob.php"
          },
          {
            "surface_id": "method::app/Domains/Maintenance/Jobs/EscalateMaintenanceTicketJob.php::App\\Domains\\Maintenance\\Jobs\\EscalateMaintenanceTicketJob::__construct",
            "fqmn": "App\\Domains\\Maintenance\\Jobs\\EscalateMaintenanceTicketJob@__construct",
            "file": "app/Domains/Maintenance/Jobs/EscalateMaintenanceTicketJob.php"
          },
          {
            "surface_id": "method::app/Domains/Maintenance/Jobs/GenerateMaintenanceSuggestionJob.php::App\\Domains\\Maintenance\\Jobs\\GenerateMaintenanceSuggestionJob::__construct",
            "fqmn": "App\\Domains\\Maintenance\\Jobs\\GenerateMaintenanceSuggestionJob@__construct",
            "file": "app/Domains/Maintenance/Jobs/GenerateMaintenanceSuggestionJob.php"
          },
          {
            "surface_id": "method::app/Domains/Maintenance/Jobs/SendTwilioTemplateMessageJob.php::App\\Domains\\Maintenance\\Jobs\\SendTwilioTemplateMessageJob::__construct",
            "fqmn": "App\\Domains\\Maintenance\\Jobs\\SendTwilioTemplateMessageJob@__construct",
            "file": "app/Domains/Maintenance/Jobs/SendTwilioTemplateMessageJob.php"
          },
          {
            "surface_id": "method::app/Domains/Maintenance/Jobs/SendTwilioTemplateMessageJob.php::App\\Domains\\Maintenance\\Jobs\\SendTwilioTemplateMessageJob::handle",
            "fqmn": "App\\Domains\\Maintenance\\Jobs\\SendTwilioTemplateMessageJob@handle",
            "file": "app/Domains/Maintenance/Jobs/SendTwilioTemplateMessageJob.php"
          },
          {
            "surface_id": "method::app/Domains/Maintenance/Jobs/SendWeeklyDigestJob.php::App\\Domains\\Maintenance\\Jobs\\SendWeeklyDigestJob::__construct",
            "fqmn": "App\\Domains\\Maintenance\\Jobs\\SendWeeklyDigestJob@__construct",
            "file": "app/Domains/Maintenance/Jobs/SendWeeklyDigestJob.php"
          },
          {
            "surface_id": "method::app/Domains/Maintenance/Jobs/SendWeeklyDigestJob.php::App\\Domains\\Maintenance\\Jobs\\SendWeeklyDigestJob::handle",
            "fqmn": "App\\Domains\\Maintenance\\Jobs\\SendWeeklyDigestJob@handle",
            "file": "app/Domains/Maintenance/Jobs/SendWeeklyDigestJob.php"
          },
          {
            "surface_id": "method::app/Domains/Maintenance/Jobs/StoreTwilioMediaJob.php::App\\Domains\\Maintenance\\Jobs\\StoreTwilioMediaJob::__construct",
            "fqmn": "App\\Domains\\Maintenance\\Jobs\\StoreTwilioMediaJob@__construct",
            "file": "app/Domains/Maintenance/Jobs/StoreTwilioMediaJob.php"
          },
          {
            "surface_id": "method::app/Domains/Maintenance/Listeners/RouteTicketToResponsibleParty.php::App\\Domains\\Maintenance\\Listeners\\RouteTicketToResponsibleParty::handle",
            "fqmn": "App\\Domains\\Maintenance\\Listeners\\RouteTicketToResponsibleParty@handle",
            "file": "app/Domains/Maintenance/Listeners/RouteTicketToResponsibleParty.php"
          },
          {
            "surface_id": "method::app/Domains/Maintenance/Listeners/SendApprovalNotifications.php::App\\Domains\\Maintenance\\Listeners\\SendApprovalNotifications::handle",
            "fqmn": "App\\Domains\\Maintenance\\Listeners\\SendApprovalNotifications@handle",
            "file": "app/Domains/Maintenance/Listeners/SendApprovalNotifications.php"
          },
          {
            "surface_id": "method::app/Domains/Maintenance/Listeners/SendCompletionNotifications.php::App\\Domains\\Maintenance\\Listeners\\SendCompletionNotifications::handle",
            "fqmn": "App\\Domains\\Maintenance\\Listeners\\SendCompletionNotifications@handle",
            "file": "app/Domains/Maintenance/Listeners/SendCompletionNotifications.php"
          },
          {
            "surface_id": "method::app/Domains/Maintenance/Listeners/SendLandlordApprovalRequest.php::App\\Domains\\Maintenance\\Listeners\\SendLandlordApprovalRequest::handle",
            "fqmn": "App\\Domains\\Maintenance\\Listeners\\SendLandlordApprovalRequest@handle",
            "file": "app/Domains/Maintenance/Listeners/SendLandlordApprovalRequest.php"
          },
          {
            "surface_id": "method::app/Domains/Maintenance/Listeners/SendTenantConfirmation.php::App\\Domains\\Maintenance\\Listeners\\SendTenantConfirmation::handle",
            "fqmn": "App\\Domains\\Maintenance\\Listeners\\SendTenantConfirmation@handle",
            "file": "app/Domains/Maintenance/Listeners/SendTenantConfirmation.php"
          },
          {
            "surface_id": "method::app/Domains/Maintenance/Listeners/SendWorkerAssignmentNotification.php::App\\Domains\\Maintenance\\Listeners\\SendWorkerAssignmentNotification::handle",
            "fqmn": "App\\Domains\\Maintenance\\Listeners\\SendWorkerAssignmentNotification@handle",
            "file": "app/Domains/Maintenance/Listeners/SendWorkerAssignmentNotification.php"
          },
          {
            "surface_id": "method::app/Domains/Maintenance/Services/MaintenanceSlaService.php::App\\Domains\\Maintenance\\Services\\MaintenanceSlaService::extendSla",
            "fqmn": "App\\Domains\\Maintenance\\Services\\MaintenanceSlaService@extendSla",
            "file": "app/Domains/Maintenance/Services/MaintenanceSlaService.php"
          },
          {
            "surface_id": "method::app/Domains/Outreach/Actions/LogDeliveryEvent.php::App\\Domains\\Outreach\\Actions\\LogDeliveryEvent::__construct",
            "fqmn": "App\\Domains\\Outreach\\Actions\\LogDeliveryEvent@__construct",
            "file": "app/Domains/Outreach/Actions/LogDeliveryEvent.php"
          },
          {
            "surface_id": "method::app/Domains/Outreach/Actions/LogReplyMessage.php::App\\Domains\\Outreach\\Actions\\LogReplyMessage::__construct",
            "fqmn": "App\\Domains\\Outreach\\Actions\\LogReplyMessage@__construct",
            "file": "app/Domains/Outreach/Actions/LogReplyMessage.php"
          },
          {
            "surface_id": "method::app/Domains/Outreach/Actions/SyncConversationCost.php::App\\Domains\\Outreach\\Actions\\SyncConversationCost::__construct",
            "fqmn": "App\\Domains\\Outreach\\Actions\\SyncConversationCost@__construct",
            "file": "app/Domains/Outreach/Actions/SyncConversationCost.php"
          },
          {
            "surface_id": "method::app/Domains/Outreach/Actions/UpdateCampaignStats.php::App\\Domains\\Outreach\\Actions\\UpdateCampaignStats::execute",
            "fqmn": "App\\Domains\\Outreach\\Actions\\UpdateCampaignStats@execute",
            "file": "app/Domains/Outreach/Actions/UpdateCampaignStats.php"
          },
          {
            "surface_id": "method::app/Domains/Outreach/Jobs/FetchDeliveryStatusJob.php::App\\Domains\\Outreach\\Jobs\\FetchDeliveryStatusJob::__construct",
            "fqmn": "App\\Domains\\Outreach\\Jobs\\FetchDeliveryStatusJob@__construct",
            "file": "app/Domains/Outreach/Jobs/FetchDeliveryStatusJob.php"
          },
          {
            "surface_id": "method::app/Domains/Outreach/Jobs/ProcessWebhookJob.php::App\\Domains\\Outreach\\Jobs\\ProcessWebhookJob::__construct",
            "fqmn": "App\\Domains\\Outreach\\Jobs\\ProcessWebhookJob@__construct",
            "file": "app/Domains/Outreach/Jobs/ProcessWebhookJob.php"
          },
          {
            "surface_id": "method::app/Domains/Outreach/Jobs/ProcessWebhookJob.php::App\\Domains\\Outreach\\Jobs\\ProcessWebhookJob::handle",
            "fqmn": "App\\Domains\\Outreach\\Jobs\\ProcessWebhookJob@handle",
            "file": "app/Domains/Outreach/Jobs/ProcessWebhookJob.php"
          },
          {
            "surface_id": "method::app/Domains/Outreach/Jobs/SendWhatsAppMessageJob.php::App\\Domains\\Outreach\\Jobs\\SendWhatsAppMessageJob::__construct",
            "fqmn": "App\\Domains\\Outreach\\Jobs\\SendWhatsAppMessageJob@__construct",
            "file": "app/Domains/Outreach/Jobs/SendWhatsAppMessageJob.php"
          },
          {
            "surface_id": "method::app/Domains/Outreach/Jobs/SyncConversationCostsJob.php::App\\Domains\\Outreach\\Jobs\\SyncConversationCostsJob::__construct",
            "fqmn": "App\\Domains\\Outreach\\Jobs\\SyncConversationCostsJob@__construct",
            "file": "app/Domains/Outreach/Jobs/SyncConversationCostsJob.php"
          },
          {
            "surface_id": "method::app/Domains/Outreach/Jobs/SyncConversationCostsJob.php::App\\Domains\\Outreach\\Jobs\\SyncConversationCostsJob::handle",
            "fqmn": "App\\Domains\\Outreach\\Jobs\\SyncConversationCostsJob@handle",
            "file": "app/Domains/Outreach/Jobs/SyncConversationCostsJob.php"
          },
          {
            "surface_id": "method::app/Domains/Outreach/Pipelines/DeliveryStatusPipeline.php::App\\Domains\\Outreach\\Pipelines\\DeliveryStatusPipeline::handle",
            "fqmn": "App\\Domains\\Outreach\\Pipelines\\DeliveryStatusPipeline@handle",
            "file": "app/Domains/Outreach/Pipelines/DeliveryStatusPipeline.php"
          },
          {
            "surface_id": "method::app/Domains/Outreach/Services/DeliverySyncService.php::App\\Domains\\Outreach\\Services\\DeliverySyncService::__construct",
            "fqmn": "App\\Domains\\Outreach\\Services\\DeliverySyncService@__construct",
            "file": "app/Domains/Outreach/Services/DeliverySyncService.php"
          },
          {
            "surface_id": "method::app/Domains/Outreach/Services/MessageSendService.php::App\\Domains\\Outreach\\Services\\MessageSendService::__construct",
            "fqmn": "App\\Domains\\Outreach\\Services\\MessageSendService@__construct",
            "file": "app/Domains/Outreach/Services/MessageSendService.php"
          },
          {
            "surface_id": "method::app/Domains/Outreach/Services/WhatsAppApiService.php::App\\Domains\\Outreach\\Services\\WhatsAppApiService::__construct",
            "fqmn": "App\\Domains\\Outreach\\Services\\WhatsAppApiService@__construct",
            "file": "app/Domains/Outreach/Services/WhatsAppApiService.php"
          },
          {
            "surface_id": "method::app/Domains/Outreach/Webhooks/WhatsAppWebhookController.php::App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController::__construct",
            "fqmn": "App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController@__construct",
            "file": "app/Domains/Outreach/Webhooks/WhatsAppWebhookController.php"
          },
          {
            "surface_id": "method::app/Domains/Payments/Actions/ApplyDeductionsAction.php::App\\Domains\\Payments\\Actions\\ApplyDeductionsAction::__construct",
            "fqmn": "App\\Domains\\Payments\\Actions\\ApplyDeductionsAction@__construct",
            "file": "app/Domains/Payments/Actions/ApplyDeductionsAction.php"
          },
          {
            "surface_id": "method::app/Domains/Payments/Actions/CreateTransactionAction.php::App\\Domains\\Payments\\Actions\\CreateTransactionAction::__construct",
            "fqmn": "App\\Domains\\Payments\\Actions\\CreateTransactionAction@__construct",
            "file": "app/Domains/Payments/Actions/CreateTransactionAction.php"
          },
          {
            "surface_id": "method::app/Domains/Payments/Actions/FinalizeTransactionAction.php::App\\Domains\\Payments\\Actions\\FinalizeTransactionAction::__construct",
            "fqmn": "App\\Domains\\Payments\\Actions\\FinalizeTransactionAction@__construct",
            "file": "app/Domains/Payments/Actions/FinalizeTransactionAction.php"
          },
          {
            "surface_id": "method::app/Domains/Payments/Actions/PersistDeductionsAction.php::App\\Domains\\Payments\\Actions\\PersistDeductionsAction::execute",
            "fqmn": "App\\Domains\\Payments\\Actions\\PersistDeductionsAction@execute",
            "file": "app/Domains/Payments/Actions/PersistDeductionsAction.php"
          },
          {
            "surface_id": "method::app/Domains/Payments/Actions/RecordPaymentAction.php::App\\Domains\\Payments\\Actions\\RecordPaymentAction::__construct",
            "fqmn": "App\\Domains\\Payments\\Actions\\RecordPaymentAction@__construct",
            "file": "app/Domains/Payments/Actions/RecordPaymentAction.php"
          },
          {
            "surface_id": "method::app/Domains/Payments/Services/PaymentProof/CachedPaymentProofAnalyzer.php::App\\Domains\\Payments\\Services\\PaymentProof\\CachedPaymentProofAnalyzer::__construct",
            "fqmn": "App\\Domains\\Payments\\Services\\PaymentProof\\CachedPaymentProofAnalyzer@__construct",
            "file": "app/Domains/Payments/Services/PaymentProof/CachedPaymentProofAnalyzer.php"
          },
          {
            "surface_id": "method::app/Domains/Payments/Services/PaymentProof/ChainPaymentProofAnalyzer.php::App\\Domains\\Payments\\Services\\PaymentProof\\ChainPaymentProofAnalyzer::__construct",
            "fqmn": "App\\Domains\\Payments\\Services\\PaymentProof\\ChainPaymentProofAnalyzer@__construct",
            "file": "app/Domains/Payments/Services/PaymentProof/ChainPaymentProofAnalyzer.php"
          },
          {
            "surface_id": "method::app/Domains/Payments/Services/PaymentProof/OpenAIPaymentProofAnalyzer.php::App\\Domains\\Payments\\Services\\PaymentProof\\OpenAIPaymentProofAnalyzer::__construct",
            "fqmn": "App\\Domains\\Payments\\Services\\PaymentProof\\OpenAIPaymentProofAnalyzer@__construct",
            "file": "app/Domains/Payments/Services/PaymentProof/OpenAIPaymentProofAnalyzer.php"
          },
          {
            "surface_id": "method::app/Domains/Payments/Services/PaymentService.php::App\\Domains\\Payments\\Services\\PaymentService::__construct",
            "fqmn": "App\\Domains\\Payments\\Services\\PaymentService@__construct",
            "file": "app/Domains/Payments/Services/PaymentService.php"
          },
          {
            "surface_id": "method::app/Domains/Payments/Services/PaymentVerificationService.php::App\\Domains\\Payments\\Services\\PaymentVerificationService::__construct",
            "fqmn": "App\\Domains\\Payments\\Services\\PaymentVerificationService@__construct",
            "file": "app/Domains/Payments/Services/PaymentVerificationService.php"
          },
          {
            "surface_id": "method::app/Domains/Payments/Services/PaymentVerificationService.php::App\\Domains\\Payments\\Services\\PaymentVerificationService::analyzeProof",
            "fqmn": "App\\Domains\\Payments\\Services\\PaymentVerificationService@analyzeProof",
            "file": "app/Domains/Payments/Services/PaymentVerificationService.php"
          },
          {
            "surface_id": "method::app/Domains/Payments/Services/PaymentVerificationService.php::App\\Domains\\Payments\\Services\\PaymentVerificationService::rejectProof",
            "fqmn": "App\\Domains\\Payments\\Services\\PaymentVerificationService@rejectProof",
            "file": "app/Domains/Payments/Services/PaymentVerificationService.php"
          },
          {
            "surface_id": "method::app/Domains/Payments/Services/TransactionService.php::App\\Domains\\Payments\\Services\\TransactionService::__construct",
            "fqmn": "App\\Domains\\Payments\\Services\\TransactionService@__construct",
            "file": "app/Domains/Payments/Services/TransactionService.php"
          },
          {
            "surface_id": "method::app/Domains/Payments/Services/WalletService.php::App\\Domains\\Payments\\Services\\WalletService::transfer",
            "fqmn": "App\\Domains\\Payments\\Services\\WalletService@transfer",
            "file": "app/Domains/Payments/Services/WalletService.php"
          },
          {
            "surface_id": "method::app/Domains/Reminders/Actions/MapReminderTypeToTemplateTypeAction.php::App\\Domains\\Reminders\\Actions\\MapReminderTypeToTemplateTypeAction::__construct",
            "fqmn": "App\\Domains\\Reminders\\Actions\\MapReminderTypeToTemplateTypeAction@__construct",
            "file": "app/Domains/Reminders/Actions/MapReminderTypeToTemplateTypeAction.php"
          },
          {
            "surface_id": "method::app/Domains/Reminders/Actions/ProcessDueRemindersAction.php::App\\Domains\\Reminders\\Actions\\ProcessDueRemindersAction::__construct",
            "fqmn": "App\\Domains\\Reminders\\Actions\\ProcessDueRemindersAction@__construct",
            "file": "app/Domains/Reminders/Actions/ProcessDueRemindersAction.php"
          },
          {
            "surface_id": "method::app/Domains/Reminders/Actions/ScheduleRemindersForRentCycleAction.php::App\\Domains\\Reminders\\Actions\\ScheduleRemindersForRentCycleAction::__construct",
            "fqmn": "App\\Domains\\Reminders\\Actions\\ScheduleRemindersForRentCycleAction@__construct",
            "file": "app/Domains/Reminders/Actions/ScheduleRemindersForRentCycleAction.php"
          },
          {
            "surface_id": "method::app/Domains/Reminders/Jobs/BulkScheduleRemindersJob.php::App\\Domains\\Reminders\\Jobs\\BulkScheduleRemindersJob::__construct",
            "fqmn": "App\\Domains\\Reminders\\Jobs\\BulkScheduleRemindersJob@__construct",
            "file": "app/Domains/Reminders/Jobs/BulkScheduleRemindersJob.php"
          },
          {
            "surface_id": "method::app/Domains/Reminders/Jobs/DownloadInboundAttachmentJob.php::App\\Domains\\Reminders\\Jobs\\DownloadInboundAttachmentJob::__construct",
            "fqmn": "App\\Domains\\Reminders\\Jobs\\DownloadInboundAttachmentJob@__construct",
            "file": "app/Domains/Reminders/Jobs/DownloadInboundAttachmentJob.php"
          },
          {
            "surface_id": "method::app/Domains/Reminders/Jobs/SendReminderJob.php::App\\Domains\\Reminders\\Jobs\\SendReminderJob::__construct",
            "fqmn": "App\\Domains\\Reminders\\Jobs\\SendReminderJob@__construct",
            "file": "app/Domains/Reminders/Jobs/SendReminderJob.php"
          },
          {
            "surface_id": "method::app/Domains/Reminders/Services/InboundMessageRouter.php::App\\Domains\\Reminders\\Services\\InboundMessageRouter::route",
            "fqmn": "App\\Domains\\Reminders\\Services\\InboundMessageRouter@route",
            "file": "app/Domains/Reminders/Services/InboundMessageRouter.php"
          },
          {
            "surface_id": "method::app/Domains/Reminders/Services/InboundMessageRouter.php::App\\Domains\\Reminders\\Services\\InboundMessageRouter::routeFromCanonical",
            "fqmn": "App\\Domains\\Reminders\\Services\\InboundMessageRouter@routeFromCanonical",
            "file": "app/Domains/Reminders/Services/InboundMessageRouter.php"
          },
          {
            "surface_id": "method::app/Domains/Reminders/Services/ReminderFailureHandler.php::App\\Domains\\Reminders\\Services\\ReminderFailureHandler::handleFailure",
            "fqmn": "App\\Domains\\Reminders\\Services\\ReminderFailureHandler@handleFailure",
            "file": "app/Domains/Reminders/Services/ReminderFailureHandler.php"
          },
          {
            "surface_id": "method::app/Domains/Reminders/Services/ReminderMonitoringService.php::App\\Domains\\Reminders\\Services\\ReminderMonitoringService::logCancelled",
            "fqmn": "App\\Domains\\Reminders\\Services\\ReminderMonitoringService@logCancelled",
            "file": "app/Domains/Reminders/Services/ReminderMonitoringService.php"
          },
          {
            "surface_id": "method::app/Domains/Reminders/Services/ReminderMonitoringService.php::App\\Domains\\Reminders\\Services\\ReminderMonitoringService::logFailed",
            "fqmn": "App\\Domains\\Reminders\\Services\\ReminderMonitoringService@logFailed",
            "file": "app/Domains/Reminders/Services/ReminderMonitoringService.php"
          },
          {
            "surface_id": "method::app/Domains/Reminders/Services/ReminderMonitoringService.php::App\\Domains\\Reminders\\Services\\ReminderMonitoringService::logScheduled",
            "fqmn": "App\\Domains\\Reminders\\Services\\ReminderMonitoringService@logScheduled",
            "file": "app/Domains/Reminders/Services/ReminderMonitoringService.php"
          },
          {
            "surface_id": "method::app/Domains/Reminders/Services/ReminderMonitoringService.php::App\\Domains\\Reminders\\Services\\ReminderMonitoringService::logSent",
            "fqmn": "App\\Domains\\Reminders\\Services\\ReminderMonitoringService@logSent",
            "file": "app/Domains/Reminders/Services/ReminderMonitoringService.php"
          },
          {
            "surface_id": "method::app/Domains/Reminders/Services/ReminderMonitoringService.php::App\\Domains\\Reminders\\Services\\ReminderMonitoringService::logTransition",
            "fqmn": "App\\Domains\\Reminders\\Services\\ReminderMonitoringService@logTransition",
            "file": "app/Domains/Reminders/Services/ReminderMonitoringService.php"
          },
          {
            "surface_id": "method::app/Domains/Reminders/Services/ReminderScheduler.php::App\\Domains\\Reminders\\Services\\ReminderScheduler::__construct",
            "fqmn": "App\\Domains\\Reminders\\Services\\ReminderScheduler@__construct",
            "file": "app/Domains/Reminders/Services/ReminderScheduler.php"
          },
          {
            "surface_id": "method::app/Domains/Reminders/Services/ReminderService.php::App\\Domains\\Reminders\\Services\\ReminderService::__construct",
            "fqmn": "App\\Domains\\Reminders\\Services\\ReminderService@__construct",
            "file": "app/Domains/Reminders/Services/ReminderService.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Auth/AuthController.php::App\\Http\\Controllers\\Auth\\AuthController::__construct",
            "fqmn": "App\\Http\\Controllers\\Auth\\AuthController@__construct",
            "file": "app/Http/Controllers/Auth/AuthController.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/InvitationController.php::App\\Http\\Controllers\\InvitationController::__construct",
            "fqmn": "App\\Http\\Controllers\\InvitationController@__construct",
            "file": "app/Http/Controllers/InvitationController.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/TenantPaymentController.php::App\\Http\\Controllers\\TenantPaymentController::__construct",
            "fqmn": "App\\Http\\Controllers\\TenantPaymentController@__construct",
            "file": "app/Http/Controllers/TenantPaymentController.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Web/GuestRenewalController.php::App\\Http\\Controllers\\Web\\GuestRenewalController::__construct",
            "fqmn": "App\\Http\\Controllers\\Web\\GuestRenewalController@__construct",
            "file": "app/Http/Controllers/Web/GuestRenewalController.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Webhooks/TapWebhookController.php::App\\Http\\Controllers\\Webhooks\\TapWebhookController::__construct",
            "fqmn": "App\\Http\\Controllers\\Webhooks\\TapWebhookController@__construct",
            "file": "app/Http/Controllers/Webhooks/TapWebhookController.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Webhooks/ZohoWebhookController.php::App\\Http\\Controllers\\Webhooks\\ZohoWebhookController::__construct",
            "fqmn": "App\\Http\\Controllers\\Webhooks\\ZohoWebhookController@__construct",
            "file": "app/Http/Controllers/Webhooks/ZohoWebhookController.php"
          },
          {
            "surface_id": "method::app/Http/Requests/Auth/RegisterRequest.php::App\\Http\\Requests\\Auth\\RegisterRequest::prepareForValidation",
            "fqmn": "App\\Http\\Requests\\Auth\\RegisterRequest@prepareForValidation",
            "file": "app/Http/Requests/Auth/RegisterRequest.php"
          },
          {
            "surface_id": "method::app/Http/Requests/Payments/UpdatePaymentRequest.php::App\\Http\\Requests\\Payments\\UpdatePaymentRequest::withValidator",
            "fqmn": "App\\Http\\Requests\\Payments\\UpdatePaymentRequest@withValidator",
            "file": "app/Http/Requests/Payments/UpdatePaymentRequest.php"
          },
          {
            "surface_id": "method::app/Jobs/AllocateDeferredRevenue.php::App\\Jobs\\AllocateDeferredRevenue::__construct",
            "fqmn": "App\\Jobs\\AllocateDeferredRevenue@__construct",
            "file": "app/Jobs/AllocateDeferredRevenue.php"
          },
          {
            "surface_id": "method::app/Jobs/AnalyzePaymentProofJob.php::App\\Jobs\\AnalyzePaymentProofJob::__construct",
            "fqmn": "App\\Jobs\\AnalyzePaymentProofJob@__construct",
            "file": "app/Jobs/AnalyzePaymentProofJob.php"
          },
          {
            "surface_id": "method::app/Jobs/AnalyzePaymentProofJob.php::App\\Jobs\\AnalyzePaymentProofJob::failed",
            "fqmn": "App\\Jobs\\AnalyzePaymentProofJob@failed",
            "file": "app/Jobs/AnalyzePaymentProofJob.php"
          },
          {
            "surface_id": "method::app/Jobs/AnalyzePaymentProofJob.php::App\\Jobs\\AnalyzePaymentProofJob::handle",
            "fqmn": "App\\Jobs\\AnalyzePaymentProofJob@handle",
            "file": "app/Jobs/AnalyzePaymentProofJob.php"
          },
          {
            "surface_id": "method::app/Jobs/ApproveReminderTemplateJob.php::App\\Jobs\\ApproveReminderTemplateJob::__construct",
            "fqmn": "App\\Jobs\\ApproveReminderTemplateJob@__construct",
            "file": "app/Jobs/ApproveReminderTemplateJob.php"
          },
          {
            "surface_id": "method::app/Jobs/Billing/BuildMessagePackageInvoiceContextJob.php::App\\Jobs\\Billing\\BuildMessagePackageInvoiceContextJob::__construct",
            "fqmn": "App\\Jobs\\Billing\\BuildMessagePackageInvoiceContextJob@__construct",
            "file": "app/Jobs/Billing/BuildMessagePackageInvoiceContextJob.php"
          },
          {
            "surface_id": "method::app/Jobs/Billing/CreateAuditLogJob.php::App\\Jobs\\Billing\\CreateAuditLogJob::__construct",
            "fqmn": "App\\Jobs\\Billing\\CreateAuditLogJob@__construct",
            "file": "app/Jobs/Billing/CreateAuditLogJob.php"
          },
          {
            "surface_id": "method::app/Jobs/Billing/CreateMessagePackageAndBuildInvoiceContextJob.php::App\\Jobs\\Billing\\CreateMessagePackageAndBuildInvoiceContextJob::__construct",
            "fqmn": "App\\Jobs\\Billing\\CreateMessagePackageAndBuildInvoiceContextJob@__construct",
            "file": "app/Jobs/Billing/CreateMessagePackageAndBuildInvoiceContextJob.php"
          },
          {
            "surface_id": "method::app/Jobs/Billing/CreateMessagePackageJob.php::App\\Jobs\\Billing\\CreateMessagePackageJob::__construct",
            "fqmn": "App\\Jobs\\Billing\\CreateMessagePackageJob@__construct",
            "file": "app/Jobs/Billing/CreateMessagePackageJob.php"
          },
          {
            "surface_id": "method::app/Jobs/Billing/PushZohoSettlementPaymentJob.php::App\\Jobs\\Billing\\PushZohoSettlementPaymentJob::__construct",
            "fqmn": "App\\Jobs\\Billing\\PushZohoSettlementPaymentJob@__construct",
            "file": "app/Jobs/Billing/PushZohoSettlementPaymentJob.php"
          },
          {
            "surface_id": "method::app/Jobs/Billing/RunMessageBillingWorkflowJob.php::App\\Jobs\\Billing\\RunMessageBillingWorkflowJob::__construct",
            "fqmn": "App\\Jobs\\Billing\\RunMessageBillingWorkflowJob@__construct",
            "file": "app/Jobs/Billing/RunMessageBillingWorkflowJob.php"
          },
          {
            "surface_id": "method::app/Jobs/Chat/InboundMessageJob.php::App\\Jobs\\Chat\\InboundMessageJob::__construct",
            "fqmn": "App\\Jobs\\Chat\\InboundMessageJob@__construct",
            "file": "app/Jobs/Chat/InboundMessageJob.php"
          },
          {
            "surface_id": "method::app/Jobs/Chat/InboundMessageJob.php::App\\Jobs\\Chat\\InboundMessageJob::failed",
            "fqmn": "App\\Jobs\\Chat\\InboundMessageJob@failed",
            "file": "app/Jobs/Chat/InboundMessageJob.php"
          },
          {
            "surface_id": "method::app/Jobs/Chat/ProcessAIMessageJob.php::App\\Jobs\\Chat\\ProcessAIMessageJob::__construct",
            "fqmn": "App\\Jobs\\Chat\\ProcessAIMessageJob@__construct",
            "file": "app/Jobs/Chat/ProcessAIMessageJob.php"
          },
          {
            "surface_id": "method::app/Jobs/Chat/ProcessAIMessageJob.php::App\\Jobs\\Chat\\ProcessAIMessageJob::failed",
            "fqmn": "App\\Jobs\\Chat\\ProcessAIMessageJob@failed",
            "file": "app/Jobs/Chat/ProcessAIMessageJob.php"
          },
          {
            "surface_id": "method::app/Jobs/Chat/SendOutboundMessageJob.php::App\\Jobs\\Chat\\SendOutboundMessageJob::__construct",
            "fqmn": "App\\Jobs\\Chat\\SendOutboundMessageJob@__construct",
            "file": "app/Jobs/Chat/SendOutboundMessageJob.php"
          },
          {
            "surface_id": "method::app/Jobs/Chat/SendOutboundMessageJob.php::App\\Jobs\\Chat\\SendOutboundMessageJob::failed",
            "fqmn": "App\\Jobs\\Chat\\SendOutboundMessageJob@failed",
            "file": "app/Jobs/Chat/SendOutboundMessageJob.php"
          },
          {
            "surface_id": "method::app/Jobs/DailyPreloadCachesJob.php::App\\Jobs\\DailyPreloadCachesJob::handle",
            "fqmn": "App\\Jobs\\DailyPreloadCachesJob@handle",
            "file": "app/Jobs/DailyPreloadCachesJob.php"
          },
          {
            "surface_id": "method::app/Jobs/Dunning/RunDunningAttemptJob.php::App\\Jobs\\Dunning\\RunDunningAttemptJob::__construct",
            "fqmn": "App\\Jobs\\Dunning\\RunDunningAttemptJob@__construct",
            "file": "app/Jobs/Dunning/RunDunningAttemptJob.php"
          },
          {
            "surface_id": "method::app/Jobs/Dunning/RunDunningAttemptJob.php::App\\Jobs\\Dunning\\RunDunningAttemptJob::handle",
            "fqmn": "App\\Jobs\\Dunning\\RunDunningAttemptJob@handle",
            "file": "app/Jobs/Dunning/RunDunningAttemptJob.php"
          },
          {
            "surface_id": "method::app/Jobs/GenerateAgencyBackupJob.php::App\\Jobs\\GenerateAgencyBackupJob::__construct",
            "fqmn": "App\\Jobs\\GenerateAgencyBackupJob@__construct",
            "file": "app/Jobs/GenerateAgencyBackupJob.php"
          },
          {
            "surface_id": "method::app/Jobs/GenerateAgencyBackupJob.php::App\\Jobs\\GenerateAgencyBackupJob::handle",
            "fqmn": "App\\Jobs\\GenerateAgencyBackupJob@handle",
            "file": "app/Jobs/GenerateAgencyBackupJob.php"
          },
          {
            "surface_id": "method::app/Jobs/GenerateFunnelSnapshotJob.php::App\\Jobs\\GenerateFunnelSnapshotJob::__construct",
            "fqmn": "App\\Jobs\\GenerateFunnelSnapshotJob@__construct",
            "file": "app/Jobs/GenerateFunnelSnapshotJob.php"
          },
          {
            "surface_id": "method::app/Jobs/GenerateFunnelSnapshotJob.php::App\\Jobs\\GenerateFunnelSnapshotJob::handle",
            "fqmn": "App\\Jobs\\GenerateFunnelSnapshotJob@handle",
            "file": "app/Jobs/GenerateFunnelSnapshotJob.php"
          },
          {
            "surface_id": "method::app/Jobs/GenerateRevenueSnapshot.php::App\\Jobs\\GenerateRevenueSnapshot::handle",
            "fqmn": "App\\Jobs\\GenerateRevenueSnapshot@handle",
            "file": "app/Jobs/GenerateRevenueSnapshot.php"
          },
          {
            "surface_id": "method::app/Jobs/LogClickJob.php::App\\Jobs\\LogClickJob::__construct",
            "fqmn": "App\\Jobs\\LogClickJob@__construct",
            "file": "app/Jobs/LogClickJob.php"
          },
          {
            "surface_id": "method::app/Jobs/Outreach/CheckActivationStatusJob.php::App\\Jobs\\Outreach\\CheckActivationStatusJob::__construct",
            "fqmn": "App\\Jobs\\Outreach\\CheckActivationStatusJob@__construct",
            "file": "app/Jobs/Outreach/CheckActivationStatusJob.php"
          },
          {
            "surface_id": "method::app/Jobs/Outreach/ProcessOutreachInboundMessageJob.php::App\\Jobs\\Outreach\\ProcessOutreachInboundMessageJob::__construct",
            "fqmn": "App\\Jobs\\Outreach\\ProcessOutreachInboundMessageJob@__construct",
            "file": "app/Jobs/Outreach/ProcessOutreachInboundMessageJob.php"
          },
          {
            "surface_id": "method::app/Jobs/Outreach/ProcessRenewalOutreachJob.php::App\\Jobs\\Outreach\\ProcessRenewalOutreachJob::__construct",
            "fqmn": "App\\Jobs\\Outreach\\ProcessRenewalOutreachJob@__construct",
            "file": "app/Jobs/Outreach/ProcessRenewalOutreachJob.php"
          },
          {
            "surface_id": "method::app/Jobs/Outreach/ProcessScheduledFollowUpsJob.php::App\\Jobs\\Outreach\\ProcessScheduledFollowUpsJob::handle",
            "fqmn": "App\\Jobs\\Outreach\\ProcessScheduledFollowUpsJob@handle",
            "file": "app/Jobs/Outreach/ProcessScheduledFollowUpsJob.php"
          },
          {
            "surface_id": "method::app/Jobs/Outreach/SendCampaignMessageJob.php::App\\Jobs\\Outreach\\SendCampaignMessageJob::__construct",
            "fqmn": "App\\Jobs\\Outreach\\SendCampaignMessageJob@__construct",
            "file": "app/Jobs/Outreach/SendCampaignMessageJob.php"
          },
          {
            "surface_id": "method::app/Jobs/Outreach/SendCampaignMessageJob.php::App\\Jobs\\Outreach\\SendCampaignMessageJob::dispatchSync",
            "fqmn": "App\\Jobs\\Outreach\\SendCampaignMessageJob@dispatchSync",
            "file": "app/Jobs/Outreach/SendCampaignMessageJob.php"
          },
          {
            "surface_id": "method::app/Jobs/Outreach/SendFollowUpMessageJob.php::App\\Jobs\\Outreach\\SendFollowUpMessageJob::__construct",
            "fqmn": "App\\Jobs\\Outreach\\SendFollowUpMessageJob@__construct",
            "file": "app/Jobs/Outreach/SendFollowUpMessageJob.php"
          },
          {
            "surface_id": "method::app/Jobs/Outreach/SendFollowUpMessageJob.php::App\\Jobs\\Outreach\\SendFollowUpMessageJob::failed",
            "fqmn": "App\\Jobs\\Outreach\\SendFollowUpMessageJob@failed",
            "file": "app/Jobs/Outreach/SendFollowUpMessageJob.php"
          },
          {
            "surface_id": "method::app/Jobs/OutreachAI/AutoSubscriptionNudgeJob.php::App\\Jobs\\OutreachAI\\AutoSubscriptionNudgeJob::__construct",
            "fqmn": "App\\Jobs\\OutreachAI\\AutoSubscriptionNudgeJob@__construct",
            "file": "app/Jobs/OutreachAI/AutoSubscriptionNudgeJob.php"
          },
          {
            "surface_id": "method::app/Jobs/OutreachAI/DetectUpsellSuccessJob.php::App\\Jobs\\OutreachAI\\DetectUpsellSuccessJob::__construct",
            "fqmn": "App\\Jobs\\OutreachAI\\DetectUpsellSuccessJob@__construct",
            "file": "app/Jobs/OutreachAI/DetectUpsellSuccessJob.php"
          },
          {
            "surface_id": "method::app/Jobs/OutreachAI/EvaluateFollowUpJob.php::App\\Jobs\\OutreachAI\\EvaluateFollowUpJob::__construct",
            "fqmn": "App\\Jobs\\OutreachAI\\EvaluateFollowUpJob@__construct",
            "file": "app/Jobs/OutreachAI/EvaluateFollowUpJob.php"
          },
          {
            "surface_id": "method::app/Jobs/OutreachAI/ExecuteScheduledClosingAttemptJob.php::App\\Jobs\\OutreachAI\\ExecuteScheduledClosingAttemptJob::__construct",
            "fqmn": "App\\Jobs\\OutreachAI\\ExecuteScheduledClosingAttemptJob@__construct",
            "file": "app/Jobs/OutreachAI/ExecuteScheduledClosingAttemptJob.php"
          },
          {
            "surface_id": "method::app/Jobs/OutreachAI/GenerateFunnelSnapshotJob.php::App\\Jobs\\OutreachAI\\GenerateFunnelSnapshotJob::handle",
            "fqmn": "App\\Jobs\\OutreachAI\\GenerateFunnelSnapshotJob@handle",
            "file": "app/Jobs/OutreachAI/GenerateFunnelSnapshotJob.php"
          },
          {
            "surface_id": "method::app/Jobs/OutreachAI/HandleObjectionJob.php::App\\Jobs\\OutreachAI\\HandleObjectionJob::__construct",
            "fqmn": "App\\Jobs\\OutreachAI\\HandleObjectionJob@__construct",
            "file": "app/Jobs/OutreachAI/HandleObjectionJob.php"
          },
          {
            "surface_id": "method::app/Jobs/OutreachAI/NotifySalesTeamJob.php::App\\Jobs\\OutreachAI\\NotifySalesTeamJob::__construct",
            "fqmn": "App\\Jobs\\OutreachAI\\NotifySalesTeamJob@__construct",
            "file": "app/Jobs/OutreachAI/NotifySalesTeamJob.php"
          },
          {
            "surface_id": "method::app/Jobs/OutreachAI/PostReplyPersistenceJob.php::App\\Jobs\\OutreachAI\\PostReplyPersistenceJob::__construct",
            "fqmn": "App\\Jobs\\OutreachAI\\PostReplyPersistenceJob@__construct",
            "file": "app/Jobs/OutreachAI/PostReplyPersistenceJob.php"
          },
          {
            "surface_id": "method::app/Jobs/OutreachAI/ProcessConversationAnalyticsJob.php::App\\Jobs\\OutreachAI\\ProcessConversationAnalyticsJob::__construct",
            "fqmn": "App\\Jobs\\OutreachAI\\ProcessConversationAnalyticsJob@__construct",
            "file": "app/Jobs/OutreachAI/ProcessConversationAnalyticsJob.php"
          },
          {
            "surface_id": "method::app/Jobs/OutreachAI/ProcessConversationAnalyticsJob.php::App\\Jobs\\OutreachAI\\ProcessConversationAnalyticsJob::handle",
            "fqmn": "App\\Jobs\\OutreachAI\\ProcessConversationAnalyticsJob@handle",
            "file": "app/Jobs/OutreachAI/ProcessConversationAnalyticsJob.php"
          },
          {
            "surface_id": "method::app/Jobs/OutreachAI/ProcessScheduledNudges.php::App\\Jobs\\OutreachAI\\ProcessScheduledNudges::failed",
            "fqmn": "App\\Jobs\\OutreachAI\\ProcessScheduledNudges@failed",
            "file": "app/Jobs/OutreachAI/ProcessScheduledNudges.php"
          },
          {
            "surface_id": "method::app/Jobs/OutreachAI/ProcessScheduledNudges.php::App\\Jobs\\OutreachAI\\ProcessScheduledNudges::handle",
            "fqmn": "App\\Jobs\\OutreachAI\\ProcessScheduledNudges@handle",
            "file": "app/Jobs/OutreachAI/ProcessScheduledNudges.php"
          },
          {
            "surface_id": "method::app/Jobs/OutreachAI/ReactivatePortalUserJob.php::App\\Jobs\\OutreachAI\\ReactivatePortalUserJob::__construct",
            "fqmn": "App\\Jobs\\OutreachAI\\ReactivatePortalUserJob@__construct",
            "file": "app/Jobs/OutreachAI/ReactivatePortalUserJob.php"
          },
          {
            "surface_id": "method::app/Jobs/OutreachAI/RunDailyPredictionSweepJob.php::App\\Jobs\\OutreachAI\\RunDailyPredictionSweepJob::__construct",
            "fqmn": "App\\Jobs\\OutreachAI\\RunDailyPredictionSweepJob@__construct",
            "file": "app/Jobs/OutreachAI/RunDailyPredictionSweepJob.php"
          },
          {
            "surface_id": "method::app/Jobs/OutreachAI/RunDailyPredictionSweepJob.php::App\\Jobs\\OutreachAI\\RunDailyPredictionSweepJob::handle",
            "fqmn": "App\\Jobs\\OutreachAI\\RunDailyPredictionSweepJob@handle",
            "file": "app/Jobs/OutreachAI/RunDailyPredictionSweepJob.php"
          },
          {
            "surface_id": "method::app/Jobs/OutreachAI/RunDeepReasoningJob.php::App\\Jobs\\OutreachAI\\RunDeepReasoningJob::__construct",
            "fqmn": "App\\Jobs\\OutreachAI\\RunDeepReasoningJob@__construct",
            "file": "app/Jobs/OutreachAI/RunDeepReasoningJob.php"
          },
          {
            "surface_id": "method::app/Jobs/OutreachAI/RunOptimizationCycleJob.php::App\\Jobs\\OutreachAI\\RunOptimizationCycleJob::__construct",
            "fqmn": "App\\Jobs\\OutreachAI\\RunOptimizationCycleJob@__construct",
            "file": "app/Jobs/OutreachAI/RunOptimizationCycleJob.php"
          },
          {
            "surface_id": "method::app/Jobs/OutreachAI/RunOptimizationCycleJob.php::App\\Jobs\\OutreachAI\\RunOptimizationCycleJob::handle",
            "fqmn": "App\\Jobs\\OutreachAI\\RunOptimizationCycleJob@handle",
            "file": "app/Jobs/OutreachAI/RunOptimizationCycleJob.php"
          },
          {
            "surface_id": "method::app/Jobs/OutreachAI/RunSequenceStepJob.php::App\\Jobs\\OutreachAI\\RunSequenceStepJob::__construct",
            "fqmn": "App\\Jobs\\OutreachAI\\RunSequenceStepJob@__construct",
            "file": "app/Jobs/OutreachAI/RunSequenceStepJob.php"
          },
          {
            "surface_id": "method::app/Jobs/OutreachAI/RunShadowBrainJob.php::App\\Jobs\\OutreachAI\\RunShadowBrainJob::__construct",
            "fqmn": "App\\Jobs\\OutreachAI\\RunShadowBrainJob@__construct",
            "file": "app/Jobs/OutreachAI/RunShadowBrainJob.php"
          },
          {
            "surface_id": "method::app/Jobs/OutreachAI/RunShadowBrainJob.php::App\\Jobs\\OutreachAI\\RunShadowBrainJob::handle",
            "fqmn": "App\\Jobs\\OutreachAI\\RunShadowBrainJob@handle",
            "file": "app/Jobs/OutreachAI/RunShadowBrainJob.php"
          },
          {
            "surface_id": "method::app/Jobs/OutreachAI/SendAiWhatsappReplyJob.php::App\\Jobs\\OutreachAI\\SendAiWhatsappReplyJob::__construct",
            "fqmn": "App\\Jobs\\OutreachAI\\SendAiWhatsappReplyJob@__construct",
            "file": "app/Jobs/OutreachAI/SendAiWhatsappReplyJob.php"
          },
          {
            "surface_id": "method::app/Jobs/OutreachAI/SendAiWhatsappReplyJob.php::App\\Jobs\\OutreachAI\\SendAiWhatsappReplyJob::failed",
            "fqmn": "App\\Jobs\\OutreachAI\\SendAiWhatsappReplyJob@failed",
            "file": "app/Jobs/OutreachAI/SendAiWhatsappReplyJob.php"
          },
          {
            "surface_id": "method::app/Jobs/OutreachAI/SendHumanHandoffNotificationJob.php::App\\Jobs\\OutreachAI\\SendHumanHandoffNotificationJob::__construct",
            "fqmn": "App\\Jobs\\OutreachAI\\SendHumanHandoffNotificationJob@__construct",
            "file": "app/Jobs/OutreachAI/SendHumanHandoffNotificationJob.php"
          },
          {
            "surface_id": "method::app/Jobs/OutreachAI/SendReengagementMessageJob.php::App\\Jobs\\OutreachAI\\SendReengagementMessageJob::__construct",
            "fqmn": "App\\Jobs\\OutreachAI\\SendReengagementMessageJob@__construct",
            "file": "app/Jobs/OutreachAI/SendReengagementMessageJob.php"
          },
          {
            "surface_id": "method::app/Jobs/OutreachAI/SendScheduledAppointmentFollowupJob.php::App\\Jobs\\OutreachAI\\SendScheduledAppointmentFollowupJob::__construct",
            "fqmn": "App\\Jobs\\OutreachAI\\SendScheduledAppointmentFollowupJob@__construct",
            "file": "app/Jobs/OutreachAI/SendScheduledAppointmentFollowupJob.php"
          },
          {
            "surface_id": "method::app/Jobs/OutreachAI/SendTypingIndicatorJob.php::App\\Jobs\\OutreachAI\\SendTypingIndicatorJob::__construct",
            "fqmn": "App\\Jobs\\OutreachAI\\SendTypingIndicatorJob@__construct",
            "file": "app/Jobs/OutreachAI/SendTypingIndicatorJob.php"
          },
          {
            "surface_id": "method::app/Jobs/OutreachAI/SendTypingIndicatorJob.php::App\\Jobs\\OutreachAI\\SendTypingIndicatorJob::handle",
            "fqmn": "App\\Jobs\\OutreachAI\\SendTypingIndicatorJob@handle",
            "file": "app/Jobs/OutreachAI/SendTypingIndicatorJob.php"
          },
          {
            "surface_id": "method::app/Jobs/ProcessInboundWhatsAppMessageJob.php::App\\Jobs\\ProcessInboundWhatsAppMessageJob::__construct",
            "fqmn": "App\\Jobs\\ProcessInboundWhatsAppMessageJob@__construct",
            "file": "app/Jobs/ProcessInboundWhatsAppMessageJob.php"
          },
          {
            "surface_id": "method::app/Jobs/ProcessInboundWhatsAppMessageJob.php::App\\Jobs\\ProcessInboundWhatsAppMessageJob::handle",
            "fqmn": "App\\Jobs\\ProcessInboundWhatsAppMessageJob@handle",
            "file": "app/Jobs/ProcessInboundWhatsAppMessageJob.php"
          },
          {
            "surface_id": "method::app/Jobs/ProcessTapWebhookJob.php::App\\Jobs\\ProcessTapWebhookJob::__construct",
            "fqmn": "App\\Jobs\\ProcessTapWebhookJob@__construct",
            "file": "app/Jobs/ProcessTapWebhookJob.php"
          },
          {
            "surface_id": "method::app/Jobs/ProcessWhatsAppTemplateUpdateJob.php::App\\Jobs\\ProcessWhatsAppTemplateUpdateJob::__construct",
            "fqmn": "App\\Jobs\\ProcessWhatsAppTemplateUpdateJob@__construct",
            "file": "app/Jobs/ProcessWhatsAppTemplateUpdateJob.php"
          },
          {
            "surface_id": "method::app/Jobs/ProcessWhatsAppWebhookJob.php::App\\Jobs\\ProcessWhatsAppWebhookJob::__construct",
            "fqmn": "App\\Jobs\\ProcessWhatsAppWebhookJob@__construct",
            "file": "app/Jobs/ProcessWhatsAppWebhookJob.php"
          },
          {
            "surface_id": "method::app/Jobs/ProcessZohoWebhook.php::App\\Jobs\\ProcessZohoWebhook::__construct",
            "fqmn": "App\\Jobs\\ProcessZohoWebhook@__construct",
            "file": "app/Jobs/ProcessZohoWebhook.php"
          },
          {
            "surface_id": "method::app/Jobs/PushWhatsAppTemplateJob.php::App\\Jobs\\PushWhatsAppTemplateJob::__construct",
            "fqmn": "App\\Jobs\\PushWhatsAppTemplateJob@__construct",
            "file": "app/Jobs/PushWhatsAppTemplateJob.php"
          },
          {
            "surface_id": "method::app/Jobs/RejectReminderTemplateJob.php::App\\Jobs\\RejectReminderTemplateJob::__construct",
            "fqmn": "App\\Jobs\\RejectReminderTemplateJob@__construct",
            "file": "app/Jobs/RejectReminderTemplateJob.php"
          },
          {
            "surface_id": "method::app/Jobs/RetryFailedZohoSync.php::App\\Jobs\\RetryFailedZohoSync::__construct",
            "fqmn": "App\\Jobs\\RetryFailedZohoSync@__construct",
            "file": "app/Jobs/RetryFailedZohoSync.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/RunDailyRevenueRecognition.php::App\\Jobs\\RunDailyRevenueRecognition::handle",
            "fqmn": "App\\Jobs\\RunDailyRevenueRecognition@handle",
            "file": "app/Jobs/RunDailyRevenueRecognition.php"
          },
          {
            "surface_id": "method::app/Jobs/SendInvitationEmail.php::App\\Jobs\\SendInvitationEmail::__construct",
            "fqmn": "App\\Jobs\\SendInvitationEmail@__construct",
            "file": "app/Jobs/SendInvitationEmail.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/SendReminderJob.php::App\\Jobs\\SendReminderJob::failed",
            "fqmn": "App\\Jobs\\SendReminderJob@failed",
            "file": "app/Jobs/SendReminderJob.php"
          },
          {
            "surface_id": "method::app/Jobs/SendTransferNotification.php::App\\Jobs\\SendTransferNotification::__construct",
            "fqmn": "App\\Jobs\\SendTransferNotification@__construct",
            "file": "app/Jobs/SendTransferNotification.php"
          },
          {
            "surface_id": "method::app/Jobs/SendTransferNotification.php::App\\Jobs\\SendTransferNotification::handle",
            "fqmn": "App\\Jobs\\SendTransferNotification@handle",
            "file": "app/Jobs/SendTransferNotification.php"
          },
          {
            "surface_id": "method::app/Jobs/SendTrialNudgeJob.php::App\\Jobs\\SendTrialNudgeJob::__construct",
            "fqmn": "App\\Jobs\\SendTrialNudgeJob@__construct",
            "file": "app/Jobs/SendTrialNudgeJob.php"
          },
          {
            "surface_id": "method::app/Jobs/Subscriptions/UpdateUsageSnapshotJob.php::App\\Jobs\\Subscriptions\\UpdateUsageSnapshotJob::handle",
            "fqmn": "App\\Jobs\\Subscriptions\\UpdateUsageSnapshotJob@handle",
            "file": "app/Jobs/Subscriptions/UpdateUsageSnapshotJob.php"
          },
          {
            "surface_id": "method::app/Jobs/SyncAgencyWhatsAppProfilesJob.php::App\\Jobs\\SyncAgencyWhatsAppProfilesJob::handle",
            "fqmn": "App\\Jobs\\SyncAgencyWhatsAppProfilesJob@handle",
            "file": "app/Jobs/SyncAgencyWhatsAppProfilesJob.php"
          },
          {
            "surface_id": "method::app/Jobs/SyncOrganizationToZohoBooks.php::App\\Jobs\\SyncOrganizationToZohoBooks::__construct",
            "fqmn": "App\\Jobs\\SyncOrganizationToZohoBooks@__construct",
            "file": "app/Jobs/SyncOrganizationToZohoBooks.php"
          },
          {
            "surface_id": "method::app/Jobs/SyncTapFeeToZoho.php::App\\Jobs\\SyncTapFeeToZoho::__construct",
            "fqmn": "App\\Jobs\\SyncTapFeeToZoho@__construct",
            "file": "app/Jobs/SyncTapFeeToZoho.php"
          },
          {
            "surface_id": "method::app/Jobs/SyncTapSettlementFeeToZoho.php::App\\Jobs\\SyncTapSettlementFeeToZoho::__construct",
            "fqmn": "App\\Jobs\\SyncTapSettlementFeeToZoho@__construct",
            "file": "app/Jobs/SyncTapSettlementFeeToZoho.php"
          },
          {
            "surface_id": "method::app/Jobs/SyncTapSettlementPaymentToZoho.php::App\\Jobs\\SyncTapSettlementPaymentToZoho::__construct",
            "fqmn": "App\\Jobs\\SyncTapSettlementPaymentToZoho@__construct",
            "file": "app/Jobs/SyncTapSettlementPaymentToZoho.php"
          },
          {
            "surface_id": "method::app/Jobs/SyncTapSettlementToZoho.php::App\\Jobs\\SyncTapSettlementToZoho::__construct",
            "fqmn": "App\\Jobs\\SyncTapSettlementToZoho@__construct",
            "file": "app/Jobs/SyncTapSettlementToZoho.php"
          },
          {
            "surface_id": "method::app/Jobs/SyncTapSettlementToZoho.php::App\\Jobs\\SyncTapSettlementToZoho::handle",
            "fqmn": "App\\Jobs\\SyncTapSettlementToZoho@handle",
            "file": "app/Jobs/SyncTapSettlementToZoho.php"
          },
          {
            "surface_id": "method::app/Jobs/SyncWhatsAppProviderMetricsJob.php::App\\Jobs\\SyncWhatsAppProviderMetricsJob::handle",
            "fqmn": "App\\Jobs\\SyncWhatsAppProviderMetricsJob@handle",
            "file": "app/Jobs/SyncWhatsAppProviderMetricsJob.php"
          },
          {
            "surface_id": "method::app/Jobs/SyncWhatsAppTemplateStatusJob.php::App\\Jobs\\SyncWhatsAppTemplateStatusJob::__construct",
            "fqmn": "App\\Jobs\\SyncWhatsAppTemplateStatusJob@__construct",
            "file": "app/Jobs/SyncWhatsAppTemplateStatusJob.php"
          },
          {
            "surface_id": "method::app/Jobs/SyncZohoInvoice.php::App\\Jobs\\SyncZohoInvoice::__construct",
            "fqmn": "App\\Jobs\\SyncZohoInvoice@__construct",
            "file": "app/Jobs/SyncZohoInvoice.php"
          },
          {
            "surface_id": "method::app/Listeners/CancelRemindersOnPayment.php::App\\Listeners\\CancelRemindersOnPayment::__construct",
            "fqmn": "App\\Listeners\\CancelRemindersOnPayment@__construct",
            "file": "app/Listeners/CancelRemindersOnPayment.php"
          },
          {
            "surface_id": "method::app/Listeners/CancelRemindersOnPayment.php::App\\Listeners\\CancelRemindersOnPayment::handle",
            "fqmn": "App\\Listeners\\CancelRemindersOnPayment@handle",
            "file": "app/Listeners/CancelRemindersOnPayment.php"
          },
          {
            "surface_id": "method::app/Listeners/MarkLeadAsConverted.php::App\\Listeners\\MarkLeadAsConverted::__construct",
            "fqmn": "App\\Listeners\\MarkLeadAsConverted@__construct",
            "file": "app/Listeners/MarkLeadAsConverted.php"
          },
          {
            "surface_id": "method::app/Listeners/MarkLeadAsConverted.php::App\\Listeners\\MarkLeadAsConverted::handle",
            "fqmn": "App\\Listeners\\MarkLeadAsConverted@handle",
            "file": "app/Listeners/MarkLeadAsConverted.php"
          },
          {
            "surface_id": "method::app/Listeners/OnSubscriptionCapturedPostInvoice.php::App\\Listeners\\OnSubscriptionCapturedPostInvoice::__construct",
            "fqmn": "App\\Listeners\\OnSubscriptionCapturedPostInvoice@__construct",
            "file": "app/Listeners/OnSubscriptionCapturedPostInvoice.php"
          },
          {
            "surface_id": "method::app/Listeners/OnSubscriptionCapturedPostInvoice.php::App\\Listeners\\OnSubscriptionCapturedPostInvoice::handle",
            "fqmn": "App\\Listeners\\OnSubscriptionCapturedPostInvoice@handle",
            "file": "app/Listeners/OnSubscriptionCapturedPostInvoice.php"
          },
          {
            "surface_id": "method::app/Listeners/OnSubscriptionRefundedCreateCreditNote.php::App\\Listeners\\OnSubscriptionRefundedCreateCreditNote::__construct",
            "fqmn": "App\\Listeners\\OnSubscriptionRefundedCreateCreditNote@__construct",
            "file": "app/Listeners/OnSubscriptionRefundedCreateCreditNote.php"
          },
          {
            "surface_id": "method::app/Listeners/Outreach/ScheduleActivationNudge.php::App\\Listeners\\Outreach\\ScheduleActivationNudge::handle",
            "fqmn": "App\\Listeners\\Outreach\\ScheduleActivationNudge@handle",
            "file": "app/Listeners/Outreach/ScheduleActivationNudge.php"
          },
          {
            "surface_id": "method::app/Models/OutreachAI/HumanHandoffState.php::App\\Models\\OutreachAI\\HumanHandoffState::release",
            "fqmn": "App\\Models\\OutreachAI\\HumanHandoffState@release",
            "file": "app/Models/OutreachAI/HumanHandoffState.php"
          },
          {
            "surface_id": "method::app/Policies/Security/CspPolicy.php::App\\Policies\\Security\\CspPolicy::configure",
            "fqmn": "App\\Policies\\Security\\CspPolicy@configure",
            "file": "app/Policies/Security/CspPolicy.php"
          },
          {
            "surface_id": "method::app/Sandbox/Dialog360/Controllers/MessageController.php::App\\Sandbox\\Dialog360\\Controllers\\MessageController::__construct",
            "fqmn": "App\\Sandbox\\Dialog360\\Controllers\\MessageController@__construct",
            "file": "app/Sandbox/Dialog360/Controllers/MessageController.php"
          },
          {
            "surface_id": "method::app/Sandbox/Dialog360/Controllers/MetricsController.php::App\\Sandbox\\Dialog360\\Controllers\\MetricsController::__construct",
            "fqmn": "App\\Sandbox\\Dialog360\\Controllers\\MetricsController@__construct",
            "file": "app/Sandbox/Dialog360/Controllers/MetricsController.php"
          },
          {
            "surface_id": "method::app/Sandbox/Dialog360/Controllers/TemplateController.php::App\\Sandbox\\Dialog360\\Controllers\\TemplateController::__construct",
            "fqmn": "App\\Sandbox\\Dialog360\\Controllers\\TemplateController@__construct",
            "file": "app/Sandbox/Dialog360/Controllers/TemplateController.php"
          },
          {
            "surface_id": "method::app/Services/BackupService.php::App\\Services\\BackupService::execute",
            "fqmn": "App\\Services\\BackupService@execute",
            "file": "app/Services/BackupService.php"
          },
          {
            "surface_id": "method::app/Services/BackupService.php::App\\Services\\BackupService::sendBackup",
            "fqmn": "App\\Services\\BackupService@sendBackup",
            "file": "app/Services/BackupService.php"
          },
          {
            "surface_id": "method::app/Services/Billing/BillingAlertService.php::App\\Services\\Billing\\BillingAlertService::__construct",
            "fqmn": "App\\Services\\Billing\\BillingAlertService@__construct",
            "file": "app/Services/Billing/BillingAlertService.php"
          },
          {
            "surface_id": "method::app/Services/Billing/DunningEngine.php::App\\Services\\Billing\\DunningEngine::runDunningCycle",
            "fqmn": "App\\Services\\Billing\\DunningEngine@runDunningCycle",
            "file": "app/Services/Billing/DunningEngine.php"
          },
          {
            "surface_id": "method::app/Services/Billing/InvoiceBuilder.php::App\\Services\\Billing\\InvoiceBuilder::__construct",
            "fqmn": "App\\Services\\Billing\\InvoiceBuilder@__construct",
            "file": "app/Services/Billing/InvoiceBuilder.php"
          },
          {
            "surface_id": "method::app/Services/Billing/ProrationService.php::App\\Services\\Billing\\ProrationService::__construct",
            "fqmn": "App\\Services\\Billing\\ProrationService@__construct",
            "file": "app/Services/Billing/ProrationService.php"
          },
          {
            "surface_id": "method::app/Services/Billing/SubscriptionPaymentProcessor.php::App\\Services\\Billing\\SubscriptionPaymentProcessor::updateSubscriptionWithPayment",
            "fqmn": "App\\Services\\Billing\\SubscriptionPaymentProcessor@updateSubscriptionWithPayment",
            "file": "app/Services/Billing/SubscriptionPaymentProcessor.php"
          },
          {
            "surface_id": "method::app/Services/Billing/VatService.php::App\\Services\\Billing\\VatService::__construct",
            "fqmn": "App\\Services\\Billing\\VatService@__construct",
            "file": "app/Services/Billing/VatService.php"
          },
          {
            "surface_id": "method::app/Services/Billing/ZohoExpenseSyncService.php::App\\Services\\Billing\\ZohoExpenseSyncService::__construct",
            "fqmn": "App\\Services\\Billing\\ZohoExpenseSyncService@__construct",
            "file": "app/Services/Billing/ZohoExpenseSyncService.php"
          },
          {
            "surface_id": "method::app/Services/Billing/ZohoPaymentSyncService.php::App\\Services\\Billing\\ZohoPaymentSyncService::__construct",
            "fqmn": "App\\Services\\Billing\\ZohoPaymentSyncService@__construct",
            "file": "app/Services/Billing/ZohoPaymentSyncService.php"
          },
          {
            "surface_id": "method::app/Services/BillingStateService.php::App\\Services\\BillingStateService::__construct",
            "fqmn": "App\\Services\\BillingStateService@__construct",
            "file": "app/Services/BillingStateService.php"
          },
          {
            "surface_id": "method::app/Services/BillingStateService.php::App\\Services\\BillingStateService::handle",
            "fqmn": "App\\Services\\BillingStateService@handle",
            "file": "app/Services/BillingStateService.php"
          },
          {
            "surface_id": "method::app/Services/BillingStateService.php::App\\Services\\BillingStateService::moveToActive",
            "fqmn": "App\\Services\\BillingStateService@moveToActive",
            "file": "app/Services/BillingStateService.php"
          },
          {
            "surface_id": "method::app/Services/BillingStateService.php::App\\Services\\BillingStateService::moveToCanceled",
            "fqmn": "App\\Services\\BillingStateService@moveToCanceled",
            "file": "app/Services/BillingStateService.php"
          },
          {
            "surface_id": "method::app/Services/BillingStateService.php::App\\Services\\BillingStateService::moveToExpired",
            "fqmn": "App\\Services\\BillingStateService@moveToExpired",
            "file": "app/Services/BillingStateService.php"
          },
          {
            "surface_id": "method::app/Services/BillingStateService.php::App\\Services\\BillingStateService::moveToGrace",
            "fqmn": "App\\Services\\BillingStateService@moveToGrace",
            "file": "app/Services/BillingStateService.php"
          },
          {
            "surface_id": "method::app/Services/BillingStateService.php::App\\Services\\BillingStateService::moveToPastDue",
            "fqmn": "App\\Services\\BillingStateService@moveToPastDue",
            "file": "app/Services/BillingStateService.php"
          },
          {
            "surface_id": "method::app/Services/BillingStateService.php::App\\Services\\BillingStateService::moveToPendingPayment",
            "fqmn": "App\\Services\\BillingStateService@moveToPendingPayment",
            "file": "app/Services/BillingStateService.php"
          },
          {
            "surface_id": "method::app/Services/BillingStateService.php::App\\Services\\BillingStateService::moveToSuspended",
            "fqmn": "App\\Services\\BillingStateService@moveToSuspended",
            "file": "app/Services/BillingStateService.php"
          },
          {
            "surface_id": "method::app/Services/DunningService.php::App\\Services\\DunningService::__construct",
            "fqmn": "App\\Services\\DunningService@__construct",
            "file": "app/Services/DunningService.php"
          },
          {
            "surface_id": "method::app/Services/Imports/CsvImportSessionManager.php::App\\Services\\Imports\\CsvImportSessionManager::deleteSession",
            "fqmn": "App\\Services\\Imports\\CsvImportSessionManager@deleteSession",
            "file": "app/Services/Imports/CsvImportSessionManager.php"
          },
          {
            "surface_id": "method::app/Services/Imports/CsvImportSessionManager.php::App\\Services\\Imports\\CsvImportSessionManager::markComplete",
            "fqmn": "App\\Services\\Imports\\CsvImportSessionManager@markComplete",
            "file": "app/Services/Imports/CsvImportSessionManager.php"
          },
          {
            "surface_id": "method::app/Services/Imports/CsvImportSessionManager.php::App\\Services\\Imports\\CsvImportSessionManager::saveSessionData",
            "fqmn": "App\\Services\\Imports\\CsvImportSessionManager@saveSessionData",
            "file": "app/Services/Imports/CsvImportSessionManager.php"
          },
          {
            "surface_id": "method::app/Services/Imports/CsvImportSessionManager.php::App\\Services\\Imports\\CsvImportSessionManager::saveValidationResults",
            "fqmn": "App\\Services\\Imports\\CsvImportSessionManager@saveValidationResults",
            "file": "app/Services/Imports/CsvImportSessionManager.php"
          },
          {
            "surface_id": "method::app/Services/Integrations/BrotionsSalesService.php::App\\Services\\Integrations\\BrotionsSalesService::__construct",
            "fqmn": "App\\Services\\Integrations\\BrotionsSalesService@__construct",
            "file": "app/Services/Integrations/BrotionsSalesService.php"
          },
          {
            "surface_id": "method::app/Services/InvoiceService.php::App\\Services\\InvoiceService::__construct",
            "fqmn": "App\\Services\\InvoiceService@__construct",
            "file": "app/Services/InvoiceService.php"
          },
          {
            "surface_id": "method::app/Services/InvoiceService.php::App\\Services\\InvoiceService::prepareForZatca",
            "fqmn": "App\\Services\\InvoiceService@prepareForZatca",
            "file": "app/Services/InvoiceService.php"
          },
          {
            "surface_id": "method::app/Services/Messaging/MessageQuotaService.php::App\\Services\\Messaging\\MessageQuotaService::incrementUsage",
            "fqmn": "App\\Services\\Messaging\\MessageQuotaService@incrementUsage",
            "file": "app/Services/Messaging/MessageQuotaService.php"
          },
          {
            "surface_id": "method::app/Services/Messaging/MessagingGateway.php::App\\Services\\Messaging\\MessagingGateway::__construct",
            "fqmn": "App\\Services\\Messaging\\MessagingGateway@__construct",
            "file": "app/Services/Messaging/MessagingGateway.php"
          },
          {
            "surface_id": "method::app/Services/Messaging/MessagingResult.php::App\\Services\\Messaging\\MessagingResult::__construct",
            "fqmn": "App\\Services\\Messaging\\MessagingResult@__construct",
            "file": "app/Services/Messaging/MessagingResult.php"
          },
          {
            "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::__construct",
            "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@__construct",
            "file": "app/Services/OpenAI/OpenAIClientProxy.php"
          },
          {
            "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::assertNothingSent",
            "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@assertNothingSent",
            "file": "app/Services/OpenAI/OpenAIClientProxy.php"
          },
          {
            "surface_id": "method::app/Services/OpenAI/OpenAIVisionService.php::App\\Services\\OpenAI\\OpenAIVisionService::__construct",
            "fqmn": "App\\Services\\OpenAI\\OpenAIVisionService@__construct",
            "file": "app/Services/OpenAI/OpenAIVisionService.php"
          },
          {
            "surface_id": "method::app/Services/OrganizationRegistrationService.php::App\\Services\\OrganizationRegistrationService::__construct",
            "fqmn": "App\\Services\\OrganizationRegistrationService@__construct",
            "file": "app/Services/OrganizationRegistrationService.php"
          },
          {
            "surface_id": "method::app/Services/OrganizationRegistrationService.php::App\\Services\\OrganizationRegistrationService::grantTrialOnRegistration",
            "fqmn": "App\\Services\\OrganizationRegistrationService@grantTrialOnRegistration",
            "file": "app/Services/OrganizationRegistrationService.php"
          },
          {
            "surface_id": "method::app/Services/OTPService.php::App\\Services\\OTPService::__construct",
            "fqmn": "App\\Services\\OTPService@__construct",
            "file": "app/Services/OTPService.php"
          },
          {
            "surface_id": "method::app/Services/Outreach/CampaignService.php::App\\Services\\Outreach\\CampaignService::__construct",
            "fqmn": "App\\Services\\Outreach\\CampaignService@__construct",
            "file": "app/Services/Outreach/CampaignService.php"
          },
          {
            "surface_id": "method::app/Services/Outreach/FollowUpSchedulerService.php::App\\Services\\Outreach\\FollowUpSchedulerService::cancelPendingForLead",
            "fqmn": "App\\Services\\Outreach\\FollowUpSchedulerService@cancelPendingForLead",
            "file": "app/Services/Outreach/FollowUpSchedulerService.php"
          },
          {
            "surface_id": "method::app/Services/Outreach/FollowUpSchedulerService.php::App\\Services\\Outreach\\FollowUpSchedulerService::reschedule",
            "fqmn": "App\\Services\\Outreach\\FollowUpSchedulerService@reschedule",
            "file": "app/Services/Outreach/FollowUpSchedulerService.php"
          },
          {
            "surface_id": "method::app/Services/Outreach/LeadImporter.php::App\\Services\\Outreach\\LeadImporter::__construct",
            "fqmn": "App\\Services\\Outreach\\LeadImporter@__construct",
            "file": "app/Services/Outreach/LeadImporter.php"
          },
          {
            "surface_id": "method::app/Services/Outreach/TemplateService.php::App\\Services\\Outreach\\TemplateService::saveTemplates",
            "fqmn": "App\\Services\\Outreach\\TemplateService@saveTemplates",
            "file": "app/Services/Outreach/TemplateService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/AdaptiveStrategyEngine.php::App\\Services\\OutreachAI\\AdaptiveStrategyEngine::applyStrategy",
            "fqmn": "App\\Services\\OutreachAI\\AdaptiveStrategyEngine@applyStrategy",
            "file": "app/Services/OutreachAI/AdaptiveStrategyEngine.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/AgencyConversion/AgencyDemoScheduler.php::App\\Services\\OutreachAI\\AgencyConversion\\AgencyDemoScheduler::scheduleDemo",
            "fqmn": "App\\Services\\OutreachAI\\AgencyConversion\\AgencyDemoScheduler@scheduleDemo",
            "file": "app/Services/OutreachAI/AgencyConversion/AgencyDemoScheduler.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/AIAutoReplyService.php::App\\Services\\OutreachAI\\AIAutoReplyService::__construct",
            "fqmn": "App\\Services\\OutreachAI\\AIAutoReplyService@__construct",
            "file": "app/Services/OutreachAI/AIAutoReplyService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/AIResponderService.php::App\\Services\\OutreachAI\\AIResponderService::__construct",
            "fqmn": "App\\Services\\OutreachAI\\AIResponderService@__construct",
            "file": "app/Services/OutreachAI/AIResponderService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/AIResponderService.php::App\\Services\\OutreachAI\\AIResponderService::initiateOutboundConversation",
            "fqmn": "App\\Services\\OutreachAI\\AIResponderService@initiateOutboundConversation",
            "file": "app/Services/OutreachAI/AIResponderService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/AutoCorrectionService.php::App\\Services\\OutreachAI\\AutoCorrectionService::applyCorrectionDirectives",
            "fqmn": "App\\Services\\OutreachAI\\AutoCorrectionService@applyCorrectionDirectives",
            "file": "app/Services/OutreachAI/AutoCorrectionService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/AutoCorrectionService.php::App\\Services\\OutreachAI\\AutoCorrectionService::clearDirectives",
            "fqmn": "App\\Services\\OutreachAI\\AutoCorrectionService@clearDirectives",
            "file": "app/Services/OutreachAI/AutoCorrectionService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/ChurnPreventionOrchestrator.php::App\\Services\\OutreachAI\\ChurnPreventionOrchestrator::__construct",
            "fqmn": "App\\Services\\OutreachAI\\ChurnPreventionOrchestrator@__construct",
            "file": "app/Services/OutreachAI/ChurnPreventionOrchestrator.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/ConversationFactMemoryService.php::App\\Services\\OutreachAI\\ConversationFactMemoryService::updateFactualMemory",
            "fqmn": "App\\Services\\OutreachAI\\ConversationFactMemoryService@updateFactualMemory",
            "file": "app/Services/OutreachAI/ConversationFactMemoryService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/ConversationGoalService.php::App\\Services\\OutreachAI\\ConversationGoalService::__construct",
            "fqmn": "App\\Services\\OutreachAI\\ConversationGoalService@__construct",
            "file": "app/Services/OutreachAI/ConversationGoalService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/ConversationGovernanceService.php::App\\Services\\OutreachAI\\ConversationGovernanceService::transitionTo",
            "fqmn": "App\\Services\\OutreachAI\\ConversationGovernanceService@transitionTo",
            "file": "app/Services/OutreachAI/ConversationGovernanceService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/ConversationPlanService.php::App\\Services\\OutreachAI\\ConversationPlanService::__construct",
            "fqmn": "App\\Services\\OutreachAI\\ConversationPlanService@__construct",
            "file": "app/Services/OutreachAI/ConversationPlanService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/ConversationService.php::App\\Services\\OutreachAI\\ConversationService::closeConversation",
            "fqmn": "App\\Services\\OutreachAI\\ConversationService@closeConversation",
            "file": "app/Services/OutreachAI/ConversationService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/ConversationService.php::App\\Services\\OutreachAI\\ConversationService::resetMemory",
            "fqmn": "App\\Services\\OutreachAI\\ConversationService@resetMemory",
            "file": "app/Services/OutreachAI/ConversationService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/ConversionDetectionService.php::App\\Services\\OutreachAI\\ConversionDetectionService::__construct",
            "fqmn": "App\\Services\\OutreachAI\\ConversionDetectionService@__construct",
            "file": "app/Services/OutreachAI/ConversionDetectionService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/ConversionService.php::App\\Services\\OutreachAI\\ConversionService::markAsConverted",
            "fqmn": "App\\Services\\OutreachAI\\ConversionService@markAsConverted",
            "file": "app/Services/OutreachAI/ConversionService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/ConversionService.php::App\\Services\\OutreachAI\\ConversionService::markAsReadyToConvert",
            "fqmn": "App\\Services\\OutreachAI\\ConversionService@markAsReadyToConvert",
            "file": "app/Services/OutreachAI/ConversionService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/CrossSellEngine.php::App\\Services\\OutreachAI\\CrossSellEngine::__construct",
            "fqmn": "App\\Services\\OutreachAI\\CrossSellEngine@__construct",
            "file": "app/Services/OutreachAI/CrossSellEngine.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/FailureLogger.php::App\\Services\\OutreachAI\\FailureLogger::aiFailed",
            "fqmn": "App\\Services\\OutreachAI\\FailureLogger@aiFailed",
            "file": "app/Services/OutreachAI/FailureLogger.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/FailureLogger.php::App\\Services\\OutreachAI\\FailureLogger::appointmentFailed",
            "fqmn": "App\\Services\\OutreachAI\\FailureLogger@appointmentFailed",
            "file": "app/Services/OutreachAI/FailureLogger.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/FailureLogger.php::App\\Services\\OutreachAI\\FailureLogger::followUpFailed",
            "fqmn": "App\\Services\\OutreachAI\\FailureLogger@followUpFailed",
            "file": "app/Services/OutreachAI/FailureLogger.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/FailureLogger.php::App\\Services\\OutreachAI\\FailureLogger::messageFailed",
            "fqmn": "App\\Services\\OutreachAI\\FailureLogger@messageFailed",
            "file": "app/Services/OutreachAI/FailureLogger.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/HandoffService.php::App\\Services\\OutreachAI\\HandoffService::handleEmergencyEscalation",
            "fqmn": "App\\Services\\OutreachAI\\HandoffService@handleEmergencyEscalation",
            "file": "app/Services/OutreachAI/HandoffService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/HandoffService.php::App\\Services\\OutreachAI\\HandoffService::handleEscalation",
            "fqmn": "App\\Services\\OutreachAI\\HandoffService@handleEscalation",
            "file": "app/Services/OutreachAI/HandoffService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/HandoffService.php::App\\Services\\OutreachAI\\HandoffService::handleHandoffRequest",
            "fqmn": "App\\Services\\OutreachAI\\HandoffService@handleHandoffRequest",
            "file": "app/Services/OutreachAI/HandoffService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/HandoffService.php::App\\Services\\OutreachAI\\HandoffService::handleHandoffToSpecificAgent",
            "fqmn": "App\\Services\\OutreachAI\\HandoffService@handleHandoffToSpecificAgent",
            "file": "app/Services/OutreachAI/HandoffService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/HandoffService.php::App\\Services\\OutreachAI\\HandoffService::initiateHandoff",
            "fqmn": "App\\Services\\OutreachAI\\HandoffService@initiateHandoff",
            "file": "app/Services/OutreachAI/HandoffService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/HandoffService.php::App\\Services\\OutreachAI\\HandoffService::notifyHumanAgent",
            "fqmn": "App\\Services\\OutreachAI\\HandoffService@notifyHumanAgent",
            "file": "app/Services/OutreachAI/HandoffService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/HumanHandoffService.php::App\\Services\\OutreachAI\\HumanHandoffService::__construct",
            "fqmn": "App\\Services\\OutreachAI\\HumanHandoffService@__construct",
            "file": "app/Services/OutreachAI/HumanHandoffService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/HumanHandoffService.php::App\\Services\\OutreachAI\\HumanHandoffService::releaseHandoff",
            "fqmn": "App\\Services\\OutreachAI\\HumanHandoffService@releaseHandoff",
            "file": "app/Services/OutreachAI/HumanHandoffService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/NudgeService.php::App\\Services\\OutreachAI\\NudgeService::__construct",
            "fqmn": "App\\Services\\OutreachAI\\NudgeService@__construct",
            "file": "app/Services/OutreachAI/NudgeService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/NudgeService.php::App\\Services\\OutreachAI\\NudgeService::cancelPendingNudges",
            "fqmn": "App\\Services\\OutreachAI\\NudgeService@cancelPendingNudges",
            "file": "app/Services/OutreachAI/NudgeService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/Orchestration/ResponseComposerEngine.php::App\\Services\\OutreachAI\\Orchestration\\ResponseComposerEngine::__construct",
            "fqmn": "App\\Services\\OutreachAI\\Orchestration\\ResponseComposerEngine@__construct",
            "file": "app/Services/OutreachAI/Orchestration/ResponseComposerEngine.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/Orchestration/RollingSummaryService.php::App\\Services\\OutreachAI\\Orchestration\\RollingSummaryService::__construct",
            "fqmn": "App\\Services\\OutreachAI\\Orchestration\\RollingSummaryService@__construct",
            "file": "app/Services/OutreachAI/Orchestration/RollingSummaryService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/Orchestration/SignalContext.php::App\\Services\\OutreachAI\\Orchestration\\SignalContext::__construct",
            "fqmn": "App\\Services\\OutreachAI\\Orchestration\\SignalContext@__construct",
            "file": "app/Services/OutreachAI/Orchestration/SignalContext.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/Orchestration/SignalDirector.php::App\\Services\\OutreachAI\\Orchestration\\SignalDirector::__construct",
            "fqmn": "App\\Services\\OutreachAI\\Orchestration\\SignalDirector@__construct",
            "file": "app/Services/OutreachAI/Orchestration/SignalDirector.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/Orchestration/SignalDirector.php::App\\Services\\OutreachAI\\Orchestration\\SignalDirector::warmupContext",
            "fqmn": "App\\Services\\OutreachAI\\Orchestration\\SignalDirector@warmupContext",
            "file": "app/Services/OutreachAI/Orchestration/SignalDirector.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/OutreachIntentClassifier.php::App\\Services\\OutreachAI\\OutreachIntentClassifier::classify",
            "fqmn": "App\\Services\\OutreachAI\\OutreachIntentClassifier@classify",
            "file": "app/Services/OutreachAI/OutreachIntentClassifier.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/PredictionABTesting.php::App\\Services\\OutreachAI\\PredictionABTesting::trackVariantOutcome",
            "fqmn": "App\\Services\\OutreachAI\\PredictionABTesting@trackVariantOutcome",
            "file": "app/Services/OutreachAI/PredictionABTesting.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/PredictionPerformanceMonitor.php::App\\Services\\OutreachAI\\PredictionPerformanceMonitor::recordPredictionTime",
            "fqmn": "App\\Services\\OutreachAI\\PredictionPerformanceMonitor@recordPredictionTime",
            "file": "app/Services/OutreachAI/PredictionPerformanceMonitor.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/PredictionRecalculationService.php::App\\Services\\OutreachAI\\PredictionRecalculationService::recalculateOnAppointmentScheduled",
            "fqmn": "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnAppointmentScheduled",
            "file": "app/Services/OutreachAI/PredictionRecalculationService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/PredictionRecalculationService.php::App\\Services\\OutreachAI\\PredictionRecalculationService::recalculateOnDiscountInteraction",
            "fqmn": "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnDiscountInteraction",
            "file": "app/Services/OutreachAI/PredictionRecalculationService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/PredictionRecalculationService.php::App\\Services\\OutreachAI\\PredictionRecalculationService::recalculateOnFunnelStageChange",
            "fqmn": "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnFunnelStageChange",
            "file": "app/Services/OutreachAI/PredictionRecalculationService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/PredictionRecalculationService.php::App\\Services\\OutreachAI\\PredictionRecalculationService::recalculateOnInboundMessage",
            "fqmn": "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnInboundMessage",
            "file": "app/Services/OutreachAI/PredictionRecalculationService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/PredictionRecalculationService.php::App\\Services\\OutreachAI\\PredictionRecalculationService::recalculateOnObjectionDetected",
            "fqmn": "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnObjectionDetected",
            "file": "app/Services/OutreachAI/PredictionRecalculationService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/PredictionRecalculationService.php::App\\Services\\OutreachAI\\PredictionRecalculationService::recalculateOnOutboundMessage",
            "fqmn": "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnOutboundMessage",
            "file": "app/Services/OutreachAI/PredictionRecalculationService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/PredictionRecalculationService.php::App\\Services\\OutreachAI\\PredictionRecalculationService::recalculateOnPricingInteraction",
            "fqmn": "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnPricingInteraction",
            "file": "app/Services/OutreachAI/PredictionRecalculationService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/PredictionRecalculationService.php::App\\Services\\OutreachAI\\PredictionRecalculationService::recalculateOnReengagementFired",
            "fqmn": "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnReengagementFired",
            "file": "app/Services/OutreachAI/PredictionRecalculationService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/PredictionRecalculationService.php::App\\Services\\OutreachAI\\PredictionRecalculationService::recalculateOnTrialExtended",
            "fqmn": "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnTrialExtended",
            "file": "app/Services/OutreachAI/PredictionRecalculationService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/PredictionRecalculationService.php::App\\Services\\OutreachAI\\PredictionRecalculationService::recalculateOnWarmthStageChange",
            "fqmn": "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnWarmthStageChange",
            "file": "app/Services/OutreachAI/PredictionRecalculationService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/PromptExperimentService.php::App\\Services\\OutreachAI\\PromptExperimentService::attachMetadata",
            "fqmn": "App\\Services\\OutreachAI\\PromptExperimentService@attachMetadata",
            "file": "app/Services/OutreachAI/PromptExperimentService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/Qualification/QualificationFlowDirector.php::App\\Services\\OutreachAI\\Qualification\\QualificationFlowDirector::updateQualificationState",
            "fqmn": "App\\Services\\OutreachAI\\Qualification\\QualificationFlowDirector@updateQualificationState",
            "file": "app/Services/OutreachAI/Qualification/QualificationFlowDirector.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/Qualification/QualificationPipeline.php::App\\Services\\OutreachAI\\Qualification\\QualificationPipeline::__construct",
            "fqmn": "App\\Services\\OutreachAI\\Qualification\\QualificationPipeline@__construct",
            "file": "app/Services/OutreachAI/Qualification/QualificationPipeline.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/Qualification/RealTimeQualificationEngine.php::App\\Services\\OutreachAI\\Qualification\\RealTimeQualificationEngine::__construct",
            "fqmn": "App\\Services\\OutreachAI\\Qualification\\RealTimeQualificationEngine@__construct",
            "file": "app/Services/OutreachAI/Qualification/RealTimeQualificationEngine.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/QualificationExtractionService.php::App\\Services\\OutreachAI\\QualificationExtractionService::__construct",
            "fqmn": "App\\Services\\OutreachAI\\QualificationExtractionService@__construct",
            "file": "app/Services/OutreachAI/QualificationExtractionService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/Quality/PersonaAdaptationAgent.php::App\\Services\\OutreachAI\\Quality\\PersonaAdaptationAgent::__construct",
            "fqmn": "App\\Services\\OutreachAI\\Quality\\PersonaAdaptationAgent@__construct",
            "file": "app/Services/OutreachAI/Quality/PersonaAdaptationAgent.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/Quality/VerificationAgent.php::App\\Services\\OutreachAI\\Quality\\VerificationAgent::__construct",
            "fqmn": "App\\Services\\OutreachAI\\Quality\\VerificationAgent@__construct",
            "file": "app/Services/OutreachAI/Quality/VerificationAgent.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/RealTimeOptimizationEngine.php::App\\Services\\OutreachAI\\RealTimeOptimizationEngine::__construct",
            "fqmn": "App\\Services\\OutreachAI\\RealTimeOptimizationEngine@__construct",
            "file": "app/Services/OutreachAI/RealTimeOptimizationEngine.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/RepetitionHandlingService.php::App\\Services\\OutreachAI\\RepetitionHandlingService::recordAnswer",
            "fqmn": "App\\Services\\OutreachAI\\RepetitionHandlingService@recordAnswer",
            "file": "app/Services/OutreachAI/RepetitionHandlingService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/RevenueEngine/ARMEOrchestrator.php::App\\Services\\OutreachAI\\RevenueEngine\\ARMEOrchestrator::__construct",
            "fqmn": "App\\Services\\OutreachAI\\RevenueEngine\\ARMEOrchestrator@__construct",
            "file": "app/Services/OutreachAI/RevenueEngine/ARMEOrchestrator.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/Sales/MicroIntentEngine.php::App\\Services\\OutreachAI\\Sales\\MicroIntentEngine::applyToConversation",
            "fqmn": "App\\Services\\OutreachAI\\Sales\\MicroIntentEngine@applyToConversation",
            "file": "app/Services/OutreachAI/Sales/MicroIntentEngine.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/Sales/PricingResolver.php::App\\Services\\OutreachAI\\Sales\\PricingResolver::validateNoUnauthorizedPricing",
            "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingResolver@validateNoUnauthorizedPricing",
            "file": "app/Services/OutreachAI/Sales/PricingResolver.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/Sales/PricingResolver.php::App\\Services\\OutreachAI\\Sales\\PricingResolver::validateReply",
            "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingResolver@validateReply",
            "file": "app/Services/OutreachAI/Sales/PricingResolver.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/Sales/SalesAccelerationPipeline.php::App\\Services\\OutreachAI\\Sales\\SalesAccelerationPipeline::__construct",
            "fqmn": "App\\Services\\OutreachAI\\Sales\\SalesAccelerationPipeline@__construct",
            "file": "app/Services/OutreachAI/Sales/SalesAccelerationPipeline.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/SalesAcceleration/SalesAccelerationEngine.php::App\\Services\\OutreachAI\\SalesAcceleration\\SalesAccelerationEngine::__construct",
            "fqmn": "App\\Services\\OutreachAI\\SalesAcceleration\\SalesAccelerationEngine@__construct",
            "file": "app/Services/OutreachAI/SalesAcceleration/SalesAccelerationEngine.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/SalesAcceleration/SalesPitchGenerator.php::App\\Services\\OutreachAI\\SalesAcceleration\\SalesPitchGenerator::__construct",
            "fqmn": "App\\Services\\OutreachAI\\SalesAcceleration\\SalesPitchGenerator@__construct",
            "file": "app/Services/OutreachAI/SalesAcceleration/SalesPitchGenerator.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/SentimentRecoveryEngine.php::App\\Services\\OutreachAI\\SentimentRecoveryEngine::recordRecoveryAttempt",
            "fqmn": "App\\Services\\OutreachAI\\SentimentRecoveryEngine@recordRecoveryAttempt",
            "file": "app/Services/OutreachAI/SentimentRecoveryEngine.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/SequenceBuilder.php::App\\Services\\OutreachAI\\SequenceBuilder::build",
            "fqmn": "App\\Services\\OutreachAI\\SequenceBuilder@build",
            "file": "app/Services/OutreachAI/SequenceBuilder.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/SequenceBuilder.php::App\\Services\\OutreachAI\\SequenceBuilder::run",
            "fqmn": "App\\Services\\OutreachAI\\SequenceBuilder@run",
            "file": "app/Services/OutreachAI/SequenceBuilder.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/ShortTermMemoryService.php::App\\Services\\OutreachAI\\ShortTermMemoryService::__construct",
            "fqmn": "App\\Services\\OutreachAI\\ShortTermMemoryService@__construct",
            "file": "app/Services/OutreachAI/ShortTermMemoryService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/ShortTermMemoryService.php::App\\Services\\OutreachAI\\ShortTermMemoryService::extractAndUpdateMemory",
            "fqmn": "App\\Services\\OutreachAI\\ShortTermMemoryService@extractAndUpdateMemory",
            "file": "app/Services/OutreachAI/ShortTermMemoryService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/ShortTermMemoryService.php::App\\Services\\OutreachAI\\ShortTermMemoryService::updateMemory",
            "fqmn": "App\\Services\\OutreachAI\\ShortTermMemoryService@updateMemory",
            "file": "app/Services/OutreachAI/ShortTermMemoryService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/SignupLinkGenerator.php::App\\Services\\OutreachAI\\SignupLinkGenerator::forgetLinkCache",
            "fqmn": "App\\Services\\OutreachAI\\SignupLinkGenerator@forgetLinkCache",
            "file": "app/Services/OutreachAI/SignupLinkGenerator.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/State/StateManager.php::App\\Services\\OutreachAI\\State\\StateManager::clear",
            "fqmn": "App\\Services\\OutreachAI\\State\\StateManager@clear",
            "file": "app/Services/OutreachAI/State/StateManager.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/State/StateManager.php::App\\Services\\OutreachAI\\State\\StateManager::set",
            "fqmn": "App\\Services\\OutreachAI\\State\\StateManager@set",
            "file": "app/Services/OutreachAI/State/StateManager.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/StateAwareResponseService.php::App\\Services\\OutreachAI\\StateAwareResponseService::getClarificationResponse",
            "fqmn": "App\\Services\\OutreachAI\\StateAwareResponseService@getClarificationResponse",
            "file": "app/Services/OutreachAI/StateAwareResponseService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/StateAwareResponseService.php::App\\Services\\OutreachAI\\StateAwareResponseService::getVoiceFailureResponse",
            "fqmn": "App\\Services\\OutreachAI\\StateAwareResponseService@getVoiceFailureResponse",
            "file": "app/Services/OutreachAI/StateAwareResponseService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/StrategyScoreService.php::App\\Services\\OutreachAI\\StrategyScoreService::updateStrategySnapshots",
            "fqmn": "App\\Services\\OutreachAI\\StrategyScoreService@updateStrategySnapshots",
            "file": "app/Services/OutreachAI/StrategyScoreService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/TemplateApprovalMonitor.php::App\\Services\\OutreachAI\\TemplateApprovalMonitor::__construct",
            "fqmn": "App\\Services\\OutreachAI\\TemplateApprovalMonitor@__construct",
            "file": "app/Services/OutreachAI/TemplateApprovalMonitor.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/TemplateApprovalMonitor.php::App\\Services\\OutreachAI\\TemplateApprovalMonitor::handleApproval",
            "fqmn": "App\\Services\\OutreachAI\\TemplateApprovalMonitor@handleApproval",
            "file": "app/Services/OutreachAI/TemplateApprovalMonitor.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/TemplateApprovalMonitor.php::App\\Services\\OutreachAI\\TemplateApprovalMonitor::handleRejection",
            "fqmn": "App\\Services\\OutreachAI\\TemplateApprovalMonitor@handleRejection",
            "file": "app/Services/OutreachAI/TemplateApprovalMonitor.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/TemplateCreatorService.php::App\\Services\\OutreachAI\\TemplateCreatorService::__construct",
            "fqmn": "App\\Services\\OutreachAI\\TemplateCreatorService@__construct",
            "file": "app/Services/OutreachAI/TemplateCreatorService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/TemplateDecisionEngine.php::App\\Services\\OutreachAI\\TemplateDecisionEngine::__construct",
            "fqmn": "App\\Services\\OutreachAI\\TemplateDecisionEngine@__construct",
            "file": "app/Services/OutreachAI/TemplateDecisionEngine.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/TemplatePerformanceAnalyzer.php::App\\Services\\OutreachAI\\TemplatePerformanceAnalyzer::__construct",
            "fqmn": "App\\Services\\OutreachAI\\TemplatePerformanceAnalyzer@__construct",
            "file": "app/Services/OutreachAI/TemplatePerformanceAnalyzer.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/TemplateSelectionService.php::App\\Services\\OutreachAI\\TemplateSelectionService::__construct",
            "fqmn": "App\\Services\\OutreachAI\\TemplateSelectionService@__construct",
            "file": "app/Services/OutreachAI/TemplateSelectionService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/TemplateUsageTracker.php::App\\Services\\OutreachAI\\TemplateUsageTracker::recordConversion",
            "fqmn": "App\\Services\\OutreachAI\\TemplateUsageTracker@recordConversion",
            "file": "app/Services/OutreachAI/TemplateUsageTracker.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/TemplateUsageTracker.php::App\\Services\\OutreachAI\\TemplateUsageTracker::recordDelivery",
            "fqmn": "App\\Services\\OutreachAI\\TemplateUsageTracker@recordDelivery",
            "file": "app/Services/OutreachAI/TemplateUsageTracker.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/TemplateUsageTracker.php::App\\Services\\OutreachAI\\TemplateUsageTracker::recordRead",
            "fqmn": "App\\Services\\OutreachAI\\TemplateUsageTracker@recordRead",
            "file": "app/Services/OutreachAI/TemplateUsageTracker.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/TemplateUsageTracker.php::App\\Services\\OutreachAI\\TemplateUsageTracker::recordReply",
            "fqmn": "App\\Services\\OutreachAI\\TemplateUsageTracker@recordReply",
            "file": "app/Services/OutreachAI/TemplateUsageTracker.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/TrialEngine/TrialOnboardingFlow.php::App\\Services\\OutreachAI\\TrialEngine\\TrialOnboardingFlow::advance",
            "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\TrialOnboardingFlow@advance",
            "file": "app/Services/OutreachAI/TrialEngine/TrialOnboardingFlow.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/UpsellEngine.php::App\\Services\\OutreachAI\\UpsellEngine::__construct",
            "fqmn": "App\\Services\\OutreachAI\\UpsellEngine@__construct",
            "file": "app/Services/OutreachAI/UpsellEngine.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/UpsellEngine.php::App\\Services\\OutreachAI\\UpsellEngine::clearCache",
            "fqmn": "App\\Services\\OutreachAI\\UpsellEngine@clearCache",
            "file": "app/Services/OutreachAI/UpsellEngine.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/Utilities/FrequencyGuard.php::App\\Services\\OutreachAI\\Utilities\\FrequencyGuard::record",
            "fqmn": "App\\Services\\OutreachAI\\Utilities\\FrequencyGuard@record",
            "file": "app/Services/OutreachAI/Utilities/FrequencyGuard.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/UX/UXOptimizationPipeline.php::App\\Services\\OutreachAI\\UX\\UXOptimizationPipeline::__construct",
            "fqmn": "App\\Services\\OutreachAI\\UX\\UXOptimizationPipeline@__construct",
            "file": "app/Services/OutreachAI/UX/UXOptimizationPipeline.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/VisionService.php::App\\Services\\OutreachAI\\VisionService::__construct",
            "fqmn": "App\\Services\\OutreachAI\\VisionService@__construct",
            "file": "app/Services/OutreachAI/VisionService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/WhatsApp24HourWindowService.php::App\\Services\\OutreachAI\\WhatsApp24HourWindowService::__construct",
            "fqmn": "App\\Services\\OutreachAI\\WhatsApp24HourWindowService@__construct",
            "file": "app/Services/OutreachAI/WhatsApp24HourWindowService.php"
          },
          {
            "surface_id": "method::app/Services/OutreachAI/WhisperTranscriptionService.php::App\\Services\\OutreachAI\\WhisperTranscriptionService::__construct",
            "fqmn": "App\\Services\\OutreachAI\\WhisperTranscriptionService@__construct",
            "file": "app/Services/OutreachAI/WhisperTranscriptionService.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/Payments/Tap/TapWebhookValidationResult.php::App\\Services\\Payments\\Tap\\TapWebhookValidationResult::__construct",
            "fqmn": "App\\Services\\Payments\\Tap\\TapWebhookValidationResult@__construct",
            "file": "app/Services/Payments/Tap/TapWebhookValidationResult.php"
          },
          {
            "surface_id": "method::app/Services/RevenueRecognition/RevenueRecognitionEngine.php::App\\Services\\RevenueRecognition\\RevenueRecognitionEngine::runForDate",
            "fqmn": "App\\Services\\RevenueRecognition\\RevenueRecognitionEngine@runForDate",
            "file": "app/Services/RevenueRecognition/RevenueRecognitionEngine.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/Security/HoneypotService.php::App\\Services\\Security\\HoneypotService::log",
            "fqmn": "App\\Services\\Security\\HoneypotService@log",
            "file": "app/Services/Security/HoneypotService.php"
          },
          {
            "surface_id": "method::app/Services/SubscriptionBillingService.php::App\\Services\\SubscriptionBillingService::__construct",
            "fqmn": "App\\Services\\SubscriptionBillingService@__construct",
            "file": "app/Services/SubscriptionBillingService.php"
          },
          {
            "surface_id": "method::app/Services/SubscriptionComputeCacheService.php::App\\Services\\SubscriptionComputeCacheService::forgetById",
            "fqmn": "App\\Services\\SubscriptionComputeCacheService@forgetById",
            "file": "app/Services/SubscriptionComputeCacheService.php"
          },
          {
            "surface_id": "method::app/Services/SubscriptionService.php::App\\Services\\SubscriptionService::__construct",
            "fqmn": "App\\Services\\SubscriptionService@__construct",
            "file": "app/Services/SubscriptionService.php"
          },
          {
            "surface_id": "method::app/Services/SubscriptionService.php::App\\Services\\SubscriptionService::convertTrialToPaid",
            "fqmn": "App\\Services\\SubscriptionService@convertTrialToPaid",
            "file": "app/Services/SubscriptionService.php"
          },
          {
            "surface_id": "method::app/Services/SystemSettings.php::App\\Services\\SystemSettings::set",
            "fqmn": "App\\Services\\SystemSettings@set",
            "file": "app/Services/SystemSettings.php"
          },
          {
            "surface_id": "method::app/Services/SystemSettings.php::App\\Services\\SystemSettings::setAdminWhatsAppProvider",
            "fqmn": "App\\Services\\SystemSettings@setAdminWhatsAppProvider",
            "file": "app/Services/SystemSettings.php"
          },
          {
            "surface_id": "method::app/Services/SystemSettings.php::App\\Services\\SystemSettings::setAppWhatsAppProvider",
            "fqmn": "App\\Services\\SystemSettings@setAppWhatsAppProvider",
            "file": "app/Services/SystemSettings.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/TapPaymentService.php::App\\Services\\TapPaymentService::__construct",
            "fqmn": "App\\Services\\TapPaymentService@__construct",
            "file": "app/Services/TapPaymentService.php"
          },
          {
            "surface_id": "method::app/Services/WhatsApp/Channels/WhatsAppChannel.php::App\\Services\\WhatsApp\\Channels\\WhatsAppChannel::__construct",
            "fqmn": "App\\Services\\WhatsApp\\Channels\\WhatsAppChannel@__construct",
            "file": "app/Services/WhatsApp/Channels/WhatsAppChannel.php"
          },
          {
            "surface_id": "method::app/Services/WhatsApp/Dialog360InboundService.php::App\\Services\\WhatsApp\\Dialog360InboundService::__construct",
            "fqmn": "App\\Services\\WhatsApp\\Dialog360InboundService@__construct",
            "file": "app/Services/WhatsApp/Dialog360InboundService.php"
          },
          {
            "surface_id": "method::app/Services/WhatsApp/Dialog360OnboardingService.php::App\\Services\\WhatsApp\\Dialog360OnboardingService::__construct",
            "fqmn": "App\\Services\\WhatsApp\\Dialog360OnboardingService@__construct",
            "file": "app/Services/WhatsApp/Dialog360OnboardingService.php"
          },
          {
            "surface_id": "method::app/Services/WhatsApp/Dialog360ProfileService.php::App\\Services\\WhatsApp\\Dialog360ProfileService::__construct",
            "fqmn": "App\\Services\\WhatsApp\\Dialog360ProfileService@__construct",
            "file": "app/Services/WhatsApp/Dialog360ProfileService.php"
          },
          {
            "surface_id": "method::app/Services/WhatsApp/Handlers/AgentInboundHandler.php::App\\Services\\WhatsApp\\Handlers\\AgentInboundHandler::handle",
            "fqmn": "App\\Services\\WhatsApp\\Handlers\\AgentInboundHandler@handle",
            "file": "app/Services/WhatsApp/Handlers/AgentInboundHandler.php"
          },
          {
            "surface_id": "method::app/Services/WhatsApp/Handlers/ChatbotInboundHandler.php::App\\Services\\WhatsApp\\Handlers\\ChatbotInboundHandler::__construct",
            "fqmn": "App\\Services\\WhatsApp\\Handlers\\ChatbotInboundHandler@__construct",
            "file": "app/Services/WhatsApp/Handlers/ChatbotInboundHandler.php"
          },
          {
            "surface_id": "method::app/Services/WhatsApp/Handlers/HumanReplyHandler.php::App\\Services\\WhatsApp\\Handlers\\HumanReplyHandler::__construct",
            "fqmn": "App\\Services\\WhatsApp\\Handlers\\HumanReplyHandler@__construct",
            "file": "app/Services/WhatsApp/Handlers/HumanReplyHandler.php"
          },
          {
            "surface_id": "method::app/Services/WhatsApp/Handlers/PaymentProofInboundHandler.php::App\\Services\\WhatsApp\\Handlers\\PaymentProofInboundHandler::__construct",
            "fqmn": "App\\Services\\WhatsApp\\Handlers\\PaymentProofInboundHandler@__construct",
            "file": "app/Services/WhatsApp/Handlers/PaymentProofInboundHandler.php"
          },
          {
            "surface_id": "method::app/Services/WhatsApp/Inbound/CanonicalInboundMessage.php::App\\Services\\WhatsApp\\Inbound\\CanonicalInboundMessage::__construct",
            "fqmn": "App\\Services\\WhatsApp\\Inbound\\CanonicalInboundMessage@__construct",
            "file": "app/Services/WhatsApp/Inbound/CanonicalInboundMessage.php"
          },
          {
            "surface_id": "method::app/Services/WhatsApp/Providers/TwilioWhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider::__construct",
            "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@__construct",
            "file": "app/Services/WhatsApp/Providers/TwilioWhatsAppProvider.php"
          },
          {
            "surface_id": "method::app/Services/WhatsApp/Providers/TwilioWhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider::syncTemplateStatus",
            "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@syncTemplateStatus",
            "file": "app/Services/WhatsApp/Providers/TwilioWhatsAppProvider.php"
          },
          {
            "surface_id": "method::app/Services/WhatsApp/Templates/TwilioTemplateProvider.php::App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider::__construct",
            "fqmn": "App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider@__construct",
            "file": "app/Services/WhatsApp/Templates/TwilioTemplateProvider.php"
          },
          {
            "surface_id": "method::app/Services/WhatsApp/WalkInLeadService.php::App\\Services\\WhatsApp\\WalkInLeadService::dispatchInboundPipeline",
            "fqmn": "App\\Services\\WhatsApp\\WalkInLeadService@dispatchInboundPipeline",
            "file": "app/Services/WhatsApp/WalkInLeadService.php"
          },
          {
            "surface_id": "method::app/Services/WhatsApp/WhatsAppChatbotService.php::App\\Services\\WhatsApp\\WhatsAppChatbotService::__construct",
            "fqmn": "App\\Services\\WhatsApp\\WhatsAppChatbotService@__construct",
            "file": "app/Services/WhatsApp/WhatsAppChatbotService.php"
          },
          {
            "surface_id": "method::app/Services/WhatsApp/WhatsAppConsentService.php::App\\Services\\WhatsApp\\WhatsAppConsentService::recordOptIn",
            "fqmn": "App\\Services\\WhatsApp\\WhatsAppConsentService@recordOptIn",
            "file": "app/Services/WhatsApp/WhatsAppConsentService.php"
          },
          {
            "surface_id": "method::app/Services/WhatsApp/WhatsAppConsentService.php::App\\Services\\WhatsApp\\WhatsAppConsentService::recordOptOut",
            "fqmn": "App\\Services\\WhatsApp\\WhatsAppConsentService@recordOptOut",
            "file": "app/Services/WhatsApp/WhatsAppConsentService.php"
          },
          {
            "surface_id": "method::app/Services/ZATCAInvoiceService.php::App\\Services\\ZATCAInvoiceService::prepareForZATCA",
            "fqmn": "App\\Services\\ZATCAInvoiceService@prepareForZATCA",
            "file": "app/Services/ZATCAInvoiceService.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/InvoiceOrchestrator.php::App\\Services\\Zoho\\InvoiceOrchestrator::__construct",
            "fqmn": "App\\Services\\Zoho\\InvoiceOrchestrator@__construct",
            "file": "app/Services/Zoho/InvoiceOrchestrator.php"
          },
          {
            "surface_id": "method::app/Services/Zoho/ZohoBooksClient.php::App\\Services\\Zoho\\ZohoBooksClient::__construct",
            "fqmn": "App\\Services\\Zoho\\ZohoBooksClient@__construct",
            "file": "app/Services/Zoho/ZohoBooksClient.php"
          },
          {
            "surface_id": "method::app/Services/Zoho/ZohoIdempotencyService.php::App\\Services\\Zoho\\ZohoIdempotencyService::store",
            "fqmn": "App\\Services\\Zoho\\ZohoIdempotencyService@store",
            "file": "app/Services/Zoho/ZohoIdempotencyService.php"
          },
          {
            "surface_id": "method::app/Services/Zoho/ZohoRetryService.php::App\\Services\\Zoho\\ZohoRetryService::markAsFailed",
            "fqmn": "App\\Services\\Zoho\\ZohoRetryService@markAsFailed",
            "file": "app/Services/Zoho/ZohoRetryService.php"
          },
          {
            "surface_id": "method::app/Services/Zoho/ZohoWebhookProcessor.php::App\\Services\\Zoho\\ZohoWebhookProcessor::__construct",
            "fqmn": "App\\Services\\Zoho\\ZohoWebhookProcessor@__construct",
            "file": "app/Services/Zoho/ZohoWebhookProcessor.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/Support/Chat/RateLimiter.php::App\\Support\\Chat\\RateLimiter::checkOrFail",
            "fqmn": "App\\Support\\Chat\\RateLimiter@checkOrFail",
            "file": "app/Support/Chat/RateLimiter.php"
          },
          {
            "surface_id": "method::app/Support/Chat/RateLimiter.php::App\\Support\\Chat\\RateLimiter::reset",
            "fqmn": "App\\Support\\Chat\\RateLimiter@reset",
            "file": "app/Support/Chat/RateLimiter.php"
          },
          {
            "surface_id": "method::app/Support/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::addConversationMessage",
            "fqmn": "App\\Support\\Chat\\StateRepository@addConversationMessage",
            "file": "app/Support/Chat/StateRepository.php"
          },
          {
            "surface_id": "method::app/Support/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::clearSession",
            "fqmn": "App\\Support\\Chat\\StateRepository@clearSession",
            "file": "app/Support/Chat/StateRepository.php"
          },
          {
            "surface_id": "method::app/Support/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::releaseLock",
            "fqmn": "App\\Support\\Chat\\StateRepository@releaseLock",
            "file": "app/Support/Chat/StateRepository.php"
          },
          {
            "surface_id": "method::app/Support/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::saveInboundMessage",
            "fqmn": "App\\Support\\Chat\\StateRepository@saveInboundMessage",
            "file": "app/Support/Chat/StateRepository.php"
          },
          {
            "surface_id": "method::app/Support/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::saveOutboundMessage",
            "fqmn": "App\\Support\\Chat\\StateRepository@saveOutboundMessage",
            "file": "app/Support/Chat/StateRepository.php"
          },
          {
            "surface_id": "method::app/Support/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::saveSession",
            "fqmn": "App\\Support\\Chat\\StateRepository@saveSession",
            "file": "app/Support/Chat/StateRepository.php"
          },
          {
            "surface_id": "method::app/Support/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::setConversationId",
            "fqmn": "App\\Support\\Chat\\StateRepository@setConversationId",
            "file": "app/Support/Chat/StateRepository.php"
          },
          {
            "surface_id": "method::app/Support/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::setLastMessageAt",
            "fqmn": "App\\Support\\Chat\\StateRepository@setLastMessageAt",
            "file": "app/Support/Chat/StateRepository.php"
          },
          {
            "surface_id": "method::app/Support/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::setSessionState",
            "fqmn": "App\\Support\\Chat\\StateRepository@setSessionState",
            "file": "app/Support/Chat/StateRepository.php"
          },
          {
            "surface_id": "method::app/Support/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::updateLastMessageTimestamp",
            "fqmn": "App\\Support\\Chat\\StateRepository@updateLastMessageTimestamp",
            "file": "app/Support/Chat/StateRepository.php"
          },
          {
            "surface_id": "method::app/Support/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::updateSessionField",
            "fqmn": "App\\Support\\Chat\\StateRepository@updateSessionField",
            "file": "app/Support/Chat/StateRepository.php"
          },
          {
            "surface_id": "method::app/Support/Logging/WhatsAppLogger.php::App\\Support\\Logging\\WhatsAppLogger::error",
            "fqmn": "App\\Support\\Logging\\WhatsAppLogger@error",
            "file": "app/Support/Logging/WhatsAppLogger.php"
          },
          {
            "surface_id": "method::app/Support/Logging/WhatsAppLogger.php::App\\Support\\Logging\\WhatsAppLogger::info",
            "fqmn": "App\\Support\\Logging\\WhatsAppLogger@info",
            "file": "app/Support/Logging/WhatsAppLogger.php"
          },
          {
            "surface_id": "method::app/Support/OutreachAI/AdaptiveWeightStore.php::App\\Support\\OutreachAI\\AdaptiveWeightStore::reset",
            "fqmn": "App\\Support\\OutreachAI\\AdaptiveWeightStore@reset",
            "file": "app/Support/OutreachAI/AdaptiveWeightStore.php"
          },
          {
            "surface_id": "method::app/Support/OutreachAI/Safety/FrequencyLimiter.php::App\\Support\\OutreachAI\\Safety\\FrequencyLimiter::recordOutbound",
            "fqmn": "App\\Support\\OutreachAI\\Safety\\FrequencyLimiter@recordOutbound",
            "file": "app/Support/OutreachAI/Safety/FrequencyLimiter.php"
          },
          {
            "surface_id": "method::app/Support/Services/SystemSettings.php::App\\Support\\Services\\SystemSettings::delete",
            "fqmn": "App\\Support\\Services\\SystemSettings@delete",
            "file": "app/Support/Services/SystemSettings.php"
          },
          {
            "surface_id": "method::app/Support/Services/SystemSettings.php::App\\Support\\Services\\SystemSettings::set",
            "fqmn": "App\\Support\\Services\\SystemSettings@set",
            "file": "app/Support/Services/SystemSettings.php"
          },
          {
            "surface_id": "method::app/Support/Subscription/FeatureAccessService.php::App\\Support\\Subscription\\FeatureAccessService::enforce",
            "fqmn": "App\\Support\\Subscription\\FeatureAccessService@enforce",
            "file": "app/Support/Subscription/FeatureAccessService.php"
          },
          {
            "surface_id": "method::app/Support/Subscription/GateResult.php::App\\Support\\Subscription\\GateResult::__construct",
            "fqmn": "App\\Support\\Subscription\\GateResult@__construct",
            "file": "app/Support/Subscription/GateResult.php"
          },
          {
            "surface_id": "method::app/Support/Subscription/SubscriptionGate.php::App\\Support\\Subscription\\SubscriptionGate::__construct",
            "fqmn": "App\\Support\\Subscription\\SubscriptionGate@__construct",
            "file": "app/Support/Subscription/SubscriptionGate.php"
          },
          {
            "surface_id": "method::app/Support/Testing/LogFake.php::App\\Support\\Testing\\LogFake::alert",
            "fqmn": "App\\Support\\Testing\\LogFake@alert",
            "file": "app/Support/Testing/LogFake.php"
          },
          {
            "surface_id": "method::app/Support/Testing/LogFake.php::App\\Support\\Testing\\LogFake::critical",
            "fqmn": "App\\Support\\Testing\\LogFake@critical",
            "file": "app/Support/Testing/LogFake.php"
          },
          {
            "surface_id": "method::app/Support/Testing/LogFake.php::App\\Support\\Testing\\LogFake::debug",
            "fqmn": "App\\Support\\Testing\\LogFake@debug",
            "file": "app/Support/Testing/LogFake.php"
          },
          {
            "surface_id": "method::app/Support/Testing/LogFake.php::App\\Support\\Testing\\LogFake::emergency",
            "fqmn": "App\\Support\\Testing\\LogFake@emergency",
            "file": "app/Support/Testing/LogFake.php"
          },
          {
            "surface_id": "method::app/Support/Testing/LogFake.php::App\\Support\\Testing\\LogFake::error",
            "fqmn": "App\\Support\\Testing\\LogFake@error",
            "file": "app/Support/Testing/LogFake.php"
          },
          {
            "surface_id": "method::app/Support/Testing/LogFake.php::App\\Support\\Testing\\LogFake::info",
            "fqmn": "App\\Support\\Testing\\LogFake@info",
            "file": "app/Support/Testing/LogFake.php"
          },
          {
            "surface_id": "method::app/Support/Testing/LogFake.php::App\\Support\\Testing\\LogFake::log",
            "fqmn": "App\\Support\\Testing\\LogFake@log",
            "file": "app/Support/Testing/LogFake.php"
          },
          {
            "surface_id": "method::app/Support/Testing/LogFake.php::App\\Support\\Testing\\LogFake::notice",
            "fqmn": "App\\Support\\Testing\\LogFake@notice",
            "file": "app/Support/Testing/LogFake.php"
          },
          {
            "surface_id": "method::app/Support/Testing/LogFake.php::App\\Support\\Testing\\LogFake::warning",
            "fqmn": "App\\Support\\Testing\\LogFake@warning",
            "file": "app/Support/Testing/LogFake.php"
          },
          {
            "surface_id": "route::routes/api.php::get::/internal/metrics::closure",
            "fqmn": "route::routes/api.php::get::/internal/metrics::closure",
            "file": "routes/api.php"
          },
          {
            "surface_id": "route::routes/api.php::get::/testing/sate/outreach-ai/knowledge/forbidden-phrases/categories::App\\Support\\OutreachAI\\Knowledge\\ForbiddenPhrasesRegistry::__invoke",
            "fqmn": "App\\Support\\OutreachAI\\Knowledge\\ForbiddenPhrasesRegistry@__invoke",
            "file": "routes/api.php"
          },
          {
            "surface_id": "route::routes/api.php::get::/testing/sate/outreach-ai/persona/block::App\\Support\\OutreachAI\\Persona\\PersonaConfig::__invoke",
            "fqmn": "App\\Support\\OutreachAI\\Persona\\PersonaConfig@__invoke",
            "file": "routes/api.php"
          },
          {
            "surface_id": "route::routes/api.php::get::/testing/sate/outreach-ai/persona/brand-traits::App\\Support\\OutreachAI\\Persona\\PersonaConfig::__invoke",
            "fqmn": "App\\Support\\OutreachAI\\Persona\\PersonaConfig@__invoke",
            "file": "routes/api.php"
          },
          {
            "surface_id": "route::routes/api.php::get::/testing/sate/outreach-ai/persona/identity::App\\Support\\OutreachAI\\Persona\\PersonaConfig::__invoke",
            "fqmn": "App\\Support\\OutreachAI\\Persona\\PersonaConfig@__invoke",
            "file": "routes/api.php"
          },
          {
            "surface_id": "route::routes/api.php::post::/testing/sate/billing/zoho/analytics/clearance-status-stats::App\\Services\\Billing\\ZohoBillingAnalyticsService::__invoke",
            "fqmn": "App\\Services\\Billing\\ZohoBillingAnalyticsService@__invoke",
            "file": "routes/api.php"
          },
          {
            "surface_id": "route::routes/outreach.php::post::/outreach/webhook/whatsapp/test::closure",
            "fqmn": "route::routes/outreach.php::post::/outreach/webhook/whatsapp/test::closure",
            "file": "routes/outreach.php"
          }
        ]
      },
      "FRAMEWORK_IMPLICIT_ONLY": {
        "count": 1,
        "surfaces": [
          {
            "surface_id": "route::routes/web.php::get::/contact::App\\Livewire\\Landing\\ContactForm::__invoke",
            "fqmn": "App\\Livewire\\Landing\\ContactForm@__invoke",
            "file": "routes/web.php"
          }
        ]
      }
    }
  },
  "dead_code_triage": {
    "delete": [
      {
        "surface_id": "method::app/AIBr/Support/Helpers.php::App\\AIBr\\Support\\Helpers::normalizeText",
        "fqmn": "App\\AIBr\\Support\\Helpers@normalizeText",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/AIBr/Support/TextFilters.php::App\\AIBr\\Support\\TextFilters::sanitize",
        "fqmn": "App\\AIBr\\Support\\TextFilters@sanitize",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Billing/Services/CountryFormatterService.php::App\\Domains\\Billing\\Services\\CountryFormatterService::formatAddress",
        "fqmn": "App\\Domains\\Billing\\Services\\CountryFormatterService@formatAddress",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Billing/Services/CountryFormatterService.php::App\\Domains\\Billing\\Services\\CountryFormatterService::formatCurrency",
        "fqmn": "App\\Domains\\Billing\\Services\\CountryFormatterService@formatCurrency",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Billing/Services/CountryFormatterService.php::App\\Domains\\Billing\\Services\\CountryFormatterService::formatDate",
        "fqmn": "App\\Domains\\Billing\\Services\\CountryFormatterService@formatDate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Billing/Services/CountryFormatterService.php::App\\Domains\\Billing\\Services\\CountryFormatterService::formatNumber",
        "fqmn": "App\\Domains\\Billing\\Services\\CountryFormatterService@formatNumber",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Billing/Services/CurrencyService.php::App\\Domains\\Billing\\Services\\CurrencyService::formatWithSymbol",
        "fqmn": "App\\Domains\\Billing\\Services\\CurrencyService@formatWithSymbol",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Billing/Services/CurrencyService.php::App\\Domains\\Billing\\Services\\CurrencyService::getCurrencySymbol",
        "fqmn": "App\\Domains\\Billing\\Services\\CurrencyService@getCurrencySymbol",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Billing/Services/CurrencyService.php::App\\Domains\\Billing\\Services\\CurrencyService::getDefaultCurrency",
        "fqmn": "App\\Domains\\Billing\\Services\\CurrencyService@getDefaultCurrency",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Billing/Services/CurrencyService.php::App\\Domains\\Billing\\Services\\CurrencyService::isValidCurrency",
        "fqmn": "App\\Domains\\Billing\\Services\\CurrencyService@isValidCurrency",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Billing/Services/GlobalTaxRulesService.php::App\\Domains\\Billing\\Services\\GlobalTaxRulesService::getDefaultCurrencyForCountry",
        "fqmn": "App\\Domains\\Billing\\Services\\GlobalTaxRulesService@getDefaultCurrencyForCountry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Billing/Services/GlobalTaxRulesService.php::App\\Domains\\Billing\\Services\\GlobalTaxRulesService::getDefaultLocaleForCountry",
        "fqmn": "App\\Domains\\Billing\\Services\\GlobalTaxRulesService@getDefaultLocaleForCountry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Billing/Services/GlobalTaxRulesService.php::App\\Domains\\Billing\\Services\\GlobalTaxRulesService::getDefaultTaxRateForCountry",
        "fqmn": "App\\Domains\\Billing\\Services\\GlobalTaxRulesService@getDefaultTaxRateForCountry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Billing/Services/GlobalTaxRulesService.php::App\\Domains\\Billing\\Services\\GlobalTaxRulesService::getInvoiceFormatForCountry",
        "fqmn": "App\\Domains\\Billing\\Services\\GlobalTaxRulesService@getInvoiceFormatForCountry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Billing/Services/GlobalTaxRulesService.php::App\\Domains\\Billing\\Services\\GlobalTaxRulesService::getLineItemTaxRulesForCountry",
        "fqmn": "App\\Domains\\Billing\\Services\\GlobalTaxRulesService@getLineItemTaxRulesForCountry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Billing/Services/GlobalTaxRulesService.php::App\\Domains\\Billing\\Services\\GlobalTaxRulesService::getNumberFormatForCountry",
        "fqmn": "App\\Domains\\Billing\\Services\\GlobalTaxRulesService@getNumberFormatForCountry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Billing/Services/GlobalTaxRulesService.php::App\\Domains\\Billing\\Services\\GlobalTaxRulesService::getRulesForCountry",
        "fqmn": "App\\Domains\\Billing\\Services\\GlobalTaxRulesService@getRulesForCountry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Billing/Services/GlobalTaxRulesService.php::App\\Domains\\Billing\\Services\\GlobalTaxRulesService::getTaxRate",
        "fqmn": "App\\Domains\\Billing\\Services\\GlobalTaxRulesService@getTaxRate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Billing/Services/GlobalTaxRulesService.php::App\\Domains\\Billing\\Services\\GlobalTaxRulesService::getTaxTypeForCountry",
        "fqmn": "App\\Domains\\Billing\\Services\\GlobalTaxRulesService@getTaxTypeForCountry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Billing/Services/GlobalTaxRulesService.php::App\\Domains\\Billing\\Services\\GlobalTaxRulesService::isEInvoicingRequiredForCountry",
        "fqmn": "App\\Domains\\Billing\\Services\\GlobalTaxRulesService@isEInvoicingRequiredForCountry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Billing/Services/GlobalTaxRulesService.php::App\\Domains\\Billing\\Services\\GlobalTaxRulesService::isMultiLanguageRequiredForCountry",
        "fqmn": "App\\Domains\\Billing\\Services\\GlobalTaxRulesService@isMultiLanguageRequiredForCountry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Billing/Services/GlobalTaxRulesService.php::App\\Domains\\Billing\\Services\\GlobalTaxRulesService::isQrRequiredForCountry",
        "fqmn": "App\\Domains\\Billing\\Services\\GlobalTaxRulesService@isQrRequiredForCountry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Billing/Services/InvoiceGeneratorService.php::App\\Domains\\Billing\\Services\\InvoiceGeneratorService::__construct",
        "fqmn": "App\\Domains\\Billing\\Services\\InvoiceGeneratorService@__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/Billing/Services/InvoiceGeneratorService.php::App\\Domains\\Billing\\Services\\InvoiceGeneratorService::generateAndStore",
        "fqmn": "App\\Domains\\Billing\\Services\\InvoiceGeneratorService@generateAndStore",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Billing/Services/InvoiceGeneratorService.php::App\\Domains\\Billing\\Services\\InvoiceGeneratorService::handle",
        "fqmn": "App\\Domains\\Billing\\Services\\InvoiceGeneratorService@handle",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Billing/Services/MaintenanceInvoiceService.php::App\\Domains\\Billing\\Services\\MaintenanceInvoiceService::generateInvoiceData",
        "fqmn": "App\\Domains\\Billing\\Services\\MaintenanceInvoiceService@generateInvoiceData",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Billing/Services/ReceiptService.php::App\\Domains\\Billing\\Services\\ReceiptService::generateReceipt",
        "fqmn": "App\\Domains\\Billing\\Services\\ReceiptService@generateReceipt",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Billing/Services/ReceiptService.php::App\\Domains\\Billing\\Services\\ReceiptService::storeReceipt",
        "fqmn": "App\\Domains\\Billing\\Services\\ReceiptService@storeReceipt",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Billing/Services/RentInvoiceService.php::App\\Domains\\Billing\\Services\\RentInvoiceService::generateInvoiceData",
        "fqmn": "App\\Domains\\Billing\\Services\\RentInvoiceService@generateInvoiceData",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Files/Services/FileSecurityService.php::App\\Domains\\Files\\Services\\FileSecurityService::scanForVirus",
        "fqmn": "App\\Domains\\Files\\Services\\FileSecurityService@scanForVirus",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Files/Services/FileSecurityService.php::App\\Domains\\Files\\Services\\FileSecurityService::validate",
        "fqmn": "App\\Domains\\Files\\Services\\FileSecurityService@validate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Files/Services/FileService.php::App\\Domains\\Files\\Services\\FileService::__construct",
        "fqmn": "App\\Domains\\Files\\Services\\FileService@__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/Files/Services/FileService.php::App\\Domains\\Files\\Services\\FileService::bulkStore",
        "fqmn": "App\\Domains\\Files\\Services\\FileService@bulkStore",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Files/Services/FileService.php::App\\Domains\\Files\\Services\\FileService::cleanupOrphanedFiles",
        "fqmn": "App\\Domains\\Files\\Services\\FileService@cleanupOrphanedFiles",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Files/Services/FileService.php::App\\Domains\\Files\\Services\\FileService::delete",
        "fqmn": "App\\Domains\\Files\\Services\\FileService@delete",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Files/Services/FileService.php::App\\Domains\\Files\\Services\\FileService::getStorageStats",
        "fqmn": "App\\Domains\\Files\\Services\\FileService@getStorageStats",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Files/Services/FileService.php::App\\Domains\\Files\\Services\\FileService::store",
        "fqmn": "App\\Domains\\Files\\Services\\FileService@store",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Leases/Services/BookingService.php::App\\Domains\\Leases\\Services\\BookingService::__construct",
        "fqmn": "App\\Domains\\Leases\\Services\\BookingService@__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/Leases/Services/BookingService.php::App\\Domains\\Leases\\Services\\BookingService::cancelBooking",
        "fqmn": "App\\Domains\\Leases\\Services\\BookingService@cancelBooking",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Leases/Services/BookingService.php::App\\Domains\\Leases\\Services\\BookingService::convertToLease",
        "fqmn": "App\\Domains\\Leases\\Services\\BookingService@convertToLease",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Leases/Services/BookingService.php::App\\Domains\\Leases\\Services\\BookingService::createBooking",
        "fqmn": "App\\Domains\\Leases\\Services\\BookingService@createBooking",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Leases/Services/LeaseService.php::App\\Domains\\Leases\\Services\\LeaseService::__construct",
        "fqmn": "App\\Domains\\Leases\\Services\\LeaseService@__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/Leases/Services/LeaseService.php::App\\Domains\\Leases\\Services\\LeaseService::createLease",
        "fqmn": "App\\Domains\\Leases\\Services\\LeaseService@createLease",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Leases/Services/LeaseService.php::App\\Domains\\Leases\\Services\\LeaseService::generateRentCycles",
        "fqmn": "App\\Domains\\Leases\\Services\\LeaseService@generateRentCycles",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Leases/Services/LeaseService.php::App\\Domains\\Leases\\Services\\LeaseService::getLeaseStatistics",
        "fqmn": "App\\Domains\\Leases\\Services\\LeaseService@getLeaseStatistics",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Leases/Services/LeaseService.php::App\\Domains\\Leases\\Services\\LeaseService::getUpcomingDueDates",
        "fqmn": "App\\Domains\\Leases\\Services\\LeaseService@getUpcomingDueDates",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Leases/Services/LeaseService.php::App\\Domains\\Leases\\Services\\LeaseService::markOverdueRentCycles",
        "fqmn": "App\\Domains\\Leases\\Services\\LeaseService@markOverdueRentCycles",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Leases/Services/LeaseService.php::App\\Domains\\Leases\\Services\\LeaseService::regenerateRentCycles",
        "fqmn": "App\\Domains\\Leases\\Services\\LeaseService@regenerateRentCycles",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Leases/Services/LeaseService.php::App\\Domains\\Leases\\Services\\LeaseService::terminateLease",
        "fqmn": "App\\Domains\\Leases\\Services\\LeaseService@terminateLease",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Leases/Services/LeaseService.php::App\\Domains\\Leases\\Services\\LeaseService::updateLease",
        "fqmn": "App\\Domains\\Leases\\Services\\LeaseService@updateLease",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Maintenance/Services/MaintenanceSlaService.php::App\\Domains\\Maintenance\\Services\\MaintenanceSlaService::assignSlaToTicket",
        "fqmn": "App\\Domains\\Maintenance\\Services\\MaintenanceSlaService@assignSlaToTicket",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Maintenance/Services/MaintenanceSlaService.php::App\\Domains\\Maintenance\\Services\\MaintenanceSlaService::extendSla",
        "fqmn": "App\\Domains\\Maintenance\\Services\\MaintenanceSlaService@extendSla",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Maintenance/Services/MaintenanceSlaService.php::App\\Domains\\Maintenance\\Services\\MaintenanceSlaService::pauseSla",
        "fqmn": "App\\Domains\\Maintenance\\Services\\MaintenanceSlaService@pauseSla",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Maintenance/Services/MaintenanceSlaService.php::App\\Domains\\Maintenance\\Services\\MaintenanceSlaService::resumeSla",
        "fqmn": "App\\Domains\\Maintenance\\Services\\MaintenanceSlaService@resumeSla",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Outreach/Services/AudienceHealthService.php::App\\Domains\\Outreach\\Services\\AudienceHealthService::getBlockedOptOut",
        "fqmn": "App\\Domains\\Outreach\\Services\\AudienceHealthService@getBlockedOptOut",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Outreach/Services/AudienceHealthService.php::App\\Domains\\Outreach\\Services\\AudienceHealthService::getInvalidNumbers",
        "fqmn": "App\\Domains\\Outreach\\Services\\AudienceHealthService@getInvalidNumbers",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Outreach/Services/AudienceHealthService.php::App\\Domains\\Outreach\\Services\\AudienceHealthService::getValidNumbers",
        "fqmn": "App\\Domains\\Outreach\\Services\\AudienceHealthService@getValidNumbers",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Outreach/Services/AudienceHealthService.php::App\\Domains\\Outreach\\Services\\AudienceHealthService::getWANumberHealth",
        "fqmn": "App\\Domains\\Outreach\\Services\\AudienceHealthService@getWANumberHealth",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Outreach/Services/BillingService.php::App\\Domains\\Outreach\\Services\\BillingService::getCampaignCostBreakdown",
        "fqmn": "App\\Domains\\Outreach\\Services\\BillingService@getCampaignCostBreakdown",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Outreach/Services/BillingService.php::App\\Domains\\Outreach\\Services\\BillingService::getConversationCosts",
        "fqmn": "App\\Domains\\Outreach\\Services\\BillingService@getConversationCosts",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Outreach/Services/BillingService.php::App\\Domains\\Outreach\\Services\\BillingService::getConversationTypes",
        "fqmn": "App\\Domains\\Outreach\\Services\\BillingService@getConversationTypes",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Outreach/Services/BillingService.php::App\\Domains\\Outreach\\Services\\BillingService::getCostOptimization",
        "fqmn": "App\\Domains\\Outreach\\Services\\BillingService@getCostOptimization",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Outreach/Services/CampaignAnalyticsService.php::App\\Domains\\Outreach\\Services\\CampaignAnalyticsService::getABTestResults",
        "fqmn": "App\\Domains\\Outreach\\Services\\CampaignAnalyticsService@getABTestResults",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Outreach/Services/CampaignAnalyticsService.php::App\\Domains\\Outreach\\Services\\CampaignAnalyticsService::getAllCampaigns",
        "fqmn": "App\\Domains\\Outreach\\Services\\CampaignAnalyticsService@getAllCampaigns",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Outreach/Services/CampaignAnalyticsService.php::App\\Domains\\Outreach\\Services\\CampaignAnalyticsService::getCampaignPerformance",
        "fqmn": "App\\Domains\\Outreach\\Services\\CampaignAnalyticsService@getCampaignPerformance",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Outreach/Services/CampaignAnalyticsService.php::App\\Domains\\Outreach\\Services\\CampaignAnalyticsService::getFunnels",
        "fqmn": "App\\Domains\\Outreach\\Services\\CampaignAnalyticsService@getFunnels",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Outreach/Services/CampaignAnalyticsService.php::App\\Domains\\Outreach\\Services\\CampaignAnalyticsService::getQualityScore",
        "fqmn": "App\\Domains\\Outreach\\Services\\CampaignAnalyticsService@getQualityScore",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Outreach/Services/DeliveryStatusService.php::App\\Domains\\Outreach\\Services\\DeliveryStatusService::getDelivered",
        "fqmn": "App\\Domains\\Outreach\\Services\\DeliveryStatusService@getDelivered",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Outreach/Services/DeliveryStatusService.php::App\\Domains\\Outreach\\Services\\DeliveryStatusService::getDeliveryHeatmap",
        "fqmn": "App\\Domains\\Outreach\\Services\\DeliveryStatusService@getDeliveryHeatmap",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Outreach/Services/DeliveryStatusService.php::App\\Domains\\Outreach\\Services\\DeliveryStatusService::getFailed",
        "fqmn": "App\\Domains\\Outreach\\Services\\DeliveryStatusService@getFailed",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Outreach/Services/DeliveryStatusService.php::App\\Domains\\Outreach\\Services\\DeliveryStatusService::getRead",
        "fqmn": "App\\Domains\\Outreach\\Services\\DeliveryStatusService@getRead",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Outreach/Services/DeliveryStatusService.php::App\\Domains\\Outreach\\Services\\DeliveryStatusService::getSent",
        "fqmn": "App\\Domains\\Outreach\\Services\\DeliveryStatusService@getSent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Outreach/Services/DeliveryStatusService.php::App\\Domains\\Outreach\\Services\\DeliveryStatusService::getSummary",
        "fqmn": "App\\Domains\\Outreach\\Services\\DeliveryStatusService@getSummary",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Outreach/Services/DeliveryStatusService.php::App\\Domains\\Outreach\\Services\\DeliveryStatusService::getTemplateErrors",
        "fqmn": "App\\Domains\\Outreach\\Services\\DeliveryStatusService@getTemplateErrors",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Outreach/Services/DeliveryStatusService.php::App\\Domains\\Outreach\\Services\\DeliveryStatusService::getUndelivered",
        "fqmn": "App\\Domains\\Outreach\\Services\\DeliveryStatusService@getUndelivered",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Outreach/Services/DeliverySyncService.php::App\\Domains\\Outreach\\Services\\DeliverySyncService::__construct",
        "fqmn": "App\\Domains\\Outreach\\Services\\DeliverySyncService@__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/Outreach/Services/DeliverySyncService.php::App\\Domains\\Outreach\\Services\\DeliverySyncService::syncStatus",
        "fqmn": "App\\Domains\\Outreach\\Services\\DeliverySyncService@syncStatus",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Outreach/Services/MessageSendService.php::App\\Domains\\Outreach\\Services\\MessageSendService::__construct",
        "fqmn": "App\\Domains\\Outreach\\Services\\MessageSendService@__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/Outreach/Services/MessageSendService.php::App\\Domains\\Outreach\\Services\\MessageSendService::send",
        "fqmn": "App\\Domains\\Outreach\\Services\\MessageSendService@send",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Outreach/Services/RepliesService.php::App\\Domains\\Outreach\\Services\\RepliesService::getAIClassifiedReplies",
        "fqmn": "App\\Domains\\Outreach\\Services\\RepliesService@getAIClassifiedReplies",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Outreach/Services/RepliesService.php::App\\Domains\\Outreach\\Services\\RepliesService::getAllReplies",
        "fqmn": "App\\Domains\\Outreach\\Services\\RepliesService@getAllReplies",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Outreach/Services/RepliesService.php::App\\Domains\\Outreach\\Services\\RepliesService::getFollowUpRequired",
        "fqmn": "App\\Domains\\Outreach\\Services\\RepliesService@getFollowUpRequired",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Outreach/Services/RepliesService.php::App\\Domains\\Outreach\\Services\\RepliesService::getInterested",
        "fqmn": "App\\Domains\\Outreach\\Services\\RepliesService@getInterested",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Outreach/Services/RepliesService.php::App\\Domains\\Outreach\\Services\\RepliesService::getNotInterested",
        "fqmn": "App\\Domains\\Outreach\\Services\\RepliesService@getNotInterested",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Outreach/Services/TemplateStatsService.php::App\\Domains\\Outreach\\Services\\TemplateStatsService::execute",
        "fqmn": "App\\Domains\\Outreach\\Services\\TemplateStatsService@execute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Outreach/Services/TemplateStatsService.php::App\\Domains\\Outreach\\Services\\TemplateStatsService::getTemplatePerformance",
        "fqmn": "App\\Domains\\Outreach\\Services\\TemplateStatsService@getTemplatePerformance",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Outreach/Services/TemplateStatsService.php::App\\Domains\\Outreach\\Services\\TemplateStatsService::getTemplateUsage",
        "fqmn": "App\\Domains\\Outreach\\Services\\TemplateStatsService@getTemplateUsage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Outreach/Services/WhatsAppApiService.php::App\\Domains\\Outreach\\Services\\WhatsAppApiService::__construct",
        "fqmn": "App\\Domains\\Outreach\\Services\\WhatsAppApiService@__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/Outreach/Services/WhatsAppApiService.php::App\\Domains\\Outreach\\Services\\WhatsAppApiService::checkPhoneQuality",
        "fqmn": "App\\Domains\\Outreach\\Services\\WhatsAppApiService@checkPhoneQuality",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Outreach/Services/WhatsAppApiService.php::App\\Domains\\Outreach\\Services\\WhatsAppApiService::getMessageStatus",
        "fqmn": "App\\Domains\\Outreach\\Services\\WhatsAppApiService@getMessageStatus",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Outreach/Services/WhatsAppApiService.php::App\\Domains\\Outreach\\Services\\WhatsAppApiService::getPhoneNumberInfo",
        "fqmn": "App\\Domains\\Outreach\\Services\\WhatsAppApiService@getPhoneNumberInfo",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Outreach/Services/WhatsAppApiService.php::App\\Domains\\Outreach\\Services\\WhatsAppApiService::listTemplates",
        "fqmn": "App\\Domains\\Outreach\\Services\\WhatsAppApiService@listTemplates",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Outreach/Services/WhatsAppApiService.php::App\\Domains\\Outreach\\Services\\WhatsAppApiService::sendMessage",
        "fqmn": "App\\Domains\\Outreach\\Services\\WhatsAppApiService@sendMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Payments/Services/DeductionCalculator.php::App\\Domains\\Payments\\Services\\DeductionCalculator::calculate",
        "fqmn": "App\\Domains\\Payments\\Services\\DeductionCalculator@calculate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Payments/Services/DeductionCalculator.php::App\\Domains\\Payments\\Services\\DeductionCalculator::getDefaultTemplates",
        "fqmn": "App\\Domains\\Payments\\Services\\DeductionCalculator@getDefaultTemplates",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Payments/Services/PaymentProof/CachedPaymentProofAnalyzer.php::App\\Domains\\Payments\\Services\\PaymentProof\\CachedPaymentProofAnalyzer::__construct",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentProof\\CachedPaymentProofAnalyzer@__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/Payments/Services/PaymentProof/CachedPaymentProofAnalyzer.php::App\\Domains\\Payments\\Services\\PaymentProof\\CachedPaymentProofAnalyzer::analyze",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentProof\\CachedPaymentProofAnalyzer@analyze",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Payments/Services/PaymentProof/ChainPaymentProofAnalyzer.php::App\\Domains\\Payments\\Services\\PaymentProof\\ChainPaymentProofAnalyzer::__construct",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentProof\\ChainPaymentProofAnalyzer@__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/Payments/Services/PaymentProof/ChainPaymentProofAnalyzer.php::App\\Domains\\Payments\\Services\\PaymentProof\\ChainPaymentProofAnalyzer::analyze",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentProof\\ChainPaymentProofAnalyzer@analyze",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Payments/Services/PaymentProof/ManualReviewFallbackAnalyzer.php::App\\Domains\\Payments\\Services\\PaymentProof\\ManualReviewFallbackAnalyzer::analyze",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentProof\\ManualReviewFallbackAnalyzer@analyze",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Payments/Services/PaymentProof/OpenAIPaymentProofAnalyzer.php::App\\Domains\\Payments\\Services\\PaymentProof\\OpenAIPaymentProofAnalyzer::__construct",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentProof\\OpenAIPaymentProofAnalyzer@__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/Payments/Services/PaymentProof/OpenAIPaymentProofAnalyzer.php::App\\Domains\\Payments\\Services\\PaymentProof\\OpenAIPaymentProofAnalyzer::analyze",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentProof\\OpenAIPaymentProofAnalyzer@analyze",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Payments/Services/PaymentService.php::App\\Domains\\Payments\\Services\\PaymentService::__construct",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentService@__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/Payments/Services/PaymentService.php::App\\Domains\\Payments\\Services\\PaymentService::attachProof",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentService@attachProof",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Payments/Services/PaymentService.php::App\\Domains\\Payments\\Services\\PaymentService::createDeduction",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentService@createDeduction",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Payments/Services/PaymentService.php::App\\Domains\\Payments\\Services\\PaymentService::delete",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentService@delete",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Payments/Services/PaymentService.php::App\\Domains\\Payments\\Services\\PaymentService::getPaymentStatistics",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentService@getPaymentStatistics",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Payments/Services/PaymentService.php::App\\Domains\\Payments\\Services\\PaymentService::recordPayment",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentService@recordPayment",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Payments/Services/PaymentService.php::App\\Domains\\Payments\\Services\\PaymentService::updateStatus",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentService@updateStatus",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Payments/Services/PaymentTransactionHandler.php::App\\Domains\\Payments\\Services\\PaymentTransactionHandler::executeWithRetry",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentTransactionHandler@executeWithRetry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Payments/Services/PaymentVerificationService.php::App\\Domains\\Payments\\Services\\PaymentVerificationService::__construct",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentVerificationService@__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/Payments/Services/PaymentVerificationService.php::App\\Domains\\Payments\\Services\\PaymentVerificationService::analyzeProof",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentVerificationService@analyzeProof",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Payments/Services/PaymentVerificationService.php::App\\Domains\\Payments\\Services\\PaymentVerificationService::approveProof",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentVerificationService@approveProof",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Payments/Services/PaymentVerificationService.php::App\\Domains\\Payments\\Services\\PaymentVerificationService::execute",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentVerificationService@execute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Payments/Services/PaymentVerificationService.php::App\\Domains\\Payments\\Services\\PaymentVerificationService::getPendingProofsCount",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentVerificationService@getPendingProofsCount",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Payments/Services/PaymentVerificationService.php::App\\Domains\\Payments\\Services\\PaymentVerificationService::getProofsRequiringReview",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentVerificationService@getProofsRequiringReview",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Payments/Services/PaymentVerificationService.php::App\\Domains\\Payments\\Services\\PaymentVerificationService::rejectProof",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentVerificationService@rejectProof",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Payments/Services/PaymentVerificationService.php::App\\Domains\\Payments\\Services\\PaymentVerificationService::submitProof",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentVerificationService@submitProof",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Payments/Services/TransactionService.php::App\\Domains\\Payments\\Services\\TransactionService::__construct",
        "fqmn": "App\\Domains\\Payments\\Services\\TransactionService@__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/Payments/Services/TransactionService.php::App\\Domains\\Payments\\Services\\TransactionService::createTransaction",
        "fqmn": "App\\Domains\\Payments\\Services\\TransactionService@createTransaction",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Payments/Services/TransactionService.php::App\\Domains\\Payments\\Services\\TransactionService::finalizeTransaction",
        "fqmn": "App\\Domains\\Payments\\Services\\TransactionService@finalizeTransaction",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Payments/Services/TransferService.php::App\\Domains\\Payments\\Services\\TransferService::bulkCompleteTransfers",
        "fqmn": "App\\Domains\\Payments\\Services\\TransferService@bulkCompleteTransfers",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Payments/Services/TransferService.php::App\\Domains\\Payments\\Services\\TransferService::completeTransfer",
        "fqmn": "App\\Domains\\Payments\\Services\\TransferService@completeTransfer",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Payments/Services/TransferService.php::App\\Domains\\Payments\\Services\\TransferService::createTransfer",
        "fqmn": "App\\Domains\\Payments\\Services\\TransferService@createTransfer",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Payments/Services/TransferService.php::App\\Domains\\Payments\\Services\\TransferService::failTransfer",
        "fqmn": "App\\Domains\\Payments\\Services\\TransferService@failTransfer",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Payments/Services/TransferService.php::App\\Domains\\Payments\\Services\\TransferService::getPendingTransfers",
        "fqmn": "App\\Domains\\Payments\\Services\\TransferService@getPendingTransfers",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Payments/Services/TransferService.php::App\\Domains\\Payments\\Services\\TransferService::getTransfersForLandlord",
        "fqmn": "App\\Domains\\Payments\\Services\\TransferService@getTransfersForLandlord",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Payments/Services/TransferService.php::App\\Domains\\Payments\\Services\\TransferService::getTransferStatistics",
        "fqmn": "App\\Domains\\Payments\\Services\\TransferService@getTransferStatistics",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Payments/Services/WalletService.php::App\\Domains\\Payments\\Services\\WalletService::applyEntry",
        "fqmn": "App\\Domains\\Payments\\Services\\WalletService@applyEntry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Payments/Services/WalletService.php::App\\Domains\\Payments\\Services\\WalletService::getOperatingWallet",
        "fqmn": "App\\Domains\\Payments\\Services\\WalletService@getOperatingWallet",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Payments/Services/WalletService.php::App\\Domains\\Payments\\Services\\WalletService::getTrustWallet",
        "fqmn": "App\\Domains\\Payments\\Services\\WalletService@getTrustWallet",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Payments/Services/WalletService.php::App\\Domains\\Payments\\Services\\WalletService::transfer",
        "fqmn": "App\\Domains\\Payments\\Services\\WalletService@transfer",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Properties/Services/UnitCompositionService.php::App\\Domains\\Properties\\Services\\UnitCompositionService::canBeShared",
        "fqmn": "App\\Domains\\Properties\\Services\\UnitCompositionService@canBeShared",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Properties/Services/UnitCompositionService.php::App\\Domains\\Properties\\Services\\UnitCompositionService::getCompositionText",
        "fqmn": "App\\Domains\\Properties\\Services\\UnitCompositionService@getCompositionText",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Properties/Services/UnitCompositionService.php::App\\Domains\\Properties\\Services\\UnitCompositionService::getMissingElements",
        "fqmn": "App\\Domains\\Properties\\Services\\UnitCompositionService@getMissingElements",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Properties/Services/UnitCompositionService.php::App\\Domains\\Properties\\Services\\UnitCompositionService::getVisualLayout",
        "fqmn": "App\\Domains\\Properties\\Services\\UnitCompositionService@getVisualLayout",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Properties/Services/UnitCompositionService.php::App\\Domains\\Properties\\Services\\UnitCompositionService::updateComposition",
        "fqmn": "App\\Domains\\Properties\\Services\\UnitCompositionService@updateComposition",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Properties/Services/UnitCompositionService.php::App\\Domains\\Properties\\Services\\UnitCompositionService::validateLayoutCompleteness",
        "fqmn": "App\\Domains\\Properties\\Services\\UnitCompositionService@validateLayoutCompleteness",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reminders/Services/CollectionInboxClassifier.php::App\\Domains\\Reminders\\Services\\CollectionInboxClassifier::classify",
        "fqmn": "App\\Domains\\Reminders\\Services\\CollectionInboxClassifier@classify",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reminders/Services/InboundMessageRouter.php::App\\Domains\\Reminders\\Services\\InboundMessageRouter::route",
        "fqmn": "App\\Domains\\Reminders\\Services\\InboundMessageRouter@route",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reminders/Services/InboundMessageRouter.php::App\\Domains\\Reminders\\Services\\InboundMessageRouter::routeBatch",
        "fqmn": "App\\Domains\\Reminders\\Services\\InboundMessageRouter@routeBatch",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reminders/Services/InboundMessageRouter.php::App\\Domains\\Reminders\\Services\\InboundMessageRouter::routeFromCanonical",
        "fqmn": "App\\Domains\\Reminders\\Services\\InboundMessageRouter@routeFromCanonical",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reminders/Services/ReminderFailureHandler.php::App\\Domains\\Reminders\\Services\\ReminderFailureHandler::getDeadLetterQueue",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderFailureHandler@getDeadLetterQueue",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reminders/Services/ReminderFailureHandler.php::App\\Domains\\Reminders\\Services\\ReminderFailureHandler::getFailureStatistics",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderFailureHandler@getFailureStatistics",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reminders/Services/ReminderFailureHandler.php::App\\Domains\\Reminders\\Services\\ReminderFailureHandler::handleFailure",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderFailureHandler@handleFailure",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reminders/Services/ReminderFailureHandler.php::App\\Domains\\Reminders\\Services\\ReminderFailureHandler::retry",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderFailureHandler@retry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reminders/Services/ReminderMonitoringService.php::App\\Domains\\Reminders\\Services\\ReminderMonitoringService::getMetric",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderMonitoringService@getMetric",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reminders/Services/ReminderMonitoringService.php::App\\Domains\\Reminders\\Services\\ReminderMonitoringService::getStatistics",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderMonitoringService@getStatistics",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reminders/Services/ReminderMonitoringService.php::App\\Domains\\Reminders\\Services\\ReminderMonitoringService::logCancelled",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderMonitoringService@logCancelled",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reminders/Services/ReminderMonitoringService.php::App\\Domains\\Reminders\\Services\\ReminderMonitoringService::logFailed",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderMonitoringService@logFailed",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reminders/Services/ReminderMonitoringService.php::App\\Domains\\Reminders\\Services\\ReminderMonitoringService::logScheduled",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderMonitoringService@logScheduled",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reminders/Services/ReminderMonitoringService.php::App\\Domains\\Reminders\\Services\\ReminderMonitoringService::logSent",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderMonitoringService@logSent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reminders/Services/ReminderMonitoringService.php::App\\Domains\\Reminders\\Services\\ReminderMonitoringService::logTransition",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderMonitoringService@logTransition",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reminders/Services/ReminderScheduler.php::App\\Domains\\Reminders\\Services\\ReminderScheduler::__construct",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderScheduler@__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/Reminders/Services/ReminderScheduler.php::App\\Domains\\Reminders\\Services\\ReminderScheduler::scheduleBulk",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderScheduler@scheduleBulk",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reminders/Services/ReminderScheduler.php::App\\Domains\\Reminders\\Services\\ReminderScheduler::scheduleForLease",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderScheduler@scheduleForLease",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reminders/Services/ReminderScheduler.php::App\\Domains\\Reminders\\Services\\ReminderScheduler::scheduleForRentCycle",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderScheduler@scheduleForRentCycle",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reminders/Services/ReminderService.php::App\\Domains\\Reminders\\Services\\ReminderService::__construct",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderService@__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/Reminders/Services/ReminderService.php::App\\Domains\\Reminders\\Services\\ReminderService::autoScheduleForRentCycle",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderService@autoScheduleForRentCycle",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reminders/Services/ReminderService.php::App\\Domains\\Reminders\\Services\\ReminderService::cancelRemindersForRentCycle",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderService@cancelRemindersForRentCycle",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reminders/Services/ReminderService.php::App\\Domains\\Reminders\\Services\\ReminderService::composeMessage",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderService@composeMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reminders/Services/ReminderService.php::App\\Domains\\Reminders\\Services\\ReminderService::getReminderStatistics",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderService@getReminderStatistics",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reminders/Services/ReminderService.php::App\\Domains\\Reminders\\Services\\ReminderService::mapReminderTypeToTemplateType",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderService@mapReminderTypeToTemplateType",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reminders/Services/ReminderService.php::App\\Domains\\Reminders\\Services\\ReminderService::processDueReminders",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderService@processDueReminders",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reminders/Services/ReminderService.php::App\\Domains\\Reminders\\Services\\ReminderService::scheduleReminder",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderService@scheduleReminder",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reminders/Services/ReminderStateMachine.php::App\\Domains\\Reminders\\Services\\ReminderStateMachine::canTransition",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderStateMachine@canTransition",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reminders/Services/ReminderStateMachine.php::App\\Domains\\Reminders\\Services\\ReminderStateMachine::getAllowedTransitions",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderStateMachine@getAllowedTransitions",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reminders/Services/ReminderStateMachine.php::App\\Domains\\Reminders\\Services\\ReminderStateMachine::transition",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderStateMachine@transition",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reminders/Services/ReminderTemplateRenderer.php::App\\Domains\\Reminders\\Services\\ReminderTemplateRenderer::render",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderTemplateRenderer@render",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reports/Services/DashboardService.php::App\\Domains\\Reports\\Services\\DashboardService::getAgencyIncomeStats",
        "fqmn": "App\\Domains\\Reports\\Services\\DashboardService@getAgencyIncomeStats",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reports/Services/DashboardService.php::App\\Domains\\Reports\\Services\\DashboardService::getCollectionTrend",
        "fqmn": "App\\Domains\\Reports\\Services\\DashboardService@getCollectionTrend",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reports/Services/DashboardService.php::App\\Domains\\Reports\\Services\\DashboardService::getPerformanceIndicators",
        "fqmn": "App\\Domains\\Reports\\Services\\DashboardService@getPerformanceIndicators",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reports/Services/DashboardService.php::App\\Domains\\Reports\\Services\\DashboardService::getQuickStats",
        "fqmn": "App\\Domains\\Reports\\Services\\DashboardService@getQuickStats",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reports/Services/ReportExportService.php::App\\Domains\\Reports\\Services\\ReportExportService::exportCollectionReport",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportExportService@exportCollectionReport",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reports/Services/ReportExportService.php::App\\Domains\\Reports\\Services\\ReportExportService::exportFinancialSummary",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportExportService@exportFinancialSummary",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reports/Services/ReportExportService.php::App\\Domains\\Reports\\Services\\ReportExportService::exportOverdueReport",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportExportService@exportOverdueReport",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reports/Services/ReportExportService.php::App\\Domains\\Reports\\Services\\ReportExportService::exportRentRoll",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportExportService@exportRentRoll",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reports/Services/ReportExportService.php::App\\Domains\\Reports\\Services\\ReportExportService::getCollectionReportHeaders",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportExportService@getCollectionReportHeaders",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reports/Services/ReportExportService.php::App\\Domains\\Reports\\Services\\ReportExportService::getOverdueReportHeaders",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportExportService@getOverdueReportHeaders",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reports/Services/ReportExportService.php::App\\Domains\\Reports\\Services\\ReportExportService::getRentRollHeaders",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportExportService@getRentRollHeaders",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reports/Services/ReportService.php::App\\Domains\\Reports\\Services\\ReportService::getLandlordSummary",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportService@getLandlordSummary",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reports/Services/ReportService.php::App\\Domains\\Reports\\Services\\ReportService::getMonthlyCollections",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportService@getMonthlyCollections",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reports/Services/ReportService.php::App\\Domains\\Reports\\Services\\ReportService::getOccupancyTrends",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportService@getOccupancyTrends",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reports/Services/ReportService.php::App\\Domains\\Reports\\Services\\ReportService::getOrganizationSummary",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportService@getOrganizationSummary",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reports/Services/ReportService.php::App\\Domains\\Reports\\Services\\ReportService::getTenantSummary",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportService@getTenantSummary",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Reports/Services/ReportService.php::App\\Domains\\Reports\\Services\\ReportService::getTopProperties",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportService@getTopProperties",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Helpers/CurrencyHelper.php::App\\Helpers\\CurrencyHelper::getCurrency",
        "fqmn": "App\\Helpers\\CurrencyHelper@getCurrency",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Helpers/CurrencyHelper.php::App\\Helpers\\CurrencyHelper::getOrganizationCurrency",
        "fqmn": "App\\Helpers\\CurrencyHelper@getOrganizationCurrency",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/BackupService.php::App\\Services\\BackupService::execute",
        "fqmn": "App\\Services\\BackupService@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/BackupService.php::App\\Services\\BackupService::generateBackup",
        "fqmn": "App\\Services\\BackupService@generateBackup",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/BackupService.php::App\\Services\\BackupService::run",
        "fqmn": "App\\Services\\BackupService@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/BackupService.php::App\\Services\\BackupService::sendBackup",
        "fqmn": "App\\Services\\BackupService@sendBackup",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/BackupService.php::App\\Services\\BackupService::store",
        "fqmn": "App\\Services\\BackupService@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/Billing/BillingAlertService.php::App\\Services\\Billing\\BillingAlertService::__construct",
        "fqmn": "App\\Services\\Billing\\BillingAlertService@__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/Billing/BillingAlertService.php::App\\Services\\Billing\\BillingAlertService::checkAndNotifyLowBalance",
        "fqmn": "App\\Services\\Billing\\BillingAlertService@checkAndNotifyLowBalance",
        "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/BillingAlertService.php::App\\Services\\Billing\\BillingAlertService::notifyCreditExhausted",
        "fqmn": "App\\Services\\Billing\\BillingAlertService@notifyCreditExhausted",
        "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/BillingAlertService.php::App\\Services\\Billing\\BillingAlertService::notifyPaymentFailed",
        "fqmn": "App\\Services\\Billing\\BillingAlertService@notifyPaymentFailed",
        "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/BillingAlertService.php::App\\Services\\Billing\\BillingAlertService::notifySuspension",
        "fqmn": "App\\Services\\Billing\\BillingAlertService@notifySuspension",
        "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::__construct",
        "fqmn": "App\\Services\\Billing\\BillingAmountCalculator@__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/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/BillingEngine.php::App\\Services\\Billing\\BillingEngine::addUnits",
        "fqmn": "App\\Services\\Billing\\BillingEngine@addUnits",
        "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/BillingEngine.php::App\\Services\\Billing\\BillingEngine::changeBillingPeriod",
        "fqmn": "App\\Services\\Billing\\BillingEngine@changeBillingPeriod",
        "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/BillingEngine.php::App\\Services\\Billing\\BillingEngine::removeUnits",
        "fqmn": "App\\Services\\Billing\\BillingEngine@removeUnits",
        "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/DunningEngine.php::App\\Services\\Billing\\DunningEngine::attemptPayment",
        "fqmn": "App\\Services\\Billing\\DunningEngine@attemptPayment",
        "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/DunningEngine.php::App\\Services\\Billing\\DunningEngine::runDunningCycle",
        "fqmn": "App\\Services\\Billing\\DunningEngine@runDunningCycle",
        "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/InvoiceBuilder.php::App\\Services\\Billing\\InvoiceBuilder::__construct",
        "fqmn": "App\\Services\\Billing\\InvoiceBuilder@__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/Billing/InvoiceBuilder.php::App\\Services\\Billing\\InvoiceBuilder::buildCreditTopUpContext",
        "fqmn": "App\\Services\\Billing\\InvoiceBuilder@buildCreditTopUpContext",
        "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/InvoiceBuilder.php::App\\Services\\Billing\\InvoiceBuilder::buildMessagePackageContext",
        "fqmn": "App\\Services\\Billing\\InvoiceBuilder@buildMessagePackageContext",
        "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/InvoiceBuilder.php::App\\Services\\Billing\\InvoiceBuilder::buildMonthlyMessageContext",
        "fqmn": "App\\Services\\Billing\\InvoiceBuilder@buildMonthlyMessageContext",
        "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/InvoiceBuilder.php::App\\Services\\Billing\\InvoiceBuilder::buildSubscriptionContext",
        "fqmn": "App\\Services\\Billing\\InvoiceBuilder@buildSubscriptionContext",
        "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/ProrationService.php::App\\Services\\Billing\\ProrationService::__construct",
        "fqmn": "App\\Services\\Billing\\ProrationService@__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/Billing/ProrationService.php::App\\Services\\Billing\\ProrationService::prorateChange",
        "fqmn": "App\\Services\\Billing\\ProrationService@prorateChange",
        "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/ProrationService.php::App\\Services\\Billing\\ProrationService::prorateSeatChange",
        "fqmn": "App\\Services\\Billing\\ProrationService@prorateSeatChange",
        "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/ProrationService.php::App\\Services\\Billing\\ProrationService::prorateTierChange",
        "fqmn": "App\\Services\\Billing\\ProrationService@prorateTierChange",
        "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/RenewalContextBuilder.php::App\\Services\\Billing\\RenewalContextBuilder::build",
        "fqmn": "App\\Services\\Billing\\RenewalContextBuilder@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/Billing/SeatCountService.php::App\\Services\\Billing\\SeatCountService::countSeats",
        "fqmn": "App\\Services\\Billing\\SeatCountService@countSeats",
        "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::countSeatsForOrganization",
        "fqmn": "App\\Services\\Billing\\SeatCountService@countSeatsForOrganization",
        "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/SubscriptionPaymentProcessor.php::App\\Services\\Billing\\SubscriptionPaymentProcessor::calculateLedgerCycleStart",
        "fqmn": "App\\Services\\Billing\\SubscriptionPaymentProcessor@calculateLedgerCycleStart",
        "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/SubscriptionPaymentProcessor.php::App\\Services\\Billing\\SubscriptionPaymentProcessor::findExistingRenewalLedger",
        "fqmn": "App\\Services\\Billing\\SubscriptionPaymentProcessor@findExistingRenewalLedger",
        "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/SubscriptionPaymentProcessor.php::App\\Services\\Billing\\SubscriptionPaymentProcessor::processPaymentMetadata",
        "fqmn": "App\\Services\\Billing\\SubscriptionPaymentProcessor@processPaymentMetadata",
        "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/SubscriptionPaymentProcessor.php::App\\Services\\Billing\\SubscriptionPaymentProcessor::updateSubscriptionWithPayment",
        "fqmn": "App\\Services\\Billing\\SubscriptionPaymentProcessor@updateSubscriptionWithPayment",
        "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/SubscriptionRenewalService.php::App\\Services\\Billing\\SubscriptionRenewalService::createCreditTransaction",
        "fqmn": "App\\Services\\Billing\\SubscriptionRenewalService@createCreditTransaction",
        "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/SubscriptionRenewalService.php::App\\Services\\Billing\\SubscriptionRenewalService::createRenewalLedger",
        "fqmn": "App\\Services\\Billing\\SubscriptionRenewalService@createRenewalLedger",
        "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/SubscriptionRenewalService.php::App\\Services\\Billing\\SubscriptionRenewalService::recordDiscountCodeUsage",
        "fqmn": "App\\Services\\Billing\\SubscriptionRenewalService@recordDiscountCodeUsage",
        "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/TapSettlementAllocator.php::App\\Services\\Billing\\TapSettlementAllocator::autoAllocate",
        "fqmn": "App\\Services\\Billing\\TapSettlementAllocator@autoAllocate",
        "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/TapSettlementMatcher.php::App\\Services\\Billing\\TapSettlementMatcher::matchSettlement",
        "fqmn": "App\\Services\\Billing\\TapSettlementMatcher@matchSettlement",
        "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/TapSettlementReviewQueueService.php::App\\Services\\Billing\\TapSettlementReviewQueueService::createTicket",
        "fqmn": "App\\Services\\Billing\\TapSettlementReviewQueueService@createTicket",
        "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/TapSettlementSuggestionEngine.php::App\\Services\\Billing\\TapSettlementSuggestionEngine::analyze",
        "fqmn": "App\\Services\\Billing\\TapSettlementSuggestionEngine@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/Billing/VatService.php::App\\Services\\Billing\\VatService::__construct",
        "fqmn": "App\\Services\\Billing\\VatService@__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/Billing/VatService.php::App\\Services\\Billing\\VatService::determinePolicy",
        "fqmn": "App\\Services\\Billing\\VatService@determinePolicy",
        "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/ZohoBillingAnalyticsService.php::App\\Services\\Billing\\ZohoBillingAnalyticsService::detectInvoiceAnomalies",
        "fqmn": "App\\Services\\Billing\\ZohoBillingAnalyticsService@detectInvoiceAnomalies",
        "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/ZohoBillingAnalyticsService.php::App\\Services\\Billing\\ZohoBillingAnalyticsService::getClearanceStatusStats",
        "fqmn": "App\\Services\\Billing\\ZohoBillingAnalyticsService@getClearanceStatusStats",
        "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/ZohoBillingAnalyticsService.php::App\\Services\\Billing\\ZohoBillingAnalyticsService::getMonthlyInvoiceStats",
        "fqmn": "App\\Services\\Billing\\ZohoBillingAnalyticsService@getMonthlyInvoiceStats",
        "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/ZohoBillingAnalyticsService.php::App\\Services\\Billing\\ZohoBillingAnalyticsService::getVatExposure",
        "fqmn": "App\\Services\\Billing\\ZohoBillingAnalyticsService@getVatExposure",
        "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/ZohoExpenseSyncService.php::App\\Services\\Billing\\ZohoExpenseSyncService::__construct",
        "fqmn": "App\\Services\\Billing\\ZohoExpenseSyncService@__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/Billing/ZohoExpenseSyncService.php::App\\Services\\Billing\\ZohoExpenseSyncService::pushExpense",
        "fqmn": "App\\Services\\Billing\\ZohoExpenseSyncService@pushExpense",
        "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/ZohoInvoiceReconciler.php::App\\Services\\Billing\\ZohoInvoiceReconciler::reconcile",
        "fqmn": "App\\Services\\Billing\\ZohoInvoiceReconciler@reconcile",
        "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/ZohoPaymentSyncService.php::App\\Services\\Billing\\ZohoPaymentSyncService::__construct",
        "fqmn": "App\\Services\\Billing\\ZohoPaymentSyncService@__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/Billing/ZohoPaymentSyncService.php::App\\Services\\Billing\\ZohoPaymentSyncService::pushMultiInvoicePayment",
        "fqmn": "App\\Services\\Billing\\ZohoPaymentSyncService@pushMultiInvoicePayment",
        "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/ZohoPaymentSyncService.php::App\\Services\\Billing\\ZohoPaymentSyncService::pushSettlementPayment",
        "fqmn": "App\\Services\\Billing\\ZohoPaymentSyncService@pushSettlementPayment",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/BillingStateService.php::App\\Services\\BillingStateService::__construct",
        "fqmn": "App\\Services\\BillingStateService@__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/BillingStateService.php::App\\Services\\BillingStateService::applyZohoPaid",
        "fqmn": "App\\Services\\BillingStateService@applyZohoPaid",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/BillingStateService.php::App\\Services\\BillingStateService::applyZohoVoidedOrCancelled",
        "fqmn": "App\\Services\\BillingStateService@applyZohoVoidedOrCancelled",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/BillingStateService.php::App\\Services\\BillingStateService::evaluatePostDunningFailure",
        "fqmn": "App\\Services\\BillingStateService@evaluatePostDunningFailure",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/BillingStateService.php::App\\Services\\BillingStateService::handle",
        "fqmn": "App\\Services\\BillingStateService@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/BillingStateService.php::App\\Services\\BillingStateService::moveToActive",
        "fqmn": "App\\Services\\BillingStateService@moveToActive",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/BillingStateService.php::App\\Services\\BillingStateService::moveToCanceled",
        "fqmn": "App\\Services\\BillingStateService@moveToCanceled",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/BillingStateService.php::App\\Services\\BillingStateService::moveToExpired",
        "fqmn": "App\\Services\\BillingStateService@moveToExpired",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/BillingStateService.php::App\\Services\\BillingStateService::moveToGrace",
        "fqmn": "App\\Services\\BillingStateService@moveToGrace",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/BillingStateService.php::App\\Services\\BillingStateService::moveToPastDue",
        "fqmn": "App\\Services\\BillingStateService@moveToPastDue",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/BillingStateService.php::App\\Services\\BillingStateService::moveToPendingPayment",
        "fqmn": "App\\Services\\BillingStateService@moveToPendingPayment",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/BillingStateService.php::App\\Services\\BillingStateService::moveToSuspended",
        "fqmn": "App\\Services\\BillingStateService@moveToSuspended",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/BillingStateService.php::App\\Services\\BillingStateService::moveToTrialing",
        "fqmn": "App\\Services\\BillingStateService@moveToTrialing",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/BillingStateService.php::App\\Services\\BillingStateService::processSuccessfulSubscriptionPayment",
        "fqmn": "App\\Services\\BillingStateService@processSuccessfulSubscriptionPayment",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/BillingStateService.php::App\\Services\\BillingStateService::transition",
        "fqmn": "App\\Services\\BillingStateService@transition",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/DiscountService.php::App\\Services\\DiscountService::applyCodeToSubscription",
        "fqmn": "App\\Services\\DiscountService@applyCodeToSubscription",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/DiscountService.php::App\\Services\\DiscountService::applyToAmount",
        "fqmn": "App\\Services\\DiscountService@applyToAmount",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/DiscountService.php::App\\Services\\DiscountService::hasActiveCode",
        "fqmn": "App\\Services\\DiscountService@hasActiveCode",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/DiscountService.php::App\\Services\\DiscountService::issueOneTimeAI",
        "fqmn": "App\\Services\\DiscountService@issueOneTimeAI",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/DiscountService.php::App\\Services\\DiscountService::shouldOfferUpsellInsteadOfDiscount",
        "fqmn": "App\\Services\\DiscountService@shouldOfferUpsellInsteadOfDiscount",
        "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::__construct",
        "fqmn": "App\\Services\\DunningService@__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/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::scheduleNext",
        "fqmn": "App\\Services\\DunningService@scheduleNext",
        "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::startDunning",
        "fqmn": "App\\Services\\DunningService@startDunning",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Email/ZeptoMailer.php::App\\Services\\Email\\ZeptoMailer::sendHtml",
        "fqmn": "App\\Services\\Email\\ZeptoMailer@sendHtml",
        "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::applyPlaceholders",
        "fqmn": "App\\Services\\EmailTemplateService@applyPlaceholders",
        "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::getLocalizedContent",
        "fqmn": "App\\Services\\EmailTemplateService@getLocalizedContent",
        "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::getTemplateFor",
        "fqmn": "App\\Services\\EmailTemplateService@getTemplateFor",
        "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::isEnabledForOrganization",
        "fqmn": "App\\Services\\EmailTemplateService@isEnabledForOrganization",
        "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::render",
        "fqmn": "App\\Services\\EmailTemplateService@render",
        "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::resolve",
        "fqmn": "App\\Services\\EmailTemplateService@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/EmailTemplateService.php::App\\Services\\EmailTemplateService::send",
        "fqmn": "App\\Services\\EmailTemplateService@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/GccCountryService.php::App\\Services\\GccCountryService::detectCountryFromPhone",
        "fqmn": "App\\Services\\GccCountryService@detectCountryFromPhone",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/GccCountryService.php::App\\Services\\GccCountryService::getCountries",
        "fqmn": "App\\Services\\GccCountryService@getCountries",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/GccCountryService.php::App\\Services\\GccCountryService::getCountryCodes",
        "fqmn": "App\\Services\\GccCountryService@getCountryCodes",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/GccCountryService.php::App\\Services\\GccCountryService::getCountryName",
        "fqmn": "App\\Services\\GccCountryService@getCountryName",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/GccCountryService.php::App\\Services\\GccCountryService::getCurrency",
        "fqmn": "App\\Services\\GccCountryService@getCurrency",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/GccCountryService.php::App\\Services\\GccCountryService::getCurrencyName",
        "fqmn": "App\\Services\\GccCountryService@getCurrencyName",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/GccCountryService.php::App\\Services\\GccCountryService::isGccCountry",
        "fqmn": "App\\Services\\GccCountryService@isGccCountry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Imports/CsvImportExecutor.php::App\\Services\\Imports\\CsvImportExecutor::execute",
        "fqmn": "App\\Services\\Imports\\CsvImportExecutor@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/Imports/CsvImportExecutor.php::App\\Services\\Imports\\CsvImportExecutor::generateErrorReport",
        "fqmn": "App\\Services\\Imports\\CsvImportExecutor@generateErrorReport",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Imports/CsvImportExecutorV2.php::App\\Services\\Imports\\CsvImportExecutorV2::execute",
        "fqmn": "App\\Services\\Imports\\CsvImportExecutorV2@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/Imports/CsvImportExecutorV2.php::App\\Services\\Imports\\CsvImportExecutorV2::generateErrorReport",
        "fqmn": "App\\Services\\Imports\\CsvImportExecutorV2@generateErrorReport",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Imports/CsvImportSessionManager.php::App\\Services\\Imports\\CsvImportSessionManager::addFile",
        "fqmn": "App\\Services\\Imports\\CsvImportSessionManager@addFile",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Imports/CsvImportSessionManager.php::App\\Services\\Imports\\CsvImportSessionManager::cleanupOldSessions",
        "fqmn": "App\\Services\\Imports\\CsvImportSessionManager@cleanupOldSessions",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Imports/CsvImportSessionManager.php::App\\Services\\Imports\\CsvImportSessionManager::createSession",
        "fqmn": "App\\Services\\Imports\\CsvImportSessionManager@createSession",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Imports/CsvImportSessionManager.php::App\\Services\\Imports\\CsvImportSessionManager::deleteSession",
        "fqmn": "App\\Services\\Imports\\CsvImportSessionManager@deleteSession",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Imports/CsvImportSessionManager.php::App\\Services\\Imports\\CsvImportSessionManager::findExistingSession",
        "fqmn": "App\\Services\\Imports\\CsvImportSessionManager@findExistingSession",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Imports/CsvImportSessionManager.php::App\\Services\\Imports\\CsvImportSessionManager::getFilePath",
        "fqmn": "App\\Services\\Imports\\CsvImportSessionManager@getFilePath",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Imports/CsvImportSessionManager.php::App\\Services\\Imports\\CsvImportSessionManager::getSessionData",
        "fqmn": "App\\Services\\Imports\\CsvImportSessionManager@getSessionData",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Imports/CsvImportSessionManager.php::App\\Services\\Imports\\CsvImportSessionManager::markComplete",
        "fqmn": "App\\Services\\Imports\\CsvImportSessionManager@markComplete",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Imports/CsvImportSessionManager.php::App\\Services\\Imports\\CsvImportSessionManager::saveSessionData",
        "fqmn": "App\\Services\\Imports\\CsvImportSessionManager@saveSessionData",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Imports/CsvImportSessionManager.php::App\\Services\\Imports\\CsvImportSessionManager::saveValidationResults",
        "fqmn": "App\\Services\\Imports\\CsvImportSessionManager@saveValidationResults",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Imports/CsvParserService.php::App\\Services\\Imports\\CsvParserService::detectDuplicates",
        "fqmn": "App\\Services\\Imports\\CsvParserService@detectDuplicates",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Imports/CsvParserService.php::App\\Services\\Imports\\CsvParserService::detectEntityType",
        "fqmn": "App\\Services\\Imports\\CsvParserService@detectEntityType",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Imports/CsvParserService.php::App\\Services\\Imports\\CsvParserService::normalizeMobile",
        "fqmn": "App\\Services\\Imports\\CsvParserService@normalizeMobile",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Imports/CsvParserService.php::App\\Services\\Imports\\CsvParserService::parseCsv",
        "fqmn": "App\\Services\\Imports\\CsvParserService@parseCsv",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Imports/CsvParserService.php::App\\Services\\Imports\\CsvParserService::validate",
        "fqmn": "App\\Services\\Imports\\CsvParserService@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/Imports/CsvRelationshipMapper.php::App\\Services\\Imports\\CsvRelationshipMapper::analyzeRelationships",
        "fqmn": "App\\Services\\Imports\\CsvRelationshipMapper@analyzeRelationships",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/InvitationService.php::App\\Services\\InvitationService::accept",
        "fqmn": "App\\Services\\InvitationService@accept",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/InvitationService.php::App\\Services\\InvitationService::cancel",
        "fqmn": "App\\Services\\InvitationService@cancel",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/InvitationService.php::App\\Services\\InvitationService::cleanupExpired",
        "fqmn": "App\\Services\\InvitationService@cleanupExpired",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/InvitationService.php::App\\Services\\InvitationService::create",
        "fqmn": "App\\Services\\InvitationService@create",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/InvitationService.php::App\\Services\\InvitationService::getPendingInvitations",
        "fqmn": "App\\Services\\InvitationService@getPendingInvitations",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/InvitationService.php::App\\Services\\InvitationService::resend",
        "fqmn": "App\\Services\\InvitationService@resend",
        "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::__construct",
        "fqmn": "App\\Services\\InvoiceService@__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/InvoiceService.php::App\\Services\\InvoiceService::generateCreditTopUpInvoice",
        "fqmn": "App\\Services\\InvoiceService@generateCreditTopUpInvoice",
        "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::generateMessagePackageInvoice",
        "fqmn": "App\\Services\\InvoiceService@generateMessagePackageInvoice",
        "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::generateMonthlyMessageInvoice",
        "fqmn": "App\\Services\\InvoiceService@generateMonthlyMessageInvoice",
        "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/InvoiceService.php::App\\Services\\InvoiceService::mirrorZohoInvoice",
        "fqmn": "App\\Services\\InvoiceService@mirrorZohoInvoice",
        "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::prepareForZatca",
        "fqmn": "App\\Services\\InvoiceService@prepareForZatca",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Messaging/MessageQuotaService.php::App\\Services\\Messaging\\MessageQuotaService::checkDailyLimit",
        "fqmn": "App\\Services\\Messaging\\MessageQuotaService@checkDailyLimit",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Messaging/MessageQuotaService.php::App\\Services\\Messaging\\MessageQuotaService::checkMonthlyLimit",
        "fqmn": "App\\Services\\Messaging\\MessageQuotaService@checkMonthlyLimit",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Messaging/MessageQuotaService.php::App\\Services\\Messaging\\MessageQuotaService::checkRecipientThrottle",
        "fqmn": "App\\Services\\Messaging\\MessageQuotaService@checkRecipientThrottle",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Messaging/MessageQuotaService.php::App\\Services\\Messaging\\MessageQuotaService::incrementUsage",
        "fqmn": "App\\Services\\Messaging\\MessageQuotaService@incrementUsage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Messaging/MessagingGateway.php::App\\Services\\Messaging\\MessagingGateway::__construct",
        "fqmn": "App\\Services\\Messaging\\MessagingGateway@__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/Messaging/MessagingGateway.php::App\\Services\\Messaging\\MessagingGateway::resolveProvider",
        "fqmn": "App\\Services\\Messaging\\MessagingGateway@resolveProvider",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Messaging/MessagingGateway.php::App\\Services\\Messaging\\MessagingGateway::sendWhatsApp",
        "fqmn": "App\\Services\\Messaging\\MessagingGateway@sendWhatsApp",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Messaging/MessagingResult.php::App\\Services\\Messaging\\MessagingResult::__construct",
        "fqmn": "App\\Services\\Messaging\\MessagingResult@__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/Messaging/MessagingResult.php::App\\Services\\Messaging\\MessagingResult::toArray",
        "fqmn": "App\\Services\\Messaging\\MessagingResult@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/Notifications/NotificationDispatcher.php::App\\Services\\Notifications\\NotificationDispatcher::send",
        "fqmn": "App\\Services\\Notifications\\NotificationDispatcher@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/Notifications/NotificationSenderRunner.php::App\\Services\\Notifications\\NotificationSenderRunner::sendForSubscriptionEvent",
        "fqmn": "App\\Services\\Notifications\\NotificationSenderRunner@sendForSubscriptionEvent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OpenAI/Client.php::App\\Services\\OpenAI\\Client::chat",
        "fqmn": "App\\Services\\OpenAI\\Client@chat",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OpenAI/Client.php::App\\Services\\OpenAI\\Client::transcribe",
        "fqmn": "App\\Services\\OpenAI\\Client@transcribe",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::__construct",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@__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/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::assertNothingSent",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@assertNothingSent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::assistants",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@assistants",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::audio",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@audio",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::batches",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@batches",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::chat",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@chat",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::completions",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@completions",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::edits",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@edits",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::embeddings",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@embeddings",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::files",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@files",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::fineTunes",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@fineTunes",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::fineTuning",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@fineTuning",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::images",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@images",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::models",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@models",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::moderations",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@moderations",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::threads",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@threads",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::vectorStores",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@vectorStores",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::wrap",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@wrap",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OpenAI/OpenAIVisionService.php::App\\Services\\OpenAI\\OpenAIVisionService::__construct",
        "fqmn": "App\\Services\\OpenAI\\OpenAIVisionService@__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/OpenAI/OpenAIVisionService.php::App\\Services\\OpenAI\\OpenAIVisionService::analyzePaymentReceipt",
        "fqmn": "App\\Services\\OpenAI\\OpenAIVisionService@analyzePaymentReceipt",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OrganizationMetadataService.php::App\\Services\\OrganizationMetadataService::getMetadata",
        "fqmn": "App\\Services\\OrganizationMetadataService@getMetadata",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OrganizationRegistrationService.php::App\\Services\\OrganizationRegistrationService::__construct",
        "fqmn": "App\\Services\\OrganizationRegistrationService@__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/OrganizationRegistrationService.php::App\\Services\\OrganizationRegistrationService::generateUniqueSlug",
        "fqmn": "App\\Services\\OrganizationRegistrationService@generateUniqueSlug",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OrganizationRegistrationService.php::App\\Services\\OrganizationRegistrationService::grantTrialOnRegistration",
        "fqmn": "App\\Services\\OrganizationRegistrationService@grantTrialOnRegistration",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OTPService.php::App\\Services\\OTPService::__construct",
        "fqmn": "App\\Services\\OTPService@__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/OTPService.php::App\\Services\\OTPService::resendOTP",
        "fqmn": "App\\Services\\OTPService@resendOTP",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OTPService.php::App\\Services\\OTPService::sendRegistrationOTP",
        "fqmn": "App\\Services\\OTPService@sendRegistrationOTP",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OTPService.php::App\\Services\\OTPService::verifyRegistrationOTP",
        "fqmn": "App\\Services\\OTPService@verifyRegistrationOTP",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Outreach/AnalyticsService.php::App\\Services\\Outreach\\AnalyticsService::getAttemptsPerCountry",
        "fqmn": "App\\Services\\Outreach\\AnalyticsService@getAttemptsPerCountry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Outreach/AnalyticsService.php::App\\Services\\Outreach\\AnalyticsService::getDeliveryRatePerCountry",
        "fqmn": "App\\Services\\Outreach\\AnalyticsService@getDeliveryRatePerCountry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Outreach/AnalyticsService.php::App\\Services\\Outreach\\AnalyticsService::getDeliveryRatePerTemplate",
        "fqmn": "App\\Services\\Outreach\\AnalyticsService@getDeliveryRatePerTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Outreach/AnalyticsService.php::App\\Services\\Outreach\\AnalyticsService::getOptInsOverTime",
        "fqmn": "App\\Services\\Outreach\\AnalyticsService@getOptInsOverTime",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Outreach/AnalyticsService.php::App\\Services\\Outreach\\AnalyticsService::getOverviewStats",
        "fqmn": "App\\Services\\Outreach\\AnalyticsService@getOverviewStats",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Outreach/CampaignService.php::App\\Services\\Outreach\\CampaignService::__construct",
        "fqmn": "App\\Services\\Outreach\\CampaignService@__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/Outreach/CampaignService.php::App\\Services\\Outreach\\CampaignService::getLeadsReadyForNextRound",
        "fqmn": "App\\Services\\Outreach\\CampaignService@getLeadsReadyForNextRound",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Outreach/CampaignService.php::App\\Services\\Outreach\\CampaignService::getTemplateForLead",
        "fqmn": "App\\Services\\Outreach\\CampaignService@getTemplateForLead",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Outreach/CampaignService.php::App\\Services\\Outreach\\CampaignService::queueSendAttempt",
        "fqmn": "App\\Services\\Outreach\\CampaignService@queueSendAttempt",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Outreach/CampaignService.php::App\\Services\\Outreach\\CampaignService::retryFailedAttempts",
        "fqmn": "App\\Services\\Outreach\\CampaignService@retryFailedAttempts",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Outreach/FollowUpDecisionEngine.php::App\\Services\\Outreach\\FollowUpDecisionEngine::checkThrottle",
        "fqmn": "App\\Services\\Outreach\\FollowUpDecisionEngine@checkThrottle",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Outreach/FollowUpDecisionEngine.php::App\\Services\\Outreach\\FollowUpDecisionEngine::convertIntervalToTimestamp",
        "fqmn": "App\\Services\\Outreach\\FollowUpDecisionEngine@convertIntervalToTimestamp",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Outreach/FollowUpDecisionEngine.php::App\\Services\\Outreach\\FollowUpDecisionEngine::evaluate",
        "fqmn": "App\\Services\\Outreach\\FollowUpDecisionEngine@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/Outreach/FollowUpDecisionEngine.php::App\\Services\\Outreach\\FollowUpDecisionEngine::execute",
        "fqmn": "App\\Services\\Outreach\\FollowUpDecisionEngine@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/Outreach/FollowUpMetricsService.php::App\\Services\\Outreach\\FollowUpMetricsService::dailyStats",
        "fqmn": "App\\Services\\Outreach\\FollowUpMetricsService@dailyStats",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Outreach/FollowUpMetricsService.php::App\\Services\\Outreach\\FollowUpMetricsService::priorityBreakdown",
        "fqmn": "App\\Services\\Outreach\\FollowUpMetricsService@priorityBreakdown",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Outreach/FollowUpSchedulerService.php::App\\Services\\Outreach\\FollowUpSchedulerService::cancelPendingForConversation",
        "fqmn": "App\\Services\\Outreach\\FollowUpSchedulerService@cancelPendingForConversation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Outreach/FollowUpSchedulerService.php::App\\Services\\Outreach\\FollowUpSchedulerService::cancelPendingForLead",
        "fqmn": "App\\Services\\Outreach\\FollowUpSchedulerService@cancelPendingForLead",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Outreach/FollowUpSchedulerService.php::App\\Services\\Outreach\\FollowUpSchedulerService::create",
        "fqmn": "App\\Services\\Outreach\\FollowUpSchedulerService@create",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Outreach/FollowUpSchedulerService.php::App\\Services\\Outreach\\FollowUpSchedulerService::reschedule",
        "fqmn": "App\\Services\\Outreach\\FollowUpSchedulerService@reschedule",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Outreach/FollowUpTemplateService.php::App\\Services\\Outreach\\FollowUpTemplateService::generateTemplate",
        "fqmn": "App\\Services\\Outreach\\FollowUpTemplateService@generateTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Outreach/InboundMessageNormalizer.php::App\\Services\\Outreach\\InboundMessageNormalizer::normalizeInbound",
        "fqmn": "App\\Services\\Outreach\\InboundMessageNormalizer@normalizeInbound",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Outreach/LeadImporter.php::App\\Services\\Outreach\\LeadImporter::__construct",
        "fqmn": "App\\Services\\Outreach\\LeadImporter@__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/Outreach/LeadImporter.php::App\\Services\\Outreach\\LeadImporter::import",
        "fqmn": "App\\Services\\Outreach\\LeadImporter@import",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Outreach/PhoneNumberNormalizer.php::App\\Services\\Outreach\\PhoneNumberNormalizer::normalize",
        "fqmn": "App\\Services\\Outreach\\PhoneNumberNormalizer@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/Outreach/SafetyEngine.php::App\\Services\\Outreach\\SafetyEngine::isAllowed",
        "fqmn": "App\\Services\\Outreach\\SafetyEngine@isAllowed",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Outreach/TemplateService.php::App\\Services\\Outreach\\TemplateService::getTemplatesForCountry",
        "fqmn": "App\\Services\\Outreach\\TemplateService@getTemplatesForCountry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Outreach/TemplateService.php::App\\Services\\Outreach\\TemplateService::saveTemplates",
        "fqmn": "App\\Services\\Outreach\\TemplateService@saveTemplates",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Outreach/TemplateService.php::App\\Services\\Outreach\\TemplateService::syncTemplateStatus",
        "fqmn": "App\\Services\\Outreach\\TemplateService@syncTemplateStatus",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ABTestingService.php::App\\Services\\OutreachAI\\ABTestingService::getExperimentalWeights",
        "fqmn": "App\\Services\\OutreachAI\\ABTestingService@getExperimentalWeights",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ABTestingService.php::App\\Services\\OutreachAI\\ABTestingService::getWeightsForConversation",
        "fqmn": "App\\Services\\OutreachAI\\ABTestingService@getWeightsForConversation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ABTestingService.php::App\\Services\\OutreachAI\\ABTestingService::shouldUseExperimentalWeights",
        "fqmn": "App\\Services\\OutreachAI\\ABTestingService@shouldUseExperimentalWeights",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AdaptiveLearningEngine.php::App\\Services\\OutreachAI\\AdaptiveLearningEngine::boostHighPerformingPatterns",
        "fqmn": "App\\Services\\OutreachAI\\AdaptiveLearningEngine@boostHighPerformingPatterns",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AdaptiveLearningEngine.php::App\\Services\\OutreachAI\\AdaptiveLearningEngine::computeOutcomeWeights",
        "fqmn": "App\\Services\\OutreachAI\\AdaptiveLearningEngine@computeOutcomeWeights",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AdaptiveLearningEngine.php::App\\Services\\OutreachAI\\AdaptiveLearningEngine::detectCluster",
        "fqmn": "App\\Services\\OutreachAI\\AdaptiveLearningEngine@detectCluster",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AdaptiveLearningEngine.php::App\\Services\\OutreachAI\\AdaptiveLearningEngine::evolveStrategiesDaily",
        "fqmn": "App\\Services\\OutreachAI\\AdaptiveLearningEngine@evolveStrategiesDaily",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AdaptiveLearningEngine.php::App\\Services\\OutreachAI\\AdaptiveLearningEngine::outputLearningDirectives",
        "fqmn": "App\\Services\\OutreachAI\\AdaptiveLearningEngine@outputLearningDirectives",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AdaptiveLearningEngine.php::App\\Services\\OutreachAI\\AdaptiveLearningEngine::pruneWeakStrategies",
        "fqmn": "App\\Services\\OutreachAI\\AdaptiveLearningEngine@pruneWeakStrategies",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AdaptiveLearningEngine.php::App\\Services\\OutreachAI\\AdaptiveLearningEngine::recordSignal",
        "fqmn": "App\\Services\\OutreachAI\\AdaptiveLearningEngine@recordSignal",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AdaptiveLearningEngine.php::App\\Services\\OutreachAI\\AdaptiveLearningEngine::updateStrategyWeights",
        "fqmn": "App\\Services\\OutreachAI\\AdaptiveLearningEngine@updateStrategyWeights",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AdaptiveStrategyEngine.php::App\\Services\\OutreachAI\\AdaptiveStrategyEngine::adaptStrategy",
        "fqmn": "App\\Services\\OutreachAI\\AdaptiveStrategyEngine@adaptStrategy",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AdaptiveStrategyEngine.php::App\\Services\\OutreachAI\\AdaptiveStrategyEngine::applyStrategy",
        "fqmn": "App\\Services\\OutreachAI\\AdaptiveStrategyEngine@applyStrategy",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AdaptiveStrategyEngine.php::App\\Services\\OutreachAI\\AdaptiveStrategyEngine::getLatestPrediction",
        "fqmn": "App\\Services\\OutreachAI\\AdaptiveStrategyEngine@getLatestPrediction",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AffordabilityScoringService.php::App\\Services\\OutreachAI\\AffordabilityScoringService::emit",
        "fqmn": "App\\Services\\OutreachAI\\AffordabilityScoringService@emit",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AffordabilityScoringService.php::App\\Services\\OutreachAI\\AffordabilityScoringService::score",
        "fqmn": "App\\Services\\OutreachAI\\AffordabilityScoringService@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/OutreachAI/AgencyConversion/AgencyCompetitiveService.php::App\\Services\\OutreachAI\\AgencyConversion\\AgencyCompetitiveService::detectCompetitor",
        "fqmn": "App\\Services\\OutreachAI\\AgencyConversion\\AgencyCompetitiveService@detectCompetitor",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AgencyConversion/AgencyCompetitiveService.php::App\\Services\\OutreachAI\\AgencyConversion\\AgencyCompetitiveService::generateComparison",
        "fqmn": "App\\Services\\OutreachAI\\AgencyConversion\\AgencyCompetitiveService@generateComparison",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AgencyConversion/AgencyConversionDecisionService.php::App\\Services\\OutreachAI\\AgencyConversion\\AgencyConversionDecisionService::detectConversionMoment",
        "fqmn": "App\\Services\\OutreachAI\\AgencyConversion\\AgencyConversionDecisionService@detectConversionMoment",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AgencyConversion/AgencyConversionDecisionService.php::App\\Services\\OutreachAI\\AgencyConversion\\AgencyConversionDecisionService::generateConversionPrompt",
        "fqmn": "App\\Services\\OutreachAI\\AgencyConversion\\AgencyConversionDecisionService@generateConversionPrompt",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AgencyConversion/AgencyConversionFollowUpService.php::App\\Services\\OutreachAI\\AgencyConversion\\AgencyConversionFollowUpService::generateFollowUp",
        "fqmn": "App\\Services\\OutreachAI\\AgencyConversion\\AgencyConversionFollowUpService@generateFollowUp",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AgencyConversion/AgencyConversionFollowUpService.php::App\\Services\\OutreachAI\\AgencyConversion\\AgencyConversionFollowUpService::shouldFollowUp",
        "fqmn": "App\\Services\\OutreachAI\\AgencyConversion\\AgencyConversionFollowUpService@shouldFollowUp",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AgencyConversion/AgencyDemoScheduler.php::App\\Services\\OutreachAI\\AgencyConversion\\AgencyDemoScheduler::detectDemoInterest",
        "fqmn": "App\\Services\\OutreachAI\\AgencyConversion\\AgencyDemoScheduler@detectDemoInterest",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AgencyConversion/AgencyDemoScheduler.php::App\\Services\\OutreachAI\\AgencyConversion\\AgencyDemoScheduler::scheduleDemo",
        "fqmn": "App\\Services\\OutreachAI\\AgencyConversion\\AgencyDemoScheduler@scheduleDemo",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AgencyConversion/AgencyEducationService.php::App\\Services\\OutreachAI\\AgencyConversion\\AgencyEducationService::generateEducationBlock",
        "fqmn": "App\\Services\\OutreachAI\\AgencyConversion\\AgencyEducationService@generateEducationBlock",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AgencyConversion/AgencyEducationService.php::App\\Services\\OutreachAI\\AgencyConversion\\AgencyEducationService::respondToQuestion",
        "fqmn": "App\\Services\\OutreachAI\\AgencyConversion\\AgencyEducationService@respondToQuestion",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AgencyConversion/AgencyObjectionService.php::App\\Services\\OutreachAI\\AgencyConversion\\AgencyObjectionService::detectObjection",
        "fqmn": "App\\Services\\OutreachAI\\AgencyConversion\\AgencyObjectionService@detectObjection",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AgencyConversion/AgencyObjectionService.php::App\\Services\\OutreachAI\\AgencyConversion\\AgencyObjectionService::generateRebuttal",
        "fqmn": "App\\Services\\OutreachAI\\AgencyConversion\\AgencyObjectionService@generateRebuttal",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AgencyConversion/AgencyPricingExplainService.php::App\\Services\\OutreachAI\\AgencyConversion\\AgencyPricingExplainService::detectPricingIntent",
        "fqmn": "App\\Services\\OutreachAI\\AgencyConversion\\AgencyPricingExplainService@detectPricingIntent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AgencyConversion/AgencyPricingExplainService.php::App\\Services\\OutreachAI\\AgencyConversion\\AgencyPricingExplainService::explainPricing",
        "fqmn": "App\\Services\\OutreachAI\\AgencyConversion\\AgencyPricingExplainService@explainPricing",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AgencyConversion/AgencyQualificationService.php::App\\Services\\OutreachAI\\AgencyConversion\\AgencyQualificationService::qualify",
        "fqmn": "App\\Services\\OutreachAI\\AgencyConversion\\AgencyQualificationService@qualify",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AgenticActionService.php::App\\Services\\OutreachAI\\AgenticActionService::execute",
        "fqmn": "App\\Services\\OutreachAI\\AgenticActionService@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/OutreachAI/AIAutoReplyService.php::App\\Services\\OutreachAI\\AIAutoReplyService::__construct",
        "fqmn": "App\\Services\\OutreachAI\\AIAutoReplyService@__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/OutreachAI/AIAutoReplyService.php::App\\Services\\OutreachAI\\AIAutoReplyService::handleInboundMessage",
        "fqmn": "App\\Services\\OutreachAI\\AIAutoReplyService@handleInboundMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AIResponderService.php::App\\Services\\OutreachAI\\AIResponderService::__construct",
        "fqmn": "App\\Services\\OutreachAI\\AIResponderService@__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/OutreachAI/AIResponderService.php::App\\Services\\OutreachAI\\AIResponderService::generateReply",
        "fqmn": "App\\Services\\OutreachAI\\AIResponderService@generateReply",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AIResponderService.php::App\\Services\\OutreachAI\\AIResponderService::getDirector",
        "fqmn": "App\\Services\\OutreachAI\\AIResponderService@getDirector",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AIResponderService.php::App\\Services\\OutreachAI\\AIResponderService::initiateOutboundConversation",
        "fqmn": "App\\Services\\OutreachAI\\AIResponderService@initiateOutboundConversation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AppointmentDetectionService.php::App\\Services\\OutreachAI\\AppointmentDetectionService::detect",
        "fqmn": "App\\Services\\OutreachAI\\AppointmentDetectionService@detect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AppointmentSchedulingService.php::App\\Services\\OutreachAI\\AppointmentSchedulingService::evaluateAppointmentClosingStrategy",
        "fqmn": "App\\Services\\OutreachAI\\AppointmentSchedulingService@evaluateAppointmentClosingStrategy",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AppointmentSchedulingService.php::App\\Services\\OutreachAI\\AppointmentSchedulingService::schedule",
        "fqmn": "App\\Services\\OutreachAI\\AppointmentSchedulingService@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/OutreachAI/AppointmentSchedulingService.php::App\\Services\\OutreachAI\\AppointmentSchedulingService::suggestAppointmentForClosing",
        "fqmn": "App\\Services\\OutreachAI\\AppointmentSchedulingService@suggestAppointmentForClosing",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AssetDetectionService.php::App\\Services\\OutreachAI\\AssetDetectionService::detect",
        "fqmn": "App\\Services\\OutreachAI\\AssetDetectionService@detect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AudioConverter.php::App\\Services\\OutreachAI\\AudioConverter::cleanupOldFiles",
        "fqmn": "App\\Services\\OutreachAI\\AudioConverter@cleanupOldFiles",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AudioConverter.php::App\\Services\\OutreachAI\\AudioConverter::convertToMp3",
        "fqmn": "App\\Services\\OutreachAI\\AudioConverter@convertToMp3",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AudioConverter.php::App\\Services\\OutreachAI\\AudioConverter::getStorageStats",
        "fqmn": "App\\Services\\OutreachAI\\AudioConverter@getStorageStats",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AudioDownloadService.php::App\\Services\\OutreachAI\\AudioDownloadService::download",
        "fqmn": "App\\Services\\OutreachAI\\AudioDownloadService@download",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AudioDownloadService.php::App\\Services\\OutreachAI\\AudioDownloadService::downloadFromTwilio",
        "fqmn": "App\\Services\\OutreachAI\\AudioDownloadService@downloadFromTwilio",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AutoCorrectionService.php::App\\Services\\OutreachAI\\AutoCorrectionService::applyCorrectionDirectives",
        "fqmn": "App\\Services\\OutreachAI\\AutoCorrectionService@applyCorrectionDirectives",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AutoCorrectionService.php::App\\Services\\OutreachAI\\AutoCorrectionService::clearDirectives",
        "fqmn": "App\\Services\\OutreachAI\\AutoCorrectionService@clearDirectives",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AutoCorrectionService.php::App\\Services\\OutreachAI\\AutoCorrectionService::correct",
        "fqmn": "App\\Services\\OutreachAI\\AutoCorrectionService@correct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AutoCorrectionService.php::App\\Services\\OutreachAI\\AutoCorrectionService::generateCorrectionDirectives",
        "fqmn": "App\\Services\\OutreachAI\\AutoCorrectionService@generateCorrectionDirectives",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AutoReplyDetectionService.php::App\\Services\\OutreachAI\\AutoReplyDetectionService::detect",
        "fqmn": "App\\Services\\OutreachAI\\AutoReplyDetectionService@detect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/BudgetDetectionService.php::App\\Services\\OutreachAI\\BudgetDetectionService::detect",
        "fqmn": "App\\Services\\OutreachAI\\BudgetDetectionService@detect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/BudgetNegotiationStrategyService.php::App\\Services\\OutreachAI\\BudgetNegotiationStrategyService::getStrategy",
        "fqmn": "App\\Services\\OutreachAI\\BudgetNegotiationStrategyService@getStrategy",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/CalibrationEngine.php::App\\Services\\OutreachAI\\CalibrationEngine::computeTimingAdjustment",
        "fqmn": "App\\Services\\OutreachAI\\CalibrationEngine@computeTimingAdjustment",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/CalibrationEngine.php::App\\Services\\OutreachAI\\CalibrationEngine::record",
        "fqmn": "App\\Services\\OutreachAI\\CalibrationEngine@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/OutreachAI/ChurnPredictionEngine.php::App\\Services\\OutreachAI\\ChurnPredictionEngine::emit",
        "fqmn": "App\\Services\\OutreachAI\\ChurnPredictionEngine@emit",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ChurnPredictionEngine.php::App\\Services\\OutreachAI\\ChurnPredictionEngine::predict",
        "fqmn": "App\\Services\\OutreachAI\\ChurnPredictionEngine@predict",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ChurnPreventionOrchestrator.php::App\\Services\\OutreachAI\\ChurnPreventionOrchestrator::__construct",
        "fqmn": "App\\Services\\OutreachAI\\ChurnPreventionOrchestrator@__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/OutreachAI/ChurnPreventionOrchestrator.php::App\\Services\\OutreachAI\\ChurnPreventionOrchestrator::preventChurn",
        "fqmn": "App\\Services\\OutreachAI\\ChurnPreventionOrchestrator@preventChurn",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ClosingSuccessDetector.php::App\\Services\\OutreachAI\\ClosingSuccessDetector::checkForFailure",
        "fqmn": "App\\Services\\OutreachAI\\ClosingSuccessDetector@checkForFailure",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ClosingSuccessDetector.php::App\\Services\\OutreachAI\\ClosingSuccessDetector::detectSuccess",
        "fqmn": "App\\Services\\OutreachAI\\ClosingSuccessDetector@detectSuccess",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ClosingTimingEngine.php::App\\Services\\OutreachAI\\ClosingTimingEngine::calculateNextAllowedTime",
        "fqmn": "App\\Services\\OutreachAI\\ClosingTimingEngine@calculateNextAllowedTime",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ClosingTimingEngine.php::App\\Services\\OutreachAI\\ClosingTimingEngine::determineTiming",
        "fqmn": "App\\Services\\OutreachAI\\ClosingTimingEngine@determineTiming",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ClosingTimingEngine.php::App\\Services\\OutreachAI\\ClosingTimingEngine::getUserLocalTime",
        "fqmn": "App\\Services\\OutreachAI\\ClosingTimingEngine@getUserLocalTime",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ClosingTimingEngine.php::App\\Services\\OutreachAI\\ClosingTimingEngine::isWithinAllowedHours",
        "fqmn": "App\\Services\\OutreachAI\\ClosingTimingEngine@isWithinAllowedHours",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ClosingTimingEngine.php::App\\Services\\OutreachAI\\ClosingTimingEngine::isWithinBusinessHours",
        "fqmn": "App\\Services\\OutreachAI\\ClosingTimingEngine@isWithinBusinessHours",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ContextBuilder.php::App\\Services\\OutreachAI\\ContextBuilder::build",
        "fqmn": "App\\Services\\OutreachAI\\ContextBuilder@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/OutreachAI/ContractRenewal/RenewalCampaignService.php::App\\Services\\OutreachAI\\ContractRenewal\\RenewalCampaignService::shouldStartCampaign",
        "fqmn": "App\\Services\\OutreachAI\\ContractRenewal\\RenewalCampaignService@shouldStartCampaign",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ContractRenewal/RenewalIncentiveEngine.php::App\\Services\\OutreachAI\\ContractRenewal\\RenewalIncentiveEngine::calculate",
        "fqmn": "App\\Services\\OutreachAI\\ContractRenewal\\RenewalIncentiveEngine@calculate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ContractRenewal/RenewalPredictionEngine.php::App\\Services\\OutreachAI\\ContractRenewal\\RenewalPredictionEngine::predict",
        "fqmn": "App\\Services\\OutreachAI\\ContractRenewal\\RenewalPredictionEngine@predict",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ContractRenewal/RenewalTimingOptimizer.php::App\\Services\\OutreachAI\\ContractRenewal\\RenewalTimingOptimizer::optimize",
        "fqmn": "App\\Services\\OutreachAI\\ContractRenewal\\RenewalTimingOptimizer@optimize",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ConversationAttributionEngine.php::App\\Services\\OutreachAI\\ConversationAttributionEngine::computeAttribution",
        "fqmn": "App\\Services\\OutreachAI\\ConversationAttributionEngine@computeAttribution",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ConversationAttributionEngine.php::App\\Services\\OutreachAI\\ConversationAttributionEngine::getConversationSummaryAttribution",
        "fqmn": "App\\Services\\OutreachAI\\ConversationAttributionEngine@getConversationSummaryAttribution",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ConversationClusterService.php::App\\Services\\OutreachAI\\ConversationClusterService::assignCluster",
        "fqmn": "App\\Services\\OutreachAI\\ConversationClusterService@assignCluster",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ConversationClusterService.php::App\\Services\\OutreachAI\\ConversationClusterService::findSimilarLeads",
        "fqmn": "App\\Services\\OutreachAI\\ConversationClusterService@findSimilarLeads",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ConversationClusterService.php::App\\Services\\OutreachAI\\ConversationClusterService::getClusterBehavior",
        "fqmn": "App\\Services\\OutreachAI\\ConversationClusterService@getClusterBehavior",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ConversationClusterService.php::App\\Services\\OutreachAI\\ConversationClusterService::getClusterConversionRate",
        "fqmn": "App\\Services\\OutreachAI\\ConversationClusterService@getClusterConversionRate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ConversationClusterService.php::App\\Services\\OutreachAI\\ConversationClusterService::getClusterData",
        "fqmn": "App\\Services\\OutreachAI\\ConversationClusterService@getClusterData",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ConversationClusterService.php::App\\Services\\OutreachAI\\ConversationClusterService::getRecommendedStrategy",
        "fqmn": "App\\Services\\OutreachAI\\ConversationClusterService@getRecommendedStrategy",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ConversationFactMemoryService.php::App\\Services\\OutreachAI\\ConversationFactMemoryService::detectContradiction",
        "fqmn": "App\\Services\\OutreachAI\\ConversationFactMemoryService@detectContradiction",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ConversationFactMemoryService.php::App\\Services\\OutreachAI\\ConversationFactMemoryService::getFactContext",
        "fqmn": "App\\Services\\OutreachAI\\ConversationFactMemoryService@getFactContext",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ConversationFactMemoryService.php::App\\Services\\OutreachAI\\ConversationFactMemoryService::updateFactualMemory",
        "fqmn": "App\\Services\\OutreachAI\\ConversationFactMemoryService@updateFactualMemory",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ConversationGoalService.php::App\\Services\\OutreachAI\\ConversationGoalService::__construct",
        "fqmn": "App\\Services\\OutreachAI\\ConversationGoalService@__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/OutreachAI/ConversationGoalService.php::App\\Services\\OutreachAI\\ConversationGoalService::deriveGoal",
        "fqmn": "App\\Services\\OutreachAI\\ConversationGoalService@deriveGoal",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ConversationGoalService.php::App\\Services\\OutreachAI\\ConversationGoalService::storeGoal",
        "fqmn": "App\\Services\\OutreachAI\\ConversationGoalService@storeGoal",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ConversationGovernanceService.php::App\\Services\\OutreachAI\\ConversationGovernanceService::allowsFollowUps",
        "fqmn": "App\\Services\\OutreachAI\\ConversationGovernanceService@allowsFollowUps",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ConversationGovernanceService.php::App\\Services\\OutreachAI\\ConversationGovernanceService::canSendAutomatedMessage",
        "fqmn": "App\\Services\\OutreachAI\\ConversationGovernanceService@canSendAutomatedMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ConversationGovernanceService.php::App\\Services\\OutreachAI\\ConversationGovernanceService::getCurrentState",
        "fqmn": "App\\Services\\OutreachAI\\ConversationGovernanceService@getCurrentState",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ConversationGovernanceService.php::App\\Services\\OutreachAI\\ConversationGovernanceService::getFollowUpTier",
        "fqmn": "App\\Services\\OutreachAI\\ConversationGovernanceService@getFollowUpTier",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ConversationGovernanceService.php::App\\Services\\OutreachAI\\ConversationGovernanceService::handleUserReply",
        "fqmn": "App\\Services\\OutreachAI\\ConversationGovernanceService@handleUserReply",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ConversationGovernanceService.php::App\\Services\\OutreachAI\\ConversationGovernanceService::handleUserSilence",
        "fqmn": "App\\Services\\OutreachAI\\ConversationGovernanceService@handleUserSilence",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ConversationGovernanceService.php::App\\Services\\OutreachAI\\ConversationGovernanceService::transitionTo",
        "fqmn": "App\\Services\\OutreachAI\\ConversationGovernanceService@transitionTo",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ConversationPlanService.php::App\\Services\\OutreachAI\\ConversationPlanService::__construct",
        "fqmn": "App\\Services\\OutreachAI\\ConversationPlanService@__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/OutreachAI/ConversationPlanService.php::App\\Services\\OutreachAI\\ConversationPlanService::addAddOnOfferStep",
        "fqmn": "App\\Services\\OutreachAI\\ConversationPlanService@addAddOnOfferStep",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ConversationPlanService.php::App\\Services\\OutreachAI\\ConversationPlanService::addPriceAlignmentExplainerStep",
        "fqmn": "App\\Services\\OutreachAI\\ConversationPlanService@addPriceAlignmentExplainerStep",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ConversationPlanService.php::App\\Services\\OutreachAI\\ConversationPlanService::addUpsellSequenceStep",
        "fqmn": "App\\Services\\OutreachAI\\ConversationPlanService@addUpsellSequenceStep",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ConversationPlanService.php::App\\Services\\OutreachAI\\ConversationPlanService::generatePlan",
        "fqmn": "App\\Services\\OutreachAI\\ConversationPlanService@generatePlan",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ConversationPlanService.php::App\\Services\\OutreachAI\\ConversationPlanService::getActiveStep",
        "fqmn": "App\\Services\\OutreachAI\\ConversationPlanService@getActiveStep",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ConversationPlanService.php::App\\Services\\OutreachAI\\ConversationPlanService::storePlan",
        "fqmn": "App\\Services\\OutreachAI\\ConversationPlanService@storePlan",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ConversationService.php::App\\Services\\OutreachAI\\ConversationService::closeConversation",
        "fqmn": "App\\Services\\OutreachAI\\ConversationService@closeConversation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ConversationService.php::App\\Services\\OutreachAI\\ConversationService::execute",
        "fqmn": "App\\Services\\OutreachAI\\ConversationService@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/OutreachAI/ConversationService.php::App\\Services\\OutreachAI\\ConversationService::getOrCreateConversation",
        "fqmn": "App\\Services\\OutreachAI\\ConversationService@getOrCreateConversation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ConversationService.php::App\\Services\\OutreachAI\\ConversationService::getRecentMessageHistory",
        "fqmn": "App\\Services\\OutreachAI\\ConversationService@getRecentMessageHistory",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ConversationService.php::App\\Services\\OutreachAI\\ConversationService::handle",
        "fqmn": "App\\Services\\OutreachAI\\ConversationService@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/OutreachAI/ConversationService.php::App\\Services\\OutreachAI\\ConversationService::recordInboundMessage",
        "fqmn": "App\\Services\\OutreachAI\\ConversationService@recordInboundMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ConversationService.php::App\\Services\\OutreachAI\\ConversationService::recordOutboundMessage",
        "fqmn": "App\\Services\\OutreachAI\\ConversationService@recordOutboundMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ConversationService.php::App\\Services\\OutreachAI\\ConversationService::resetMemory",
        "fqmn": "App\\Services\\OutreachAI\\ConversationService@resetMemory",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ConversationSummaryService.php::App\\Services\\OutreachAI\\ConversationSummaryService::detectChanges",
        "fqmn": "App\\Services\\OutreachAI\\ConversationSummaryService@detectChanges",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ConversationSummaryService.php::App\\Services\\OutreachAI\\ConversationSummaryService::summarize",
        "fqmn": "App\\Services\\OutreachAI\\ConversationSummaryService@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/OutreachAI/ConversionDetectionService.php::App\\Services\\OutreachAI\\ConversionDetectionService::__construct",
        "fqmn": "App\\Services\\OutreachAI\\ConversionDetectionService@__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/OutreachAI/ConversionDetectionService.php::App\\Services\\OutreachAI\\ConversionDetectionService::detectConversionIntent",
        "fqmn": "App\\Services\\OutreachAI\\ConversionDetectionService@detectConversionIntent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ConversionService.php::App\\Services\\OutreachAI\\ConversionService::markAsConverted",
        "fqmn": "App\\Services\\OutreachAI\\ConversionService@markAsConverted",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ConversionService.php::App\\Services\\OutreachAI\\ConversionService::markAsReadyToConvert",
        "fqmn": "App\\Services\\OutreachAI\\ConversionService@markAsReadyToConvert",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/CrossSellEngine.php::App\\Services\\OutreachAI\\CrossSellEngine::__construct",
        "fqmn": "App\\Services\\OutreachAI\\CrossSellEngine@__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/OutreachAI/CrossSellEngine.php::App\\Services\\OutreachAI\\CrossSellEngine::detectOpportunities",
        "fqmn": "App\\Services\\OutreachAI\\CrossSellEngine@detectOpportunities",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/CrossSellEngine.php::App\\Services\\OutreachAI\\CrossSellEngine::detectOpportunity",
        "fqmn": "App\\Services\\OutreachAI\\CrossSellEngine@detectOpportunity",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/CustomerSuccess/MilestoneDetectionService.php::App\\Services\\OutreachAI\\CustomerSuccess\\MilestoneDetectionService::detect",
        "fqmn": "App\\Services\\OutreachAI\\CustomerSuccess\\MilestoneDetectionService@detect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/DataExtractionEngine.php::App\\Services\\OutreachAI\\DataExtractionEngine::extract",
        "fqmn": "App\\Services\\OutreachAI\\DataExtractionEngine@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/OutreachAI/DealClosingEngine.php::App\\Services\\OutreachAI\\DealClosingEngine::calculateBackoffDelay",
        "fqmn": "App\\Services\\OutreachAI\\DealClosingEngine@calculateBackoffDelay",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/DealClosingEngine.php::App\\Services\\OutreachAI\\DealClosingEngine::chooseStrategy",
        "fqmn": "App\\Services\\OutreachAI\\DealClosingEngine@chooseStrategy",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/DealClosingEngine.php::App\\Services\\OutreachAI\\DealClosingEngine::detectClosingMoment",
        "fqmn": "App\\Services\\OutreachAI\\DealClosingEngine@detectClosingMoment",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/DealClosingEngine.php::App\\Services\\OutreachAI\\DealClosingEngine::executeClosingAttempt",
        "fqmn": "App\\Services\\OutreachAI\\DealClosingEngine@executeClosingAttempt",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/DealClosingEngine.php::App\\Services\\OutreachAI\\DealClosingEngine::generateClosingPlan",
        "fqmn": "App\\Services\\OutreachAI\\DealClosingEngine@generateClosingPlan",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/DealClosingEngine.php::App\\Services\\OutreachAI\\DealClosingEngine::getAdaptiveDiscountPercentage",
        "fqmn": "App\\Services\\OutreachAI\\DealClosingEngine@getAdaptiveDiscountPercentage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/DealClosingEngine.php::App\\Services\\OutreachAI\\DealClosingEngine::getNextAllowedClosingTime",
        "fqmn": "App\\Services\\OutreachAI\\DealClosingEngine@getNextAllowedClosingTime",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/DealClosingEngine.php::App\\Services\\OutreachAI\\DealClosingEngine::getNextStep",
        "fqmn": "App\\Services\\OutreachAI\\DealClosingEngine@getNextStep",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/DealClosingEngine.php::App\\Services\\OutreachAI\\DealClosingEngine::shouldResolveObjectionsBeforeClosing",
        "fqmn": "App\\Services\\OutreachAI\\DealClosingEngine@shouldResolveObjectionsBeforeClosing",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/DeduplicationService.php::App\\Services\\OutreachAI\\DeduplicationService::ensureUnique",
        "fqmn": "App\\Services\\OutreachAI\\DeduplicationService@ensureUnique",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/EmotionalStateService.php::App\\Services\\OutreachAI\\EmotionalStateService::adjustGoalForEmotion",
        "fqmn": "App\\Services\\OutreachAI\\EmotionalStateService@adjustGoalForEmotion",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/EmotionalStateService.php::App\\Services\\OutreachAI\\EmotionalStateService::deriveEmotionalState",
        "fqmn": "App\\Services\\OutreachAI\\EmotionalStateService@deriveEmotionalState",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/EmotionalStateService.php::App\\Services\\OutreachAI\\EmotionalStateService::getTrajectoryModifier",
        "fqmn": "App\\Services\\OutreachAI\\EmotionalStateService@getTrajectoryModifier",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/EscalationIntelligenceEngine.php::App\\Services\\OutreachAI\\EscalationIntelligenceEngine::analyzeEscalationNeed",
        "fqmn": "App\\Services\\OutreachAI\\EscalationIntelligenceEngine@analyzeEscalationNeed",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/EscalationIntelligenceEngine.php::App\\Services\\OutreachAI\\EscalationIntelligenceEngine::routeToAgent",
        "fqmn": "App\\Services\\OutreachAI\\EscalationIntelligenceEngine@routeToAgent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/EscalationIntelligenceEngine.php::App\\Services\\OutreachAI\\EscalationIntelligenceEngine::shouldDelayEscalation",
        "fqmn": "App\\Services\\OutreachAI\\EscalationIntelligenceEngine@shouldDelayEscalation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/FailureLogger.php::App\\Services\\OutreachAI\\FailureLogger::aiFailed",
        "fqmn": "App\\Services\\OutreachAI\\FailureLogger@aiFailed",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/FailureLogger.php::App\\Services\\OutreachAI\\FailureLogger::appointmentFailed",
        "fqmn": "App\\Services\\OutreachAI\\FailureLogger@appointmentFailed",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/FailureLogger.php::App\\Services\\OutreachAI\\FailureLogger::followUpFailed",
        "fqmn": "App\\Services\\OutreachAI\\FailureLogger@followUpFailed",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/FailureLogger.php::App\\Services\\OutreachAI\\FailureLogger::getLeadFailures",
        "fqmn": "App\\Services\\OutreachAI\\FailureLogger@getLeadFailures",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/FailureLogger.php::App\\Services\\OutreachAI\\FailureLogger::getRecentFailures",
        "fqmn": "App\\Services\\OutreachAI\\FailureLogger@getRecentFailures",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/FailureLogger.php::App\\Services\\OutreachAI\\FailureLogger::getStats",
        "fqmn": "App\\Services\\OutreachAI\\FailureLogger@getStats",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/FailureLogger.php::App\\Services\\OutreachAI\\FailureLogger::messageFailed",
        "fqmn": "App\\Services\\OutreachAI\\FailureLogger@messageFailed",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/FallbackRecoveryEngine.php::App\\Services\\OutreachAI\\FallbackRecoveryEngine::canRecover",
        "fqmn": "App\\Services\\OutreachAI\\FallbackRecoveryEngine@canRecover",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/FallbackRecoveryEngine.php::App\\Services\\OutreachAI\\FallbackRecoveryEngine::executeWithFallback",
        "fqmn": "App\\Services\\OutreachAI\\FallbackRecoveryEngine@executeWithFallback",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/FallbackRecoveryEngine.php::App\\Services\\OutreachAI\\FallbackRecoveryEngine::generateSafeFallbackReply",
        "fqmn": "App\\Services\\OutreachAI\\FallbackRecoveryEngine@generateSafeFallbackReply",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/FallbackRecoveryEngine.php::App\\Services\\OutreachAI\\FallbackRecoveryEngine::getEngineHealth",
        "fqmn": "App\\Services\\OutreachAI\\FallbackRecoveryEngine@getEngineHealth",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/FallbackRecoveryEngine.php::App\\Services\\OutreachAI\\FallbackRecoveryEngine::getFallbackResponse",
        "fqmn": "App\\Services\\OutreachAI\\FallbackRecoveryEngine@getFallbackResponse",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/FeatureImportanceAnalyzer.php::App\\Services\\OutreachAI\\FeatureImportanceAnalyzer::analyzeImportance",
        "fqmn": "App\\Services\\OutreachAI\\FeatureImportanceAnalyzer@analyzeImportance",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/FeatureImportanceAnalyzer.php::App\\Services\\OutreachAI\\FeatureImportanceAnalyzer::getGlobalFeatureImportance",
        "fqmn": "App\\Services\\OutreachAI\\FeatureImportanceAnalyzer@getGlobalFeatureImportance",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/FunnelBehaviorEngine.php::App\\Services\\OutreachAI\\FunnelBehaviorEngine::analyzeAppointmentImpact",
        "fqmn": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@analyzeAppointmentImpact",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/FunnelBehaviorEngine.php::App\\Services\\OutreachAI\\FunnelBehaviorEngine::analyzeBudgetImpact",
        "fqmn": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@analyzeBudgetImpact",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/FunnelBehaviorEngine.php::App\\Services\\OutreachAI\\FunnelBehaviorEngine::analyzeClosingStrategyPerformance",
        "fqmn": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@analyzeClosingStrategyPerformance",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/FunnelBehaviorEngine.php::App\\Services\\OutreachAI\\FunnelBehaviorEngine::analyzeClosingTiming",
        "fqmn": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@analyzeClosingTiming",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/FunnelBehaviorEngine.php::App\\Services\\OutreachAI\\FunnelBehaviorEngine::analyzeConversationDNA",
        "fqmn": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@analyzeConversationDNA",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/FunnelBehaviorEngine.php::App\\Services\\OutreachAI\\FunnelBehaviorEngine::analyzeDiscountImpact",
        "fqmn": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@analyzeDiscountImpact",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/FunnelBehaviorEngine.php::App\\Services\\OutreachAI\\FunnelBehaviorEngine::analyzeObjectionImpact",
        "fqmn": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@analyzeObjectionImpact",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/FunnelBehaviorEngine.php::App\\Services\\OutreachAI\\FunnelBehaviorEngine::analyzeObjectionInfluenceOnClosing",
        "fqmn": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@analyzeObjectionInfluenceOnClosing",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/FunnelBehaviorEngine.php::App\\Services\\OutreachAI\\FunnelBehaviorEngine::analyzeTrialImpact",
        "fqmn": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@analyzeTrialImpact",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/FunnelBehaviorEngine.php::App\\Services\\OutreachAI\\FunnelBehaviorEngine::computeStageDifficultyScores",
        "fqmn": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@computeStageDifficultyScores",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/FunnelBehaviorEngine.php::App\\Services\\OutreachAI\\FunnelBehaviorEngine::computeTransitionProbabilities",
        "fqmn": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@computeTransitionProbabilities",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/FunnelBehaviorEngine.php::App\\Services\\OutreachAI\\FunnelBehaviorEngine::emit",
        "fqmn": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@emit",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/FunnelBehaviorEngine.php::App\\Services\\OutreachAI\\FunnelBehaviorEngine::outputInsights",
        "fqmn": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@outputInsights",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/FunnelBehaviorEngine.php::App\\Services\\OutreachAI\\FunnelBehaviorEngine::recordEvent",
        "fqmn": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@recordEvent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/FunnelBehaviorEngine.php::App\\Services\\OutreachAI\\FunnelBehaviorEngine::recordStageChange",
        "fqmn": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@recordStageChange",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/GrowthConversionStrategyService.php::App\\Services\\OutreachAI\\GrowthConversionStrategyService::nextAction",
        "fqmn": "App\\Services\\OutreachAI\\GrowthConversionStrategyService@nextAction",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/GrowthPredictionService.php::App\\Services\\OutreachAI\\GrowthPredictionService::analyze",
        "fqmn": "App\\Services\\OutreachAI\\GrowthPredictionService@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/OutreachAI/HandoffService.php::App\\Services\\OutreachAI\\HandoffService::determineHandoffNeeded",
        "fqmn": "App\\Services\\OutreachAI\\HandoffService@determineHandoffNeeded",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/HandoffService.php::App\\Services\\OutreachAI\\HandoffService::handleEmergencyEscalation",
        "fqmn": "App\\Services\\OutreachAI\\HandoffService@handleEmergencyEscalation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/HandoffService.php::App\\Services\\OutreachAI\\HandoffService::handleEscalation",
        "fqmn": "App\\Services\\OutreachAI\\HandoffService@handleEscalation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/HandoffService.php::App\\Services\\OutreachAI\\HandoffService::handleHandoffRequest",
        "fqmn": "App\\Services\\OutreachAI\\HandoffService@handleHandoffRequest",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/HandoffService.php::App\\Services\\OutreachAI\\HandoffService::handleHandoffToSpecificAgent",
        "fqmn": "App\\Services\\OutreachAI\\HandoffService@handleHandoffToSpecificAgent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/HandoffService.php::App\\Services\\OutreachAI\\HandoffService::initiateHandoff",
        "fqmn": "App\\Services\\OutreachAI\\HandoffService@initiateHandoff",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/HandoffService.php::App\\Services\\OutreachAI\\HandoffService::isDuplicateHandoffRequest",
        "fqmn": "App\\Services\\OutreachAI\\HandoffService@isDuplicateHandoffRequest",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/HandoffService.php::App\\Services\\OutreachAI\\HandoffService::notifyHumanAgent",
        "fqmn": "App\\Services\\OutreachAI\\HandoffService@notifyHumanAgent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/HandoffService.php::App\\Services\\OutreachAI\\HandoffService::prepareHandoffContext",
        "fqmn": "App\\Services\\OutreachAI\\HandoffService@prepareHandoffContext",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/HandoffService.php::App\\Services\\OutreachAI\\HandoffService::shouldPreventRepeatedEscalation",
        "fqmn": "App\\Services\\OutreachAI\\HandoffService@shouldPreventRepeatedEscalation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/HandoffService.php::App\\Services\\OutreachAI\\HandoffService::trackHandoffStatus",
        "fqmn": "App\\Services\\OutreachAI\\HandoffService@trackHandoffStatus",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/HumanHandoffService.php::App\\Services\\OutreachAI\\HumanHandoffService::__construct",
        "fqmn": "App\\Services\\OutreachAI\\HumanHandoffService@__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/OutreachAI/HumanHandoffService.php::App\\Services\\OutreachAI\\HumanHandoffService::activateNextInQueue",
        "fqmn": "App\\Services\\OutreachAI\\HumanHandoffService@activateNextInQueue",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/HumanHandoffService.php::App\\Services\\OutreachAI\\HumanHandoffService::getActiveConversation",
        "fqmn": "App\\Services\\OutreachAI\\HumanHandoffService@getActiveConversation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/HumanHandoffService.php::App\\Services\\OutreachAI\\HumanHandoffService::relayToCustomer",
        "fqmn": "App\\Services\\OutreachAI\\HumanHandoffService@relayToCustomer",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/HumanHandoffService.php::App\\Services\\OutreachAI\\HumanHandoffService::releaseHandoff",
        "fqmn": "App\\Services\\OutreachAI\\HumanHandoffService@releaseHandoff",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/HumanHandoffService.php::App\\Services\\OutreachAI\\HumanHandoffService::requestHandoff",
        "fqmn": "App\\Services\\OutreachAI\\HumanHandoffService@requestHandoff",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/IntentRouterService.php::App\\Services\\OutreachAI\\IntentRouterService::route",
        "fqmn": "App\\Services\\OutreachAI\\IntentRouterService@route",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/IntentTrajectoryService.php::App\\Services\\OutreachAI\\IntentTrajectoryService::determineTrajectory",
        "fqmn": "App\\Services\\OutreachAI\\IntentTrajectoryService@determineTrajectory",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/IntentTrajectoryService.php::App\\Services\\OutreachAI\\IntentTrajectoryService::shouldEscalateTrajectory",
        "fqmn": "App\\Services\\OutreachAI\\IntentTrajectoryService@shouldEscalateTrajectory",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/IntentTrajectoryService.php::App\\Services\\OutreachAI\\IntentTrajectoryService::shouldPauseTrajectory",
        "fqmn": "App\\Services\\OutreachAI\\IntentTrajectoryService@shouldPauseTrajectory",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/IntentTrajectoryService.php::App\\Services\\OutreachAI\\IntentTrajectoryService::shouldReturnToQualification",
        "fqmn": "App\\Services\\OutreachAI\\IntentTrajectoryService@shouldReturnToQualification",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/InterestScoringEngine.php::App\\Services\\OutreachAI\\InterestScoringEngine::score",
        "fqmn": "App\\Services\\OutreachAI\\InterestScoringEngine@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/OutreachAI/KnowledgeService.php::App\\Services\\OutreachAI\\KnowledgeService::create",
        "fqmn": "App\\Services\\OutreachAI\\KnowledgeService@create",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/KnowledgeService.php::App\\Services\\OutreachAI\\KnowledgeService::search",
        "fqmn": "App\\Services\\OutreachAI\\KnowledgeService@search",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/LanguageDetectionService.php::App\\Services\\OutreachAI\\LanguageDetectionService::detect",
        "fqmn": "App\\Services\\OutreachAI\\LanguageDetectionService@detect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/LanguageDetectionService.php::App\\Services\\OutreachAI\\LanguageDetectionService::detectDialect",
        "fqmn": "App\\Services\\OutreachAI\\LanguageDetectionService@detectDialect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/LeadPriorityService.php::App\\Services\\OutreachAI\\LeadPriorityService::calculateScore",
        "fqmn": "App\\Services\\OutreachAI\\LeadPriorityService@calculateScore",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/LeadPriorityService.php::App\\Services\\OutreachAI\\LeadPriorityService::categorize",
        "fqmn": "App\\Services\\OutreachAI\\LeadPriorityService@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/OutreachAI/LeadPriorityService.php::App\\Services\\OutreachAI\\LeadPriorityService::computePriority",
        "fqmn": "App\\Services\\OutreachAI\\LeadPriorityService@computePriority",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/LeadPriorityService.php::App\\Services\\OutreachAI\\LeadPriorityService::detectHandoffNeeds",
        "fqmn": "App\\Services\\OutreachAI\\LeadPriorityService@detectHandoffNeeds",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/LeadStageEngine.php::App\\Services\\OutreachAI\\LeadStageEngine::updateStage",
        "fqmn": "App\\Services\\OutreachAI\\LeadStageEngine@updateStage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/LeadWarmthEngine.php::App\\Services\\OutreachAI\\LeadWarmthEngine::analyze",
        "fqmn": "App\\Services\\OutreachAI\\LeadWarmthEngine@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/OutreachAI/LeadWarmthEngine.php::App\\Services\\OutreachAI\\LeadWarmthEngine::detectSimilarConverters",
        "fqmn": "App\\Services\\OutreachAI\\LeadWarmthEngine@detectSimilarConverters",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/LeadWarmthEngine.php::App\\Services\\OutreachAI\\LeadWarmthEngine::emit",
        "fqmn": "App\\Services\\OutreachAI\\LeadWarmthEngine@emit",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/MediaDownloadService.php::App\\Services\\OutreachAI\\MediaDownloadService::download",
        "fqmn": "App\\Services\\OutreachAI\\MediaDownloadService@download",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/MemorySummarizer.php::App\\Services\\OutreachAI\\MemorySummarizer::refresh",
        "fqmn": "App\\Services\\OutreachAI\\MemorySummarizer@refresh",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/MultiIntentDetectorService.php::App\\Services\\OutreachAI\\MultiIntentDetectorService::detect",
        "fqmn": "App\\Services\\OutreachAI\\MultiIntentDetectorService@detect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/NextActionEngine.php::App\\Services\\OutreachAI\\NextActionEngine::determineNextAction",
        "fqmn": "App\\Services\\OutreachAI\\NextActionEngine@determineNextAction",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/NudgeService.php::App\\Services\\OutreachAI\\NudgeService::__construct",
        "fqmn": "App\\Services\\OutreachAI\\NudgeService@__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/OutreachAI/NudgeService.php::App\\Services\\OutreachAI\\NudgeService::cancelPendingNudges",
        "fqmn": "App\\Services\\OutreachAI\\NudgeService@cancelPendingNudges",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/NudgeService.php::App\\Services\\OutreachAI\\NudgeService::processDueNudges",
        "fqmn": "App\\Services\\OutreachAI\\NudgeService@processDueNudges",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/NudgeService.php::App\\Services\\OutreachAI\\NudgeService::scheduleNudges",
        "fqmn": "App\\Services\\OutreachAI\\NudgeService@scheduleNudges",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ObjectionDetectionService.php::App\\Services\\OutreachAI\\ObjectionDetectionService::detect",
        "fqmn": "App\\Services\\OutreachAI\\ObjectionDetectionService@detect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ObjectionPriceMatrixService.php::App\\Services\\OutreachAI\\ObjectionPriceMatrixService::analyze",
        "fqmn": "App\\Services\\OutreachAI\\ObjectionPriceMatrixService@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/OutreachAI/ObjectionPriceMatrixService.php::App\\Services\\OutreachAI\\ObjectionPriceMatrixService::prepareAnalysis",
        "fqmn": "App\\Services\\OutreachAI\\ObjectionPriceMatrixService@prepareAnalysis",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ObjectionPriceMatrixService.php::App\\Services\\OutreachAI\\ObjectionPriceMatrixService::run",
        "fqmn": "App\\Services\\OutreachAI\\ObjectionPriceMatrixService@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/OutreachAI/ObjectionResponseService.php::App\\Services\\OutreachAI\\ObjectionResponseService::applyClosingLayerRebuttal",
        "fqmn": "App\\Services\\OutreachAI\\ObjectionResponseService@applyClosingLayerRebuttal",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ObjectionResponseService.php::App\\Services\\OutreachAI\\ObjectionResponseService::checkResolution",
        "fqmn": "App\\Services\\OutreachAI\\ObjectionResponseService@checkResolution",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ObjectionResponseService.php::App\\Services\\OutreachAI\\ObjectionResponseService::detectFinalObjectionMoments",
        "fqmn": "App\\Services\\OutreachAI\\ObjectionResponseService@detectFinalObjectionMoments",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ObjectionResponseService.php::App\\Services\\OutreachAI\\ObjectionResponseService::generateRebuttalStrategy",
        "fqmn": "App\\Services\\OutreachAI\\ObjectionResponseService@generateRebuttalStrategy",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/OnboardingEngine.php::App\\Services\\OutreachAI\\OnboardingEngine::advance",
        "fqmn": "App\\Services\\OutreachAI\\OnboardingEngine@advance",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/OnboardingEngine.php::App\\Services\\OutreachAI\\OnboardingEngine::getNextStep",
        "fqmn": "App\\Services\\OutreachAI\\OnboardingEngine@getNextStep",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/OptimizationWebhookService.php::App\\Services\\OutreachAI\\OptimizationWebhookService::notifyRollback",
        "fqmn": "App\\Services\\OutreachAI\\OptimizationWebhookService@notifyRollback",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/OptimizationWebhookService.php::App\\Services\\OutreachAI\\OptimizationWebhookService::notifySignificantAdjustment",
        "fqmn": "App\\Services\\OutreachAI\\OptimizationWebhookService@notifySignificantAdjustment",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Orchestration/DecisionMatrix.php::App\\Services\\OutreachAI\\Orchestration\\DecisionMatrix::evaluate",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\DecisionMatrix@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/OutreachAI/Orchestration/GuardedDecisionMatrix.php::App\\Services\\OutreachAI\\Orchestration\\GuardedDecisionMatrix::assertHardCloseAllowed",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\GuardedDecisionMatrix@assertHardCloseAllowed",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Orchestration/ModelRouter.php::App\\Services\\OutreachAI\\Orchestration\\ModelRouter::creative",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\ModelRouter@creative",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Orchestration/ModelRouter.php::App\\Services\\OutreachAI\\Orchestration\\ModelRouter::deepReasoning",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\ModelRouter@deepReasoning",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Orchestration/ModelRouter.php::App\\Services\\OutreachAI\\Orchestration\\ModelRouter::fastReasoning",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\ModelRouter@fastReasoning",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Orchestration/ModelRouter.php::App\\Services\\OutreachAI\\Orchestration\\ModelRouter::reasoning",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\ModelRouter@reasoning",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Orchestration/ModelRouter.php::App\\Services\\OutreachAI\\Orchestration\\ModelRouter::vision",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\ModelRouter@vision",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Orchestration/NextActionResolver.php::App\\Services\\OutreachAI\\Orchestration\\NextActionResolver::getPresentationConstraints",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\NextActionResolver@getPresentationConstraints",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Orchestration/NextActionResolver.php::App\\Services\\OutreachAI\\Orchestration\\NextActionResolver::isStopConditionMet",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\NextActionResolver@isStopConditionMet",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Orchestration/NextActionResolver.php::App\\Services\\OutreachAI\\Orchestration\\NextActionResolver::resolve",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\NextActionResolver@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/OutreachAI/Orchestration/ResponseComposerEngine.php::App\\Services\\OutreachAI\\Orchestration\\ResponseComposerEngine::__construct",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\ResponseComposerEngine@__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/OutreachAI/Orchestration/ResponseComposerEngine.php::App\\Services\\OutreachAI\\Orchestration\\ResponseComposerEngine::compose",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\ResponseComposerEngine@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/OutreachAI/Orchestration/RollingSummaryService.php::App\\Services\\OutreachAI\\Orchestration\\RollingSummaryService::__construct",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\RollingSummaryService@__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/OutreachAI/Orchestration/RollingSummaryService.php::App\\Services\\OutreachAI\\Orchestration\\RollingSummaryService::getRollingSummary",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\RollingSummaryService@getRollingSummary",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Orchestration/SalesStateDeriver.php::App\\Services\\OutreachAI\\Orchestration\\SalesStateDeriver::derive",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\SalesStateDeriver@derive",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Orchestration/SignalContext.php::App\\Services\\OutreachAI\\Orchestration\\SignalContext::__construct",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\SignalContext@__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/OutreachAI/Orchestration/SignalContext.php::App\\Services\\OutreachAI\\Orchestration\\SignalContext::fromModels",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\SignalContext@fromModels",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Orchestration/SignalDirector.php::App\\Services\\OutreachAI\\Orchestration\\SignalDirector::__construct",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\SignalDirector@__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/OutreachAI/Orchestration/SignalDirector.php::App\\Services\\OutreachAI\\Orchestration\\SignalDirector::orchestrate",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\SignalDirector@orchestrate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Orchestration/SignalDirector.php::App\\Services\\OutreachAI\\Orchestration\\SignalDirector::orchestrateDeep",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\SignalDirector@orchestrateDeep",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Orchestration/SignalDirector.php::App\\Services\\OutreachAI\\Orchestration\\SignalDirector::orchestrateFast",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\SignalDirector@orchestrateFast",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Orchestration/SignalDirector.php::App\\Services\\OutreachAI\\Orchestration\\SignalDirector::warmupContext",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\SignalDirector@warmupContext",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Orchestration/StrategyAuthorityResolver.php::App\\Services\\OutreachAI\\Orchestration\\StrategyAuthorityResolver::isActionAllowed",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\StrategyAuthorityResolver@isActionAllowed",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Orchestration/StrategyAuthorityResolver.php::App\\Services\\OutreachAI\\Orchestration\\StrategyAuthorityResolver::isFallbackAllowed",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\StrategyAuthorityResolver@isFallbackAllowed",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Orchestration/StrategyAuthorityResolver.php::App\\Services\\OutreachAI\\Orchestration\\StrategyAuthorityResolver::resolve",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\StrategyAuthorityResolver@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/OutreachAI/OutreachIntentClassifier.php::App\\Services\\OutreachAI\\OutreachIntentClassifier::classify",
        "fqmn": "App\\Services\\OutreachAI\\OutreachIntentClassifier@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/OutreachAI/PaymentEngine/PaymentPatternAnalysisService.php::App\\Services\\OutreachAI\\PaymentEngine\\PaymentPatternAnalysisService::analyze",
        "fqmn": "App\\Services\\OutreachAI\\PaymentEngine\\PaymentPatternAnalysisService@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/OutreachAI/PersonaConversionStrategyService.php::App\\Services\\OutreachAI\\PersonaConversionStrategyService::getStrategy",
        "fqmn": "App\\Services\\OutreachAI\\PersonaConversionStrategyService@getStrategy",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PersonaDetectionService.php::App\\Services\\OutreachAI\\PersonaDetectionService::detect",
        "fqmn": "App\\Services\\OutreachAI\\PersonaDetectionService@detect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PlanRecommendationService.php::App\\Services\\OutreachAI\\PlanRecommendationService::emit",
        "fqmn": "App\\Services\\OutreachAI\\PlanRecommendationService@emit",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PlanRecommendationService.php::App\\Services\\OutreachAI\\PlanRecommendationService::recommend",
        "fqmn": "App\\Services\\OutreachAI\\PlanRecommendationService@recommend",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PredictionABTesting.php::App\\Services\\OutreachAI\\PredictionABTesting::applyVariantWeights",
        "fqmn": "App\\Services\\OutreachAI\\PredictionABTesting@applyVariantWeights",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PredictionABTesting.php::App\\Services\\OutreachAI\\PredictionABTesting::assignVariant",
        "fqmn": "App\\Services\\OutreachAI\\PredictionABTesting@assignVariant",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PredictionABTesting.php::App\\Services\\OutreachAI\\PredictionABTesting::getVariantStats",
        "fqmn": "App\\Services\\OutreachAI\\PredictionABTesting@getVariantStats",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PredictionABTesting.php::App\\Services\\OutreachAI\\PredictionABTesting::getVariantWeights",
        "fqmn": "App\\Services\\OutreachAI\\PredictionABTesting@getVariantWeights",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PredictionABTesting.php::App\\Services\\OutreachAI\\PredictionABTesting::trackVariantOutcome",
        "fqmn": "App\\Services\\OutreachAI\\PredictionABTesting@trackVariantOutcome",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PredictionAccuracyTracker.php::App\\Services\\OutreachAI\\PredictionAccuracyTracker::getAccuracyStats",
        "fqmn": "App\\Services\\OutreachAI\\PredictionAccuracyTracker@getAccuracyStats",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PredictionAccuracyTracker.php::App\\Services\\OutreachAI\\PredictionAccuracyTracker::trackOutcome",
        "fqmn": "App\\Services\\OutreachAI\\PredictionAccuracyTracker@trackOutcome",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PredictionConfidenceIntervals.php::App\\Services\\OutreachAI\\PredictionConfidenceIntervals::calculateIntervals",
        "fqmn": "App\\Services\\OutreachAI\\PredictionConfidenceIntervals@calculateIntervals",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PredictionEngine.php::App\\Services\\OutreachAI\\PredictionEngine::buildFeatureVector",
        "fqmn": "App\\Services\\OutreachAI\\PredictionEngine@buildFeatureVector",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PredictionEngine.php::App\\Services\\OutreachAI\\PredictionEngine::calculateClosingReadinessScore",
        "fqmn": "App\\Services\\OutreachAI\\PredictionEngine@calculateClosingReadinessScore",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PredictionEngine.php::App\\Services\\OutreachAI\\PredictionEngine::computeNextAction",
        "fqmn": "App\\Services\\OutreachAI\\PredictionEngine@computeNextAction",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PredictionEngine.php::App\\Services\\OutreachAI\\PredictionEngine::computeProbabilities",
        "fqmn": "App\\Services\\OutreachAI\\PredictionEngine@computeProbabilities",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PredictionEngine.php::App\\Services\\OutreachAI\\PredictionEngine::detectProbabilitySpike",
        "fqmn": "App\\Services\\OutreachAI\\PredictionEngine@detectProbabilitySpike",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PredictionEngine.php::App\\Services\\OutreachAI\\PredictionEngine::emit",
        "fqmn": "App\\Services\\OutreachAI\\PredictionEngine@emit",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PredictionEngine.php::App\\Services\\OutreachAI\\PredictionEngine::predict",
        "fqmn": "App\\Services\\OutreachAI\\PredictionEngine@predict",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PredictionEngine.php::App\\Services\\OutreachAI\\PredictionEngine::predictClosingWindow",
        "fqmn": "App\\Services\\OutreachAI\\PredictionEngine@predictClosingWindow",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PredictionExplanationGenerator.php::App\\Services\\OutreachAI\\PredictionExplanationGenerator::generateExplanation",
        "fqmn": "App\\Services\\OutreachAI\\PredictionExplanationGenerator@generateExplanation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PredictionPerformanceMonitor.php::App\\Services\\OutreachAI\\PredictionPerformanceMonitor::getPerformanceStats",
        "fqmn": "App\\Services\\OutreachAI\\PredictionPerformanceMonitor@getPerformanceStats",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PredictionPerformanceMonitor.php::App\\Services\\OutreachAI\\PredictionPerformanceMonitor::recordPredictionTime",
        "fqmn": "App\\Services\\OutreachAI\\PredictionPerformanceMonitor@recordPredictionTime",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PredictionRecalculationService.php::App\\Services\\OutreachAI\\PredictionRecalculationService::recalculateOnAppointmentScheduled",
        "fqmn": "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnAppointmentScheduled",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PredictionRecalculationService.php::App\\Services\\OutreachAI\\PredictionRecalculationService::recalculateOnDiscountInteraction",
        "fqmn": "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnDiscountInteraction",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PredictionRecalculationService.php::App\\Services\\OutreachAI\\PredictionRecalculationService::recalculateOnFunnelStageChange",
        "fqmn": "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnFunnelStageChange",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PredictionRecalculationService.php::App\\Services\\OutreachAI\\PredictionRecalculationService::recalculateOnInboundMessage",
        "fqmn": "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnInboundMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PredictionRecalculationService.php::App\\Services\\OutreachAI\\PredictionRecalculationService::recalculateOnObjectionDetected",
        "fqmn": "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnObjectionDetected",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PredictionRecalculationService.php::App\\Services\\OutreachAI\\PredictionRecalculationService::recalculateOnOutboundMessage",
        "fqmn": "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnOutboundMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PredictionRecalculationService.php::App\\Services\\OutreachAI\\PredictionRecalculationService::recalculateOnPricingInteraction",
        "fqmn": "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnPricingInteraction",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PredictionRecalculationService.php::App\\Services\\OutreachAI\\PredictionRecalculationService::recalculateOnReengagementFired",
        "fqmn": "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnReengagementFired",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PredictionRecalculationService.php::App\\Services\\OutreachAI\\PredictionRecalculationService::recalculateOnTrialExtended",
        "fqmn": "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnTrialExtended",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PredictionRecalculationService.php::App\\Services\\OutreachAI\\PredictionRecalculationService::recalculateOnWarmthStageChange",
        "fqmn": "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnWarmthStageChange",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PriceMatchService.php::App\\Services\\OutreachAI\\PriceMatchService::suggestBestPlan",
        "fqmn": "App\\Services\\OutreachAI\\PriceMatchService@suggestBestPlan",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PricingPrimitives.php::App\\Services\\OutreachAI\\PricingPrimitives::buildResponse",
        "fqmn": "App\\Services\\OutreachAI\\PricingPrimitives@buildResponse",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PricingPrimitives.php::App\\Services\\OutreachAI\\PricingPrimitives::get",
        "fqmn": "App\\Services\\OutreachAI\\PricingPrimitives@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/OutreachAI/PricingPrimitives.php::App\\Services\\OutreachAI\\PricingPrimitives::getAvailablePrimitives",
        "fqmn": "App\\Services\\OutreachAI\\PricingPrimitives@getAvailablePrimitives",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PricingPrimitives.php::App\\Services\\OutreachAI\\PricingPrimitives::getScenarioResponse",
        "fqmn": "App\\Services\\OutreachAI\\PricingPrimitives@getScenarioResponse",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PricingPrimitives.php::App\\Services\\OutreachAI\\PricingPrimitives::isAvailable",
        "fqmn": "App\\Services\\OutreachAI\\PricingPrimitives@isAvailable",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PromptExperimentService.php::App\\Services\\OutreachAI\\PromptExperimentService::attachMetadata",
        "fqmn": "App\\Services\\OutreachAI\\PromptExperimentService@attachMetadata",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PromptExperimentService.php::App\\Services\\OutreachAI\\PromptExperimentService::getInstruction",
        "fqmn": "App\\Services\\OutreachAI\\PromptExperimentService@getInstruction",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PromptExperimentService.php::App\\Services\\OutreachAI\\PromptExperimentService::getVariant",
        "fqmn": "App\\Services\\OutreachAI\\PromptExperimentService@getVariant",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getAgencyCompetitiveComparison",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getAgencyCompetitiveComparison",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getAgencyEducationBlock",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getAgencyEducationBlock",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getAgencyFollowUpTemplate",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getAgencyFollowUpTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getAgencyPricingExplanation",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getAgencyPricingExplanation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getAgencyRebuttal",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getAgencyRebuttal",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getAppointmentConfirmation",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getAppointmentConfirmation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getAppointmentFollowup",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getAppointmentFollowup",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getClosingGoalPrompt",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getClosingGoalPrompt",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getCorrectionInstructions",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getCorrectionInstructions",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getCounterProposalTemplate",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getCounterProposalTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getGoalInstructions",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getGoalInstructions",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getMissedAppointmentRecovery",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getMissedAppointmentRecovery",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getObjectionRebuttal",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getObjectionRebuttal",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getPromptForLanguageAndDialect",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getPromptForLanguageAndDialect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getReengagementTemplate",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getReengagementTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getSentimentModifier",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getSentimentModifier",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getSubscriptionAgencyGrowth",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getSubscriptionAgencyGrowth",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getSubscriptionAutomation",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getSubscriptionAutomation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getSubscriptionFeaturePitch",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getSubscriptionFeaturePitch",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getSubscriptionFunnelProfessionalism",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getSubscriptionFunnelProfessionalism",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getSubscriptionFunnelRevenueGrowth",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getSubscriptionFunnelRevenueGrowth",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getSubscriptionFunnelTimeSaver",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getSubscriptionFunnelTimeSaver",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getSubscriptionProblemSolution",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getSubscriptionProblemSolution",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getSubscriptionRiskReversal",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getSubscriptionRiskReversal",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getSubscriptionROI",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getSubscriptionROI",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getSubscriptionRoleCTA",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getSubscriptionRoleCTA",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getSubscriptionTimeSaver",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getSubscriptionTimeSaver",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getSubscriptionTrialInvite",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getSubscriptionTrialInvite",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getSubscriptionValuePitch",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getSubscriptionValuePitch",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getSystemPromptForLanguage",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getSystemPromptForLanguage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getTrajectoryStageInstructions",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getTrajectoryStageInstructions",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getTrajectoryTemplate",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getTrajectoryTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getTrialDirectCTA",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getTrialDirectCTA",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getTrialSoftCTA",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getTrialSoftCTA",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getTrialValuePitch",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getTrialValuePitch",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::matchUserStyle",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@matchUserStyle",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Prompts/GuardPromptBuilder.php::App\\Services\\OutreachAI\\Prompts\\GuardPromptBuilder::build",
        "fqmn": "App\\Services\\OutreachAI\\Prompts\\GuardPromptBuilder@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/OutreachAI/Prompts/GuardPromptBuilder.php::App\\Services\\OutreachAI\\Prompts\\GuardPromptBuilder::isGuardMode",
        "fqmn": "App\\Services\\OutreachAI\\Prompts\\GuardPromptBuilder@isGuardMode",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PropertyMatcher/LeadPropertyAffinityService.php::App\\Services\\OutreachAI\\PropertyMatcher\\LeadPropertyAffinityService::analyze",
        "fqmn": "App\\Services\\OutreachAI\\PropertyMatcher\\LeadPropertyAffinityService@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/OutreachAI/PropertyMatcher/PropertyRecommendationEngine.php::App\\Services\\OutreachAI\\PropertyMatcher\\PropertyRecommendationEngine::recommend",
        "fqmn": "App\\Services\\OutreachAI\\PropertyMatcher\\PropertyRecommendationEngine@recommend",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Qualification/IndustrySegmentationEngine.php::App\\Services\\OutreachAI\\Qualification\\IndustrySegmentationEngine::segment",
        "fqmn": "App\\Services\\OutreachAI\\Qualification\\IndustrySegmentationEngine@segment",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Qualification/QualificationFieldExtractor.php::App\\Services\\OutreachAI\\Qualification\\QualificationFieldExtractor::extract",
        "fqmn": "App\\Services\\OutreachAI\\Qualification\\QualificationFieldExtractor@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/OutreachAI/Qualification/QualificationFlowDirector.php::App\\Services\\OutreachAI\\Qualification\\QualificationFlowDirector::determineNextStep",
        "fqmn": "App\\Services\\OutreachAI\\Qualification\\QualificationFlowDirector@determineNextStep",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Qualification/QualificationFlowDirector.php::App\\Services\\OutreachAI\\Qualification\\QualificationFlowDirector::updateQualificationState",
        "fqmn": "App\\Services\\OutreachAI\\Qualification\\QualificationFlowDirector@updateQualificationState",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Qualification/QualificationGapDetector.php::App\\Services\\OutreachAI\\Qualification\\QualificationGapDetector::detectGaps",
        "fqmn": "App\\Services\\OutreachAI\\Qualification\\QualificationGapDetector@detectGaps",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Qualification/QualificationPipeline.php::App\\Services\\OutreachAI\\Qualification\\QualificationPipeline::__construct",
        "fqmn": "App\\Services\\OutreachAI\\Qualification\\QualificationPipeline@__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/OutreachAI/Qualification/QualificationPipeline.php::App\\Services\\OutreachAI\\Qualification\\QualificationPipeline::process",
        "fqmn": "App\\Services\\OutreachAI\\Qualification\\QualificationPipeline@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/OutreachAI/Qualification/RealTimeQualificationEngine.php::App\\Services\\OutreachAI\\Qualification\\RealTimeQualificationEngine::__construct",
        "fqmn": "App\\Services\\OutreachAI\\Qualification\\RealTimeQualificationEngine@__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/OutreachAI/Qualification/RealTimeQualificationEngine.php::App\\Services\\OutreachAI\\Qualification\\RealTimeQualificationEngine::emit",
        "fqmn": "App\\Services\\OutreachAI\\Qualification\\RealTimeQualificationEngine@emit",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Qualification/RealTimeQualificationEngine.php::App\\Services\\OutreachAI\\Qualification\\RealTimeQualificationEngine::qualify",
        "fqmn": "App\\Services\\OutreachAI\\Qualification\\RealTimeQualificationEngine@qualify",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Qualification/SmartQuestionGenerator.php::App\\Services\\OutreachAI\\Qualification\\SmartQuestionGenerator::generate",
        "fqmn": "App\\Services\\OutreachAI\\Qualification\\SmartQuestionGenerator@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/OutreachAI/Qualification/SmartQuestionGenerator.php::App\\Services\\OutreachAI\\Qualification\\SmartQuestionGenerator::generateContextual",
        "fqmn": "App\\Services\\OutreachAI\\Qualification\\SmartQuestionGenerator@generateContextual",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/QualificationExtractionService.php::App\\Services\\OutreachAI\\QualificationExtractionService::__construct",
        "fqmn": "App\\Services\\OutreachAI\\QualificationExtractionService@__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/OutreachAI/QualificationExtractionService.php::App\\Services\\OutreachAI\\QualificationExtractionService::extract",
        "fqmn": "App\\Services\\OutreachAI\\QualificationExtractionService@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/OutreachAI/Quality/PersonaAdaptationAgent.php::App\\Services\\OutreachAI\\Quality\\PersonaAdaptationAgent::__construct",
        "fqmn": "App\\Services\\OutreachAI\\Quality\\PersonaAdaptationAgent@__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/OutreachAI/Quality/PersonaAdaptationAgent.php::App\\Services\\OutreachAI\\Quality\\PersonaAdaptationAgent::adaptResponse",
        "fqmn": "App\\Services\\OutreachAI\\Quality\\PersonaAdaptationAgent@adaptResponse",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Quality/VerificationAgent.php::App\\Services\\OutreachAI\\Quality\\VerificationAgent::__construct",
        "fqmn": "App\\Services\\OutreachAI\\Quality\\VerificationAgent@__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/OutreachAI/Quality/VerificationAgent.php::App\\Services\\OutreachAI\\Quality\\VerificationAgent::verifyAndCorrect",
        "fqmn": "App\\Services\\OutreachAI\\Quality\\VerificationAgent@verifyAndCorrect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/RealTimeOptimizationEngine.php::App\\Services\\OutreachAI\\RealTimeOptimizationEngine::__construct",
        "fqmn": "App\\Services\\OutreachAI\\RealTimeOptimizationEngine@__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/OutreachAI/RealTimeOptimizationEngine.php::App\\Services\\OutreachAI\\RealTimeOptimizationEngine::buildFeedbackVector",
        "fqmn": "App\\Services\\OutreachAI\\RealTimeOptimizationEngine@buildFeedbackVector",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/RealTimeOptimizationEngine.php::App\\Services\\OutreachAI\\RealTimeOptimizationEngine::computeAdjustments",
        "fqmn": "App\\Services\\OutreachAI\\RealTimeOptimizationEngine@computeAdjustments",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/RealTimeOptimizationEngine.php::App\\Services\\OutreachAI\\RealTimeOptimizationEngine::emitOptimizationDirectives",
        "fqmn": "App\\Services\\OutreachAI\\RealTimeOptimizationEngine@emitOptimizationDirectives",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/RealTimeOptimizationEngine.php::App\\Services\\OutreachAI\\RealTimeOptimizationEngine::persistAdjustments",
        "fqmn": "App\\Services\\OutreachAI\\RealTimeOptimizationEngine@persistAdjustments",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/RealTimeOptimizationEngine.php::App\\Services\\OutreachAI\\RealTimeOptimizationEngine::recordSignal",
        "fqmn": "App\\Services\\OutreachAI\\RealTimeOptimizationEngine@recordSignal",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ReengagementDetectionService.php::App\\Services\\OutreachAI\\ReengagementDetectionService::detectStaleConversations",
        "fqmn": "App\\Services\\OutreachAI\\ReengagementDetectionService@detectStaleConversations",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ReengagementDetectionService.php::App\\Services\\OutreachAI\\ReengagementDetectionService::detectStallNearClosing",
        "fqmn": "App\\Services\\OutreachAI\\ReengagementDetectionService@detectStallNearClosing",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ReengagementDetectionService.php::App\\Services\\OutreachAI\\ReengagementDetectionService::generateAggressiveWarmingStrategy",
        "fqmn": "App\\Services\\OutreachAI\\ReengagementDetectionService@generateAggressiveWarmingStrategy",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ReferralEngine/ReferralDetectionService.php::App\\Services\\OutreachAI\\ReferralEngine\\ReferralDetectionService::detect",
        "fqmn": "App\\Services\\OutreachAI\\ReferralEngine\\ReferralDetectionService@detect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/RepetitionHandlingService.php::App\\Services\\OutreachAI\\RepetitionHandlingService::analyze",
        "fqmn": "App\\Services\\OutreachAI\\RepetitionHandlingService@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/OutreachAI/RepetitionHandlingService.php::App\\Services\\OutreachAI\\RepetitionHandlingService::getElaborationInstruction",
        "fqmn": "App\\Services\\OutreachAI\\RepetitionHandlingService@getElaborationInstruction",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/RepetitionHandlingService.php::App\\Services\\OutreachAI\\RepetitionHandlingService::recordAnswer",
        "fqmn": "App\\Services\\OutreachAI\\RepetitionHandlingService@recordAnswer",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ReplyEvaluationService.php::App\\Services\\OutreachAI\\ReplyEvaluationService::evaluate",
        "fqmn": "App\\Services\\OutreachAI\\ReplyEvaluationService@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/OutreachAI/RetrievalConstraintService.php::App\\Services\\OutreachAI\\RetrievalConstraintService::filterContext",
        "fqmn": "App\\Services\\OutreachAI\\RetrievalConstraintService@filterContext",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/RetrievalConstraintService.php::App\\Services\\OutreachAI\\RetrievalConstraintService::getConstrainedContext",
        "fqmn": "App\\Services\\OutreachAI\\RetrievalConstraintService@getConstrainedContext",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/RevenueEngine/ARMEOrchestrator.php::App\\Services\\OutreachAI\\RevenueEngine\\ARMEOrchestrator::__construct",
        "fqmn": "App\\Services\\OutreachAI\\RevenueEngine\\ARMEOrchestrator@__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/OutreachAI/RevenueEngine/ARMEOrchestrator.php::App\\Services\\OutreachAI\\RevenueEngine\\ARMEOrchestrator::processInbound",
        "fqmn": "App\\Services\\OutreachAI\\RevenueEngine\\ARMEOrchestrator@processInbound",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/RevenueEngine/DiscountDecisionEngine.php::App\\Services\\OutreachAI\\RevenueEngine\\DiscountDecisionEngine::decide",
        "fqmn": "App\\Services\\OutreachAI\\RevenueEngine\\DiscountDecisionEngine@decide",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/RevenueEngine/RevenueRiskScorer.php::App\\Services\\OutreachAI\\RevenueEngine\\RevenueRiskScorer::calculate",
        "fqmn": "App\\Services\\OutreachAI\\RevenueEngine\\RevenueRiskScorer@calculate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/RevenueEngine/RevenueRiskScorer.php::App\\Services\\OutreachAI\\RevenueEngine\\RevenueRiskScorer::score",
        "fqmn": "App\\Services\\OutreachAI\\RevenueEngine\\RevenueRiskScorer@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/OutreachAI/RevenueEngine/RevenueUpgradePredictor.php::App\\Services\\OutreachAI\\RevenueEngine\\RevenueUpgradePredictor::predict",
        "fqmn": "App\\Services\\OutreachAI\\RevenueEngine\\RevenueUpgradePredictor@predict",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/RevenueEngine/RevenueUrgencyModel.php::App\\Services\\OutreachAI\\RevenueEngine\\RevenueUrgencyModel::classify",
        "fqmn": "App\\Services\\OutreachAI\\RevenueEngine\\RevenueUrgencyModel@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/OutreachAI/RevenueEngine/RevenueUrgencyModel.php::App\\Services\\OutreachAI\\RevenueEngine\\RevenueUrgencyModel::predict",
        "fqmn": "App\\Services\\OutreachAI\\RevenueEngine\\RevenueUrgencyModel@predict",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/RevenueEngine/UpgradeCTAEngine.php::App\\Services\\OutreachAI\\RevenueEngine\\UpgradeCTAEngine::generate",
        "fqmn": "App\\Services\\OutreachAI\\RevenueEngine\\UpgradeCTAEngine@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/OutreachAI/RevenueEngine/UpgradeCTAEngine.php::App\\Services\\OutreachAI\\RevenueEngine\\UpgradeCTAEngine::selectCTA",
        "fqmn": "App\\Services\\OutreachAI\\RevenueEngine\\UpgradeCTAEngine@selectCTA",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/RevenueEngine/UpgradeOpportunityDetector.php::App\\Services\\OutreachAI\\RevenueEngine\\UpgradeOpportunityDetector::detect",
        "fqmn": "App\\Services\\OutreachAI\\RevenueEngine\\UpgradeOpportunityDetector@detect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Sales/CTAGenerator.php::App\\Services\\OutreachAI\\Sales\\CTAGenerator::generate",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\CTAGenerator@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/OutreachAI/Sales/CTAGenerator.php::App\\Services\\OutreachAI\\Sales\\CTAGenerator::selectCTAType",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\CTAGenerator@selectCTAType",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Sales/DemoPitchEngine.php::App\\Services\\OutreachAI\\Sales\\DemoPitchEngine::detectDemoInterest",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\DemoPitchEngine@detectDemoInterest",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Sales/DemoPitchEngine.php::App\\Services\\OutreachAI\\Sales\\DemoPitchEngine::generatePitch",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\DemoPitchEngine@generatePitch",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Sales/DemoPitchEngine.php::App\\Services\\OutreachAI\\Sales\\DemoPitchEngine::scheduleDemo",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\DemoPitchEngine@scheduleDemo",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Sales/FeatureRenderer.php::App\\Services\\OutreachAI\\Sales\\FeatureRenderer::getFeatureFacts",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\FeatureRenderer@getFeatureFacts",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Sales/FeatureRenderer.php::App\\Services\\OutreachAI\\Sales\\FeatureRenderer::render",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\FeatureRenderer@render",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Sales/FeatureRenderer.php::App\\Services\\OutreachAI\\Sales\\FeatureRenderer::shouldHandle",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\FeatureRenderer@shouldHandle",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Sales/IntentToBuyDetector.php::App\\Services\\OutreachAI\\Sales\\IntentToBuyDetector::detect",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\IntentToBuyDetector@detect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Sales/MicroIntentEngine.php::App\\Services\\OutreachAI\\Sales\\MicroIntentEngine::applyToConversation",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\MicroIntentEngine@applyToConversation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Sales/MicroIntentEngine.php::App\\Services\\OutreachAI\\Sales\\MicroIntentEngine::detectMicroIntents",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\MicroIntentEngine@detectMicroIntents",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Sales/OfferWindowEngine.php::App\\Services\\OutreachAI\\Sales\\OfferWindowEngine::detectWindow",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\OfferWindowEngine@detectWindow",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Sales/PainPointExtractor.php::App\\Services\\OutreachAI\\Sales\\PainPointExtractor::extract",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PainPointExtractor@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/OutreachAI/Sales/PricingAuthority.php::App\\Services\\OutreachAI\\Sales\\PricingAuthority::getLivePricingSummary",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingAuthority@getLivePricingSummary",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingAuthority.php::App\\Services\\OutreachAI\\Sales\\PricingAuthority::getLlmPricingGuard",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingAuthority@getLlmPricingGuard",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingAuthority.php::App\\Services\\OutreachAI\\Sales\\PricingAuthority::intercept",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingAuthority@intercept",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingAuthority.php::App\\Services\\OutreachAI\\Sales\\PricingAuthority::isPricingIntent",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingAuthority@isPricingIntent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingAuthority.php::App\\Services\\OutreachAI\\Sales\\PricingAuthority::resolveTier",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingAuthority@resolveTier",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingRenderer.php::App\\Services\\OutreachAI\\Sales\\PricingRenderer::getPricingFacts",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingRenderer@getPricingFacts",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingRenderer.php::App\\Services\\OutreachAI\\Sales\\PricingRenderer::render",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingRenderer@render",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingRenderer.php::App\\Services\\OutreachAI\\Sales\\PricingRenderer::shouldHandle",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingRenderer@shouldHandle",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingResolver.php::App\\Services\\OutreachAI\\Sales\\PricingResolver::getAllPlans",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingResolver@getAllPlans",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingResolver.php::App\\Services\\OutreachAI\\Sales\\PricingResolver::getCanonicalContract",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingResolver@getCanonicalContract",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingResolver.php::App\\Services\\OutreachAI\\Sales\\PricingResolver::getPricingContext",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingResolver@getPricingContext",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingResolver.php::App\\Services\\OutreachAI\\Sales\\PricingResolver::resolve",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingResolver@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/OutreachAI/Sales/PricingResolver.php::App\\Services\\OutreachAI\\Sales\\PricingResolver::validateLimits",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingResolver@validateLimits",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingResolver.php::App\\Services\\OutreachAI\\Sales\\PricingResolver::validateNoUnauthorizedPricing",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingResolver@validateNoUnauthorizedPricing",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingResolver.php::App\\Services\\OutreachAI\\Sales\\PricingResolver::validateReply",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingResolver@validateReply",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Sales/SalesAccelerationPipeline.php::App\\Services\\OutreachAI\\Sales\\SalesAccelerationPipeline::__construct",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\SalesAccelerationPipeline@__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/OutreachAI/Sales/SalesAccelerationPipeline.php::App\\Services\\OutreachAI\\Sales\\SalesAccelerationPipeline::accelerate",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\SalesAccelerationPipeline@accelerate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Sales/ValuePropositionEngine.php::App\\Services\\OutreachAI\\Sales\\ValuePropositionEngine::generate",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\ValuePropositionEngine@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/OutreachAI/Sales/VariantTestingService.php::App\\Services\\OutreachAI\\Sales\\VariantTestingService::getVariant",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\VariantTestingService@getVariant",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Sales/VariantTestingService.php::App\\Services\\OutreachAI\\Sales\\VariantTestingService::recordSuccess",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\VariantTestingService@recordSuccess",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/SalesAcceleration/CTASelector.php::App\\Services\\OutreachAI\\SalesAcceleration\\CTASelector::select",
        "fqmn": "App\\Services\\OutreachAI\\SalesAcceleration\\CTASelector@select",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/SalesAcceleration/MicroPitchLibrary.php::App\\Services\\OutreachAI\\SalesAcceleration\\MicroPitchLibrary::getPitch",
        "fqmn": "App\\Services\\OutreachAI\\SalesAcceleration\\MicroPitchLibrary@getPitch",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/SalesAcceleration/MicroPitchLibrary.php::App\\Services\\OutreachAI\\SalesAcceleration\\MicroPitchLibrary::selectPitch",
        "fqmn": "App\\Services\\OutreachAI\\SalesAcceleration\\MicroPitchLibrary@selectPitch",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/SalesAcceleration/SalesAccelerationEngine.php::App\\Services\\OutreachAI\\SalesAcceleration\\SalesAccelerationEngine::__construct",
        "fqmn": "App\\Services\\OutreachAI\\SalesAcceleration\\SalesAccelerationEngine@__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/OutreachAI/SalesAcceleration/SalesAccelerationEngine.php::App\\Services\\OutreachAI\\SalesAcceleration\\SalesAccelerationEngine::accelerate",
        "fqmn": "App\\Services\\OutreachAI\\SalesAcceleration\\SalesAccelerationEngine@accelerate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/SalesAcceleration/SalesDirectiveEngine.php::App\\Services\\OutreachAI\\SalesAcceleration\\SalesDirectiveEngine::generateDirective",
        "fqmn": "App\\Services\\OutreachAI\\SalesAcceleration\\SalesDirectiveEngine@generateDirective",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/SalesAcceleration/SalesIntentDetector.php::App\\Services\\OutreachAI\\SalesAcceleration\\SalesIntentDetector::detect",
        "fqmn": "App\\Services\\OutreachAI\\SalesAcceleration\\SalesIntentDetector@detect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/SalesAcceleration/SalesObjectionBypasser.php::App\\Services\\OutreachAI\\SalesAcceleration\\SalesObjectionBypasser::detect",
        "fqmn": "App\\Services\\OutreachAI\\SalesAcceleration\\SalesObjectionBypasser@detect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/SalesAcceleration/SalesObjectionBypasser.php::App\\Services\\OutreachAI\\SalesAcceleration\\SalesObjectionBypasser::generateBypass",
        "fqmn": "App\\Services\\OutreachAI\\SalesAcceleration\\SalesObjectionBypasser@generateBypass",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/SalesAcceleration/SalesPitchGenerator.php::App\\Services\\OutreachAI\\SalesAcceleration\\SalesPitchGenerator::__construct",
        "fqmn": "App\\Services\\OutreachAI\\SalesAcceleration\\SalesPitchGenerator@__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/OutreachAI/SalesAcceleration/SalesPitchGenerator.php::App\\Services\\OutreachAI\\SalesAcceleration\\SalesPitchGenerator::generate",
        "fqmn": "App\\Services\\OutreachAI\\SalesAcceleration\\SalesPitchGenerator@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/OutreachAI/SalesAcceleration/SalesUrgencyEngine.php::App\\Services\\OutreachAI\\SalesAcceleration\\SalesUrgencyEngine::detect",
        "fqmn": "App\\Services\\OutreachAI\\SalesAcceleration\\SalesUrgencyEngine@detect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/SentimentAnalysisService.php::App\\Services\\OutreachAI\\SentimentAnalysisService::analyze",
        "fqmn": "App\\Services\\OutreachAI\\SentimentAnalysisService@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/OutreachAI/SentimentRecoveryEngine.php::App\\Services\\OutreachAI\\SentimentRecoveryEngine::analyzeAndRecover",
        "fqmn": "App\\Services\\OutreachAI\\SentimentRecoveryEngine@analyzeAndRecover",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/SentimentRecoveryEngine.php::App\\Services\\OutreachAI\\SentimentRecoveryEngine::emit",
        "fqmn": "App\\Services\\OutreachAI\\SentimentRecoveryEngine@emit",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/SentimentRecoveryEngine.php::App\\Services\\OutreachAI\\SentimentRecoveryEngine::recordRecoveryAttempt",
        "fqmn": "App\\Services\\OutreachAI\\SentimentRecoveryEngine@recordRecoveryAttempt",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/SequenceBuilder.php::App\\Services\\OutreachAI\\SequenceBuilder::build",
        "fqmn": "App\\Services\\OutreachAI\\SequenceBuilder@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/OutreachAI/SequenceBuilder.php::App\\Services\\OutreachAI\\SequenceBuilder::run",
        "fqmn": "App\\Services\\OutreachAI\\SequenceBuilder@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/OutreachAI/ShortTermMemoryService.php::App\\Services\\OutreachAI\\ShortTermMemoryService::__construct",
        "fqmn": "App\\Services\\OutreachAI\\ShortTermMemoryService@__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/OutreachAI/ShortTermMemoryService.php::App\\Services\\OutreachAI\\ShortTermMemoryService::extractAndUpdateMemory",
        "fqmn": "App\\Services\\OutreachAI\\ShortTermMemoryService@extractAndUpdateMemory",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ShortTermMemoryService.php::App\\Services\\OutreachAI\\ShortTermMemoryService::extractKeyPoints",
        "fqmn": "App\\Services\\OutreachAI\\ShortTermMemoryService@extractKeyPoints",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ShortTermMemoryService.php::App\\Services\\OutreachAI\\ShortTermMemoryService::getMemory",
        "fqmn": "App\\Services\\OutreachAI\\ShortTermMemoryService@getMemory",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ShortTermMemoryService.php::App\\Services\\OutreachAI\\ShortTermMemoryService::mergeContextIntoPrompt",
        "fqmn": "App\\Services\\OutreachAI\\ShortTermMemoryService@mergeContextIntoPrompt",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ShortTermMemoryService.php::App\\Services\\OutreachAI\\ShortTermMemoryService::updateMemory",
        "fqmn": "App\\Services\\OutreachAI\\ShortTermMemoryService@updateMemory",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/SignupLinkGenerator.php::App\\Services\\OutreachAI\\SignupLinkGenerator::forgetLinkCache",
        "fqmn": "App\\Services\\OutreachAI\\SignupLinkGenerator@forgetLinkCache",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/SignupLinkGenerator.php::App\\Services\\OutreachAI\\SignupLinkGenerator::generateForLead",
        "fqmn": "App\\Services\\OutreachAI\\SignupLinkGenerator@generateForLead",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/SignupLinkGenerator.php::App\\Services\\OutreachAI\\SignupLinkGenerator::hasBeenClicked",
        "fqmn": "App\\Services\\OutreachAI\\SignupLinkGenerator@hasBeenClicked",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/SocialFrictionAuditor.php::App\\Services\\OutreachAI\\SocialFrictionAuditor::audit",
        "fqmn": "App\\Services\\OutreachAI\\SocialFrictionAuditor@audit",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/State/StateManager.php::App\\Services\\OutreachAI\\State\\StateManager::clear",
        "fqmn": "App\\Services\\OutreachAI\\State\\StateManager@clear",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/State/StateManager.php::App\\Services\\OutreachAI\\State\\StateManager::get",
        "fqmn": "App\\Services\\OutreachAI\\State\\StateManager@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/OutreachAI/State/StateManager.php::App\\Services\\OutreachAI\\State\\StateManager::set",
        "fqmn": "App\\Services\\OutreachAI\\State\\StateManager@set",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/StateAwareResponseService.php::App\\Services\\OutreachAI\\StateAwareResponseService::getClarificationResponse",
        "fqmn": "App\\Services\\OutreachAI\\StateAwareResponseService@getClarificationResponse",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/StateAwareResponseService.php::App\\Services\\OutreachAI\\StateAwareResponseService::getFollowUp1",
        "fqmn": "App\\Services\\OutreachAI\\StateAwareResponseService@getFollowUp1",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/StateAwareResponseService.php::App\\Services\\OutreachAI\\StateAwareResponseService::getFollowUp2",
        "fqmn": "App\\Services\\OutreachAI\\StateAwareResponseService@getFollowUp2",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/StateAwareResponseService.php::App\\Services\\OutreachAI\\StateAwareResponseService::getFollowUpFinal",
        "fqmn": "App\\Services\\OutreachAI\\StateAwareResponseService@getFollowUpFinal",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/StateAwareResponseService.php::App\\Services\\OutreachAI\\StateAwareResponseService::getResponse",
        "fqmn": "App\\Services\\OutreachAI\\StateAwareResponseService@getResponse",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/StateAwareResponseService.php::App\\Services\\OutreachAI\\StateAwareResponseService::getVoiceFailureResponse",
        "fqmn": "App\\Services\\OutreachAI\\StateAwareResponseService@getVoiceFailureResponse",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/StateAwareResponseService.php::App\\Services\\OutreachAI\\StateAwareResponseService::shouldUseTemplate",
        "fqmn": "App\\Services\\OutreachAI\\StateAwareResponseService@shouldUseTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/StrategyScoreService.php::App\\Services\\OutreachAI\\StrategyScoreService::assignScoresToMessageTypes",
        "fqmn": "App\\Services\\OutreachAI\\StrategyScoreService@assignScoresToMessageTypes",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/StrategyScoreService.php::App\\Services\\OutreachAI\\StrategyScoreService::computeSuccessRatios",
        "fqmn": "App\\Services\\OutreachAI\\StrategyScoreService@computeSuccessRatios",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/StrategyScoreService.php::App\\Services\\OutreachAI\\StrategyScoreService::rankCTAApproaches",
        "fqmn": "App\\Services\\OutreachAI\\StrategyScoreService@rankCTAApproaches",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/StrategyScoreService.php::App\\Services\\OutreachAI\\StrategyScoreService::trackMultiStepFunnelPerformance",
        "fqmn": "App\\Services\\OutreachAI\\StrategyScoreService@trackMultiStepFunnelPerformance",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/StrategyScoreService.php::App\\Services\\OutreachAI\\StrategyScoreService::updateStrategySnapshots",
        "fqmn": "App\\Services\\OutreachAI\\StrategyScoreService@updateStrategySnapshots",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/SubscriptionIntentService.php::App\\Services\\OutreachAI\\SubscriptionIntentService::detectIntent",
        "fqmn": "App\\Services\\OutreachAI\\SubscriptionIntentService@detectIntent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/SubscriptionSalesEngine.php::App\\Services\\OutreachAI\\SubscriptionSalesEngine::computeSubscriptionScore",
        "fqmn": "App\\Services\\OutreachAI\\SubscriptionSalesEngine@computeSubscriptionScore",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/SubscriptionSalesEngine.php::App\\Services\\OutreachAI\\SubscriptionSalesEngine::detectSubscriptionSignals",
        "fqmn": "App\\Services\\OutreachAI\\SubscriptionSalesEngine@detectSubscriptionSignals",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/SubscriptionSalesEngine.php::App\\Services\\OutreachAI\\SubscriptionSalesEngine::generateTrialSequence",
        "fqmn": "App\\Services\\OutreachAI\\SubscriptionSalesEngine@generateTrialSequence",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/SubscriptionSalesEngine.php::App\\Services\\OutreachAI\\SubscriptionSalesEngine::maybeInjectSalesPrompt",
        "fqmn": "App\\Services\\OutreachAI\\SubscriptionSalesEngine@maybeInjectSalesPrompt",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/SubscriptionSalesEngine.php::App\\Services\\OutreachAI\\SubscriptionSalesEngine::updateSubscriptionStage",
        "fqmn": "App\\Services\\OutreachAI\\SubscriptionSalesEngine@updateSubscriptionStage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/SubscriptionService.php::App\\Services\\OutreachAI\\SubscriptionService::getEffectiveLimits",
        "fqmn": "App\\Services\\OutreachAI\\SubscriptionService@getEffectiveLimits",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/TemplateApprovalMonitor.php::App\\Services\\OutreachAI\\TemplateApprovalMonitor::__construct",
        "fqmn": "App\\Services\\OutreachAI\\TemplateApprovalMonitor@__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/OutreachAI/TemplateApprovalMonitor.php::App\\Services\\OutreachAI\\TemplateApprovalMonitor::getPendingTemplates",
        "fqmn": "App\\Services\\OutreachAI\\TemplateApprovalMonitor@getPendingTemplates",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/TemplateApprovalMonitor.php::App\\Services\\OutreachAI\\TemplateApprovalMonitor::handleApproval",
        "fqmn": "App\\Services\\OutreachAI\\TemplateApprovalMonitor@handleApproval",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/TemplateApprovalMonitor.php::App\\Services\\OutreachAI\\TemplateApprovalMonitor::handleRejection",
        "fqmn": "App\\Services\\OutreachAI\\TemplateApprovalMonitor@handleRejection",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/TemplateApprovalMonitor.php::App\\Services\\OutreachAI\\TemplateApprovalMonitor::syncApprovalStatus",
        "fqmn": "App\\Services\\OutreachAI\\TemplateApprovalMonitor@syncApprovalStatus",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/TemplateCreatorService.php::App\\Services\\OutreachAI\\TemplateCreatorService::__construct",
        "fqmn": "App\\Services\\OutreachAI\\TemplateCreatorService@__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/OutreachAI/TemplateCreatorService.php::App\\Services\\OutreachAI\\TemplateCreatorService::createFromPatterns",
        "fqmn": "App\\Services\\OutreachAI\\TemplateCreatorService@createFromPatterns",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/TemplateCreatorService.php::App\\Services\\OutreachAI\\TemplateCreatorService::createVariants",
        "fqmn": "App\\Services\\OutreachAI\\TemplateCreatorService@createVariants",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/TemplateCreatorService.php::App\\Services\\OutreachAI\\TemplateCreatorService::learnFromRejection",
        "fqmn": "App\\Services\\OutreachAI\\TemplateCreatorService@learnFromRejection",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/TemplateDecisionEngine.php::App\\Services\\OutreachAI\\TemplateDecisionEngine::__construct",
        "fqmn": "App\\Services\\OutreachAI\\TemplateDecisionEngine@__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/OutreachAI/TemplateDecisionEngine.php::App\\Services\\OutreachAI\\TemplateDecisionEngine::decide",
        "fqmn": "App\\Services\\OutreachAI\\TemplateDecisionEngine@decide",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/TemplatePerformanceAnalyzer.php::App\\Services\\OutreachAI\\TemplatePerformanceAnalyzer::__construct",
        "fqmn": "App\\Services\\OutreachAI\\TemplatePerformanceAnalyzer@__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/OutreachAI/TemplatePerformanceAnalyzer.php::App\\Services\\OutreachAI\\TemplatePerformanceAnalyzer::analyzePatterns",
        "fqmn": "App\\Services\\OutreachAI\\TemplatePerformanceAnalyzer@analyzePatterns",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/TemplatePerformanceAnalyzer.php::App\\Services\\OutreachAI\\TemplatePerformanceAnalyzer::getTopPerformers",
        "fqmn": "App\\Services\\OutreachAI\\TemplatePerformanceAnalyzer@getTopPerformers",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/TemplatePerformanceAnalyzer.php::App\\Services\\OutreachAI\\TemplatePerformanceAnalyzer::predictSuccess",
        "fqmn": "App\\Services\\OutreachAI\\TemplatePerformanceAnalyzer@predictSuccess",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/TemplatePerformanceAnalyzer.php::App\\Services\\OutreachAI\\TemplatePerformanceAnalyzer::scoreTemplate",
        "fqmn": "App\\Services\\OutreachAI\\TemplatePerformanceAnalyzer@scoreTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/TemplateSelectionService.php::App\\Services\\OutreachAI\\TemplateSelectionService::__construct",
        "fqmn": "App\\Services\\OutreachAI\\TemplateSelectionService@__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/OutreachAI/TemplateSelectionService.php::App\\Services\\OutreachAI\\TemplateSelectionService::selectBest",
        "fqmn": "App\\Services\\OutreachAI\\TemplateSelectionService@selectBest",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/TemplateUsageTracker.php::App\\Services\\OutreachAI\\TemplateUsageTracker::recordConversion",
        "fqmn": "App\\Services\\OutreachAI\\TemplateUsageTracker@recordConversion",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/TemplateUsageTracker.php::App\\Services\\OutreachAI\\TemplateUsageTracker::recordDelivery",
        "fqmn": "App\\Services\\OutreachAI\\TemplateUsageTracker@recordDelivery",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/TemplateUsageTracker.php::App\\Services\\OutreachAI\\TemplateUsageTracker::recordOutcome",
        "fqmn": "App\\Services\\OutreachAI\\TemplateUsageTracker@recordOutcome",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/TemplateUsageTracker.php::App\\Services\\OutreachAI\\TemplateUsageTracker::recordRead",
        "fqmn": "App\\Services\\OutreachAI\\TemplateUsageTracker@recordRead",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/TemplateUsageTracker.php::App\\Services\\OutreachAI\\TemplateUsageTracker::recordReply",
        "fqmn": "App\\Services\\OutreachAI\\TemplateUsageTracker@recordReply",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/TemplateUsageTracker.php::App\\Services\\OutreachAI\\TemplateUsageTracker::trackUsage",
        "fqmn": "App\\Services\\OutreachAI\\TemplateUsageTracker@trackUsage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/TemplateUsageTracker.php::App\\Services\\OutreachAI\\TemplateUsageTracker::updateTemplateMetrics",
        "fqmn": "App\\Services\\OutreachAI\\TemplateUsageTracker@updateTemplateMetrics",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/TranscriptionCleanupService.php::App\\Services\\OutreachAI\\TranscriptionCleanupService::clean",
        "fqmn": "App\\Services\\OutreachAI\\TranscriptionCleanupService@clean",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/TranscriptionSummaryService.php::App\\Services\\OutreachAI\\TranscriptionSummaryService::summarize",
        "fqmn": "App\\Services\\OutreachAI\\TranscriptionSummaryService@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/OutreachAI/TrialEngine/Extension/TrialExtensionCTA.php::App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionCTA::detectAcceptance",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionCTA@detectAcceptance",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/TrialEngine/Extension/TrialExtensionCTA.php::App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionCTA::generate",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionCTA@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/OutreachAI/TrialEngine/Extension/TrialExtensionEngine.php::App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionEngine::buildUpgradePrompt",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionEngine@buildUpgradePrompt",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/TrialEngine/Extension/TrialExtensionEngine.php::App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionEngine::evaluateTrialClosingStrategy",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionEngine@evaluateTrialClosingStrategy",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/TrialEngine/Extension/TrialExtensionEngine.php::App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionEngine::extend",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionEngine@extend",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/TrialEngine/Extension/TrialExtensionEvaluator.php::App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionEvaluator::evaluate",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionEvaluator@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/OutreachAI/TrialEngine/Extension/TrialExtensionNudgeService.php::App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionNudgeService::generateNudgeMessage",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionNudgeService@generateNudgeMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/TrialEngine/Extension/TrialExtensionNudgeService.php::App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionNudgeService::scheduleNudges",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionNudgeService@scheduleNudges",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/TrialEngine/TrialActivationEngine.php::App\\Services\\OutreachAI\\TrialEngine\\TrialActivationEngine::activate",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\TrialActivationEngine@activate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/TrialEngine/TrialCTASelector.php::App\\Services\\OutreachAI\\TrialEngine\\TrialCTASelector::select",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\TrialCTASelector@select",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/TrialEngine/TrialIntentDetector.php::App\\Services\\OutreachAI\\TrialEngine\\TrialIntentDetector::detect",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\TrialIntentDetector@detect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/TrialEngine/TrialIntentDetector.php::App\\Services\\OutreachAI\\TrialEngine\\TrialIntentDetector::emit",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\TrialIntentDetector@emit",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/TrialEngine/TrialNudgeEngine.php::App\\Services\\OutreachAI\\TrialEngine\\TrialNudgeEngine::generateNudgeMessage",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\TrialNudgeEngine@generateNudgeMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/TrialEngine/TrialNudgeEngine.php::App\\Services\\OutreachAI\\TrialEngine\\TrialNudgeEngine::scheduleNudges",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\TrialNudgeEngine@scheduleNudges",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/TrialEngine/TrialOnboardingFlow.php::App\\Services\\OutreachAI\\TrialEngine\\TrialOnboardingFlow::advance",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\TrialOnboardingFlow@advance",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/TrialEngine/TrialOnboardingFlow.php::App\\Services\\OutreachAI\\TrialEngine\\TrialOnboardingFlow::getNextStep",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\TrialOnboardingFlow@getNextStep",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/TrialEngine/TrialOnboardingFlow.php::App\\Services\\OutreachAI\\TrialEngine\\TrialOnboardingFlow::getStepInstruction",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\TrialOnboardingFlow@getStepInstruction",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/TrialEngine/TrialProgressTracker.php::App\\Services\\OutreachAI\\TrialEngine\\TrialProgressTracker::track",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\TrialProgressTracker@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/OutreachAI/TrialEngine/TrialStuckDetector.php::App\\Services\\OutreachAI\\TrialEngine\\TrialStuckDetector::detect",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\TrialStuckDetector@detect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/TrialEngine/TrialUpgradeScorer.php::App\\Services\\OutreachAI\\TrialEngine\\TrialUpgradeScorer::score",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\TrialUpgradeScorer@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/OutreachAI/UpsellEngine.php::App\\Services\\OutreachAI\\UpsellEngine::__construct",
        "fqmn": "App\\Services\\OutreachAI\\UpsellEngine@__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/OutreachAI/UpsellEngine.php::App\\Services\\OutreachAI\\UpsellEngine::clearCache",
        "fqmn": "App\\Services\\OutreachAI\\UpsellEngine@clearCache",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/UpsellEngine.php::App\\Services\\OutreachAI\\UpsellEngine::detectOpportunity",
        "fqmn": "App\\Services\\OutreachAI\\UpsellEngine@detectOpportunity",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/UpsellEngine.php::App\\Services\\OutreachAI\\UpsellEngine::logUpsellEvent",
        "fqmn": "App\\Services\\OutreachAI\\UpsellEngine@logUpsellEvent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/UpsellProcessor.php::App\\Services\\OutreachAI\\UpsellProcessor::processAddOn",
        "fqmn": "App\\Services\\OutreachAI\\UpsellProcessor@processAddOn",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/UpsellProcessor.php::App\\Services\\OutreachAI\\UpsellProcessor::processUpgrade",
        "fqmn": "App\\Services\\OutreachAI\\UpsellProcessor@processUpgrade",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/UpsellSuccessDetector.php::App\\Services\\OutreachAI\\UpsellSuccessDetector::detectSuccess",
        "fqmn": "App\\Services\\OutreachAI\\UpsellSuccessDetector@detectSuccess",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/UpsellSuccessDetector.php::App\\Services\\OutreachAI\\UpsellSuccessDetector::updateUpsellEventOutcome",
        "fqmn": "App\\Services\\OutreachAI\\UpsellSuccessDetector@updateUpsellEventOutcome",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/UserActivityAnalyzer.php::App\\Services\\OutreachAI\\UserActivityAnalyzer::getInactiveConvertedLeads",
        "fqmn": "App\\Services\\OutreachAI\\UserActivityAnalyzer@getInactiveConvertedLeads",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/UserActivityAnalyzer.php::App\\Services\\OutreachAI\\UserActivityAnalyzer::getSubscriptionStatus",
        "fqmn": "App\\Services\\OutreachAI\\UserActivityAnalyzer@getSubscriptionStatus",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/UserActivityAnalyzer.php::App\\Services\\OutreachAI\\UserActivityAnalyzer::getUpsellOpportunities",
        "fqmn": "App\\Services\\OutreachAI\\UserActivityAnalyzer@getUpsellOpportunities",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/UserActivityAnalyzer.php::App\\Services\\OutreachAI\\UserActivityAnalyzer::hasActiveSubscription",
        "fqmn": "App\\Services\\OutreachAI\\UserActivityAnalyzer@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/OutreachAI/UserActivityAnalyzer.php::App\\Services\\OutreachAI\\UserActivityAnalyzer::isActiveUser",
        "fqmn": "App\\Services\\OutreachAI\\UserActivityAnalyzer@isActiveUser",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/UserActivityAnalyzer.php::App\\Services\\OutreachAI\\UserActivityAnalyzer::isFreeTier",
        "fqmn": "App\\Services\\OutreachAI\\UserActivityAnalyzer@isFreeTier",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/UserActivityAnalyzer.php::App\\Services\\OutreachAI\\UserActivityAnalyzer::isInactiveUser",
        "fqmn": "App\\Services\\OutreachAI\\UserActivityAnalyzer@isInactiveUser",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/UserActivityAnalyzer.php::App\\Services\\OutreachAI\\UserActivityAnalyzer::shouldReactivate",
        "fqmn": "App\\Services\\OutreachAI\\UserActivityAnalyzer@shouldReactivate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Utilities/DeterministicReplyBank.php::App\\Services\\OutreachAI\\Utilities\\DeterministicReplyBank::getReply",
        "fqmn": "App\\Services\\OutreachAI\\Utilities\\DeterministicReplyBank@getReply",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Utilities/FrequencyGuard.php::App\\Services\\OutreachAI\\Utilities\\FrequencyGuard::isAllowed",
        "fqmn": "App\\Services\\OutreachAI\\Utilities\\FrequencyGuard@isAllowed",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Utilities/FrequencyGuard.php::App\\Services\\OutreachAI\\Utilities\\FrequencyGuard::record",
        "fqmn": "App\\Services\\OutreachAI\\Utilities\\FrequencyGuard@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/OutreachAI/UX/ContinuityEngine.php::App\\Services\\OutreachAI\\UX\\ContinuityEngine::analyzeContinuity",
        "fqmn": "App\\Services\\OutreachAI\\UX\\ContinuityEngine@analyzeContinuity",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/UX/CorrectionDirectiveAdapter.php::App\\Services\\OutreachAI\\UX\\CorrectionDirectiveAdapter::adapt",
        "fqmn": "App\\Services\\OutreachAI\\UX\\CorrectionDirectiveAdapter@adapt",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/UX/EngagementAnalyzer.php::App\\Services\\OutreachAI\\UX\\EngagementAnalyzer::analyzeEngagement",
        "fqmn": "App\\Services\\OutreachAI\\UX\\EngagementAnalyzer@analyzeEngagement",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/UX/MessageClarityService.php::App\\Services\\OutreachAI\\UX\\MessageClarityService::analyzeClarity",
        "fqmn": "App\\Services\\OutreachAI\\UX\\MessageClarityService@analyzeClarity",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/UX/MessageClarityService.php::App\\Services\\OutreachAI\\UX\\MessageClarityService::getClarityDirective",
        "fqmn": "App\\Services\\OutreachAI\\UX\\MessageClarityService@getClarityDirective",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/UX/ResponseStructureEngine.php::App\\Services\\OutreachAI\\UX\\ResponseStructureEngine::restructure",
        "fqmn": "App\\Services\\OutreachAI\\UX\\ResponseStructureEngine@restructure",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/UX/UXOptimizationPipeline.php::App\\Services\\OutreachAI\\UX\\UXOptimizationPipeline::__construct",
        "fqmn": "App\\Services\\OutreachAI\\UX\\UXOptimizationPipeline@__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/OutreachAI/UX/UXOptimizationPipeline.php::App\\Services\\OutreachAI\\UX\\UXOptimizationPipeline::optimize",
        "fqmn": "App\\Services\\OutreachAI\\UX\\UXOptimizationPipeline@optimize",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/VisionService.php::App\\Services\\OutreachAI\\VisionService::__construct",
        "fqmn": "App\\Services\\OutreachAI\\VisionService@__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/OutreachAI/VisionService.php::App\\Services\\OutreachAI\\VisionService::analyzeReceipt",
        "fqmn": "App\\Services\\OutreachAI\\VisionService@analyzeReceipt",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/WarmthEvolutionEngine.php::App\\Services\\OutreachAI\\WarmthEvolutionEngine::evaluate",
        "fqmn": "App\\Services\\OutreachAI\\WarmthEvolutionEngine@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/OutreachAI/WhatsApp24HourWindowService.php::App\\Services\\OutreachAI\\WhatsApp24HourWindowService::__construct",
        "fqmn": "App\\Services\\OutreachAI\\WhatsApp24HourWindowService@__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/OutreachAI/WhatsApp24HourWindowService.php::App\\Services\\OutreachAI\\WhatsApp24HourWindowService::prepareMessageContext",
        "fqmn": "App\\Services\\OutreachAI\\WhatsApp24HourWindowService@prepareMessageContext",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OutreachAI/WhisperTranscriptionService.php::App\\Services\\OutreachAI\\WhisperTranscriptionService::__construct",
        "fqmn": "App\\Services\\OutreachAI\\WhisperTranscriptionService@__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/OutreachAI/WhisperTranscriptionService.php::App\\Services\\OutreachAI\\WhisperTranscriptionService::transcribe",
        "fqmn": "App\\Services\\OutreachAI\\WhisperTranscriptionService@transcribe",
        "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::store",
        "fqmn": "App\\Services\\PaymentGateway\\StoredPaymentMethodService@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/PaymentGateway/TapCardStorageService.php::App\\Services\\PaymentGateway\\TapCardStorageService::storeFromCharge",
        "fqmn": "App\\Services\\PaymentGateway\\TapCardStorageService@storeFromCharge",
        "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::execute",
        "fqmn": "App\\Services\\PaymentGateway\\TapGateway@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/PaymentProofService.php::App\\Services\\PaymentProofService::getPaymentProofStatistics",
        "fqmn": "App\\Services\\PaymentProofService@getPaymentProofStatistics",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/PaymentProofService.php::App\\Services\\PaymentProofService::handleIncomingMessages",
        "fqmn": "App\\Services\\PaymentProofService@handleIncomingMessages",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Payments/Tap/TapWebhookValidationResult.php::App\\Services\\Payments\\Tap\\TapWebhookValidationResult::__construct",
        "fqmn": "App\\Services\\Payments\\Tap\\TapWebhookValidationResult@__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/Payments/Tap/TapWebhookValidationResult.php::App\\Services\\Payments\\Tap\\TapWebhookValidationResult::errors",
        "fqmn": "App\\Services\\Payments\\Tap\\TapWebhookValidationResult@errors",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Payments/Tap/TapWebhookValidationResult.php::App\\Services\\Payments\\Tap\\TapWebhookValidationResult::fromErrors",
        "fqmn": "App\\Services\\Payments\\Tap\\TapWebhookValidationResult@fromErrors",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Payments/Tap/TapWebhookValidationResult.php::App\\Services\\Payments\\Tap\\TapWebhookValidationResult::isValid",
        "fqmn": "App\\Services\\Payments\\Tap\\TapWebhookValidationResult@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/Payments/Tap/TapWebhookValidationResult.php::App\\Services\\Payments\\Tap\\TapWebhookValidationResult::valid",
        "fqmn": "App\\Services\\Payments\\Tap\\TapWebhookValidationResult@valid",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Payments/Tap/TapWebhookValidator.php::App\\Services\\Payments\\Tap\\TapWebhookValidator::validate",
        "fqmn": "App\\Services\\Payments\\Tap\\TapWebhookValidator@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/PricingResolver.php::App\\Services\\PricingResolver::forTier",
        "fqmn": "App\\Services\\PricingResolver@forTier",
        "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/PropertyDocumentService.php::App\\Services\\PropertyDocumentService::cleanupOrphanedFiles",
        "fqmn": "App\\Services\\PropertyDocumentService@cleanupOrphanedFiles",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/PropertyDocumentService.php::App\\Services\\PropertyDocumentService::deletePropertyDocument",
        "fqmn": "App\\Services\\PropertyDocumentService@deletePropertyDocument",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/PropertyDocumentService.php::App\\Services\\PropertyDocumentService::getPropertyDocuments",
        "fqmn": "App\\Services\\PropertyDocumentService@getPropertyDocuments",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/PropertyDocumentService.php::App\\Services\\PropertyDocumentService::getStorageStatistics",
        "fqmn": "App\\Services\\PropertyDocumentService@getStorageStatistics",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/PropertyDocumentService.php::App\\Services\\PropertyDocumentService::storePropertyDocument",
        "fqmn": "App\\Services\\PropertyDocumentService@storePropertyDocument",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/PropertyDocumentService.php::App\\Services\\PropertyDocumentService::storePropertyDocuments",
        "fqmn": "App\\Services\\PropertyDocumentService@storePropertyDocuments",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RedirectService.php::App\\Services\\RedirectService::getAuthenticatedUserPath",
        "fqmn": "App\\Services\\RedirectService@getAuthenticatedUserPath",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RedirectService.php::App\\Services\\RedirectService::getPostInvitationPath",
        "fqmn": "App\\Services\\RedirectService@getPostInvitationPath",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RedirectService.php::App\\Services\\RedirectService::getPostRegistrationPath",
        "fqmn": "App\\Services\\RedirectService@getPostRegistrationPath",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RedirectService.php::App\\Services\\RedirectService::getRedirectPath",
        "fqmn": "App\\Services\\RedirectService@getRedirectPath",
        "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/RevenueRecognition/DeferredRevenueAllocator.php::App\\Services\\RevenueRecognition\\DeferredRevenueAllocator::allocate",
        "fqmn": "App\\Services\\RevenueRecognition\\DeferredRevenueAllocator@allocate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RevenueRecognition/RevenueRecognitionEngine.php::App\\Services\\RevenueRecognition\\RevenueRecognitionEngine::runForDate",
        "fqmn": "App\\Services\\RevenueRecognition\\RevenueRecognitionEngine@runForDate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RevenueRecognition/RevenueSnapshotGenerator.php::App\\Services\\RevenueRecognition\\RevenueSnapshotGenerator::generateForDate",
        "fqmn": "App\\Services\\RevenueRecognition\\RevenueSnapshotGenerator@generateForDate",
        "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/Security/HoneypotService.php::App\\Services\\Security\\HoneypotService::buildHttpContext",
        "fqmn": "App\\Services\\Security\\HoneypotService@buildHttpContext",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Security/HoneypotService.php::App\\Services\\Security\\HoneypotService::log",
        "fqmn": "App\\Services\\Security\\HoneypotService@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/Security/HoneypotService.php::App\\Services\\Security\\HoneypotService::sanitizePayload",
        "fqmn": "App\\Services\\Security\\HoneypotService@sanitizePayload",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Settlement/SettlementMatchingEngine.php::App\\Services\\Settlement\\SettlementMatchingEngine::match",
        "fqmn": "App\\Services\\Settlement\\SettlementMatchingEngine@match",
        "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::__construct",
        "fqmn": "App\\Services\\SubscriptionBillingService@__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/SubscriptionBillingService.php::App\\Services\\SubscriptionBillingService::billNow",
        "fqmn": "App\\Services\\SubscriptionBillingService@billNow",
        "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/SubscriptionComputeCacheService.php::App\\Services\\SubscriptionComputeCacheService::forgetById",
        "fqmn": "App\\Services\\SubscriptionComputeCacheService@forgetById",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/SubscriptionComputeCacheService.php::App\\Services\\SubscriptionComputeCacheService::get",
        "fqmn": "App\\Services\\SubscriptionComputeCacheService@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/SubscriptionService.php::App\\Services\\SubscriptionService::__construct",
        "fqmn": "App\\Services\\SubscriptionService@__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/SubscriptionService.php::App\\Services\\SubscriptionService::cancelSubscription",
        "fqmn": "App\\Services\\SubscriptionService@cancelSubscription",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/SubscriptionService.php::App\\Services\\SubscriptionService::canPerformAction",
        "fqmn": "App\\Services\\SubscriptionService@canPerformAction",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/SubscriptionService.php::App\\Services\\SubscriptionService::convertTrialToPaid",
        "fqmn": "App\\Services\\SubscriptionService@convertTrialToPaid",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/SubscriptionService.php::App\\Services\\SubscriptionService::getEffectiveLimits",
        "fqmn": "App\\Services\\SubscriptionService@getEffectiveLimits",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/SubscriptionService.php::App\\Services\\SubscriptionService::grantTrial",
        "fqmn": "App\\Services\\SubscriptionService@grantTrial",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/SubscriptionService.php::App\\Services\\SubscriptionService::grantTrialForTier",
        "fqmn": "App\\Services\\SubscriptionService@grantTrialForTier",
        "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::lockSubscriptionForUpdate",
        "fqmn": "App\\Services\\SubscriptionStateService@lockSubscriptionForUpdate",
        "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::markActiveAndClearDunning",
        "fqmn": "App\\Services\\SubscriptionStateService@markActiveAndClearDunning",
        "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/SystemSettings.php::App\\Services\\SystemSettings::adminWhatsAppProvider",
        "fqmn": "App\\Services\\SystemSettings@adminWhatsAppProvider",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/SystemSettings.php::App\\Services\\SystemSettings::appWhatsAppProvider",
        "fqmn": "App\\Services\\SystemSettings@appWhatsAppProvider",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/SystemSettings.php::App\\Services\\SystemSettings::get",
        "fqmn": "App\\Services\\SystemSettings@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/SystemSettings.php::App\\Services\\SystemSettings::set",
        "fqmn": "App\\Services\\SystemSettings@set",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/SystemSettings.php::App\\Services\\SystemSettings::setAdminWhatsAppProvider",
        "fqmn": "App\\Services\\SystemSettings@setAdminWhatsAppProvider",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/SystemSettings.php::App\\Services\\SystemSettings::setAppWhatsAppProvider",
        "fqmn": "App\\Services\\SystemSettings@setAppWhatsAppProvider",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/SystemSettings.php::App\\Services\\SystemSettings::setWhatsAppEnv",
        "fqmn": "App\\Services\\SystemSettings@setWhatsAppEnv",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/SystemSettings.php::App\\Services\\SystemSettings::whatsappEnv",
        "fqmn": "App\\Services\\SystemSettings@whatsappEnv",
        "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::get",
        "fqmn": "App\\Services\\TapClient@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/TapClient.php::App\\Services\\TapClient::post",
        "fqmn": "App\\Services\\TapClient@post",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TapPaymentMethodService.php::App\\Services\\TapPaymentMethodService::getDefaultPaymentMethods",
        "fqmn": "App\\Services\\TapPaymentMethodService@getDefaultPaymentMethods",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TapPaymentMethodService.php::App\\Services\\TapPaymentMethodService::getPaymentMethodOptions",
        "fqmn": "App\\Services\\TapPaymentMethodService@getPaymentMethodOptions",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TapPaymentMethodService.php::App\\Services\\TapPaymentMethodService::getPaymentMethodsForCountry",
        "fqmn": "App\\Services\\TapPaymentMethodService@getPaymentMethodsForCountry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TapPaymentMethodService.php::App\\Services\\TapPaymentMethodService::isMethodAvailableForCountry",
        "fqmn": "App\\Services\\TapPaymentMethodService@isMethodAvailableForCountry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TapPaymentService.php::App\\Services\\TapPaymentService::__construct",
        "fqmn": "App\\Services\\TapPaymentService@__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/TapPaymentService.php::App\\Services\\TapPaymentService::calculateVAT",
        "fqmn": "App\\Services\\TapPaymentService@calculateVAT",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TapPaymentService.php::App\\Services\\TapPaymentService::createCombinedSubscriptionCharge",
        "fqmn": "App\\Services\\TapPaymentService@createCombinedSubscriptionCharge",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TapPaymentService.php::App\\Services\\TapPaymentService::createCreditTopUpCharge",
        "fqmn": "App\\Services\\TapPaymentService@createCreditTopUpCharge",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TapPaymentService.php::App\\Services\\TapPaymentService::createFeatureAddonCharge",
        "fqmn": "App\\Services\\TapPaymentService@createFeatureAddonCharge",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TapPaymentService.php::App\\Services\\TapPaymentService::createPaymentRequestCharge",
        "fqmn": "App\\Services\\TapPaymentService@createPaymentRequestCharge",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TapPaymentService.php::App\\Services\\TapPaymentService::createRentCycleCharge",
        "fqmn": "App\\Services\\TapPaymentService@createRentCycleCharge",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TapPaymentService.php::App\\Services\\TapPaymentService::createSubscriptionCharge",
        "fqmn": "App\\Services\\TapPaymentService@createSubscriptionCharge",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TapPaymentService.php::App\\Services\\TapPaymentService::forOrganization",
        "fqmn": "App\\Services\\TapPaymentService@forOrganization",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TapPaymentService.php::App\\Services\\TapPaymentService::getCharge",
        "fqmn": "App\\Services\\TapPaymentService@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/TapPaymentService.php::App\\Services\\TapPaymentService::getTotalWithVAT",
        "fqmn": "App\\Services\\TapPaymentService@getTotalWithVAT",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TapPaymentService.php::App\\Services\\TapPaymentService::initiateSubscriptionRenewal",
        "fqmn": "App\\Services\\TapPaymentService@initiateSubscriptionRenewal",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TapPaymentService.php::App\\Services\\TapPaymentService::verifyWebhookSignature",
        "fqmn": "App\\Services\\TapPaymentService@verifyWebhookSignature",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TapSettlement/ZohoPaymentFeeSyncService.php::App\\Services\\TapSettlement\\ZohoPaymentFeeSyncService::sync",
        "fqmn": "App\\Services\\TapSettlement\\ZohoPaymentFeeSyncService@sync",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Tax/TaxAmountCalculator.php::App\\Services\\Tax\\TaxAmountCalculator::calculateFromBase",
        "fqmn": "App\\Services\\Tax\\TaxAmountCalculator@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/TemplateRenderingService.php::App\\Services\\TemplateRenderingService::buildVariablesForRentCycle",
        "fqmn": "App\\Services\\TemplateRenderingService@buildVariablesForRentCycle",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TemplateRenderingService.php::App\\Services\\TemplateRenderingService::previewTemplate",
        "fqmn": "App\\Services\\TemplateRenderingService@previewTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TemplateRenderingService.php::App\\Services\\TemplateRenderingService::renderForRentCycle",
        "fqmn": "App\\Services\\TemplateRenderingService@renderForRentCycle",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TemplateRenderingService.php::App\\Services\\TemplateRenderingService::validateTemplate",
        "fqmn": "App\\Services\\TemplateRenderingService@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/Tracking/IpinfoService.php::App\\Services\\Tracking\\IpinfoService::getDetails",
        "fqmn": "App\\Services\\Tracking\\IpinfoService@getDetails",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Tracking/TrackingAnalyticsService.php::App\\Services\\Tracking\\TrackingAnalyticsService::getChannelLeaderboard",
        "fqmn": "App\\Services\\Tracking\\TrackingAnalyticsService@getChannelLeaderboard",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Tracking/TrackingAnalyticsService.php::App\\Services\\Tracking\\TrackingAnalyticsService::getGlobalStats",
        "fqmn": "App\\Services\\Tracking\\TrackingAnalyticsService@getGlobalStats",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Tracking/TrackingAnalyticsService.php::App\\Services\\Tracking\\TrackingAnalyticsService::getLinkStats",
        "fqmn": "App\\Services\\Tracking\\TrackingAnalyticsService@getLinkStats",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Tracking/TrackingService.php::App\\Services\\Tracking\\TrackingService::track",
        "fqmn": "App\\Services\\Tracking\\TrackingService@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/Tracking/TrackingService.php::App\\Services\\Tracking\\TrackingService::trackRegistrationCompleted",
        "fqmn": "App\\Services\\Tracking\\TrackingService@trackRegistrationCompleted",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Tracking/UserAgentParser.php::App\\Services\\Tracking\\UserAgentParser::parse",
        "fqmn": "App\\Services\\Tracking\\UserAgentParser@parse",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TwilioProtectionService.php::App\\Services\\TwilioProtectionService::guardedCall",
        "fqmn": "App\\Services\\TwilioProtectionService@guardedCall",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TwilioVerifyService.php::App\\Services\\TwilioVerifyService::checkVerification",
        "fqmn": "App\\Services\\TwilioVerifyService@checkVerification",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TwilioVerifyService.php::App\\Services\\TwilioVerifyService::startVerification",
        "fqmn": "App\\Services\\TwilioVerifyService@startVerification",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/UsageMeterService.php::App\\Services\\UsageMeterService::getUsageForOrganization",
        "fqmn": "App\\Services\\UsageMeterService@getUsageForOrganization",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Webhooks/WebhookIdempotencyService.php::App\\Services\\Webhooks\\WebhookIdempotencyService::generateIdempotencyKey",
        "fqmn": "App\\Services\\Webhooks\\WebhookIdempotencyService@generateIdempotencyKey",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Webhooks/WebhookIdempotencyService.php::App\\Services\\Webhooks\\WebhookIdempotencyService::process",
        "fqmn": "App\\Services\\Webhooks\\WebhookIdempotencyService@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/WhatsApp/Channels/WhatsAppChannel.php::App\\Services\\WhatsApp\\Channels\\WhatsAppChannel::__construct",
        "fqmn": "App\\Services\\WhatsApp\\Channels\\WhatsAppChannel@__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/WhatsApp/Channels/WhatsAppChannel.php::App\\Services\\WhatsApp\\Channels\\WhatsAppChannel::send",
        "fqmn": "App\\Services\\WhatsApp\\Channels\\WhatsAppChannel@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/WhatsApp/Dialog360InboundService.php::App\\Services\\WhatsApp\\Dialog360InboundService::__construct",
        "fqmn": "App\\Services\\WhatsApp\\Dialog360InboundService@__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/WhatsApp/Dialog360InboundService.php::App\\Services\\WhatsApp\\Dialog360InboundService::handle",
        "fqmn": "App\\Services\\WhatsApp\\Dialog360InboundService@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/WhatsApp/Dialog360OnboardingService.php::App\\Services\\WhatsApp\\Dialog360OnboardingService::__construct",
        "fqmn": "App\\Services\\WhatsApp\\Dialog360OnboardingService@__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/WhatsApp/Dialog360OnboardingService.php::App\\Services\\WhatsApp\\Dialog360OnboardingService::activateNumber",
        "fqmn": "App\\Services\\WhatsApp\\Dialog360OnboardingService@activateNumber",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Dialog360OnboardingService.php::App\\Services\\WhatsApp\\Dialog360OnboardingService::fetchBusinessProfile",
        "fqmn": "App\\Services\\WhatsApp\\Dialog360OnboardingService@fetchBusinessProfile",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Dialog360OnboardingService.php::App\\Services\\WhatsApp\\Dialog360OnboardingService::fetchPhoneNumbers",
        "fqmn": "App\\Services\\WhatsApp\\Dialog360OnboardingService@fetchPhoneNumbers",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Dialog360OnboardingService.php::App\\Services\\WhatsApp\\Dialog360OnboardingService::validateToken",
        "fqmn": "App\\Services\\WhatsApp\\Dialog360OnboardingService@validateToken",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Dialog360ProfileService.php::App\\Services\\WhatsApp\\Dialog360ProfileService::__construct",
        "fqmn": "App\\Services\\WhatsApp\\Dialog360ProfileService@__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/WhatsApp/Dialog360ProfileService.php::App\\Services\\WhatsApp\\Dialog360ProfileService::fetchProfile",
        "fqmn": "App\\Services\\WhatsApp\\Dialog360ProfileService@fetchProfile",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Dialog360ProfileService.php::App\\Services\\WhatsApp\\Dialog360ProfileService::syncProfile",
        "fqmn": "App\\Services\\WhatsApp\\Dialog360ProfileService@syncProfile",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Dialog360ProfileService.php::App\\Services\\WhatsApp\\Dialog360ProfileService::updateProfile",
        "fqmn": "App\\Services\\WhatsApp\\Dialog360ProfileService@updateProfile",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Handlers/AgentInboundHandler.php::App\\Services\\WhatsApp\\Handlers\\AgentInboundHandler::handle",
        "fqmn": "App\\Services\\WhatsApp\\Handlers\\AgentInboundHandler@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/WhatsApp/Handlers/ChatbotInboundHandler.php::App\\Services\\WhatsApp\\Handlers\\ChatbotInboundHandler::__construct",
        "fqmn": "App\\Services\\WhatsApp\\Handlers\\ChatbotInboundHandler@__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/WhatsApp/Handlers/ChatbotInboundHandler.php::App\\Services\\WhatsApp\\Handlers\\ChatbotInboundHandler::handle",
        "fqmn": "App\\Services\\WhatsApp\\Handlers\\ChatbotInboundHandler@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/WhatsApp/Handlers/DefaultInboundHandler.php::App\\Services\\WhatsApp\\Handlers\\DefaultInboundHandler::handle",
        "fqmn": "App\\Services\\WhatsApp\\Handlers\\DefaultInboundHandler@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/WhatsApp/Handlers/HumanReplyHandler.php::App\\Services\\WhatsApp\\Handlers\\HumanReplyHandler::__construct",
        "fqmn": "App\\Services\\WhatsApp\\Handlers\\HumanReplyHandler@__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/WhatsApp/Handlers/HumanReplyHandler.php::App\\Services\\WhatsApp\\Handlers\\HumanReplyHandler::handle",
        "fqmn": "App\\Services\\WhatsApp\\Handlers\\HumanReplyHandler@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/WhatsApp/Handlers/MaintenanceInboundHandler.php::App\\Services\\WhatsApp\\Handlers\\MaintenanceInboundHandler::handle",
        "fqmn": "App\\Services\\WhatsApp\\Handlers\\MaintenanceInboundHandler@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/WhatsApp/Handlers/PaymentProofInboundHandler.php::App\\Services\\WhatsApp\\Handlers\\PaymentProofInboundHandler::__construct",
        "fqmn": "App\\Services\\WhatsApp\\Handlers\\PaymentProofInboundHandler@__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/WhatsApp/Handlers/PaymentProofInboundHandler.php::App\\Services\\WhatsApp\\Handlers\\PaymentProofInboundHandler::handle",
        "fqmn": "App\\Services\\WhatsApp\\Handlers\\PaymentProofInboundHandler@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/WhatsApp/Inbound/Adapters/Dialog360InboundAdapter.php::App\\Services\\WhatsApp\\Inbound\\Adapters\\Dialog360InboundAdapter::fromPayload",
        "fqmn": "App\\Services\\WhatsApp\\Inbound\\Adapters\\Dialog360InboundAdapter@fromPayload",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Inbound/Adapters/TwilioInboundAdapter.php::App\\Services\\WhatsApp\\Inbound\\Adapters\\TwilioInboundAdapter::fromPayload",
        "fqmn": "App\\Services\\WhatsApp\\Inbound\\Adapters\\TwilioInboundAdapter@fromPayload",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Inbound/CanonicalInboundMessage.php::App\\Services\\WhatsApp\\Inbound\\CanonicalInboundMessage::__construct",
        "fqmn": "App\\Services\\WhatsApp\\Inbound\\CanonicalInboundMessage@__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/WhatsApp/Inbound/CanonicalInboundMessage.php::App\\Services\\WhatsApp\\Inbound\\CanonicalInboundMessage::fromArray",
        "fqmn": "App\\Services\\WhatsApp\\Inbound\\CanonicalInboundMessage@fromArray",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Inbound/CanonicalInboundMessage.php::App\\Services\\WhatsApp\\Inbound\\CanonicalInboundMessage::toArray",
        "fqmn": "App\\Services\\WhatsApp\\Inbound\\CanonicalInboundMessage@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/WhatsApp/Inbound/InboundMessageFactory.php::App\\Services\\WhatsApp\\Inbound\\InboundMessageFactory::makeFromProviderPayload",
        "fqmn": "App\\Services\\WhatsApp\\Inbound\\InboundMessageFactory@makeFromProviderPayload",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Normalizer/Dialog360WhatsAppNormalizer.php::App\\Services\\WhatsApp\\Normalizer\\Dialog360WhatsAppNormalizer::getProviderName",
        "fqmn": "App\\Services\\WhatsApp\\Normalizer\\Dialog360WhatsAppNormalizer@getProviderName",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Normalizer/Dialog360WhatsAppNormalizer.php::App\\Services\\WhatsApp\\Normalizer\\Dialog360WhatsAppNormalizer::normalizeError",
        "fqmn": "App\\Services\\WhatsApp\\Normalizer\\Dialog360WhatsAppNormalizer@normalizeError",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Normalizer/Dialog360WhatsAppNormalizer.php::App\\Services\\WhatsApp\\Normalizer\\Dialog360WhatsAppNormalizer::normalizeOutboundRequest",
        "fqmn": "App\\Services\\WhatsApp\\Normalizer\\Dialog360WhatsAppNormalizer@normalizeOutboundRequest",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Normalizer/Dialog360WhatsAppNormalizer.php::App\\Services\\WhatsApp\\Normalizer\\Dialog360WhatsAppNormalizer::normalizeSendResponse",
        "fqmn": "App\\Services\\WhatsApp\\Normalizer\\Dialog360WhatsAppNormalizer@normalizeSendResponse",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Normalizer/Dialog360WhatsAppNormalizer.php::App\\Services\\WhatsApp\\Normalizer\\Dialog360WhatsAppNormalizer::normalizeWebhookStatus",
        "fqmn": "App\\Services\\WhatsApp\\Normalizer\\Dialog360WhatsAppNormalizer@normalizeWebhookStatus",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Normalizer/TwilioWhatsAppNormalizer.php::App\\Services\\WhatsApp\\Normalizer\\TwilioWhatsAppNormalizer::getProviderName",
        "fqmn": "App\\Services\\WhatsApp\\Normalizer\\TwilioWhatsAppNormalizer@getProviderName",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Normalizer/TwilioWhatsAppNormalizer.php::App\\Services\\WhatsApp\\Normalizer\\TwilioWhatsAppNormalizer::normalizeError",
        "fqmn": "App\\Services\\WhatsApp\\Normalizer\\TwilioWhatsAppNormalizer@normalizeError",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Normalizer/TwilioWhatsAppNormalizer.php::App\\Services\\WhatsApp\\Normalizer\\TwilioWhatsAppNormalizer::normalizeOutboundRequest",
        "fqmn": "App\\Services\\WhatsApp\\Normalizer\\TwilioWhatsAppNormalizer@normalizeOutboundRequest",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Normalizer/TwilioWhatsAppNormalizer.php::App\\Services\\WhatsApp\\Normalizer\\TwilioWhatsAppNormalizer::normalizeSendResponse",
        "fqmn": "App\\Services\\WhatsApp\\Normalizer\\TwilioWhatsAppNormalizer@normalizeSendResponse",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Normalizer/TwilioWhatsAppNormalizer.php::App\\Services\\WhatsApp\\Normalizer\\TwilioWhatsAppNormalizer::normalizeWebhookStatus",
        "fqmn": "App\\Services\\WhatsApp\\Normalizer\\TwilioWhatsAppNormalizer@normalizeWebhookStatus",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Normalizer/WhatsAppMessageNormalizer.php::App\\Services\\WhatsApp\\Normalizer\\WhatsAppMessageNormalizer::normalizeError",
        "fqmn": "App\\Services\\WhatsApp\\Normalizer\\WhatsAppMessageNormalizer@normalizeError",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Normalizer/WhatsAppMessageNormalizer.php::App\\Services\\WhatsApp\\Normalizer\\WhatsAppMessageNormalizer::normalizeOutboundRequest",
        "fqmn": "App\\Services\\WhatsApp\\Normalizer\\WhatsAppMessageNormalizer@normalizeOutboundRequest",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Normalizer/WhatsAppMessageNormalizer.php::App\\Services\\WhatsApp\\Normalizer\\WhatsAppMessageNormalizer::normalizeSendResponse",
        "fqmn": "App\\Services\\WhatsApp\\Normalizer\\WhatsAppMessageNormalizer@normalizeSendResponse",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Normalizer/WhatsAppMessageNormalizer.php::App\\Services\\WhatsApp\\Normalizer\\WhatsAppMessageNormalizer::normalizeWebhookStatus",
        "fqmn": "App\\Services\\WhatsApp\\Normalizer\\WhatsAppMessageNormalizer@normalizeWebhookStatus",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/ProviderFactory.php::App\\Services\\WhatsApp\\ProviderFactory::make",
        "fqmn": "App\\Services\\WhatsApp\\ProviderFactory@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/WhatsApp/ProviderFactory.php::App\\Services\\WhatsApp\\ProviderFactory::makeTemplateProvider",
        "fqmn": "App\\Services\\WhatsApp\\ProviderFactory@makeTemplateProvider",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/ProviderMetricsService.php::App\\Services\\WhatsApp\\ProviderMetricsService::snapshotForSender",
        "fqmn": "App\\Services\\WhatsApp\\ProviderMetricsService@snapshotForSender",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Providers/Dialog360WhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider::getMediaUrl",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider@getMediaUrl",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Providers/Dialog360WhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider::pushTemplate",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider@pushTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Providers/Dialog360WhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider::sendMessage",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider@sendMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Providers/Dialog360WhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider::sendSenderAction",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider@sendSenderAction",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Providers/Dialog360WhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider::sendTemplate",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider@sendTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Providers/TwilioWhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider::__construct",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@__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/WhatsApp/Providers/TwilioWhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider::fetchTemplateStatus",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@fetchTemplateStatus",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Providers/TwilioWhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider::provision",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@provision",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Providers/TwilioWhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider::pushTemplate",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@pushTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Providers/TwilioWhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider::resolveOrganizationIdByTo",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@resolveOrganizationIdByTo",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Providers/TwilioWhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider::sendDocument",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@sendDocument",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Providers/TwilioWhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider::sendImage",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@sendImage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Providers/TwilioWhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider::sendMessage",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@sendMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Providers/TwilioWhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider::sendSenderAction",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@sendSenderAction",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Providers/TwilioWhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider::sendTemplate",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@sendTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Providers/TwilioWhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider::syncTemplateStatus",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@syncTemplateStatus",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Routing/WhatsAppMessageRouter.php::App\\Services\\WhatsApp\\Routing\\WhatsAppMessageRouter::route",
        "fqmn": "App\\Services\\WhatsApp\\Routing\\WhatsAppMessageRouter@route",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Sessions/WhatsAppSessionResolver.php::App\\Services\\WhatsApp\\Sessions\\WhatsAppSessionResolver::resolve",
        "fqmn": "App\\Services\\WhatsApp\\Sessions\\WhatsAppSessionResolver@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/WhatsApp/SmartReplyService.php::App\\Services\\WhatsApp\\SmartReplyService::buildContractMedia",
        "fqmn": "App\\Services\\WhatsApp\\SmartReplyService@buildContractMedia",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/SmartReplyService.php::App\\Services\\WhatsApp\\SmartReplyService::buildInvoiceMessage",
        "fqmn": "App\\Services\\WhatsApp\\SmartReplyService@buildInvoiceMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/SmartReplyService.php::App\\Services\\WhatsApp\\SmartReplyService::buildOutstandingBalanceMessage",
        "fqmn": "App\\Services\\WhatsApp\\SmartReplyService@buildOutstandingBalanceMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/SmartReplyService.php::App\\Services\\WhatsApp\\SmartReplyService::buildPaymentLinkMessage",
        "fqmn": "App\\Services\\WhatsApp\\SmartReplyService@buildPaymentLinkMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/SmartReplyService.php::App\\Services\\WhatsApp\\SmartReplyService::buildRentReminderMessage",
        "fqmn": "App\\Services\\WhatsApp\\SmartReplyService@buildRentReminderMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/SmartReplyService.php::App\\Services\\WhatsApp\\SmartReplyService::buildTemplateMessage",
        "fqmn": "App\\Services\\WhatsApp\\SmartReplyService@buildTemplateMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/SmartReplyService.php::App\\Services\\WhatsApp\\SmartReplyService::buildUnitLocationMessage",
        "fqmn": "App\\Services\\WhatsApp\\SmartReplyService@buildUnitLocationMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Templates/Dialog360TemplateProvider.php::App\\Services\\WhatsApp\\Templates\\Dialog360TemplateProvider::deleteTemplate",
        "fqmn": "App\\Services\\WhatsApp\\Templates\\Dialog360TemplateProvider@deleteTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Templates/Dialog360TemplateProvider.php::App\\Services\\WhatsApp\\Templates\\Dialog360TemplateProvider::pushTemplate",
        "fqmn": "App\\Services\\WhatsApp\\Templates\\Dialog360TemplateProvider@pushTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Templates/Dialog360TemplateProvider.php::App\\Services\\WhatsApp\\Templates\\Dialog360TemplateProvider::syncTemplate",
        "fqmn": "App\\Services\\WhatsApp\\Templates\\Dialog360TemplateProvider@syncTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Templates/Dialog360TemplateProvider.php::App\\Services\\WhatsApp\\Templates\\Dialog360TemplateProvider::templateCapabilities",
        "fqmn": "App\\Services\\WhatsApp\\Templates\\Dialog360TemplateProvider@templateCapabilities",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Templates/TwilioTemplateProvider.php::App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider::__construct",
        "fqmn": "App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider@__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/WhatsApp/Templates/TwilioTemplateProvider.php::App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider::deleteTemplate",
        "fqmn": "App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider@deleteTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Templates/TwilioTemplateProvider.php::App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider::pushTemplate",
        "fqmn": "App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider@pushTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Templates/TwilioTemplateProvider.php::App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider::syncTemplate",
        "fqmn": "App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider@syncTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Templates/TwilioTemplateProvider.php::App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider::templateCapabilities",
        "fqmn": "App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider@templateCapabilities",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/TenantSidebarService.php::App\\Services\\WhatsApp\\TenantSidebarService::getTenantInfo",
        "fqmn": "App\\Services\\WhatsApp\\TenantSidebarService@getTenantInfo",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/TwilioProvisioningService.php::App\\Services\\WhatsApp\\TwilioProvisioningService::ensureMessagingService",
        "fqmn": "App\\Services\\WhatsApp\\TwilioProvisioningService@ensureMessagingService",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/TwilioProvisioningService.php::App\\Services\\WhatsApp\\TwilioProvisioningService::requestWhatsAppSender",
        "fqmn": "App\\Services\\WhatsApp\\TwilioProvisioningService@requestWhatsAppSender",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/TwilioTemplatePushService.php::App\\Services\\WhatsApp\\TwilioTemplatePushService::push",
        "fqmn": "App\\Services\\WhatsApp\\TwilioTemplatePushService@push",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/TwilioWhatsAppService.php::App\\Services\\WhatsApp\\TwilioWhatsAppService::findApprovedTemplateSid",
        "fqmn": "App\\Services\\WhatsApp\\TwilioWhatsAppService@findApprovedTemplateSid",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/TwilioWhatsAppService.php::App\\Services\\WhatsApp\\TwilioWhatsAppService::resolveOrganizationIdByTo",
        "fqmn": "App\\Services\\WhatsApp\\TwilioWhatsAppService@resolveOrganizationIdByTo",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/TwilioWhatsAppService.php::App\\Services\\WhatsApp\\TwilioWhatsAppService::send",
        "fqmn": "App\\Services\\WhatsApp\\TwilioWhatsAppService@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/WhatsApp/TwilioWhatsAppService.php::App\\Services\\WhatsApp\\TwilioWhatsAppService::sendTemplate",
        "fqmn": "App\\Services\\WhatsApp\\TwilioWhatsAppService@sendTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/TwilioWhatsAppService.php::App\\Services\\WhatsApp\\TwilioWhatsAppService::status",
        "fqmn": "App\\Services\\WhatsApp\\TwilioWhatsAppService@status",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/WalkInLeadService.php::App\\Services\\WhatsApp\\WalkInLeadService::dispatchInboundPipeline",
        "fqmn": "App\\Services\\WhatsApp\\WalkInLeadService@dispatchInboundPipeline",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/WalkInLeadService.php::App\\Services\\WhatsApp\\WalkInLeadService::handleWalkIn",
        "fqmn": "App\\Services\\WhatsApp\\WalkInLeadService@handleWalkIn",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/WhatsAppAISettingsService.php::App\\Services\\WhatsApp\\WhatsAppAISettingsService::forOrganization",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppAISettingsService@forOrganization",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/WhatsAppChatbotService.php::App\\Services\\WhatsApp\\WhatsAppChatbotService::__construct",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppChatbotService@__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/WhatsApp/WhatsAppChatbotService.php::App\\Services\\WhatsApp\\WhatsAppChatbotService::handleInbound",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppChatbotService@handleInbound",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/WhatsAppConnectivityService.php::App\\Services\\WhatsApp\\WhatsAppConnectivityService::canCreateWhatsAppTemplate",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppConnectivityService@canCreateWhatsAppTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/WhatsAppConnectivityService.php::App\\Services\\WhatsApp\\WhatsAppConnectivityService::checkConnectivity",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppConnectivityService@checkConnectivity",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/WhatsAppConnectivityService.php::App\\Services\\WhatsApp\\WhatsAppConnectivityService::checkProviderConnectivity",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppConnectivityService@checkProviderConnectivity",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/WhatsAppConnectivityService.php::App\\Services\\WhatsApp\\WhatsAppConnectivityService::getActiveProvider",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppConnectivityService@getActiveProvider",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/WhatsAppConnectivityService.php::App\\Services\\WhatsApp\\WhatsAppConnectivityService::getConnectivityHelperText",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppConnectivityService@getConnectivityHelperText",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/WhatsAppConsentService.php::App\\Services\\WhatsApp\\WhatsAppConsentService::isOptedOut",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppConsentService@isOptedOut",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/WhatsAppConsentService.php::App\\Services\\WhatsApp\\WhatsAppConsentService::recordOptIn",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppConsentService@recordOptIn",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/WhatsAppConsentService.php::App\\Services\\WhatsApp\\WhatsAppConsentService::recordOptOut",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppConsentService@recordOptOut",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/WhatsAppInboundMessageWriter.php::App\\Services\\WhatsApp\\WhatsAppInboundMessageWriter::create",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppInboundMessageWriter@create",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/WhatsAppInboundMessageWriter.php::App\\Services\\WhatsApp\\WhatsAppInboundMessageWriter::delete",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppInboundMessageWriter@delete",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/WhatsAppInboundMessageWriter.php::App\\Services\\WhatsApp\\WhatsAppInboundMessageWriter::insert",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppInboundMessageWriter@insert",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WhatsApp/WhatsAppInboundMessageWriter.php::App\\Services\\WhatsApp\\WhatsAppInboundMessageWriter::update",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppInboundMessageWriter@update",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZATCAInvoiceService.php::App\\Services\\ZATCAInvoiceService::prepareForZATCA",
        "fqmn": "App\\Services\\ZATCAInvoiceService@prepareForZATCA",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZATCAInvoiceService.php::App\\Services\\ZATCAInvoiceService::validateCompliance",
        "fqmn": "App\\Services\\ZATCAInvoiceService@validateCompliance",
        "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::send",
        "fqmn": "App\\Services\\ZeptoMailService@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/ZeptoMailService.php::App\\Services\\ZeptoMailService::sendBulk",
        "fqmn": "App\\Services\\ZeptoMailService@sendBulk",
        "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::sendTemplate",
        "fqmn": "App\\Services\\ZeptoMailService@sendTemplate",
        "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::verifyWebhook",
        "fqmn": "App\\Services\\ZeptoMailService@verifyWebhook",
        "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/InvoiceOrchestrator.php::App\\Services\\Zoho\\InvoiceOrchestrator::__construct",
        "fqmn": "App\\Services\\Zoho\\InvoiceOrchestrator@__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/Zoho/InvoiceOrchestrator.php::App\\Services\\Zoho\\InvoiceOrchestrator::createCreditNote",
        "fqmn": "App\\Services\\Zoho\\InvoiceOrchestrator@createCreditNote",
        "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/InvoiceOrchestrator.php::App\\Services\\Zoho\\InvoiceOrchestrator::createInvoice",
        "fqmn": "App\\Services\\Zoho\\InvoiceOrchestrator@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/Zoho/Normalizers/BahrainAddressNormalizer.php::App\\Services\\Zoho\\Normalizers\\BahrainAddressNormalizer::normalize",
        "fqmn": "App\\Services\\Zoho\\Normalizers\\BahrainAddressNormalizer@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/Zoho/Normalizers/KuwaitAddressNormalizer.php::App\\Services\\Zoho\\Normalizers\\KuwaitAddressNormalizer::normalize",
        "fqmn": "App\\Services\\Zoho\\Normalizers\\KuwaitAddressNormalizer@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/Zoho/Normalizers/OmanAddressNormalizer.php::App\\Services\\Zoho\\Normalizers\\OmanAddressNormalizer::normalize",
        "fqmn": "App\\Services\\Zoho\\Normalizers\\OmanAddressNormalizer@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/Zoho/Normalizers/QatarAddressNormalizer.php::App\\Services\\Zoho\\Normalizers\\QatarAddressNormalizer::normalize",
        "fqmn": "App\\Services\\Zoho\\Normalizers\\QatarAddressNormalizer@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/Zoho/Normalizers/SaudiAddressNormalizer.php::App\\Services\\Zoho\\Normalizers\\SaudiAddressNormalizer::normalize",
        "fqmn": "App\\Services\\Zoho\\Normalizers\\SaudiAddressNormalizer@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/Zoho/Normalizers/UAEAddressNormalizer.php::App\\Services\\Zoho\\Normalizers\\UAEAddressNormalizer::normalize",
        "fqmn": "App\\Services\\Zoho\\Normalizers\\UAEAddressNormalizer@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/Zoho/ZohoAddressNormalizer.php::App\\Services\\Zoho\\ZohoAddressNormalizer::normalize",
        "fqmn": "App\\Services\\Zoho\\ZohoAddressNormalizer@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/Zoho/ZohoAddressNormalizer.php::App\\Services\\Zoho\\ZohoAddressNormalizer::normalizeFromArray",
        "fqmn": "App\\Services\\Zoho\\ZohoAddressNormalizer@normalizeFromArray",
        "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/ZohoBooksClient.php::App\\Services\\Zoho\\ZohoBooksClient::__construct",
        "fqmn": "App\\Services\\Zoho\\ZohoBooksClient@__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/Zoho/ZohoBooksClient.php::App\\Services\\Zoho\\ZohoBooksClient::accessToken",
        "fqmn": "App\\Services\\Zoho\\ZohoBooksClient@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/Zoho/ZohoBooksClient.php::App\\Services\\Zoho\\ZohoBooksClient::get",
        "fqmn": "App\\Services\\Zoho\\ZohoBooksClient@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/Zoho/ZohoBooksClient.php::App\\Services\\Zoho\\ZohoBooksClient::getConnectionStatus",
        "fqmn": "App\\Services\\Zoho\\ZohoBooksClient@getConnectionStatus",
        "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/ZohoBooksClient.php::App\\Services\\Zoho\\ZohoBooksClient::isConnected",
        "fqmn": "App\\Services\\Zoho\\ZohoBooksClient@isConnected",
        "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/ZohoBooksClient.php::App\\Services\\Zoho\\ZohoBooksClient::post",
        "fqmn": "App\\Services\\Zoho\\ZohoBooksClient@post",
        "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/ZohoErrorResolver.php::App\\Services\\Zoho\\ZohoErrorResolver::classifyError",
        "fqmn": "App\\Services\\Zoho\\ZohoErrorResolver@classifyError",
        "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/ZohoErrorResolver.php::App\\Services\\Zoho\\ZohoErrorResolver::extractErrorCode",
        "fqmn": "App\\Services\\Zoho\\ZohoErrorResolver@extractErrorCode",
        "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/ZohoErrorResolver.php::App\\Services\\Zoho\\ZohoErrorResolver::extractErrorMessage",
        "fqmn": "App\\Services\\Zoho\\ZohoErrorResolver@extractErrorMessage",
        "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/ZohoErrorResolver.php::App\\Services\\Zoho\\ZohoErrorResolver::getResolutionStrategy",
        "fqmn": "App\\Services\\Zoho\\ZohoErrorResolver@getResolutionStrategy",
        "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/ZohoErrorResolver.php::App\\Services\\Zoho\\ZohoErrorResolver::isConflict",
        "fqmn": "App\\Services\\Zoho\\ZohoErrorResolver@isConflict",
        "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/ZohoIdempotencyService.php::App\\Services\\Zoho\\ZohoIdempotencyService::checkAndStore",
        "fqmn": "App\\Services\\Zoho\\ZohoIdempotencyService@checkAndStore",
        "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/ZohoIdempotencyService.php::App\\Services\\Zoho\\ZohoIdempotencyService::generateCustomerKey",
        "fqmn": "App\\Services\\Zoho\\ZohoIdempotencyService@generateCustomerKey",
        "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/ZohoIdempotencyService.php::App\\Services\\Zoho\\ZohoIdempotencyService::generateInvoiceKey",
        "fqmn": "App\\Services\\Zoho\\ZohoIdempotencyService@generateInvoiceKey",
        "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/ZohoIdempotencyService.php::App\\Services\\Zoho\\ZohoIdempotencyService::generateKey",
        "fqmn": "App\\Services\\Zoho\\ZohoIdempotencyService@generateKey",
        "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/ZohoIdempotencyService.php::App\\Services\\Zoho\\ZohoIdempotencyService::generatePaymentKey",
        "fqmn": "App\\Services\\Zoho\\ZohoIdempotencyService@generatePaymentKey",
        "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/ZohoIdempotencyService.php::App\\Services\\Zoho\\ZohoIdempotencyService::isDuplicate",
        "fqmn": "App\\Services\\Zoho\\ZohoIdempotencyService@isDuplicate",
        "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/ZohoIdempotencyService.php::App\\Services\\Zoho\\ZohoIdempotencyService::store",
        "fqmn": "App\\Services\\Zoho\\ZohoIdempotencyService@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/Zoho/ZohoMappingService.php::App\\Services\\Zoho\\ZohoMappingService::mapCurrency",
        "fqmn": "App\\Services\\Zoho\\ZohoMappingService@mapCurrency",
        "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/ZohoMappingService.php::App\\Services\\Zoho\\ZohoMappingService::mapCustomFields",
        "fqmn": "App\\Services\\Zoho\\ZohoMappingService@mapCustomFields",
        "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/ZohoMappingService.php::App\\Services\\Zoho\\ZohoMappingService::mapOrganizationToCustomer",
        "fqmn": "App\\Services\\Zoho\\ZohoMappingService@mapOrganizationToCustomer",
        "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/ZohoMappingService.php::App\\Services\\Zoho\\ZohoMappingService::mapPaymentMethod",
        "fqmn": "App\\Services\\Zoho\\ZohoMappingService@mapPaymentMethod",
        "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/ZohoMappingService.php::App\\Services\\Zoho\\ZohoMappingService::mapVatPolicyToTaxId",
        "fqmn": "App\\Services\\Zoho\\ZohoMappingService@mapVatPolicyToTaxId",
        "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/ZohoMappingService.php::App\\Services\\Zoho\\ZohoMappingService::mapZohoStatusToLocal",
        "fqmn": "App\\Services\\Zoho\\ZohoMappingService@mapZohoStatusToLocal",
        "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/ZohoRetryService.php::App\\Services\\Zoho\\ZohoRetryService::calculateBackoff",
        "fqmn": "App\\Services\\Zoho\\ZohoRetryService@calculateBackoff",
        "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/ZohoRetryService.php::App\\Services\\Zoho\\ZohoRetryService::getRetryDelay",
        "fqmn": "App\\Services\\Zoho\\ZohoRetryService@getRetryDelay",
        "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/ZohoRetryService.php::App\\Services\\Zoho\\ZohoRetryService::incrementRetryCount",
        "fqmn": "App\\Services\\Zoho\\ZohoRetryService@incrementRetryCount",
        "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/ZohoRetryService.php::App\\Services\\Zoho\\ZohoRetryService::isRetryableError",
        "fqmn": "App\\Services\\Zoho\\ZohoRetryService@isRetryableError",
        "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/ZohoRetryService.php::App\\Services\\Zoho\\ZohoRetryService::markAsFailed",
        "fqmn": "App\\Services\\Zoho\\ZohoRetryService@markAsFailed",
        "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/ZohoRetryService.php::App\\Services\\Zoho\\ZohoRetryService::parseRetryAfter",
        "fqmn": "App\\Services\\Zoho\\ZohoRetryService@parseRetryAfter",
        "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/ZohoRetryService.php::App\\Services\\Zoho\\ZohoRetryService::shouldRetry",
        "fqmn": "App\\Services\\Zoho\\ZohoRetryService@shouldRetry",
        "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/ZohoTokenManager.php::App\\Services\\Zoho\\ZohoTokenManager::getAccessToken",
        "fqmn": "App\\Services\\Zoho\\ZohoTokenManager@getAccessToken",
        "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/ZohoWebhookProcessor.php::App\\Services\\Zoho\\ZohoWebhookProcessor::__construct",
        "fqmn": "App\\Services\\Zoho\\ZohoWebhookProcessor@__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/Zoho/ZohoWebhookProcessor.php::App\\Services\\Zoho\\ZohoWebhookProcessor::process",
        "fqmn": "App\\Services\\Zoho\\ZohoWebhookProcessor@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/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::createDirectSubscriptionInvoice",
        "fqmn": "App\\Services\\ZohoBooksService@createDirectSubscriptionInvoice",
        "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::createMaintenanceEstimate",
        "fqmn": "App\\Services\\ZohoBooksService@createMaintenanceEstimate",
        "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::createZohoInvoice",
        "fqmn": "App\\Services\\ZohoBooksService@createZohoInvoice",
        "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::downloadEstimatePdf",
        "fqmn": "App\\Services\\ZohoBooksService@downloadEstimatePdf",
        "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::findOrCreateCustomerForLandlord",
        "fqmn": "App\\Services\\ZohoBooksService@findOrCreateCustomerForLandlord",
        "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::findOrCreateMaintenanceItem",
        "fqmn": "App\\Services\\ZohoBooksService@findOrCreateMaintenanceItem",
        "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::resolveZohoTaxId",
        "fqmn": "App\\Services\\ZohoBooksService@resolveZohoTaxId",
        "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::syncCustomer",
        "fqmn": "App\\Services\\ZohoBooksService@syncCustomer",
        "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/Support/Cache/CacheManagerProxy.php::App\\Support\\Cache\\CacheManagerProxy::add",
        "fqmn": "App\\Support\\Cache\\CacheManagerProxy@add",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Cache/CacheManagerProxy.php::App\\Support\\Cache\\CacheManagerProxy::fake",
        "fqmn": "App\\Support\\Cache\\CacheManagerProxy@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/Cache/CacheManagerProxy.php::App\\Support\\Cache\\CacheManagerProxy::flush",
        "fqmn": "App\\Support\\Cache\\CacheManagerProxy@flush",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Cache/CacheManagerProxy.php::App\\Support\\Cache\\CacheManagerProxy::forget",
        "fqmn": "App\\Support\\Cache\\CacheManagerProxy@forget",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Cache/CacheManagerProxy.php::App\\Support\\Cache\\CacheManagerProxy::get",
        "fqmn": "App\\Support\\Cache\\CacheManagerProxy@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/Cache/CacheManagerProxy.php::App\\Support\\Cache\\CacheManagerProxy::lock",
        "fqmn": "App\\Support\\Cache\\CacheManagerProxy@lock",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Cache/CacheManagerProxy.php::App\\Support\\Cache\\CacheManagerProxy::put",
        "fqmn": "App\\Support\\Cache\\CacheManagerProxy@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/Cache/CacheManagerProxy.php::App\\Support\\Cache\\CacheManagerProxy::remember",
        "fqmn": "App\\Support\\Cache\\CacheManagerProxy@remember",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Cache/CacheManagerProxy.php::App\\Support\\Cache\\CacheManagerProxy::store",
        "fqmn": "App\\Support\\Cache\\CacheManagerProxy@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/Chat/RateLimiter.php::App\\Support\\Chat\\RateLimiter::checkBurstLimit",
        "fqmn": "App\\Support\\Chat\\RateLimiter@checkBurstLimit",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Chat/RateLimiter.php::App\\Support\\Chat\\RateLimiter::checkMultipleWindows",
        "fqmn": "App\\Support\\Chat\\RateLimiter@checkMultipleWindows",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Chat/RateLimiter.php::App\\Support\\Chat\\RateLimiter::checkOpenAITokens",
        "fqmn": "App\\Support\\Chat\\RateLimiter@checkOpenAITokens",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Chat/RateLimiter.php::App\\Support\\Chat\\RateLimiter::checkOrFail",
        "fqmn": "App\\Support\\Chat\\RateLimiter@checkOrFail",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Chat/RateLimiter.php::App\\Support\\Chat\\RateLimiter::checkTwilioTierLimit",
        "fqmn": "App\\Support\\Chat\\RateLimiter@checkTwilioTierLimit",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Chat/RateLimiter.php::App\\Support\\Chat\\RateLimiter::estimateTokens",
        "fqmn": "App\\Support\\Chat\\RateLimiter@estimateTokens",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Chat/RateLimiter.php::App\\Support\\Chat\\RateLimiter::getRemaining",
        "fqmn": "App\\Support\\Chat\\RateLimiter@getRemaining",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Chat/RateLimiter.php::App\\Support\\Chat\\RateLimiter::getResetTime",
        "fqmn": "App\\Support\\Chat\\RateLimiter@getResetTime",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Chat/RateLimiter.php::App\\Support\\Chat\\RateLimiter::isAllowed",
        "fqmn": "App\\Support\\Chat\\RateLimiter@isAllowed",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Chat/RateLimiter.php::App\\Support\\Chat\\RateLimiter::reset",
        "fqmn": "App\\Support\\Chat\\RateLimiter@reset",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::acquireLock",
        "fqmn": "App\\Support\\Chat\\StateRepository@acquireLock",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::addConversationMessage",
        "fqmn": "App\\Support\\Chat\\StateRepository@addConversationMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::clearSession",
        "fqmn": "App\\Support\\Chat\\StateRepository@clearSession",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::getConversationHistory",
        "fqmn": "App\\Support\\Chat\\StateRepository@getConversationHistory",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::getConversationId",
        "fqmn": "App\\Support\\Chat\\StateRepository@getConversationId",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::getLastMessageAt",
        "fqmn": "App\\Support\\Chat\\StateRepository@getLastMessageAt",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::getSessionState",
        "fqmn": "App\\Support\\Chat\\StateRepository@getSessionState",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::loadConversation",
        "fqmn": "App\\Support\\Chat\\StateRepository@loadConversation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::loadSession",
        "fqmn": "App\\Support\\Chat\\StateRepository@loadSession",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::releaseLock",
        "fqmn": "App\\Support\\Chat\\StateRepository@releaseLock",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::saveInboundMessage",
        "fqmn": "App\\Support\\Chat\\StateRepository@saveInboundMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::saveOutboundMessage",
        "fqmn": "App\\Support\\Chat\\StateRepository@saveOutboundMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::saveSession",
        "fqmn": "App\\Support\\Chat\\StateRepository@saveSession",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::setConversationId",
        "fqmn": "App\\Support\\Chat\\StateRepository@setConversationId",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::setLastMessageAt",
        "fqmn": "App\\Support\\Chat\\StateRepository@setLastMessageAt",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::setSessionState",
        "fqmn": "App\\Support\\Chat\\StateRepository@setSessionState",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::trimHistory",
        "fqmn": "App\\Support\\Chat\\StateRepository@trimHistory",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::updateLastMessageTimestamp",
        "fqmn": "App\\Support\\Chat\\StateRepository@updateLastMessageTimestamp",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::updateSessionField",
        "fqmn": "App\\Support\\Chat\\StateRepository@updateSessionField",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/FactoryToolkit.php::App\\Support\\FactoryToolkit::factoryFullCycle",
        "fqmn": "App\\Support\\FactoryToolkit@factoryFullCycle",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/FactoryToolkit.php::App\\Support\\FactoryToolkit::factoryLease",
        "fqmn": "App\\Support\\FactoryToolkit@factoryLease",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/FactoryToolkit.php::App\\Support\\FactoryToolkit::factoryOrganization",
        "fqmn": "App\\Support\\FactoryToolkit@factoryOrganization",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/FactoryToolkit.php::App\\Support\\FactoryToolkit::factoryPropertyChain",
        "fqmn": "App\\Support\\FactoryToolkit@factoryPropertyChain",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/FactoryToolkit.php::App\\Support\\FactoryToolkit::factoryTenant",
        "fqmn": "App\\Support\\FactoryToolkit@factoryTenant",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/FactoryToolkit.php::App\\Support\\FactoryToolkit::fullLeaseCycle",
        "fqmn": "App\\Support\\FactoryToolkit@fullLeaseCycle",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/FactoryToolkit.php::App\\Support\\FactoryToolkit::organizationWithTenants",
        "fqmn": "App\\Support\\FactoryToolkit@organizationWithTenants",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/FactoryToolkit.php::App\\Support\\FactoryToolkit::paymentScenario",
        "fqmn": "App\\Support\\FactoryToolkit@paymentScenario",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/FactoryToolkit.php::App\\Support\\FactoryToolkit::propertyWithUnits",
        "fqmn": "App\\Support\\FactoryToolkit@propertyWithUnits",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/FactoryToolkit.php::App\\Support\\FactoryToolkit::tenantWithLease",
        "fqmn": "App\\Support\\FactoryToolkit@tenantWithLease",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Http/PreservingResponseFactory.php::App\\Support\\Http\\PreservingResponseFactory::json",
        "fqmn": "App\\Support\\Http\\PreservingResponseFactory@json",
        "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/WhatsAppLogger.php::App\\Support\\Logging\\WhatsAppLogger::error",
        "fqmn": "App\\Support\\Logging\\WhatsAppLogger@error",
        "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/WhatsAppLogger.php::App\\Support\\Logging\\WhatsAppLogger::info",
        "fqmn": "App\\Support\\Logging\\WhatsAppLogger@info",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/MarketingMetrics.php::App\\Support\\MarketingMetrics::collectedThisMonth",
        "fqmn": "App\\Support\\MarketingMetrics@collectedThisMonth",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/MarketingMetrics.php::App\\Support\\MarketingMetrics::onTimePaymentsPercentage",
        "fqmn": "App\\Support\\MarketingMetrics@onTimePaymentsPercentage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/MarketingMetrics.php::App\\Support\\MarketingMetrics::propertiesManaged",
        "fqmn": "App\\Support\\MarketingMetrics@propertiesManaged",
        "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/OutreachAI/AdaptiveWeightStore.php::App\\Support\\OutreachAI\\AdaptiveWeightStore::decreaseWeight",
        "fqmn": "App\\Support\\OutreachAI\\AdaptiveWeightStore@decreaseWeight",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/AdaptiveWeightStore.php::App\\Support\\OutreachAI\\AdaptiveWeightStore::get",
        "fqmn": "App\\Support\\OutreachAI\\AdaptiveWeightStore@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/OutreachAI/AdaptiveWeightStore.php::App\\Support\\OutreachAI\\AdaptiveWeightStore::increaseWeight",
        "fqmn": "App\\Support\\OutreachAI\\AdaptiveWeightStore@increaseWeight",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/AdaptiveWeightStore.php::App\\Support\\OutreachAI\\AdaptiveWeightStore::reset",
        "fqmn": "App\\Support\\OutreachAI\\AdaptiveWeightStore@reset",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/AdaptiveWeightStore.php::App\\Support\\OutreachAI\\AdaptiveWeightStore::rollbackToPrevious",
        "fqmn": "App\\Support\\OutreachAI\\AdaptiveWeightStore@rollbackToPrevious",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/AdaptiveWeightStore.php::App\\Support\\OutreachAI\\AdaptiveWeightStore::update",
        "fqmn": "App\\Support\\OutreachAI\\AdaptiveWeightStore@update",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Budget/CurrencyNormalizer.php::App\\Support\\OutreachAI\\Budget\\CurrencyNormalizer::normalize",
        "fqmn": "App\\Support\\OutreachAI\\Budget\\CurrencyNormalizer@normalize",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/ClarityScorer.php::App\\Support\\OutreachAI\\ClarityScorer::score",
        "fqmn": "App\\Support\\OutreachAI\\ClarityScorer@score",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/ContradictionDetector.php::App\\Support\\OutreachAI\\ContradictionDetector::detectContradiction",
        "fqmn": "App\\Support\\OutreachAI\\ContradictionDetector@detectContradiction",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/CounterProposalBuilder.php::App\\Support\\OutreachAI\\CounterProposalBuilder::build",
        "fqmn": "App\\Support\\OutreachAI\\CounterProposalBuilder@build",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/CounterProposalBuilder.php::App\\Support\\OutreachAI\\CounterProposalBuilder::execute",
        "fqmn": "App\\Support\\OutreachAI\\CounterProposalBuilder@execute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/GoalAlignmentScorer.php::App\\Support\\OutreachAI\\GoalAlignmentScorer::score",
        "fqmn": "App\\Support\\OutreachAI\\GoalAlignmentScorer@score",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Knowledge/AllowedKnowledgeRegistry.php::App\\Support\\OutreachAI\\Knowledge\\AllowedKnowledgeRegistry::getAllowedFacts",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\AllowedKnowledgeRegistry@getAllowedFacts",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Knowledge/AllowedKnowledgeRegistry.php::App\\Support\\OutreachAI\\Knowledge\\AllowedKnowledgeRegistry::getFactualBoundaries",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\AllowedKnowledgeRegistry@getFactualBoundaries",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Knowledge/AllowedKnowledgeRegistry.php::App\\Support\\OutreachAI\\Knowledge\\AllowedKnowledgeRegistry::getPricingFacts",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\AllowedKnowledgeRegistry@getPricingFacts",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Knowledge/AllowedKnowledgeRegistry.php::App\\Support\\OutreachAI\\Knowledge\\AllowedKnowledgeRegistry::getSignupLinkForLead",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\AllowedKnowledgeRegistry@getSignupLinkForLead",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Knowledge/AllowedKnowledgeRegistry.php::App\\Support\\OutreachAI\\Knowledge\\AllowedKnowledgeRegistry::validateFact",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\AllowedKnowledgeRegistry@validateFact",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Knowledge/FAQTemplateRegistry.php::App\\Support\\OutreachAI\\Knowledge\\FAQTemplateRegistry::getTemplates",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\FAQTemplateRegistry@getTemplates",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Knowledge/FAQTemplateRegistry.php::App\\Support\\OutreachAI\\Knowledge\\FAQTemplateRegistry::match",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\FAQTemplateRegistry@match",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Knowledge/ForbiddenPhrasesRegistry.php::App\\Support\\OutreachAI\\Knowledge\\ForbiddenPhrasesRegistry::getForbiddenCategories",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\ForbiddenPhrasesRegistry@getForbiddenCategories",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Knowledge/ForbiddenPhrasesRegistry.php::App\\Support\\OutreachAI\\Knowledge\\ForbiddenPhrasesRegistry::isForbidden",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\ForbiddenPhrasesRegistry@isForbidden",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Knowledge/ForbiddenPhrasesRegistry.php::App\\Support\\OutreachAI\\Knowledge\\ForbiddenPhrasesRegistry::sanitize",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\ForbiddenPhrasesRegistry@sanitize",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Knowledge/KnowledgeGuard.php::App\\Support\\OutreachAI\\Knowledge\\KnowledgeGuard::rebuildReply",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\KnowledgeGuard@rebuildReply",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Knowledge/KnowledgeGuard.php::App\\Support\\OutreachAI\\Knowledge\\KnowledgeGuard::validateReply",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\KnowledgeGuard@validateReply",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Knowledge/PlanPricingRegistry.php::App\\Support\\OutreachAI\\Knowledge\\PlanPricingRegistry::getPackageDetails",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\PlanPricingRegistry@getPackageDetails",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Knowledge/PlanPricingRegistry.php::App\\Support\\OutreachAI\\Knowledge\\PlanPricingRegistry::getPlan",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\PlanPricingRegistry@getPlan",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Knowledge/PlanPricingRegistry.php::App\\Support\\OutreachAI\\Knowledge\\PlanPricingRegistry::getPlans",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\PlanPricingRegistry@getPlans",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Knowledge/PlanPricingRegistry.php::App\\Support\\OutreachAI\\Knowledge\\PlanPricingRegistry::getPricingSummary",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\PlanPricingRegistry@getPricingSummary",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Knowledge/PlanPricingRegistry.php::App\\Support\\OutreachAI\\Knowledge\\PlanPricingRegistry::listAllFeatureNames",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\PlanPricingRegistry@listAllFeatureNames",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/MisunderstandingDetector.php::App\\Support\\OutreachAI\\MisunderstandingDetector::detect",
        "fqmn": "App\\Support\\OutreachAI\\MisunderstandingDetector@detect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/OnboardingPromptBuilder.php::App\\Support\\OutreachAI\\OnboardingPromptBuilder::build",
        "fqmn": "App\\Support\\OutreachAI\\OnboardingPromptBuilder@build",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Persona/PersonaConfig.php::App\\Support\\OutreachAI\\Persona\\PersonaConfig::getBrandTraits",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\PersonaConfig@getBrandTraits",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Persona/PersonaConfig.php::App\\Support\\OutreachAI\\Persona\\PersonaConfig::getIdentity",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\PersonaConfig@getIdentity",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Persona/PersonaConfig.php::App\\Support\\OutreachAI\\Persona\\PersonaConfig::getPersonaBlock",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\PersonaConfig@getPersonaBlock",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Persona/PersonaConfig.php::App\\Support\\OutreachAI\\Persona\\PersonaConfig::getTone",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\PersonaConfig@getTone",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Persona/PersonaConfig.php::App\\Support\\OutreachAI\\Persona\\PersonaConfig::validateTransparency",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\PersonaConfig@validateTransparency",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Persona/PersonaEnforcer.php::App\\Support\\OutreachAI\\Persona\\PersonaEnforcer::enforce",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\PersonaEnforcer@enforce",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Persona/StructureEngine.php::App\\Support\\OutreachAI\\Persona\\StructureEngine::restructure",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\StructureEngine@restructure",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Persona/StyleRules.php::App\\Support\\OutreachAI\\Persona\\StyleRules::addStructure",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\StyleRules@addStructure",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Persona/StyleRules.php::App\\Support\\OutreachAI\\Persona\\StyleRules::beMoreDirect",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\StyleRules@beMoreDirect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Persona/StyleRules.php::App\\Support\\OutreachAI\\Persona\\StyleRules::clarify",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\StyleRules@clarify",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Persona/StyleRules.php::App\\Support\\OutreachAI\\Persona\\StyleRules::enforceLength",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\StyleRules@enforceLength",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Persona/StyleRules.php::App\\Support\\OutreachAI\\Persona\\StyleRules::lengthen",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\StyleRules@lengthen",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Persona/StyleRules.php::App\\Support\\OutreachAI\\Persona\\StyleRules::removeFiller",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\StyleRules@removeFiller",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Persona/StyleRules.php::App\\Support\\OutreachAI\\Persona\\StyleRules::shorten",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\StyleRules@shorten",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Persona/StyleRules.php::App\\Support\\OutreachAI\\Persona\\StyleRules::simplify",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\StyleRules@simplify",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Persona/StyleRules.php::App\\Support\\OutreachAI\\Persona\\StyleRules::softenTone",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\StyleRules@softenTone",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Persona/ToneSelector.php::App\\Support\\OutreachAI\\Persona\\ToneSelector::getToneConstraints",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\ToneSelector@getToneConstraints",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Persona/ToneSelector.php::App\\Support\\OutreachAI\\Persona\\ToneSelector::getToneInstructions",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\ToneSelector@getToneInstructions",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Persona/ToneSelector.php::App\\Support\\OutreachAI\\Persona\\ToneSelector::selectTone",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\ToneSelector@selectTone",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/QuestionDetector.php::App\\Support\\OutreachAI\\QuestionDetector::detectQuestions",
        "fqmn": "App\\Support\\OutreachAI\\QuestionDetector@detectQuestions",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/QuestionDetector.php::App\\Support\\OutreachAI\\QuestionDetector::hasQuestion",
        "fqmn": "App\\Support\\OutreachAI\\QuestionDetector@hasQuestion",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/ReengagementMessageBuilder.php::App\\Support\\OutreachAI\\ReengagementMessageBuilder::build",
        "fqmn": "App\\Support\\OutreachAI\\ReengagementMessageBuilder@build",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Safety/AbuseDetector.php::App\\Support\\OutreachAI\\Safety\\AbuseDetector::checkConversationSafety",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\AbuseDetector@checkConversationSafety",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Safety/AbuseDetector.php::App\\Support\\OutreachAI\\Safety\\AbuseDetector::checkInbound",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\AbuseDetector@checkInbound",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Safety/AbuseDetector.php::App\\Support\\OutreachAI\\Safety\\AbuseDetector::detectSpamLikeBehavior",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\AbuseDetector@detectSpamLikeBehavior",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Safety/ComplianceRules.php::App\\Support\\OutreachAI\\Safety\\ComplianceRules::apply",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\ComplianceRules@apply",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Safety/ComplianceRules.php::App\\Support\\OutreachAI\\Safety\\ComplianceRules::getForbiddenPhrases",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\ComplianceRules@getForbiddenPhrases",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Safety/ComplianceRules.php::App\\Support\\OutreachAI\\Safety\\ComplianceRules::getRequiredOptInLanguage",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\ComplianceRules@getRequiredOptInLanguage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Safety/ForbiddenContentScanner.php::App\\Support\\OutreachAI\\Safety\\ForbiddenContentScanner::rewrite",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\ForbiddenContentScanner@rewrite",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Safety/ForbiddenContentScanner.php::App\\Support\\OutreachAI\\Safety\\ForbiddenContentScanner::validate",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\ForbiddenContentScanner@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/OutreachAI/Safety/FrequencyLimiter.php::App\\Support\\OutreachAI\\Safety\\FrequencyLimiter::checkLimits",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\FrequencyLimiter@checkLimits",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Safety/FrequencyLimiter.php::App\\Support\\OutreachAI\\Safety\\FrequencyLimiter::recordOutbound",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\FrequencyLimiter@recordOutbound",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Safety/GPTContentFilter.php::App\\Support\\OutreachAI\\Safety\\GPTContentFilter::validate",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\GPTContentFilter@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/OutreachAI/Safety/OptOutEnforcer.php::App\\Support\\OutreachAI\\Safety\\OptOutEnforcer::detect",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\OptOutEnforcer@detect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Safety/OptOutEnforcer.php::App\\Support\\OutreachAI\\Safety\\OptOutEnforcer::enforce",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\OptOutEnforcer@enforce",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Safety/OptOutEnforcer.php::App\\Support\\OutreachAI\\Safety\\OptOutEnforcer::getConfirmationMessage",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\OptOutEnforcer@getConfirmationMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Safety/SafetyRules.php::App\\Support\\OutreachAI\\Safety\\SafetyRules::validateInbound",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\SafetyRules@validateInbound",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Safety/SafetyRules.php::App\\Support\\OutreachAI\\Safety\\SafetyRules::validateOutbound",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\SafetyRules@validateOutbound",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Safety/SafetySupervisor.php::App\\Support\\OutreachAI\\Safety\\SafetySupervisor::checkOutbound",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\SafetySupervisor@checkOutbound",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Safety/SafetySupervisor.php::App\\Support\\OutreachAI\\Safety\\SafetySupervisor::processOutboundReply",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\SafetySupervisor@processOutboundReply",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Safety/SafetySupervisor.php::App\\Support\\OutreachAI\\Safety\\SafetySupervisor::validateInboundText",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\SafetySupervisor@validateInboundText",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/SafetyCheck.php::App\\Support\\OutreachAI\\SafetyCheck::check",
        "fqmn": "App\\Support\\OutreachAI\\SafetyCheck@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/OutreachAI/TrajectoryAdjustmentDirector.php::App\\Support\\OutreachAI\\TrajectoryAdjustmentDirector::adjust",
        "fqmn": "App\\Support\\OutreachAI\\TrajectoryAdjustmentDirector@adjust",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/TrajectoryAdjustmentDirector.php::App\\Support\\OutreachAI\\TrajectoryAdjustmentDirector::getAdjustmentInstructions",
        "fqmn": "App\\Support\\OutreachAI\\TrajectoryAdjustmentDirector@getAdjustmentInstructions",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/TrajectoryDriftAnalyzer.php::App\\Support\\OutreachAI\\TrajectoryDriftAnalyzer::analyze",
        "fqmn": "App\\Support\\OutreachAI\\TrajectoryDriftAnalyzer@analyze",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/UpsellMessageBuilder.php::App\\Support\\OutreachAI\\UpsellMessageBuilder::build",
        "fqmn": "App\\Support\\OutreachAI\\UpsellMessageBuilder@build",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/OutreachAI/UpsellMessageBuilder.php::App\\Support\\OutreachAI\\UpsellMessageBuilder::validateSafety",
        "fqmn": "App\\Support\\OutreachAI\\UpsellMessageBuilder@validateSafety",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Scopes/OrganizationScope.php::App\\Support\\Scopes\\OrganizationScope::apply",
        "fqmn": "App\\Support\\Scopes\\OrganizationScope@apply",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Services/CurrencyService.php::App\\Support\\Services\\CurrencyService::currencyForCountry",
        "fqmn": "App\\Support\\Services\\CurrencyService@currencyForCountry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Services/CurrencyService.php::App\\Support\\Services\\CurrencyService::decimalsFor",
        "fqmn": "App\\Support\\Services\\CurrencyService@decimalsFor",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Services/CurrencyService.php::App\\Support\\Services\\CurrencyService::fromBaseTo",
        "fqmn": "App\\Support\\Services\\CurrencyService@fromBaseTo",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Services/PhoneNumberService.php::App\\Support\\Services\\PhoneNumberService::normalizeToE164",
        "fqmn": "App\\Support\\Services\\PhoneNumberService@normalizeToE164",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Services/SystemSettings.php::App\\Support\\Services\\SystemSettings::delete",
        "fqmn": "App\\Support\\Services\\SystemSettings@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/Services/SystemSettings.php::App\\Support\\Services\\SystemSettings::get",
        "fqmn": "App\\Support\\Services\\SystemSettings@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/Services/SystemSettings.php::App\\Support\\Services\\SystemSettings::set",
        "fqmn": "App\\Support\\Services\\SystemSettings@set",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Services/UnifiedPhoneNormalizer.php::App\\Support\\Services\\UnifiedPhoneNormalizer::normalize",
        "fqmn": "App\\Support\\Services\\UnifiedPhoneNormalizer@normalize",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Services/UnifiedPhoneNormalizer.php::App\\Support\\Services\\UnifiedPhoneNormalizer::normalizeToE164",
        "fqmn": "App\\Support\\Services\\UnifiedPhoneNormalizer@normalizeToE164",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Subscription/Actions/StartFeaturePreviewAction.php::App\\Support\\Subscription\\Actions\\StartFeaturePreviewAction::execute",
        "fqmn": "App\\Support\\Subscription\\Actions\\StartFeaturePreviewAction@execute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Subscription/FeatureAccessService.php::App\\Support\\Subscription\\FeatureAccessService::determineAccess",
        "fqmn": "App\\Support\\Subscription\\FeatureAccessService@determineAccess",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Subscription/FeatureAccessService.php::App\\Support\\Subscription\\FeatureAccessService::enforce",
        "fqmn": "App\\Support\\Subscription\\FeatureAccessService@enforce",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Subscription/FeatureAccessService.php::App\\Support\\Subscription\\FeatureAccessService::getFeatureDisplayName",
        "fqmn": "App\\Support\\Subscription\\FeatureAccessService@getFeatureDisplayName",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Subscription/FeatureAccessService.php::App\\Support\\Subscription\\FeatureAccessService::resolveFeatureKey",
        "fqmn": "App\\Support\\Subscription\\FeatureAccessService@resolveFeatureKey",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Subscription/FeatureAccessService.php::App\\Support\\Subscription\\FeatureAccessService::startPreview",
        "fqmn": "App\\Support\\Subscription\\FeatureAccessService@startPreview",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Subscription/GateResult.php::App\\Support\\Subscription\\GateResult::__construct",
        "fqmn": "App\\Support\\Subscription\\GateResult@__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/Subscription/SubscriptionGate.php::App\\Support\\Subscription\\SubscriptionGate::__construct",
        "fqmn": "App\\Support\\Subscription\\SubscriptionGate@__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/Subscription/SubscriptionGate.php::App\\Support\\Subscription\\SubscriptionGate::check",
        "fqmn": "App\\Support\\Subscription\\SubscriptionGate@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/Subscription/SubscriptionGate.php::App\\Support\\Subscription\\SubscriptionGate::enforce",
        "fqmn": "App\\Support\\Subscription\\SubscriptionGate@enforce",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Testing/LogFake.php::App\\Support\\Testing\\LogFake::__call",
        "fqmn": "App\\Support\\Testing\\LogFake@__call",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Testing/LogFake.php::App\\Support\\Testing\\LogFake::alert",
        "fqmn": "App\\Support\\Testing\\LogFake@alert",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Testing/LogFake.php::App\\Support\\Testing\\LogFake::assertLogged",
        "fqmn": "App\\Support\\Testing\\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/Testing/LogFake.php::App\\Support\\Testing\\LogFake::channel",
        "fqmn": "App\\Support\\Testing\\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/Testing/LogFake.php::App\\Support\\Testing\\LogFake::critical",
        "fqmn": "App\\Support\\Testing\\LogFake@critical",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Testing/LogFake.php::App\\Support\\Testing\\LogFake::debug",
        "fqmn": "App\\Support\\Testing\\LogFake@debug",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Testing/LogFake.php::App\\Support\\Testing\\LogFake::driver",
        "fqmn": "App\\Support\\Testing\\LogFake@driver",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Testing/LogFake.php::App\\Support\\Testing\\LogFake::emergency",
        "fqmn": "App\\Support\\Testing\\LogFake@emergency",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Testing/LogFake.php::App\\Support\\Testing\\LogFake::error",
        "fqmn": "App\\Support\\Testing\\LogFake@error",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Testing/LogFake.php::App\\Support\\Testing\\LogFake::info",
        "fqmn": "App\\Support\\Testing\\LogFake@info",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Testing/LogFake.php::App\\Support\\Testing\\LogFake::log",
        "fqmn": "App\\Support\\Testing\\LogFake@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/Testing/LogFake.php::App\\Support\\Testing\\LogFake::notice",
        "fqmn": "App\\Support\\Testing\\LogFake@notice",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Testing/LogFake.php::App\\Support\\Testing\\LogFake::stack",
        "fqmn": "App\\Support\\Testing\\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/Testing/LogFake.php::App\\Support\\Testing\\LogFake::warning",
        "fqmn": "App\\Support\\Testing\\LogFake@warning",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Testing/TestDetector.php::App\\Support\\Testing\\TestDetector::isTested",
        "fqmn": "App\\Support\\Testing\\TestDetector@isTested",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "route::routes/api.php::get::/testing/sate/outreach-ai/knowledge/forbidden-phrases/categories::App\\Support\\OutreachAI\\Knowledge\\ForbiddenPhrasesRegistry::__invoke",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\ForbiddenPhrasesRegistry@__invoke",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "route::routes/api.php::get::/testing/sate/outreach-ai/persona/block::App\\Support\\OutreachAI\\Persona\\PersonaConfig::__invoke",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\PersonaConfig@__invoke",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "route::routes/api.php::get::/testing/sate/outreach-ai/persona/brand-traits::App\\Support\\OutreachAI\\Persona\\PersonaConfig::__invoke",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\PersonaConfig@__invoke",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "route::routes/api.php::get::/testing/sate/outreach-ai/persona/identity::App\\Support\\OutreachAI\\Persona\\PersonaConfig::__invoke",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\PersonaConfig@__invoke",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/zoho/analytics/clearance-status-stats::App\\Services\\Billing\\ZohoBillingAnalyticsService::__invoke",
        "fqmn": "App\\Services\\Billing\\ZohoBillingAnalyticsService@__invoke",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      }
    ],
    "defer": [
      {
        "surface_id": "method::app/Actions/Auth/FilamentAgencyRegisterAction.php::App\\Actions\\Auth\\FilamentAgencyRegisterAction::execute",
        "fqmn": "App\\Actions\\Auth\\FilamentAgencyRegisterAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/Billing/AddOrganizationSubscriptionCreditsAction.php::App\\Actions\\Billing\\AddOrganizationSubscriptionCreditsAction::execute",
        "fqmn": "App\\Actions\\Billing\\AddOrganizationSubscriptionCreditsAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/Billing/AddUnitsToSubscriptionAction.php::App\\Actions\\Billing\\AddUnitsToSubscriptionAction::__construct",
        "fqmn": "App\\Actions\\Billing\\AddUnitsToSubscriptionAction@__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/Actions/Billing/AddUnitsToSubscriptionAction.php::App\\Actions\\Billing\\AddUnitsToSubscriptionAction::execute",
        "fqmn": "App\\Actions\\Billing\\AddUnitsToSubscriptionAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/Billing/CreateCreditTransactionAction.php::App\\Actions\\Billing\\CreateCreditTransactionAction::execute",
        "fqmn": "App\\Actions\\Billing\\CreateCreditTransactionAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/Billing/CreateProrationChargeAction.php::App\\Actions\\Billing\\CreateProrationChargeAction::execute",
        "fqmn": "App\\Actions\\Billing\\CreateProrationChargeAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/Billing/CreateSoftDeletedOrganizationSubscriptionAction.php::App\\Actions\\Billing\\CreateSoftDeletedOrganizationSubscriptionAction::execute",
        "fqmn": "App\\Actions\\Billing\\CreateSoftDeletedOrganizationSubscriptionAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/Billing/RecordSubscriptionDiscountCodeUsageAction.php::App\\Actions\\Billing\\RecordSubscriptionDiscountCodeUsageAction::__construct",
        "fqmn": "App\\Actions\\Billing\\RecordSubscriptionDiscountCodeUsageAction@__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/Actions/Billing/RecordSubscriptionDiscountCodeUsageAction.php::App\\Actions\\Billing\\RecordSubscriptionDiscountCodeUsageAction::execute",
        "fqmn": "App\\Actions\\Billing\\RecordSubscriptionDiscountCodeUsageAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/Billing/SeedBillingNotificationDashboardDataAction.php::App\\Actions\\Billing\\SeedBillingNotificationDashboardDataAction::execute",
        "fqmn": "App\\Actions\\Billing\\SeedBillingNotificationDashboardDataAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/Billing/SendSubscriptionEventNotificationAction.php::App\\Actions\\Billing\\SendSubscriptionEventNotificationAction::__construct",
        "fqmn": "App\\Actions\\Billing\\SendSubscriptionEventNotificationAction@__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/Actions/Billing/SendSubscriptionEventNotificationAction.php::App\\Actions\\Billing\\SendSubscriptionEventNotificationAction::execute",
        "fqmn": "App\\Actions\\Billing\\SendSubscriptionEventNotificationAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/Billing/SuspendOrganizationSubscriptionAction.php::App\\Actions\\Billing\\SuspendOrganizationSubscriptionAction::execute",
        "fqmn": "App\\Actions\\Billing\\SuspendOrganizationSubscriptionAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/DispatchRentCyclePaidTwiceAction.php::App\\Actions\\DispatchRentCyclePaidTwiceAction::execute",
        "fqmn": "App\\Actions\\DispatchRentCyclePaidTwiceAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/EmailTemplates/IsEmailTemplateEnabledForOrganizationAction.php::App\\Actions\\EmailTemplates\\IsEmailTemplateEnabledForOrganizationAction::__construct",
        "fqmn": "App\\Actions\\EmailTemplates\\IsEmailTemplateEnabledForOrganizationAction@__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/Actions/EmailTemplates/IsEmailTemplateEnabledForOrganizationAction.php::App\\Actions\\EmailTemplates\\IsEmailTemplateEnabledForOrganizationAction::execute",
        "fqmn": "App\\Actions\\EmailTemplates\\IsEmailTemplateEnabledForOrganizationAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/EmailTemplates/RenderEmailTemplateAction.php::App\\Actions\\EmailTemplates\\RenderEmailTemplateAction::__construct",
        "fqmn": "App\\Actions\\EmailTemplates\\RenderEmailTemplateAction@__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/Actions/EmailTemplates/RenderEmailTemplateAction.php::App\\Actions\\EmailTemplates\\RenderEmailTemplateAction::execute",
        "fqmn": "App\\Actions\\EmailTemplates\\RenderEmailTemplateAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/EmailTemplates/SendEmailTemplateAction.php::App\\Actions\\EmailTemplates\\SendEmailTemplateAction::__construct",
        "fqmn": "App\\Actions\\EmailTemplates\\SendEmailTemplateAction@__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/Actions/EmailTemplates/SendEmailTemplateAction.php::App\\Actions\\EmailTemplates\\SendEmailTemplateAction::execute",
        "fqmn": "App\\Actions\\EmailTemplates\\SendEmailTemplateAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/EmailTemplates/SendEmailTemplateToManyRecipientsAction.php::App\\Actions\\EmailTemplates\\SendEmailTemplateToManyRecipientsAction::__construct",
        "fqmn": "App\\Actions\\EmailTemplates\\SendEmailTemplateToManyRecipientsAction@__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/Actions/EmailTemplates/SendEmailTemplateToManyRecipientsAction.php::App\\Actions\\EmailTemplates\\SendEmailTemplateToManyRecipientsAction::execute",
        "fqmn": "App\\Actions\\EmailTemplates\\SendEmailTemplateToManyRecipientsAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/EmailTemplates/SendEmailTemplateToUsersUsingTheirLocaleAction.php::App\\Actions\\EmailTemplates\\SendEmailTemplateToUsersUsingTheirLocaleAction::__construct",
        "fqmn": "App\\Actions\\EmailTemplates\\SendEmailTemplateToUsersUsingTheirLocaleAction@__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/Actions/EmailTemplates/SendEmailTemplateToUsersUsingTheirLocaleAction.php::App\\Actions\\EmailTemplates\\SendEmailTemplateToUsersUsingTheirLocaleAction::execute",
        "fqmn": "App\\Actions\\EmailTemplates\\SendEmailTemplateToUsersUsingTheirLocaleAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/NotificationPreferences/ClearNotificationPreferenceAction.php::App\\Actions\\NotificationPreferences\\ClearNotificationPreferenceAction::run",
        "fqmn": "App\\Actions\\NotificationPreferences\\ClearNotificationPreferenceAction@run",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/Outreach/CancelFollowUp.php::App\\Actions\\Outreach\\CancelFollowUp::__invoke",
        "fqmn": "App\\Actions\\Outreach\\CancelFollowUp@__invoke",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/Outreach/CheckFollowUpSafetyAction.php::App\\Actions\\Outreach\\CheckFollowUpSafetyAction::__construct",
        "fqmn": "App\\Actions\\Outreach\\CheckFollowUpSafetyAction@__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/Actions/Outreach/CheckFollowUpSafetyAction.php::App\\Actions\\Outreach\\CheckFollowUpSafetyAction::execute",
        "fqmn": "App\\Actions\\Outreach\\CheckFollowUpSafetyAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/Outreach/CreateCountryAction.php::App\\Actions\\Outreach\\CreateCountryAction::execute",
        "fqmn": "App\\Actions\\Outreach\\CreateCountryAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/Outreach/CreateFollowUpAction.php::App\\Actions\\Outreach\\CreateFollowUpAction::execute",
        "fqmn": "App\\Actions\\Outreach\\CreateFollowUpAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/Outreach/CreateLeadAction.php::App\\Actions\\Outreach\\CreateLeadAction::execute",
        "fqmn": "App\\Actions\\Outreach\\CreateLeadAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/Outreach/ImportLeadsAction.php::App\\Actions\\Outreach\\ImportLeadsAction::__construct",
        "fqmn": "App\\Actions\\Outreach\\ImportLeadsAction@__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/Actions/Outreach/ImportLeadsAction.php::App\\Actions\\Outreach\\ImportLeadsAction::execute",
        "fqmn": "App\\Actions\\Outreach\\ImportLeadsAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/Outreach/SaveTemplatesAction.php::App\\Actions\\Outreach\\SaveTemplatesAction::__construct",
        "fqmn": "App\\Actions\\Outreach\\SaveTemplatesAction@__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/Actions/Outreach/SaveTemplatesAction.php::App\\Actions\\Outreach\\SaveTemplatesAction::execute",
        "fqmn": "App\\Actions\\Outreach\\SaveTemplatesAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/Outreach/TriggerFollowUpNow.php::App\\Actions\\Outreach\\TriggerFollowUpNow::__invoke",
        "fqmn": "App\\Actions\\Outreach\\TriggerFollowUpNow@__invoke",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/OutreachAI/AssignClusterAction.php::App\\Actions\\OutreachAI\\AssignClusterAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\AssignClusterAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/OutreachAI/ComputeAttributionAction.php::App\\Actions\\OutreachAI\\ComputeAttributionAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\ComputeAttributionAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/OutreachAI/DecideDiscountAction.php::App\\Actions\\OutreachAI\\DecideDiscountAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\DecideDiscountAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/OutreachAI/DeriveGoalAction.php::App\\Actions\\OutreachAI\\DeriveGoalAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\DeriveGoalAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/OutreachAI/DetectBudgetAction.php::App\\Actions\\OutreachAI\\DetectBudgetAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\DetectBudgetAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/OutreachAI/GenerateAIResponderReplyAction.php::App\\Actions\\OutreachAI\\GenerateAIResponderReplyAction::run",
        "fqmn": "App\\Actions\\OutreachAI\\GenerateAIResponderReplyAction@run",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/OutreachAI/GenerateReplyOutcomeAction.php::App\\Actions\\OutreachAI\\GenerateReplyOutcomeAction::__construct",
        "fqmn": "App\\Actions\\OutreachAI\\GenerateReplyOutcomeAction@__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/Actions/OutreachAI/GenerateReplyOutcomeAction.php::App\\Actions\\OutreachAI\\GenerateReplyOutcomeAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\GenerateReplyOutcomeAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/OutreachAI/GetBudgetStrategyAction.php::App\\Actions\\OutreachAI\\GetBudgetStrategyAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\GetBudgetStrategyAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/OutreachAI/GetClosingActionNextStepAction.php::App\\Actions\\OutreachAI\\GetClosingActionNextStepAction::__construct",
        "fqmn": "App\\Actions\\OutreachAI\\GetClosingActionNextStepAction@__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/Actions/OutreachAI/GetClosingActionNextStepAction.php::App\\Actions\\OutreachAI\\GetClosingActionNextStepAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\GetClosingActionNextStepAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/OutreachAI/GetClosingStepAction.php::App\\Actions\\OutreachAI\\GetClosingStepAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\GetClosingStepAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/OutreachAI/IssueAIDiscountAction.php::App\\Actions\\OutreachAI\\IssueAIDiscountAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\IssueAIDiscountAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/OutreachAI/OutputInsightsAction.php::App\\Actions\\OutreachAI\\OutputInsightsAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\OutputInsightsAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/OutreachAI/RecommendPlanAction.php::App\\Actions\\OutreachAI\\RecommendPlanAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\RecommendPlanAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/OutreachAI/RecordFunnelEventAction.php::App\\Actions\\OutreachAI\\RecordFunnelEventAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\RecordFunnelEventAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/OutreachAI/RecordStageChangeAction.php::App\\Actions\\OutreachAI\\RecordStageChangeAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\RecordStageChangeAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/OutreachAI/SalesAcceleration/AccelerateSalesAccelerationAction.php::App\\Actions\\OutreachAI\\SalesAcceleration\\AccelerateSalesAccelerationAction::run",
        "fqmn": "App\\Actions\\OutreachAI\\SalesAcceleration\\AccelerateSalesAccelerationAction@run",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/OutreachAI/SalesAcceleration/RunQualificationOutcomeAction.php::App\\Actions\\OutreachAI\\SalesAcceleration\\RunQualificationOutcomeAction::__construct",
        "fqmn": "App\\Actions\\OutreachAI\\SalesAcceleration\\RunQualificationOutcomeAction@__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/Actions/OutreachAI/SalesAcceleration/RunQualificationOutcomeAction.php::App\\Actions\\OutreachAI\\SalesAcceleration\\RunQualificationOutcomeAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\SalesAcceleration\\RunQualificationOutcomeAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/OutreachAI/SalesAcceleration/RunSalesAccelerationOutcomeAction.php::App\\Actions\\OutreachAI\\SalesAcceleration\\RunSalesAccelerationOutcomeAction::__construct",
        "fqmn": "App\\Actions\\OutreachAI\\SalesAcceleration\\RunSalesAccelerationOutcomeAction@__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/Actions/OutreachAI/SalesAcceleration/RunSalesAccelerationOutcomeAction.php::App\\Actions\\OutreachAI\\SalesAcceleration\\RunSalesAccelerationOutcomeAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\SalesAcceleration\\RunSalesAccelerationOutcomeAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/OutreachAI/ScoreAffordabilityAction.php::App\\Actions\\OutreachAI\\ScoreAffordabilityAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\ScoreAffordabilityAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/OutreachAI/StoreGoalAction.php::App\\Actions\\OutreachAI\\StoreGoalAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\StoreGoalAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/Payments/CreatePaymentDeductionAction.php::App\\Actions\\Payments\\CreatePaymentDeductionAction::__construct",
        "fqmn": "App\\Actions\\Payments\\CreatePaymentDeductionAction@__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/Actions/Payments/CreatePaymentDeductionAction.php::App\\Actions\\Payments\\CreatePaymentDeductionAction::execute",
        "fqmn": "App\\Actions\\Payments\\CreatePaymentDeductionAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/Payments/FinalizeTransactionAction.php::App\\Actions\\Payments\\FinalizeTransactionAction::__construct",
        "fqmn": "App\\Actions\\Payments\\FinalizeTransactionAction@__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/Actions/Payments/FinalizeTransactionAction.php::App\\Actions\\Payments\\FinalizeTransactionAction::execute",
        "fqmn": "App\\Actions\\Payments\\FinalizeTransactionAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/Payments/FinalizeTransactionsAction.php::App\\Actions\\Payments\\FinalizeTransactionsAction::__construct",
        "fqmn": "App\\Actions\\Payments\\FinalizeTransactionsAction@__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/Actions/Payments/FinalizeTransactionsAction.php::App\\Actions\\Payments\\FinalizeTransactionsAction::execute",
        "fqmn": "App\\Actions\\Payments\\FinalizeTransactionsAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/Payments/RecordPaymentAction.php::App\\Actions\\Payments\\RecordPaymentAction::__construct",
        "fqmn": "App\\Actions\\Payments\\RecordPaymentAction@__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/Actions/Payments/RecordPaymentAction.php::App\\Actions\\Payments\\RecordPaymentAction::execute",
        "fqmn": "App\\Actions\\Payments\\RecordPaymentAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/Properties/CreateProspectShortlistAction.php::App\\Actions\\Properties\\CreateProspectShortlistAction::execute",
        "fqmn": "App\\Actions\\Properties\\CreateProspectShortlistAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/Properties/CreateProspectShortlistUnitAction.php::App\\Actions\\Properties\\CreateProspectShortlistUnitAction::execute",
        "fqmn": "App\\Actions\\Properties\\CreateProspectShortlistUnitAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/Properties/IncrementProspectShortlistViewsAction.php::App\\Actions\\Properties\\IncrementProspectShortlistViewsAction::execute",
        "fqmn": "App\\Actions\\Properties\\IncrementProspectShortlistViewsAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/Properties/UpdateProspectShortlistAction.php::App\\Actions\\Properties\\UpdateProspectShortlistAction::execute",
        "fqmn": "App\\Actions\\Properties\\UpdateProspectShortlistAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/Properties/UpdateProspectShortlistUnitAction.php::App\\Actions\\Properties\\UpdateProspectShortlistUnitAction::execute",
        "fqmn": "App\\Actions\\Properties\\UpdateProspectShortlistUnitAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/PushSubscriptions/ManagePushSubscriptionAction.php::App\\Actions\\PushSubscriptions\\ManagePushSubscriptionAction::execute",
        "fqmn": "App\\Actions\\PushSubscriptions\\ManagePushSubscriptionAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/SendEmailTemplateAction.php::App\\Actions\\SendEmailTemplateAction::__construct",
        "fqmn": "App\\Actions\\SendEmailTemplateAction@__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/Actions/SendEmailTemplateAction.php::App\\Actions\\SendEmailTemplateAction::execute",
        "fqmn": "App\\Actions\\SendEmailTemplateAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/Users/RestoreUserWithNewEmailAction.php::App\\Actions\\Users\\RestoreUserWithNewEmailAction::execute",
        "fqmn": "App\\Actions\\Users\\RestoreUserWithNewEmailAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/Zoho/SyncZohoCustomerAction.php::App\\Actions\\Zoho\\SyncZohoCustomerAction::__construct",
        "fqmn": "App\\Actions\\Zoho\\SyncZohoCustomerAction@__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/Actions/Zoho/SyncZohoCustomerAction.php::App\\Actions\\Zoho\\SyncZohoCustomerAction::execute",
        "fqmn": "App\\Actions\\Zoho\\SyncZohoCustomerAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Actions/Zoho/SyncZohoInvoiceAction.php::App\\Actions\\Zoho\\SyncZohoInvoiceAction::__construct",
        "fqmn": "App\\Actions\\Zoho\\SyncZohoInvoiceAction@__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/Actions/Zoho/SyncZohoInvoiceAction.php::App\\Actions\\Zoho\\SyncZohoInvoiceAction::execute",
        "fqmn": "App\\Actions\\Zoho\\SyncZohoInvoiceAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/AIBr/Domain/Knowledge/RetrievalConstraintService.php::App\\AIBr\\Domain\\Knowledge\\RetrievalConstraintService::applyConstraints",
        "fqmn": "App\\AIBr\\Domain\\Knowledge\\RetrievalConstraintService@applyConstraints",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/AIBr/Domain/Planning/ConversationPlanService.php::App\\AIBr\\Domain\\Planning\\ConversationPlanService::generatePlan",
        "fqmn": "App\\AIBr\\Domain\\Planning\\ConversationPlanService@generatePlan",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/AIBr/Domain/Planning/ConversationPlanService.php::App\\AIBr\\Domain\\Planning\\ConversationPlanService::getActiveStep",
        "fqmn": "App\\AIBr\\Domain\\Planning\\ConversationPlanService@getActiveStep",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/AIBr/Domain/Scoring/LeadPriorityService.php::App\\AIBr\\Domain\\Scoring\\LeadPriorityService::calculateScore",
        "fqmn": "App\\AIBr\\Domain\\Scoring\\LeadPriorityService@calculateScore",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/AIBr/Kernel/AIBrain.php::App\\AIBr\\Kernel\\AIBrain::generateOutboundReply",
        "fqmn": "App\\AIBr\\Kernel\\AIBrain@generateOutboundReply",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/BookingController.php::App\\Api\\Controllers\\BookingController::__construct",
        "fqmn": "App\\Api\\Controllers\\BookingController@__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/Api/Controllers/BookingController.php::App\\Api\\Controllers\\BookingController::cancel",
        "fqmn": "App\\Api\\Controllers\\BookingController@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/Api/Controllers/BookingController.php::App\\Api\\Controllers\\BookingController::convert",
        "fqmn": "App\\Api\\Controllers\\BookingController@convert",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/BookingController.php::App\\Api\\Controllers\\BookingController::store",
        "fqmn": "App\\Api\\Controllers\\BookingController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/FileController.php::App\\Api\\Controllers\\FileController::__construct",
        "fqmn": "App\\Api\\Controllers\\FileController@__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/Api/Controllers/FileController.php::App\\Api\\Controllers\\FileController::bulkUpload",
        "fqmn": "App\\Api\\Controllers\\FileController@bulkUpload",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/FileController.php::App\\Api\\Controllers\\FileController::destroy",
        "fqmn": "App\\Api\\Controllers\\FileController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/FileController.php::App\\Api\\Controllers\\FileController::download",
        "fqmn": "App\\Api\\Controllers\\FileController@download",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/FileController.php::App\\Api\\Controllers\\FileController::index",
        "fqmn": "App\\Api\\Controllers\\FileController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/FileController.php::App\\Api\\Controllers\\FileController::show",
        "fqmn": "App\\Api\\Controllers\\FileController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/FileController.php::App\\Api\\Controllers\\FileController::stats",
        "fqmn": "App\\Api\\Controllers\\FileController@stats",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/FileController.php::App\\Api\\Controllers\\FileController::upload",
        "fqmn": "App\\Api\\Controllers\\FileController@upload",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/GatewayController.php::App\\Api\\Controllers\\GatewayController::deliveryStatus",
        "fqmn": "App\\Api\\Controllers\\GatewayController@deliveryStatus",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/GatewayController.php::App\\Api\\Controllers\\GatewayController::heartbeat",
        "fqmn": "App\\Api\\Controllers\\GatewayController@heartbeat",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/GatewayController.php::App\\Api\\Controllers\\GatewayController::register",
        "fqmn": "App\\Api\\Controllers\\GatewayController@register",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/GatewayController.php::App\\Api\\Controllers\\GatewayController::whatsappConfig",
        "fqmn": "App\\Api\\Controllers\\GatewayController@whatsappConfig",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/LandlordController.php::App\\Api\\Controllers\\LandlordController::__construct",
        "fqmn": "App\\Api\\Controllers\\LandlordController@__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/Api/Controllers/LandlordController.php::App\\Api\\Controllers\\LandlordController::destroy",
        "fqmn": "App\\Api\\Controllers\\LandlordController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/LandlordController.php::App\\Api\\Controllers\\LandlordController::index",
        "fqmn": "App\\Api\\Controllers\\LandlordController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/LandlordController.php::App\\Api\\Controllers\\LandlordController::resendInvitation",
        "fqmn": "App\\Api\\Controllers\\LandlordController@resendInvitation",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/LandlordController.php::App\\Api\\Controllers\\LandlordController::show",
        "fqmn": "App\\Api\\Controllers\\LandlordController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/LandlordController.php::App\\Api\\Controllers\\LandlordController::stats",
        "fqmn": "App\\Api\\Controllers\\LandlordController@stats",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/LandlordController.php::App\\Api\\Controllers\\LandlordController::store",
        "fqmn": "App\\Api\\Controllers\\LandlordController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/LandlordController.php::App\\Api\\Controllers\\LandlordController::update",
        "fqmn": "App\\Api\\Controllers\\LandlordController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/LandlordDashboardController.php::App\\Api\\Controllers\\LandlordDashboardController::__construct",
        "fqmn": "App\\Api\\Controllers\\LandlordDashboardController@__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/Api/Controllers/LandlordDashboardController.php::App\\Api\\Controllers\\LandlordDashboardController::dashboard",
        "fqmn": "App\\Api\\Controllers\\LandlordDashboardController@dashboard",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/LandlordDashboardController.php::App\\Api\\Controllers\\LandlordDashboardController::leases",
        "fqmn": "App\\Api\\Controllers\\LandlordDashboardController@leases",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/LandlordDashboardController.php::App\\Api\\Controllers\\LandlordDashboardController::properties",
        "fqmn": "App\\Api\\Controllers\\LandlordDashboardController@properties",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/LandlordDashboardController.php::App\\Api\\Controllers\\LandlordDashboardController::transfers",
        "fqmn": "App\\Api\\Controllers\\LandlordDashboardController@transfers",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::__construct",
        "fqmn": "App\\Api\\Controllers\\LeaseController@__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/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::active",
        "fqmn": "App\\Api\\Controllers\\LeaseController@active",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::destroy",
        "fqmn": "App\\Api\\Controllers\\LeaseController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::expired",
        "fqmn": "App\\Api\\Controllers\\LeaseController@expired",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::expiringSoon",
        "fqmn": "App\\Api\\Controllers\\LeaseController@expiringSoon",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::index",
        "fqmn": "App\\Api\\Controllers\\LeaseController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::show",
        "fqmn": "App\\Api\\Controllers\\LeaseController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::stats",
        "fqmn": "App\\Api\\Controllers\\LeaseController@stats",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::store",
        "fqmn": "App\\Api\\Controllers\\LeaseController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::terminate",
        "fqmn": "App\\Api\\Controllers\\LeaseController@terminate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::upcomingDueDates",
        "fqmn": "App\\Api\\Controllers\\LeaseController@upcomingDueDates",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::update",
        "fqmn": "App\\Api\\Controllers\\LeaseController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/OrgDeductionSettingsController.php::App\\Api\\Controllers\\OrgDeductionSettingsController::__construct",
        "fqmn": "App\\Api\\Controllers\\OrgDeductionSettingsController@__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/Api/Controllers/OrgDeductionSettingsController.php::App\\Api\\Controllers\\OrgDeductionSettingsController::show",
        "fqmn": "App\\Api\\Controllers\\OrgDeductionSettingsController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/OrgDeductionSettingsController.php::App\\Api\\Controllers\\OrgDeductionSettingsController::update",
        "fqmn": "App\\Api\\Controllers\\OrgDeductionSettingsController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/OrgWhatsAppIntegrationController.php::App\\Api\\Controllers\\OrgWhatsAppIntegrationController::show",
        "fqmn": "App\\Api\\Controllers\\OrgWhatsAppIntegrationController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/OrgWhatsAppIntegrationController.php::App\\Api\\Controllers\\OrgWhatsAppIntegrationController::update",
        "fqmn": "App\\Api\\Controllers\\OrgWhatsAppIntegrationController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/PaymentController.php::App\\Api\\Controllers\\PaymentController::__construct",
        "fqmn": "App\\Api\\Controllers\\PaymentController@__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/Api/Controllers/PaymentController.php::App\\Api\\Controllers\\PaymentController::createTransfer",
        "fqmn": "App\\Api\\Controllers\\PaymentController@createTransfer",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/PaymentController.php::App\\Api\\Controllers\\PaymentController::destroy",
        "fqmn": "App\\Api\\Controllers\\PaymentController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/PaymentController.php::App\\Api\\Controllers\\PaymentController::index",
        "fqmn": "App\\Api\\Controllers\\PaymentController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/PaymentController.php::App\\Api\\Controllers\\PaymentController::needingTransfer",
        "fqmn": "App\\Api\\Controllers\\PaymentController@needingTransfer",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/PaymentController.php::App\\Api\\Controllers\\PaymentController::recent",
        "fqmn": "App\\Api\\Controllers\\PaymentController@recent",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/PaymentController.php::App\\Api\\Controllers\\PaymentController::show",
        "fqmn": "App\\Api\\Controllers\\PaymentController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/PaymentController.php::App\\Api\\Controllers\\PaymentController::stats",
        "fqmn": "App\\Api\\Controllers\\PaymentController@stats",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/PaymentController.php::App\\Api\\Controllers\\PaymentController::store",
        "fqmn": "App\\Api\\Controllers\\PaymentController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/PaymentController.php::App\\Api\\Controllers\\PaymentController::transfers",
        "fqmn": "App\\Api\\Controllers\\PaymentController@transfers",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/PaymentController.php::App\\Api\\Controllers\\PaymentController::update",
        "fqmn": "App\\Api\\Controllers\\PaymentController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/PaymentProofController.php::App\\Api\\Controllers\\PaymentProofController::__construct",
        "fqmn": "App\\Api\\Controllers\\PaymentProofController@__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/Api/Controllers/PaymentProofController.php::App\\Api\\Controllers\\PaymentProofController::approve",
        "fqmn": "App\\Api\\Controllers\\PaymentProofController@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/Api/Controllers/PaymentProofController.php::App\\Api\\Controllers\\PaymentProofController::index",
        "fqmn": "App\\Api\\Controllers\\PaymentProofController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/PaymentProofController.php::App\\Api\\Controllers\\PaymentProofController::pendingCount",
        "fqmn": "App\\Api\\Controllers\\PaymentProofController@pendingCount",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/PaymentProofController.php::App\\Api\\Controllers\\PaymentProofController::reject",
        "fqmn": "App\\Api\\Controllers\\PaymentProofController@reject",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/PaymentProofController.php::App\\Api\\Controllers\\PaymentProofController::requiresReview",
        "fqmn": "App\\Api\\Controllers\\PaymentProofController@requiresReview",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/PaymentProofController.php::App\\Api\\Controllers\\PaymentProofController::show",
        "fqmn": "App\\Api\\Controllers\\PaymentProofController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/PaymentProofController.php::App\\Api\\Controllers\\PaymentProofController::store",
        "fqmn": "App\\Api\\Controllers\\PaymentProofController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/PaymentProofController.php::App\\Api\\Controllers\\PaymentProofController::submit",
        "fqmn": "App\\Api\\Controllers\\PaymentProofController@submit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/PropertyController.php::App\\Api\\Controllers\\PropertyController::__construct",
        "fqmn": "App\\Api\\Controllers\\PropertyController@__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/Api/Controllers/PropertyController.php::App\\Api\\Controllers\\PropertyController::byType",
        "fqmn": "App\\Api\\Controllers\\PropertyController@byType",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/PropertyController.php::App\\Api\\Controllers\\PropertyController::destroy",
        "fqmn": "App\\Api\\Controllers\\PropertyController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/PropertyController.php::App\\Api\\Controllers\\PropertyController::forLandlord",
        "fqmn": "App\\Api\\Controllers\\PropertyController@forLandlord",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/PropertyController.php::App\\Api\\Controllers\\PropertyController::index",
        "fqmn": "App\\Api\\Controllers\\PropertyController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/PropertyController.php::App\\Api\\Controllers\\PropertyController::show",
        "fqmn": "App\\Api\\Controllers\\PropertyController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/PropertyController.php::App\\Api\\Controllers\\PropertyController::stats",
        "fqmn": "App\\Api\\Controllers\\PropertyController@stats",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/PropertyController.php::App\\Api\\Controllers\\PropertyController::store",
        "fqmn": "App\\Api\\Controllers\\PropertyController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/PropertyController.php::App\\Api\\Controllers\\PropertyController::update",
        "fqmn": "App\\Api\\Controllers\\PropertyController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/ReminderController.php::App\\Api\\Controllers\\ReminderController::__construct",
        "fqmn": "App\\Api\\Controllers\\ReminderController@__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/Api/Controllers/ReminderController.php::App\\Api\\Controllers\\ReminderController::byStatus",
        "fqmn": "App\\Api\\Controllers\\ReminderController@byStatus",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/ReminderController.php::App\\Api\\Controllers\\ReminderController::cancel",
        "fqmn": "App\\Api\\Controllers\\ReminderController@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/Api/Controllers/ReminderController.php::App\\Api\\Controllers\\ReminderController::index",
        "fqmn": "App\\Api\\Controllers\\ReminderController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/ReminderController.php::App\\Api\\Controllers\\ReminderController::recent",
        "fqmn": "App\\Api\\Controllers\\ReminderController@recent",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/ReminderController.php::App\\Api\\Controllers\\ReminderController::show",
        "fqmn": "App\\Api\\Controllers\\ReminderController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/ReminderController.php::App\\Api\\Controllers\\ReminderController::stats",
        "fqmn": "App\\Api\\Controllers\\ReminderController@stats",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::__construct",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@__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/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::bulkUpdate",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@bulkUpdate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::dueSoon",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@dueSoon",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::dueToday",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@dueToday",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::index",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::markOverdue",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@markOverdue",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::markPaid",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@markPaid",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::monthlyCollections",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@monthlyCollections",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::overdue",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@overdue",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::pending",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@pending",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::show",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::stats",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@stats",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::update",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/ReportController.php::App\\Api\\Controllers\\ReportController::__construct",
        "fqmn": "App\\Api\\Controllers\\ReportController@__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/Api/Controllers/ReportController.php::App\\Api\\Controllers\\ReportController::landlordDashboard",
        "fqmn": "App\\Api\\Controllers\\ReportController@landlordDashboard",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/ReportController.php::App\\Api\\Controllers\\ReportController::monthlyCollections",
        "fqmn": "App\\Api\\Controllers\\ReportController@monthlyCollections",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/ReportController.php::App\\Api\\Controllers\\ReportController::occupancyTrends",
        "fqmn": "App\\Api\\Controllers\\ReportController@occupancyTrends",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/ReportController.php::App\\Api\\Controllers\\ReportController::organizationDashboard",
        "fqmn": "App\\Api\\Controllers\\ReportController@organizationDashboard",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/ReportController.php::App\\Api\\Controllers\\ReportController::tenantDashboard",
        "fqmn": "App\\Api\\Controllers\\ReportController@tenantDashboard",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/ReportController.php::App\\Api\\Controllers\\ReportController::topProperties",
        "fqmn": "App\\Api\\Controllers\\ReportController@topProperties",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/ReportExportController.php::App\\Api\\Controllers\\ReportExportController::__construct",
        "fqmn": "App\\Api\\Controllers\\ReportExportController@__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/Api/Controllers/ReportExportController.php::App\\Api\\Controllers\\ReportExportController::exportCollectionReport",
        "fqmn": "App\\Api\\Controllers\\ReportExportController@exportCollectionReport",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/ReportExportController.php::App\\Api\\Controllers\\ReportExportController::exportFinancialSummary",
        "fqmn": "App\\Api\\Controllers\\ReportExportController@exportFinancialSummary",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/ReportExportController.php::App\\Api\\Controllers\\ReportExportController::exportOverdueReport",
        "fqmn": "App\\Api\\Controllers\\ReportExportController@exportOverdueReport",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/ReportExportController.php::App\\Api\\Controllers\\ReportExportController::exportRentRoll",
        "fqmn": "App\\Api\\Controllers\\ReportExportController@exportRentRoll",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/SubscriptionController.php::App\\Api\\Controllers\\SubscriptionController::__construct",
        "fqmn": "App\\Api\\Controllers\\SubscriptionController@__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/Api/Controllers/SubscriptionController.php::App\\Api\\Controllers\\SubscriptionController::current",
        "fqmn": "App\\Api\\Controllers\\SubscriptionController@current",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/SubscriptionController.php::App\\Api\\Controllers\\SubscriptionController::subscribe",
        "fqmn": "App\\Api\\Controllers\\SubscriptionController@subscribe",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/SubscriptionController.php::App\\Api\\Controllers\\SubscriptionController::tiers",
        "fqmn": "App\\Api\\Controllers\\SubscriptionController@tiers",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/SubscriptionController.php::App\\Api\\Controllers\\SubscriptionController::topUp",
        "fqmn": "App\\Api\\Controllers\\SubscriptionController@topUp",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/SubscriptionController.php::App\\Api\\Controllers\\SubscriptionController::transactions",
        "fqmn": "App\\Api\\Controllers\\SubscriptionController@transactions",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/SubscriptionController.php::App\\Api\\Controllers\\SubscriptionController::usage",
        "fqmn": "App\\Api\\Controllers\\SubscriptionController@usage",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/TenantController.php::App\\Api\\Controllers\\TenantController::__construct",
        "fqmn": "App\\Api\\Controllers\\TenantController@__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/Api/Controllers/TenantController.php::App\\Api\\Controllers\\TenantController::destroy",
        "fqmn": "App\\Api\\Controllers\\TenantController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/TenantController.php::App\\Api\\Controllers\\TenantController::index",
        "fqmn": "App\\Api\\Controllers\\TenantController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/TenantController.php::App\\Api\\Controllers\\TenantController::resendInvitation",
        "fqmn": "App\\Api\\Controllers\\TenantController@resendInvitation",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/TenantController.php::App\\Api\\Controllers\\TenantController::show",
        "fqmn": "App\\Api\\Controllers\\TenantController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/TenantController.php::App\\Api\\Controllers\\TenantController::stats",
        "fqmn": "App\\Api\\Controllers\\TenantController@stats",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/TenantController.php::App\\Api\\Controllers\\TenantController::store",
        "fqmn": "App\\Api\\Controllers\\TenantController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/TenantController.php::App\\Api\\Controllers\\TenantController::update",
        "fqmn": "App\\Api\\Controllers\\TenantController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/TenantDashboardController.php::App\\Api\\Controllers\\TenantDashboardController::__construct",
        "fqmn": "App\\Api\\Controllers\\TenantDashboardController@__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/Api/Controllers/TenantDashboardController.php::App\\Api\\Controllers\\TenantDashboardController::dashboard",
        "fqmn": "App\\Api\\Controllers\\TenantDashboardController@dashboard",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/TenantDashboardController.php::App\\Api\\Controllers\\TenantDashboardController::payments",
        "fqmn": "App\\Api\\Controllers\\TenantDashboardController@payments",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/TenantDashboardController.php::App\\Api\\Controllers\\TenantDashboardController::reminders",
        "fqmn": "App\\Api\\Controllers\\TenantDashboardController@reminders",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/TenantDashboardController.php::App\\Api\\Controllers\\TenantDashboardController::rentCycles",
        "fqmn": "App\\Api\\Controllers\\TenantDashboardController@rentCycles",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/TransferController.php::App\\Api\\Controllers\\TransferController::__construct",
        "fqmn": "App\\Api\\Controllers\\TransferController@__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/Api/Controllers/TransferController.php::App\\Api\\Controllers\\TransferController::bulkComplete",
        "fqmn": "App\\Api\\Controllers\\TransferController@bulkComplete",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/TransferController.php::App\\Api\\Controllers\\TransferController::complete",
        "fqmn": "App\\Api\\Controllers\\TransferController@complete",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/TransferController.php::App\\Api\\Controllers\\TransferController::fail",
        "fqmn": "App\\Api\\Controllers\\TransferController@fail",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/TransferController.php::App\\Api\\Controllers\\TransferController::index",
        "fqmn": "App\\Api\\Controllers\\TransferController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/TransferController.php::App\\Api\\Controllers\\TransferController::pending",
        "fqmn": "App\\Api\\Controllers\\TransferController@pending",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/TransferController.php::App\\Api\\Controllers\\TransferController::show",
        "fqmn": "App\\Api\\Controllers\\TransferController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/TransferController.php::App\\Api\\Controllers\\TransferController::stats",
        "fqmn": "App\\Api\\Controllers\\TransferController@stats",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::__construct",
        "fqmn": "App\\Api\\Controllers\\UnitController@__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/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::assignTenant",
        "fqmn": "App\\Api\\Controllers\\UnitController@assignTenant",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::destroy",
        "fqmn": "App\\Api\\Controllers\\UnitController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::index",
        "fqmn": "App\\Api\\Controllers\\UnitController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::occupied",
        "fqmn": "App\\Api\\Controllers\\UnitController@occupied",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::show",
        "fqmn": "App\\Api\\Controllers\\UnitController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::stats",
        "fqmn": "App\\Api\\Controllers\\UnitController@stats",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::store",
        "fqmn": "App\\Api\\Controllers\\UnitController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::update",
        "fqmn": "App\\Api\\Controllers\\UnitController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::updateComposition",
        "fqmn": "App\\Api\\Controllers\\UnitController@updateComposition",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::vacant",
        "fqmn": "App\\Api\\Controllers\\UnitController@vacant",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::vacate",
        "fqmn": "App\\Api\\Controllers\\UnitController@vacate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::validateForSharing",
        "fqmn": "App\\Api\\Controllers\\UnitController@validateForSharing",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Api/Resources/MaintenanceTicketResource.php::App\\Api\\Resources\\MaintenanceTicketResource::toArray",
        "fqmn": "App\\Api\\Resources\\MaintenanceTicketResource@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/Api/Resources/PropertyResource.php::App\\Api\\Resources\\PropertyResource::toArray",
        "fqmn": "App\\Api\\Resources\\PropertyResource@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/Api/Resources/RentCycleResource.php::App\\Api\\Resources\\RentCycleResource::toArray",
        "fqmn": "App\\Api\\Resources\\RentCycleResource@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/Api/Resources/TenantResource.php::App\\Api\\Resources\\TenantResource::toArray",
        "fqmn": "App\\Api\\Resources\\TenantResource@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/Api/Resources/UnitResource.php::App\\Api\\Resources\\UnitResource::toArray",
        "fqmn": "App\\Api\\Resources\\UnitResource@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/Billing/Dunning/DunningPolicyResolver.php::App\\Billing\\Dunning\\DunningPolicyResolver::resolveForSubscription",
        "fqmn": "App\\Billing\\Dunning\\DunningPolicyResolver@resolveForSubscription",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Billing/Dunning/ResolvedDunningPolicy.php::App\\Billing\\Dunning\\ResolvedDunningPolicy::__construct",
        "fqmn": "App\\Billing\\Dunning\\ResolvedDunningPolicy@__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/Billing/Dunning/ResolvedDunningPolicy.php::App\\Billing\\Dunning\\ResolvedDunningPolicy::getDelaySecondsForAttempt",
        "fqmn": "App\\Billing\\Dunning\\ResolvedDunningPolicy@getDelaySecondsForAttempt",
        "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/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::afterCreate",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@afterCreate",
        "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/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::afterSave",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@afterSave",
        "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/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::canCreate",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@canCreate",
        "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/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::canView",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@canView",
        "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/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::canViewAny",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@canViewAny",
        "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/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::getHeading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "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/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::getLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getLabel",
        "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/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@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/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::getNavigationGroup",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getNavigationGroup",
        "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/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@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/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getTitle",
        "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/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::mutateFormDataBeforeCreate",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@mutateFormDataBeforeCreate",
        "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/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::organizationHasSeatCapacity",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@organizationHasSeatCapacity",
        "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/Agencies/Resources/AgencyUserResource/Pages/CreateAgencyUser.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\CreateAgencyUser::getHeading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\CreateAgencyUser@getHeading",
        "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/Agencies/Resources/AgencyUserResource/Pages/CreateAgencyUser.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\CreateAgencyUser::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\CreateAgencyUser@getTitle",
        "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/Agencies/Resources/AgencyUserResource/Pages/EditAgencyUser.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\EditAgencyUser::getHeading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\EditAgencyUser@getHeading",
        "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/Agencies/Resources/AgencyUserResource/Pages/EditAgencyUser.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\EditAgencyUser::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\EditAgencyUser@getTitle",
        "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/Agencies/Resources/AgencyUserResource/Pages/ViewAgencyUser.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\ViewAgencyUser::getHeading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\ViewAgencyUser@getHeading",
        "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/Agencies/Resources/AgencyUserResource/Pages/ViewAgencyUser.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\ViewAgencyUser::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\ViewAgencyUser@getTitle",
        "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/Agencies/Resources/FileResource.php::App\\Domains\\Agencies\\Resources\\FileResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\FileResource@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/Agencies/Resources/FileResource.php::App\\Domains\\Agencies\\Resources\\FileResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\FileResource@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/Agencies/Resources/FileResource.php::App\\Domains\\Agencies\\Resources\\FileResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\FileResource@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/Agencies/Resources/FileResource.php::App\\Domains\\Agencies\\Resources\\FileResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\FileResource@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/Agencies/Resources/FileResource.php::App\\Domains\\Agencies\\Resources\\FileResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\FileResource@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/Agencies/Resources/FileResource.php::App\\Domains\\Agencies\\Resources\\FileResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\FileResource@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/Agencies/Resources/FileResource.php::App\\Domains\\Agencies\\Resources\\FileResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\FileResource@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/Agencies/Resources/LabourResource.php::App\\Domains\\Agencies\\Resources\\LabourResource::mutateFormDataBeforeCreate",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LabourResource@mutateFormDataBeforeCreate",
        "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/Agencies/Resources/LabourResource/Pages/CreateLabour.php::App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\CreateLabour::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\CreateLabour@getTitle",
        "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/Agencies/Resources/LabourResource/Pages/EditLabour.php::App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\EditLabour::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\EditLabour@getTitle",
        "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/Agencies/Resources/LabourResource/Pages/ListLabours.php::App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ListLabours::getBreadcrumb",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ListLabours@getBreadcrumb",
        "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/Agencies/Resources/LabourResource/Pages/ListLabours.php::App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ListLabours::getHeading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ListLabours@getHeading",
        "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/Agencies/Resources/LabourResource/Pages/ListLabours.php::App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ListLabours::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ListLabours@getTitle",
        "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/Agencies/Resources/LabourResource/Pages/ViewLabour.php::App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ViewLabour::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ViewLabour@getTitle",
        "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/Agencies/Resources/LandlordResource.php::App\\Domains\\Agencies\\Resources\\LandlordResource::canCreate",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource@canCreate",
        "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/Agencies/Resources/LandlordResource.php::App\\Domains\\Agencies\\Resources\\LandlordResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource@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/Agencies/Resources/LandlordResource.php::App\\Domains\\Agencies\\Resources\\LandlordResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource@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/Agencies/Resources/LandlordResource.php::App\\Domains\\Agencies\\Resources\\LandlordResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource@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/Agencies/Resources/LandlordResource.php::App\\Domains\\Agencies\\Resources\\LandlordResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource@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/Agencies/Resources/LandlordResource.php::App\\Domains\\Agencies\\Resources\\LandlordResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource@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/Agencies/Resources/LandlordResource.php::App\\Domains\\Agencies\\Resources\\LandlordResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource@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/Agencies/Resources/LandlordResource.php::App\\Domains\\Agencies\\Resources\\LandlordResource::getRelations",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource@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/Agencies/Resources/LandlordResource/Pages/CreateLandlord.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\CreateLandlord::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\CreateLandlord@getTitle",
        "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/Agencies/Resources/LandlordResource/Pages/EditLandlord.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\EditLandlord::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\EditLandlord@getTitle",
        "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/Agencies/Resources/LandlordResource/Pages/ListLandlords.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ListLandlords::getBreadcrumb",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ListLandlords@getBreadcrumb",
        "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/Agencies/Resources/LandlordResource/Pages/ListLandlords.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ListLandlords::getHeading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ListLandlords@getHeading",
        "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/Agencies/Resources/LandlordResource/Pages/ListLandlords.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ListLandlords::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ListLandlords@getTitle",
        "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/Agencies/Resources/LandlordResource/Pages/ViewLandlord.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ViewLandlord::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ViewLandlord@getTitle",
        "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/Agencies/Resources/LandlordResource/RelationManagers/DocumentsRelationManager.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@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/Agencies/Resources/LandlordResource/RelationManagers/DocumentsRelationManager.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@getTitle",
        "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/Agencies/Resources/LandlordResource/RelationManagers/DocumentsRelationManager.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@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/Agencies/Resources/LandlordResource/RelationManagers/PropertiesRelationManager.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@getTitle",
        "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/Agencies/Resources/LandlordResource/RelationManagers/PropertiesRelationManager.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@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/Agencies/Resources/LeaseCycleResource.php::App\\Domains\\Agencies\\Resources\\LeaseCycleResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@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/Agencies/Resources/LeaseCycleResource.php::App\\Domains\\Agencies\\Resources\\LeaseCycleResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@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/Agencies/Resources/LeaseCycleResource.php::App\\Domains\\Agencies\\Resources\\LeaseCycleResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@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/Agencies/Resources/LeaseCycleResource.php::App\\Domains\\Agencies\\Resources\\LeaseCycleResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@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/Agencies/Resources/LeaseCycleResource.php::App\\Domains\\Agencies\\Resources\\LeaseCycleResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@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/Agencies/Resources/LeaseCycleResource.php::App\\Domains\\Agencies\\Resources\\LeaseCycleResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@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/Agencies/Resources/LeaseCycleResource.php::App\\Domains\\Agencies\\Resources\\LeaseCycleResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@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/Agencies/Resources/LeaseResource.php::App\\Domains\\Agencies\\Resources\\LeaseResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource@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/Agencies/Resources/LeaseResource.php::App\\Domains\\Agencies\\Resources\\LeaseResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource@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/Agencies/Resources/LeaseResource.php::App\\Domains\\Agencies\\Resources\\LeaseResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource@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/Agencies/Resources/LeaseResource.php::App\\Domains\\Agencies\\Resources\\LeaseResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource@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/Agencies/Resources/LeaseResource.php::App\\Domains\\Agencies\\Resources\\LeaseResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource@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/Agencies/Resources/LeaseResource.php::App\\Domains\\Agencies\\Resources\\LeaseResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource@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/Agencies/Resources/LeaseResource.php::App\\Domains\\Agencies\\Resources\\LeaseResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource@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/Agencies/Resources/LeaseResource/Pages/Bookings.php::App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings::canAccess",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings@canAccess",
        "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/Agencies/Resources/LeaseResource/Pages/Bookings.php::App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings@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/Agencies/Resources/LeaseResource/Pages/Bookings.php::App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings@getTitle",
        "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/Agencies/Resources/LeaseResource/Pages/Bookings.php::App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings@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/Agencies/Resources/LeaseResource/Pages/CreateLease.php::App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\CreateLease::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\CreateLease@getTitle",
        "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/Agencies/Resources/LeaseResource/Pages/EditLease.php::App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\EditLease::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\EditLease@getTitle",
        "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/Agencies/Resources/LeaseResource/Pages/ListLeases.php::App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ListLeases::getSubheading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ListLeases@getSubheading",
        "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/Agencies/Resources/LeaseResource/Pages/ListLeases.php::App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ListLeases::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ListLeases@getTitle",
        "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/Agencies/Resources/LeaseResource/Pages/ViewLease.php::App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ViewLease::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ViewLease@getTitle",
        "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/Agencies/Resources/LeaseResource/Pages/ViewLease.php::App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ViewLease::infolist",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ViewLease@infolist",
        "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/Agencies/Resources/MaintenanceSlaResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@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/Agencies/Resources/MaintenanceSlaResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@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/Agencies/Resources/MaintenanceSlaResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@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/Agencies/Resources/MaintenanceSlaResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@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/Agencies/Resources/MaintenanceSlaResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@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/Agencies/Resources/MaintenanceSlaResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@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/Agencies/Resources/MaintenanceSlaResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource::infolist",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@infolist",
        "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/Agencies/Resources/MaintenanceSlaResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@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/Agencies/Resources/MaintenanceSlaResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@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/Agencies/Resources/MaintenanceSlaResource/Pages/CreateMaintenanceSla.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource\\Pages\\CreateMaintenanceSla::getHeading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource\\Pages\\CreateMaintenanceSla@getHeading",
        "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/Agencies/Resources/MaintenanceSlaResource/Pages/CreateMaintenanceSla.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource\\Pages\\CreateMaintenanceSla::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource\\Pages\\CreateMaintenanceSla@getTitle",
        "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/Agencies/Resources/MaintenanceSuggestionResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@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/Agencies/Resources/MaintenanceSuggestionResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@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/Agencies/Resources/MaintenanceSuggestionResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@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/Agencies/Resources/MaintenanceSuggestionResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@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/Agencies/Resources/MaintenanceSuggestionResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@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/Agencies/Resources/MaintenanceSuggestionResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@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/Agencies/Resources/MaintenanceSuggestionResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@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/Agencies/Resources/MaintenanceSuggestionResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@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/Agencies/Resources/MaintenanceTicketResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource@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/Agencies/Resources/MaintenanceTicketResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource@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/Agencies/Resources/MaintenanceTicketResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource@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/Agencies/Resources/MaintenanceTicketResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource@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/Agencies/Resources/MaintenanceTicketResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource@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/Agencies/Resources/MaintenanceTicketResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource@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/Agencies/Resources/MaintenanceTicketResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource::getRelations",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource@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/Agencies/Resources/MaintenanceTicketResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource::infolist",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource@infolist",
        "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/Agencies/Resources/MaintenanceTicketResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource@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/Agencies/Resources/MaintenanceTicketResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource@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/Agencies/Resources/MaintenanceTicketResource/Actions/ExportTicketsAction.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\Actions\\ExportTicketsAction::getDefaultName",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\Actions\\ExportTicketsAction@getDefaultName",
        "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/Agencies/Resources/MaintenanceTicketResource/Pages/CreateMaintenanceTicket.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\Pages\\CreateMaintenanceTicket::getHeading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\Pages\\CreateMaintenanceTicket@getHeading",
        "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/Agencies/Resources/MaintenanceTicketResource/Pages/CreateMaintenanceTicket.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\Pages\\CreateMaintenanceTicket::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\Pages\\CreateMaintenanceTicket@getTitle",
        "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/Agencies/Resources/MaintenanceTicketResource/RelationManagers/CommentsRelationManager.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\CommentsRelationManager::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\CommentsRelationManager@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/Agencies/Resources/MaintenanceTicketResource/RelationManagers/CommentsRelationManager.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\CommentsRelationManager::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\CommentsRelationManager@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/Agencies/Resources/MaintenanceTicketResource/RelationManagers/MediaRelationManager.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\MediaRelationManager::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\MediaRelationManager@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/Agencies/Resources/MaintenanceTicketResource/RelationManagers/MediaRelationManager.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\MediaRelationManager::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\MediaRelationManager@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/Agencies/Resources/MaintenanceTicketResource/RelationManagers/SlaLogsRelationManager.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SlaLogsRelationManager::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SlaLogsRelationManager@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/Agencies/Resources/MaintenanceTicketResource/RelationManagers/SlaLogsRelationManager.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SlaLogsRelationManager::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SlaLogsRelationManager@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/Agencies/Resources/MaintenanceTicketResource/RelationManagers/SuggestionsRelationManager.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SuggestionsRelationManager::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SuggestionsRelationManager@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/Agencies/Resources/MaintenanceTicketResource/RelationManagers/SuggestionsRelationManager.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SuggestionsRelationManager::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SuggestionsRelationManager@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/Agencies/Resources/MaintenanceTicketSlaLogResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@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/Agencies/Resources/MaintenanceTicketSlaLogResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@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/Agencies/Resources/MaintenanceTicketSlaLogResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@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/Agencies/Resources/MaintenanceTicketSlaLogResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@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/Agencies/Resources/MaintenanceTicketSlaLogResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@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/Agencies/Resources/MaintenanceTicketSlaLogResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@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/Agencies/Resources/MaintenanceTicketSlaLogResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@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/Agencies/Resources/MaintenanceTicketSlaLogResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@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/Agencies/Resources/NotificationCenterResource.php::App\\Domains\\Agencies\\Resources\\NotificationCenterResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationCenterResource@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/Agencies/Resources/NotificationCenterResource.php::App\\Domains\\Agencies\\Resources\\NotificationCenterResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationCenterResource@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/Agencies/Resources/NotificationCenterResource.php::App\\Domains\\Agencies\\Resources\\NotificationCenterResource::getLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationCenterResource@getLabel",
        "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/Agencies/Resources/NotificationCenterResource.php::App\\Domains\\Agencies\\Resources\\NotificationCenterResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationCenterResource@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/Agencies/Resources/NotificationCenterResource.php::App\\Domains\\Agencies\\Resources\\NotificationCenterResource::getPluralLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationCenterResource@getPluralLabel",
        "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/Agencies/Resources/NotificationCenterResource.php::App\\Domains\\Agencies\\Resources\\NotificationCenterResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationCenterResource@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/Agencies/Resources/NotificationCenterResource.php::App\\Domains\\Agencies\\Resources\\NotificationCenterResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationCenterResource@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/Agencies/Resources/NotificationSettingsResource.php::App\\Domains\\Agencies\\Resources\\NotificationSettingsResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationSettingsResource@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/Agencies/Resources/NotificationSettingsResource.php::App\\Domains\\Agencies\\Resources\\NotificationSettingsResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationSettingsResource@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/Agencies/Resources/NotificationSettingsResource.php::App\\Domains\\Agencies\\Resources\\NotificationSettingsResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationSettingsResource@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/Agencies/Resources/NotificationSettingsResource.php::App\\Domains\\Agencies\\Resources\\NotificationSettingsResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationSettingsResource@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/Agencies/Resources/NotificationSettingsResource.php::App\\Domains\\Agencies\\Resources\\NotificationSettingsResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationSettingsResource@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/Agencies/Resources/Pages/ManageAgencyUsers.php::App\\Domains\\Agencies\\Resources\\Pages\\ManageAgencyUsers::getHeading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\Pages\\ManageAgencyUsers@getHeading",
        "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/Agencies/Resources/Pages/ManageAgencyUsers.php::App\\Domains\\Agencies\\Resources\\Pages\\ManageAgencyUsers::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\Pages\\ManageAgencyUsers@getTitle",
        "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/Agencies/Resources/PaymentProofResource.php::App\\Domains\\Agencies\\Resources\\PaymentProofResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentProofResource@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/Agencies/Resources/PaymentProofResource.php::App\\Domains\\Agencies\\Resources\\PaymentProofResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentProofResource@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/Agencies/Resources/PaymentProofResource.php::App\\Domains\\Agencies\\Resources\\PaymentProofResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentProofResource@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/Agencies/Resources/PaymentProofResource.php::App\\Domains\\Agencies\\Resources\\PaymentProofResource::getNavigationBadge",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentProofResource@getNavigationBadge",
        "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/Agencies/Resources/PaymentProofResource.php::App\\Domains\\Agencies\\Resources\\PaymentProofResource::getNavigationBadgeColor",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentProofResource@getNavigationBadgeColor",
        "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/Agencies/Resources/PaymentProofResource.php::App\\Domains\\Agencies\\Resources\\PaymentProofResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentProofResource@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/Agencies/Resources/PaymentProofResource.php::App\\Domains\\Agencies\\Resources\\PaymentProofResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentProofResource@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/Agencies/Resources/PaymentProofResource.php::App\\Domains\\Agencies\\Resources\\PaymentProofResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentProofResource@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/Agencies/Resources/PaymentProofResource.php::App\\Domains\\Agencies\\Resources\\PaymentProofResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentProofResource@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/Agencies/Resources/PaymentResource.php::App\\Domains\\Agencies\\Resources\\PaymentResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource@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/Agencies/Resources/PaymentResource.php::App\\Domains\\Agencies\\Resources\\PaymentResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource@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/Agencies/Resources/PaymentResource.php::App\\Domains\\Agencies\\Resources\\PaymentResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource@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/Agencies/Resources/PaymentResource.php::App\\Domains\\Agencies\\Resources\\PaymentResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource@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/Agencies/Resources/PaymentResource.php::App\\Domains\\Agencies\\Resources\\PaymentResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource@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/Agencies/Resources/PaymentResource.php::App\\Domains\\Agencies\\Resources\\PaymentResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource@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/Agencies/Resources/PaymentResource.php::App\\Domains\\Agencies\\Resources\\PaymentResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource@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/Agencies/Resources/PaymentResource/Pages/CreatePayment.php::App\\Domains\\Agencies\\Resources\\PaymentResource\\Pages\\CreatePayment::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource\\Pages\\CreatePayment@getTitle",
        "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/Agencies/Resources/PaymentResource/Pages/EditPayment.php::App\\Domains\\Agencies\\Resources\\PaymentResource\\Pages\\EditPayment::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource\\Pages\\EditPayment@getTitle",
        "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/Agencies/Resources/PaymentResource/Pages/ViewPayment.php::App\\Domains\\Agencies\\Resources\\PaymentResource\\Pages\\ViewPayment::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource\\Pages\\ViewPayment@getTitle",
        "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/Agencies/Resources/PaymentResource/RelationManagers/PaymentProofsRelationManager.php::App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager@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/Agencies/Resources/PaymentResource/RelationManagers/PaymentProofsRelationManager.php::App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager@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/Agencies/Resources/PaymentResource/RelationManagers/PaymentProofsRelationManager.php::App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager@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/Agencies/Resources/PaymentResource/RelationManagers/PaymentProofsRelationManager.php::App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager@getTitle",
        "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/Agencies/Resources/PaymentResource/RelationManagers/PaymentProofsRelationManager.php::App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager@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/Agencies/Resources/PropertyResource.php::App\\Domains\\Agencies\\Resources\\PropertyResource::canCreate",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@canCreate",
        "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/Agencies/Resources/PropertyResource.php::App\\Domains\\Agencies\\Resources\\PropertyResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@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/Agencies/Resources/PropertyResource.php::App\\Domains\\Agencies\\Resources\\PropertyResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@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/Agencies/Resources/PropertyResource.php::App\\Domains\\Agencies\\Resources\\PropertyResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@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/Agencies/Resources/PropertyResource.php::App\\Domains\\Agencies\\Resources\\PropertyResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@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/Agencies/Resources/PropertyResource.php::App\\Domains\\Agencies\\Resources\\PropertyResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@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/Agencies/Resources/PropertyResource.php::App\\Domains\\Agencies\\Resources\\PropertyResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@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/Agencies/Resources/PropertyResource.php::App\\Domains\\Agencies\\Resources\\PropertyResource::getRelations",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@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/Agencies/Resources/PropertyResource.php::App\\Domains\\Agencies\\Resources\\PropertyResource::infolist",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@infolist",
        "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/Agencies/Resources/PropertyResource.php::App\\Domains\\Agencies\\Resources\\PropertyResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@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/Agencies/Resources/PropertyResource/Pages/CreateProperty.php::App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\CreateProperty::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\CreateProperty@getTitle",
        "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/Agencies/Resources/PropertyResource/Pages/EditProperty.php::App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\EditProperty::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\EditProperty@getTitle",
        "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/Agencies/Resources/PropertyResource/Pages/ListProperties.php::App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\ListProperties::getSubheading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\ListProperties@getSubheading",
        "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/Agencies/Resources/PropertyResource/Pages/ListProperties.php::App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\ListProperties::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\ListProperties@getTitle",
        "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/Agencies/Resources/PropertyResource/RelationManagers/FilesRelationManager.php::App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\FilesRelationManager::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\FilesRelationManager@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/Agencies/Resources/PropertyResource/RelationManagers/FilesRelationManager.php::App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\FilesRelationManager::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\FilesRelationManager@getTitle",
        "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/Agencies/Resources/PropertyResource/RelationManagers/FilesRelationManager.php::App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\FilesRelationManager::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\FilesRelationManager@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/Agencies/Resources/PropertyResource/RelationManagers/UnitsRelationManager.php::App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\UnitsRelationManager::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\UnitsRelationManager@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/Agencies/Resources/PropertyResource/RelationManagers/UnitsRelationManager.php::App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\UnitsRelationManager::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\UnitsRelationManager@getTitle",
        "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/Agencies/Resources/PropertyResource/RelationManagers/UnitsRelationManager.php::App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\UnitsRelationManager::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\UnitsRelationManager@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/Agencies/Resources/ReminderLogResource.php::App\\Domains\\Agencies\\Resources\\ReminderLogResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderLogResource@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/Agencies/Resources/ReminderLogResource.php::App\\Domains\\Agencies\\Resources\\ReminderLogResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderLogResource@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/Agencies/Resources/ReminderLogResource.php::App\\Domains\\Agencies\\Resources\\ReminderLogResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderLogResource@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/Agencies/Resources/ReminderLogResource.php::App\\Domains\\Agencies\\Resources\\ReminderLogResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderLogResource@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/Agencies/Resources/ReminderLogResource.php::App\\Domains\\Agencies\\Resources\\ReminderLogResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderLogResource@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/Agencies/Resources/ReminderLogResource.php::App\\Domains\\Agencies\\Resources\\ReminderLogResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderLogResource@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/Agencies/Resources/ReminderLogResource/Pages/ListReminderLogs.php::App\\Domains\\Agencies\\Resources\\ReminderLogResource\\Pages\\ListReminderLogs::getBreadcrumb",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderLogResource\\Pages\\ListReminderLogs@getBreadcrumb",
        "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/Agencies/Resources/ReminderLogResource/Pages/ListReminderLogs.php::App\\Domains\\Agencies\\Resources\\ReminderLogResource\\Pages\\ListReminderLogs::getHeading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderLogResource\\Pages\\ListReminderLogs@getHeading",
        "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/Agencies/Resources/ReminderLogResource/Pages/ListReminderLogs.php::App\\Domains\\Agencies\\Resources\\ReminderLogResource\\Pages\\ListReminderLogs::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderLogResource\\Pages\\ListReminderLogs@getTitle",
        "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/Agencies/Resources/ReminderTemplateResource.php::App\\Domains\\Agencies\\Resources\\ReminderTemplateResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@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/Agencies/Resources/ReminderTemplateResource.php::App\\Domains\\Agencies\\Resources\\ReminderTemplateResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@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/Agencies/Resources/ReminderTemplateResource.php::App\\Domains\\Agencies\\Resources\\ReminderTemplateResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@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/Agencies/Resources/ReminderTemplateResource.php::App\\Domains\\Agencies\\Resources\\ReminderTemplateResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@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/Agencies/Resources/ReminderTemplateResource.php::App\\Domains\\Agencies\\Resources\\ReminderTemplateResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@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/Agencies/Resources/ReminderTemplateResource.php::App\\Domains\\Agencies\\Resources\\ReminderTemplateResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@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/Agencies/Resources/ReminderTemplateResource.php::App\\Domains\\Agencies\\Resources\\ReminderTemplateResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@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/Agencies/Resources/RentCycleResource.php::App\\Domains\\Agencies\\Resources\\RentCycleResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource@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/Agencies/Resources/RentCycleResource.php::App\\Domains\\Agencies\\Resources\\RentCycleResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource@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/Agencies/Resources/RentCycleResource.php::App\\Domains\\Agencies\\Resources\\RentCycleResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource@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/Agencies/Resources/RentCycleResource.php::App\\Domains\\Agencies\\Resources\\RentCycleResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource@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/Agencies/Resources/RentCycleResource.php::App\\Domains\\Agencies\\Resources\\RentCycleResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource@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/Agencies/Resources/RentCycleResource.php::App\\Domains\\Agencies\\Resources\\RentCycleResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource@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/Agencies/Resources/RentCycleResource.php::App\\Domains\\Agencies\\Resources\\RentCycleResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource@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/Agencies/Resources/RentCycleResource/Pages/ListRentCycles.php::App\\Domains\\Agencies\\Resources\\RentCycleResource\\Pages\\ListRentCycles::getDefaultActiveTab",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource\\Pages\\ListRentCycles@getDefaultActiveTab",
        "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/Agencies/Resources/RentCycleResource/Pages/ListRentCycles.php::App\\Domains\\Agencies\\Resources\\RentCycleResource\\Pages\\ListRentCycles::getTabs",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource\\Pages\\ListRentCycles@getTabs",
        "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/Agencies/Resources/RentCycleResource/Pages/ViewRentCycle.php::App\\Domains\\Agencies\\Resources\\RentCycleResource\\Pages\\ViewRentCycle::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource\\Pages\\ViewRentCycle@getTitle",
        "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/Agencies/Resources/SupportTicketResource.php::App\\Domains\\Agencies\\Resources\\SupportTicketResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource@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/Agencies/Resources/SupportTicketResource.php::App\\Domains\\Agencies\\Resources\\SupportTicketResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource@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/Agencies/Resources/SupportTicketResource.php::App\\Domains\\Agencies\\Resources\\SupportTicketResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource@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/Agencies/Resources/SupportTicketResource.php::App\\Domains\\Agencies\\Resources\\SupportTicketResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource@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/Agencies/Resources/SupportTicketResource.php::App\\Domains\\Agencies\\Resources\\SupportTicketResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource@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/Agencies/Resources/SupportTicketResource.php::App\\Domains\\Agencies\\Resources\\SupportTicketResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource@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/Agencies/Resources/SupportTicketResource.php::App\\Domains\\Agencies\\Resources\\SupportTicketResource::infolist",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource@infolist",
        "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/Agencies/Resources/SupportTicketResource.php::App\\Domains\\Agencies\\Resources\\SupportTicketResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource@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/Agencies/Resources/SupportTicketResource/Pages/ListSupportTickets.php::App\\Domains\\Agencies\\Resources\\SupportTicketResource\\Pages\\ListSupportTickets::getSubheading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource\\Pages\\ListSupportTickets@getSubheading",
        "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/Agencies/Resources/TenantResource.php::App\\Domains\\Agencies\\Resources\\TenantResource::canCreate",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource@canCreate",
        "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/Agencies/Resources/TenantResource.php::App\\Domains\\Agencies\\Resources\\TenantResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource@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/Agencies/Resources/TenantResource.php::App\\Domains\\Agencies\\Resources\\TenantResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource@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/Agencies/Resources/TenantResource.php::App\\Domains\\Agencies\\Resources\\TenantResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource@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/Agencies/Resources/TenantResource.php::App\\Domains\\Agencies\\Resources\\TenantResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource@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/Agencies/Resources/TenantResource.php::App\\Domains\\Agencies\\Resources\\TenantResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource@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/Agencies/Resources/TenantResource.php::App\\Domains\\Agencies\\Resources\\TenantResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource@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/Agencies/Resources/TenantResource.php::App\\Domains\\Agencies\\Resources\\TenantResource::getRelations",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource@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/Agencies/Resources/TenantResource.php::App\\Domains\\Agencies\\Resources\\TenantResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource@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/Agencies/Resources/TenantResource/Pages/CreateTenant.php::App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\CreateTenant::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\CreateTenant@getTitle",
        "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/Agencies/Resources/TenantResource/Pages/EditTenant.php::App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\EditTenant::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\EditTenant@getTitle",
        "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/Agencies/Resources/TenantResource/Pages/ListTenants.php::App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\ListTenants::getSubheading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\ListTenants@getSubheading",
        "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/Agencies/Resources/TenantResource/Pages/ListTenants.php::App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\ListTenants::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\ListTenants@getTitle",
        "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/Agencies/Resources/TenantResource/Pages/ViewTenant.php::App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\ViewTenant::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\ViewTenant@getTitle",
        "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/Agencies/Resources/TransferResource.php::App\\Domains\\Agencies\\Resources\\TransferResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource@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/Agencies/Resources/TransferResource.php::App\\Domains\\Agencies\\Resources\\TransferResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource@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/Agencies/Resources/TransferResource.php::App\\Domains\\Agencies\\Resources\\TransferResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource@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/Agencies/Resources/TransferResource.php::App\\Domains\\Agencies\\Resources\\TransferResource::getNavigationGroup",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource@getNavigationGroup",
        "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/Agencies/Resources/TransferResource.php::App\\Domains\\Agencies\\Resources\\TransferResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource@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/Agencies/Resources/TransferResource.php::App\\Domains\\Agencies\\Resources\\TransferResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource@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/Agencies/Resources/TransferResource.php::App\\Domains\\Agencies\\Resources\\TransferResource::getRelations",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource@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/Agencies/Resources/TransferResource.php::App\\Domains\\Agencies\\Resources\\TransferResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource@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/Agencies/Resources/TransferResource/Actions/ExportLandlordStatementAction.php::App\\Domains\\Agencies\\Resources\\TransferResource\\Actions\\ExportLandlordStatementAction::getDefaultName",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource\\Actions\\ExportLandlordStatementAction@getDefaultName",
        "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/Agencies/Resources/TransferResource/Pages/ListTransfers.php::App\\Domains\\Agencies\\Resources\\TransferResource\\Pages\\ListTransfers::getSubheading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource\\Pages\\ListTransfers@getSubheading",
        "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/Agencies/Resources/UnitResource.php::App\\Domains\\Agencies\\Resources\\UnitResource::canCreate",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@canCreate",
        "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/Agencies/Resources/UnitResource.php::App\\Domains\\Agencies\\Resources\\UnitResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@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/Agencies/Resources/UnitResource.php::App\\Domains\\Agencies\\Resources\\UnitResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@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/Agencies/Resources/UnitResource.php::App\\Domains\\Agencies\\Resources\\UnitResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@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/Agencies/Resources/UnitResource.php::App\\Domains\\Agencies\\Resources\\UnitResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@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/Agencies/Resources/UnitResource.php::App\\Domains\\Agencies\\Resources\\UnitResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@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/Agencies/Resources/UnitResource.php::App\\Domains\\Agencies\\Resources\\UnitResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@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/Agencies/Resources/UnitResource.php::App\\Domains\\Agencies\\Resources\\UnitResource::getRelations",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@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/Agencies/Resources/UnitResource.php::App\\Domains\\Agencies\\Resources\\UnitResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@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/Agencies/Resources/UnitResource/Pages/ListUnits.php::App\\Domains\\Agencies\\Resources\\UnitResource\\Pages\\ListUnits::getSubheading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource\\Pages\\ListUnits@getSubheading",
        "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/Agencies/Resources/UnitResource/Pages/ViewUnit.php::App\\Domains\\Agencies\\Resources\\UnitResource\\Pages\\ViewUnit::infolist",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource\\Pages\\ViewUnit@infolist",
        "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/Agencies/Resources/UnitResource/RelationManagers/FilesRelationManager.php::App\\Domains\\Agencies\\Resources\\UnitResource\\RelationManagers\\FilesRelationManager::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource\\RelationManagers\\FilesRelationManager@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/Agencies/Resources/UnitResource/RelationManagers/FilesRelationManager.php::App\\Domains\\Agencies\\Resources\\UnitResource\\RelationManagers\\FilesRelationManager::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource\\RelationManagers\\FilesRelationManager@getTitle",
        "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/Agencies/Resources/UnitResource/RelationManagers/FilesRelationManager.php::App\\Domains\\Agencies\\Resources\\UnitResource\\RelationManagers\\FilesRelationManager::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource\\RelationManagers\\FilesRelationManager@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/Billing/Actions/GenerateCreditTopUpInvoiceAction.php::App\\Domains\\Billing\\Actions\\GenerateCreditTopUpInvoiceAction::execute",
        "fqmn": "App\\Domains\\Billing\\Actions\\GenerateCreditTopUpInvoiceAction@execute",
        "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/Billing/Actions/GenerateMaintenanceInvoices.php::App\\Domains\\Billing\\Actions\\GenerateMaintenanceInvoices::__construct",
        "fqmn": "App\\Domains\\Billing\\Actions\\GenerateMaintenanceInvoices@__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/Billing/Actions/GenerateMaintenanceInvoices.php::App\\Domains\\Billing\\Actions\\GenerateMaintenanceInvoices::handle",
        "fqmn": "App\\Domains\\Billing\\Actions\\GenerateMaintenanceInvoices@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/Billing/Actions/GenerateMessagePackageInvoiceAction.php::App\\Domains\\Billing\\Actions\\GenerateMessagePackageInvoiceAction::execute",
        "fqmn": "App\\Domains\\Billing\\Actions\\GenerateMessagePackageInvoiceAction@execute",
        "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/Billing/Actions/GenerateRentInvoices.php::App\\Domains\\Billing\\Actions\\GenerateRentInvoices::__construct",
        "fqmn": "App\\Domains\\Billing\\Actions\\GenerateRentInvoices@__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/Billing/Actions/GenerateRentInvoices.php::App\\Domains\\Billing\\Actions\\GenerateRentInvoices::handle",
        "fqmn": "App\\Domains\\Billing\\Actions\\GenerateRentInvoices@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/Billing/Actions/GenerateSubscriptionInvoiceAction.php::App\\Domains\\Billing\\Actions\\GenerateSubscriptionInvoiceAction::execute",
        "fqmn": "App\\Domains\\Billing\\Actions\\GenerateSubscriptionInvoiceAction@execute",
        "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/Billing/Actions/SyncInvoiceToZoho.php::App\\Domains\\Billing\\Actions\\SyncInvoiceToZoho::__construct",
        "fqmn": "App\\Domains\\Billing\\Actions\\SyncInvoiceToZoho@__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/Billing/Actions/SyncInvoiceToZoho.php::App\\Domains\\Billing\\Actions\\SyncInvoiceToZoho::handle",
        "fqmn": "App\\Domains\\Billing\\Actions\\SyncInvoiceToZoho@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/Billing/DTO/TaxBreakdown.php::App\\Domains\\Billing\\DTO\\TaxBreakdown::zero",
        "fqmn": "App\\Domains\\Billing\\DTO\\TaxBreakdown@zero",
        "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/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::allForOrganization",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@allForOrganization",
        "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/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::countByTypeForOrganization",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@countByTypeForOrganization",
        "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/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::countForOrganization",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@countForOrganization",
        "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/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::findForOrganization",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@findForOrganization",
        "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/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::getByMimeTypeForOrganization",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@getByMimeTypeForOrganization",
        "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/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::getByTypeForOrganization",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@getByTypeForOrganization",
        "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/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::getByUploaderForOrganization",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@getByUploaderForOrganization",
        "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/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::getForEntity",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@getForEntity",
        "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/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::getLargeFiles",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@getLargeFiles",
        "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/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::getOrphanedFiles",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@getOrphanedFiles",
        "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/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::getRecentForOrganization",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@getRecentForOrganization",
        "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/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::getTotalStorageForOrganization",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@getTotalStorageForOrganization",
        "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/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::paginatedForOrganization",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@paginatedForOrganization",
        "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/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::search",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@search",
        "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/Files/Resources/FileResource.php::App\\Domains\\Files\\Resources\\FileResource::form",
        "fqmn": "App\\Domains\\Files\\Resources\\FileResource@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/Files/Resources/FileResource.php::App\\Domains\\Files\\Resources\\FileResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Files\\Resources\\FileResource@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/Files/Resources/FileResource.php::App\\Domains\\Files\\Resources\\FileResource::getModelLabel",
        "fqmn": "App\\Domains\\Files\\Resources\\FileResource@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/Files/Resources/FileResource.php::App\\Domains\\Files\\Resources\\FileResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Files\\Resources\\FileResource@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/Files/Resources/FileResource.php::App\\Domains\\Files\\Resources\\FileResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Files\\Resources\\FileResource@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/Files/Resources/FileResource.php::App\\Domains\\Files\\Resources\\FileResource::table",
        "fqmn": "App\\Domains\\Files\\Resources\\FileResource@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/Imports/Constants/CsvImportSchema.php::App\\Domains\\Imports\\Constants\\CsvImportSchema::allSchemas",
        "fqmn": "App\\Domains\\Imports\\Constants\\CsvImportSchema@allSchemas",
        "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/Landlords/Actions/GetLandlordOverviewWidgetStatsAction.php::App\\Domains\\Landlords\\Actions\\GetLandlordOverviewWidgetStatsAction::execute",
        "fqmn": "App\\Domains\\Landlords\\Actions\\GetLandlordOverviewWidgetStatsAction@execute",
        "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/Landlords/Resources/LandlordDelegateResource.php::App\\Domains\\Landlords\\Resources\\LandlordDelegateResource::canViewAny",
        "fqmn": "App\\Domains\\Landlords\\Resources\\LandlordDelegateResource@canViewAny",
        "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/Landlords/Resources/LandlordDelegateResource.php::App\\Domains\\Landlords\\Resources\\LandlordDelegateResource::form",
        "fqmn": "App\\Domains\\Landlords\\Resources\\LandlordDelegateResource@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/Landlords/Resources/LandlordDelegateResource.php::App\\Domains\\Landlords\\Resources\\LandlordDelegateResource::getPages",
        "fqmn": "App\\Domains\\Landlords\\Resources\\LandlordDelegateResource@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/Landlords/Resources/LandlordDelegateResource.php::App\\Domains\\Landlords\\Resources\\LandlordDelegateResource::table",
        "fqmn": "App\\Domains\\Landlords\\Resources\\LandlordDelegateResource@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/Landlords/Resources/MyPropertiesResource.php::App\\Domains\\Landlords\\Resources\\MyPropertiesResource::canCreate",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@canCreate",
        "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/Landlords/Resources/MyPropertiesResource.php::App\\Domains\\Landlords\\Resources\\MyPropertiesResource::canDelete",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@canDelete",
        "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/Landlords/Resources/MyPropertiesResource.php::App\\Domains\\Landlords\\Resources\\MyPropertiesResource::canEdit",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@canEdit",
        "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/Landlords/Resources/MyPropertiesResource.php::App\\Domains\\Landlords\\Resources\\MyPropertiesResource::canView",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@canView",
        "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/Landlords/Resources/MyPropertiesResource.php::App\\Domains\\Landlords\\Resources\\MyPropertiesResource::canViewAny",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@canViewAny",
        "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/Landlords/Resources/MyPropertiesResource.php::App\\Domains\\Landlords\\Resources\\MyPropertiesResource::form",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@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/Landlords/Resources/MyPropertiesResource.php::App\\Domains\\Landlords\\Resources\\MyPropertiesResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@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/Landlords/Resources/MyPropertiesResource.php::App\\Domains\\Landlords\\Resources\\MyPropertiesResource::getModelLabel",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@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/Landlords/Resources/MyPropertiesResource.php::App\\Domains\\Landlords\\Resources\\MyPropertiesResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@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/Landlords/Resources/MyPropertiesResource.php::App\\Domains\\Landlords\\Resources\\MyPropertiesResource::getPages",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@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/Landlords/Resources/MyPropertiesResource.php::App\\Domains\\Landlords\\Resources\\MyPropertiesResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@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/Landlords/Resources/MyPropertiesResource.php::App\\Domains\\Landlords\\Resources\\MyPropertiesResource::table",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@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/Landlords/Resources/MyTenantsResource.php::App\\Domains\\Landlords\\Resources\\MyTenantsResource::canCreate",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTenantsResource@canCreate",
        "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/Landlords/Resources/MyTenantsResource.php::App\\Domains\\Landlords\\Resources\\MyTenantsResource::canDelete",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTenantsResource@canDelete",
        "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/Landlords/Resources/MyTenantsResource.php::App\\Domains\\Landlords\\Resources\\MyTenantsResource::canEdit",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTenantsResource@canEdit",
        "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/Landlords/Resources/MyTenantsResource.php::App\\Domains\\Landlords\\Resources\\MyTenantsResource::canView",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTenantsResource@canView",
        "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/Landlords/Resources/MyTenantsResource.php::App\\Domains\\Landlords\\Resources\\MyTenantsResource::canViewAny",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTenantsResource@canViewAny",
        "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/Landlords/Resources/MyTenantsResource.php::App\\Domains\\Landlords\\Resources\\MyTenantsResource::form",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTenantsResource@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/Landlords/Resources/MyTenantsResource.php::App\\Domains\\Landlords\\Resources\\MyTenantsResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTenantsResource@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/Landlords/Resources/MyTenantsResource.php::App\\Domains\\Landlords\\Resources\\MyTenantsResource::getModelLabel",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTenantsResource@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/Landlords/Resources/MyTenantsResource.php::App\\Domains\\Landlords\\Resources\\MyTenantsResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTenantsResource@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/Landlords/Resources/MyTenantsResource.php::App\\Domains\\Landlords\\Resources\\MyTenantsResource::getPages",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTenantsResource@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/Landlords/Resources/MyTenantsResource.php::App\\Domains\\Landlords\\Resources\\MyTenantsResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTenantsResource@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/Landlords/Resources/MyTenantsResource.php::App\\Domains\\Landlords\\Resources\\MyTenantsResource::table",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTenantsResource@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/Landlords/Resources/MyTransfersResource.php::App\\Domains\\Landlords\\Resources\\MyTransfersResource::canCreate",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTransfersResource@canCreate",
        "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/Landlords/Resources/MyTransfersResource.php::App\\Domains\\Landlords\\Resources\\MyTransfersResource::canDelete",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTransfersResource@canDelete",
        "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/Landlords/Resources/MyTransfersResource.php::App\\Domains\\Landlords\\Resources\\MyTransfersResource::canEdit",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTransfersResource@canEdit",
        "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/Landlords/Resources/MyTransfersResource.php::App\\Domains\\Landlords\\Resources\\MyTransfersResource::canView",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTransfersResource@canView",
        "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/Landlords/Resources/MyTransfersResource.php::App\\Domains\\Landlords\\Resources\\MyTransfersResource::canViewAny",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTransfersResource@canViewAny",
        "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/Landlords/Resources/MyTransfersResource.php::App\\Domains\\Landlords\\Resources\\MyTransfersResource::form",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTransfersResource@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/Landlords/Resources/MyTransfersResource.php::App\\Domains\\Landlords\\Resources\\MyTransfersResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTransfersResource@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/Landlords/Resources/MyTransfersResource.php::App\\Domains\\Landlords\\Resources\\MyTransfersResource::getModelLabel",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTransfersResource@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/Landlords/Resources/MyTransfersResource.php::App\\Domains\\Landlords\\Resources\\MyTransfersResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTransfersResource@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/Landlords/Resources/MyTransfersResource.php::App\\Domains\\Landlords\\Resources\\MyTransfersResource::getPages",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTransfersResource@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/Landlords/Resources/MyTransfersResource.php::App\\Domains\\Landlords\\Resources\\MyTransfersResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTransfersResource@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/Landlords/Resources/MyTransfersResource.php::App\\Domains\\Landlords\\Resources\\MyTransfersResource::table",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTransfersResource@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/Leases/Actions/CreateLeaseAction.php::App\\Domains\\Leases\\Actions\\CreateLeaseAction::__construct",
        "fqmn": "App\\Domains\\Leases\\Actions\\CreateLeaseAction@__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/Leases/Actions/CreateLeaseAction.php::App\\Domains\\Leases\\Actions\\CreateLeaseAction::execute",
        "fqmn": "App\\Domains\\Leases\\Actions\\CreateLeaseAction@execute",
        "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/Leases/Actions/GenerateRentCyclesAction.php::App\\Domains\\Leases\\Actions\\GenerateRentCyclesAction::__construct",
        "fqmn": "App\\Domains\\Leases\\Actions\\GenerateRentCyclesAction@__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/Leases/Actions/GenerateRentCyclesAction.php::App\\Domains\\Leases\\Actions\\GenerateRentCyclesAction::execute",
        "fqmn": "App\\Domains\\Leases\\Actions\\GenerateRentCyclesAction@execute",
        "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/Leases/Actions/UpdateLeaseAction.php::App\\Domains\\Leases\\Actions\\UpdateLeaseAction::__construct",
        "fqmn": "App\\Domains\\Leases\\Actions\\UpdateLeaseAction@__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/Leases/Actions/UpdateLeaseAction.php::App\\Domains\\Leases\\Actions\\UpdateLeaseAction::execute",
        "fqmn": "App\\Domains\\Leases\\Actions\\UpdateLeaseAction@execute",
        "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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::allForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@allForOrganization",
        "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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::countActiveForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@countActiveForOrganization",
        "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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::countForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@countForOrganization",
        "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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::findForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@findForOrganization",
        "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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::findOrFailForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@findOrFailForOrganization",
        "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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::getActiveForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@getActiveForOrganization",
        "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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::getCurrentLeaseForTenant",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@getCurrentLeaseForTenant",
        "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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::getCurrentLeaseForUnit",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@getCurrentLeaseForUnit",
        "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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::getExpiredForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@getExpiredForOrganization",
        "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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::getExpiringSoon",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@getExpiringSoon",
        "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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::getForLandlord",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@getForLandlord",
        "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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::getForTenant",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@getForTenant",
        "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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::getStartingSoon",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@getStartingSoon",
        "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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::paginatedForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@paginatedForOrganization",
        "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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::search",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@search",
        "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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::tenantHasActiveLease",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@tenantHasActiveLease",
        "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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::unitHasActiveLease",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@unitHasActiveLease",
        "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/Leases/Repositories/RentCycleRepository.php::App\\Domains\\Leases\\Repositories\\RentCycleRepository::allForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\RentCycleRepository@allForOrganization",
        "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/Leases/Repositories/RentCycleRepository.php::App\\Domains\\Leases\\Repositories\\RentCycleRepository::countByStatusForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\RentCycleRepository@countByStatusForOrganization",
        "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/Leases/Repositories/RentCycleRepository.php::App\\Domains\\Leases\\Repositories\\RentCycleRepository::findForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\RentCycleRepository@findForOrganization",
        "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/Leases/Repositories/RentCycleRepository.php::App\\Domains\\Leases\\Repositories\\RentCycleRepository::findOrFailForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\RentCycleRepository@findOrFailForOrganization",
        "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/Leases/Repositories/RentCycleRepository.php::App\\Domains\\Leases\\Repositories\\RentCycleRepository::getByStatusForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\RentCycleRepository@getByStatusForOrganization",
        "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/Leases/Repositories/RentCycleRepository.php::App\\Domains\\Leases\\Repositories\\RentCycleRepository::getDueInRange",
        "fqmn": "App\\Domains\\Leases\\Repositories\\RentCycleRepository@getDueInRange",
        "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/Leases/Repositories/RentCycleRepository.php::App\\Domains\\Leases\\Repositories\\RentCycleRepository::getDueSoon",
        "fqmn": "App\\Domains\\Leases\\Repositories\\RentCycleRepository@getDueSoon",
        "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/Leases/Repositories/RentCycleRepository.php::App\\Domains\\Leases\\Repositories\\RentCycleRepository::getDueToday",
        "fqmn": "App\\Domains\\Leases\\Repositories\\RentCycleRepository@getDueToday",
        "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/Leases/Repositories/RentCycleRepository.php::App\\Domains\\Leases\\Repositories\\RentCycleRepository::getForLandlord",
        "fqmn": "App\\Domains\\Leases\\Repositories\\RentCycleRepository@getForLandlord",
        "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/Leases/Repositories/RentCycleRepository.php::App\\Domains\\Leases\\Repositories\\RentCycleRepository::getForLease",
        "fqmn": "App\\Domains\\Leases\\Repositories\\RentCycleRepository@getForLease",
        "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/Leases/Repositories/RentCycleRepository.php::App\\Domains\\Leases\\Repositories\\RentCycleRepository::getForTenant",
        "fqmn": "App\\Domains\\Leases\\Repositories\\RentCycleRepository@getForTenant",
        "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/Leases/Repositories/RentCycleRepository.php::App\\Domains\\Leases\\Repositories\\RentCycleRepository::getMonthlyCollectionSummary",
        "fqmn": "App\\Domains\\Leases\\Repositories\\RentCycleRepository@getMonthlyCollectionSummary",
        "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/Leases/Repositories/RentCycleRepository.php::App\\Domains\\Leases\\Repositories\\RentCycleRepository::getOverdueForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\RentCycleRepository@getOverdueForOrganization",
        "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/Leases/Repositories/RentCycleRepository.php::App\\Domains\\Leases\\Repositories\\RentCycleRepository::getPendingForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\RentCycleRepository@getPendingForOrganization",
        "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/Leases/Repositories/RentCycleRepository.php::App\\Domains\\Leases\\Repositories\\RentCycleRepository::paginatedForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\RentCycleRepository@paginatedForOrganization",
        "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/Leases/Repositories/RentCycleRepository.php::App\\Domains\\Leases\\Repositories\\RentCycleRepository::updateStatus",
        "fqmn": "App\\Domains\\Leases\\Repositories\\RentCycleRepository@updateStatus",
        "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/Maintenance/Actions/AssignSlaToTicketAction.php::App\\Domains\\Maintenance\\Actions\\AssignSlaToTicketAction::__construct",
        "fqmn": "App\\Domains\\Maintenance\\Actions\\AssignSlaToTicketAction@__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/Maintenance/Actions/AssignSlaToTicketAction.php::App\\Domains\\Maintenance\\Actions\\AssignSlaToTicketAction::execute",
        "fqmn": "App\\Domains\\Maintenance\\Actions\\AssignSlaToTicketAction@execute",
        "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/Maintenance/Actions/ExtendSlaAction.php::App\\Domains\\Maintenance\\Actions\\ExtendSlaAction::__construct",
        "fqmn": "App\\Domains\\Maintenance\\Actions\\ExtendSlaAction@__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/Maintenance/Actions/ExtendSlaAction.php::App\\Domains\\Maintenance\\Actions\\ExtendSlaAction::execute",
        "fqmn": "App\\Domains\\Maintenance\\Actions\\ExtendSlaAction@execute",
        "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/Maintenance/Actions/PauseSlaAction.php::App\\Domains\\Maintenance\\Actions\\PauseSlaAction::__construct",
        "fqmn": "App\\Domains\\Maintenance\\Actions\\PauseSlaAction@__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/Maintenance/Actions/PauseSlaAction.php::App\\Domains\\Maintenance\\Actions\\PauseSlaAction::execute",
        "fqmn": "App\\Domains\\Maintenance\\Actions\\PauseSlaAction@execute",
        "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/Maintenance/Actions/ResumeSlaAction.php::App\\Domains\\Maintenance\\Actions\\ResumeSlaAction::__construct",
        "fqmn": "App\\Domains\\Maintenance\\Actions\\ResumeSlaAction@__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/Maintenance/Actions/ResumeSlaAction.php::App\\Domains\\Maintenance\\Actions\\ResumeSlaAction::execute",
        "fqmn": "App\\Domains\\Maintenance\\Actions\\ResumeSlaAction@execute",
        "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/Maintenance/Jobs/AggregateMaintenanceMetricsJob.php::App\\Domains\\Maintenance\\Jobs\\AggregateMaintenanceMetricsJob::__construct",
        "fqmn": "App\\Domains\\Maintenance\\Jobs\\AggregateMaintenanceMetricsJob@__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/Maintenance/Jobs/AggregateMaintenanceMetricsJob.php::App\\Domains\\Maintenance\\Jobs\\AggregateMaintenanceMetricsJob::handle",
        "fqmn": "App\\Domains\\Maintenance\\Jobs\\AggregateMaintenanceMetricsJob@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/Maintenance/Jobs/CheckMaintenanceSLAsJob.php::App\\Domains\\Maintenance\\Jobs\\CheckMaintenanceSLAsJob::handle",
        "fqmn": "App\\Domains\\Maintenance\\Jobs\\CheckMaintenanceSLAsJob@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/Maintenance/Jobs/EscalateMaintenanceTicketJob.php::App\\Domains\\Maintenance\\Jobs\\EscalateMaintenanceTicketJob::__construct",
        "fqmn": "App\\Domains\\Maintenance\\Jobs\\EscalateMaintenanceTicketJob@__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/Maintenance/Jobs/EscalateMaintenanceTicketJob.php::App\\Domains\\Maintenance\\Jobs\\EscalateMaintenanceTicketJob::handle",
        "fqmn": "App\\Domains\\Maintenance\\Jobs\\EscalateMaintenanceTicketJob@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/Maintenance/Jobs/GenerateMaintenanceSuggestionJob.php::App\\Domains\\Maintenance\\Jobs\\GenerateMaintenanceSuggestionJob::__construct",
        "fqmn": "App\\Domains\\Maintenance\\Jobs\\GenerateMaintenanceSuggestionJob@__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/Maintenance/Jobs/GenerateMaintenanceSuggestionJob.php::App\\Domains\\Maintenance\\Jobs\\GenerateMaintenanceSuggestionJob::handle",
        "fqmn": "App\\Domains\\Maintenance\\Jobs\\GenerateMaintenanceSuggestionJob@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/Maintenance/Jobs/SendTwilioTemplateMessageJob.php::App\\Domains\\Maintenance\\Jobs\\SendTwilioTemplateMessageJob::__construct",
        "fqmn": "App\\Domains\\Maintenance\\Jobs\\SendTwilioTemplateMessageJob@__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/Maintenance/Jobs/SendTwilioTemplateMessageJob.php::App\\Domains\\Maintenance\\Jobs\\SendTwilioTemplateMessageJob::handle",
        "fqmn": "App\\Domains\\Maintenance\\Jobs\\SendTwilioTemplateMessageJob@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/Maintenance/Jobs/SendWeeklyDigestJob.php::App\\Domains\\Maintenance\\Jobs\\SendWeeklyDigestJob::__construct",
        "fqmn": "App\\Domains\\Maintenance\\Jobs\\SendWeeklyDigestJob@__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/Maintenance/Jobs/SendWeeklyDigestJob.php::App\\Domains\\Maintenance\\Jobs\\SendWeeklyDigestJob::handle",
        "fqmn": "App\\Domains\\Maintenance\\Jobs\\SendWeeklyDigestJob@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/Maintenance/Jobs/StoreTwilioMediaJob.php::App\\Domains\\Maintenance\\Jobs\\StoreTwilioMediaJob::__construct",
        "fqmn": "App\\Domains\\Maintenance\\Jobs\\StoreTwilioMediaJob@__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/Maintenance/Jobs/StoreTwilioMediaJob.php::App\\Domains\\Maintenance\\Jobs\\StoreTwilioMediaJob::handle",
        "fqmn": "App\\Domains\\Maintenance\\Jobs\\StoreTwilioMediaJob@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/Maintenance/Listeners/RouteTicketToResponsibleParty.php::App\\Domains\\Maintenance\\Listeners\\RouteTicketToResponsibleParty::handle",
        "fqmn": "App\\Domains\\Maintenance\\Listeners\\RouteTicketToResponsibleParty@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/Maintenance/Listeners/SendApprovalNotifications.php::App\\Domains\\Maintenance\\Listeners\\SendApprovalNotifications::handle",
        "fqmn": "App\\Domains\\Maintenance\\Listeners\\SendApprovalNotifications@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/Maintenance/Listeners/SendCompletionNotifications.php::App\\Domains\\Maintenance\\Listeners\\SendCompletionNotifications::handle",
        "fqmn": "App\\Domains\\Maintenance\\Listeners\\SendCompletionNotifications@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/Maintenance/Listeners/SendLandlordApprovalRequest.php::App\\Domains\\Maintenance\\Listeners\\SendLandlordApprovalRequest::handle",
        "fqmn": "App\\Domains\\Maintenance\\Listeners\\SendLandlordApprovalRequest@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/Maintenance/Listeners/SendTenantConfirmation.php::App\\Domains\\Maintenance\\Listeners\\SendTenantConfirmation::handle",
        "fqmn": "App\\Domains\\Maintenance\\Listeners\\SendTenantConfirmation@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/Maintenance/Listeners/SendWorkerAssignmentNotification.php::App\\Domains\\Maintenance\\Listeners\\SendWorkerAssignmentNotification::handle",
        "fqmn": "App\\Domains\\Maintenance\\Listeners\\SendWorkerAssignmentNotification@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/Maintenance/Notifications/LandlordApprovalRequestNotification.php::App\\Domains\\Maintenance\\Notifications\\LandlordApprovalRequestNotification::sendTwilioNotification",
        "fqmn": "App\\Domains\\Maintenance\\Notifications\\LandlordApprovalRequestNotification@sendTwilioNotification",
        "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/Maintenance/Notifications/TenantTicketConfirmationNotification.php::App\\Domains\\Maintenance\\Notifications\\TenantTicketConfirmationNotification::sendTwilioNotification",
        "fqmn": "App\\Domains\\Maintenance\\Notifications\\TenantTicketConfirmationNotification@sendTwilioNotification",
        "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/Maintenance/Notifications/TicketCompletedNotification.php::App\\Domains\\Maintenance\\Notifications\\TicketCompletedNotification::sendTwilioNotification",
        "fqmn": "App\\Domains\\Maintenance\\Notifications\\TicketCompletedNotification@sendTwilioNotification",
        "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/Outreach/Actions/LogDeliveryEvent.php::App\\Domains\\Outreach\\Actions\\LogDeliveryEvent::__construct",
        "fqmn": "App\\Domains\\Outreach\\Actions\\LogDeliveryEvent@__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/Outreach/Actions/LogDeliveryEvent.php::App\\Domains\\Outreach\\Actions\\LogDeliveryEvent::execute",
        "fqmn": "App\\Domains\\Outreach\\Actions\\LogDeliveryEvent@execute",
        "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/Outreach/Actions/LogReplyMessage.php::App\\Domains\\Outreach\\Actions\\LogReplyMessage::__construct",
        "fqmn": "App\\Domains\\Outreach\\Actions\\LogReplyMessage@__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/Outreach/Actions/LogReplyMessage.php::App\\Domains\\Outreach\\Actions\\LogReplyMessage::execute",
        "fqmn": "App\\Domains\\Outreach\\Actions\\LogReplyMessage@execute",
        "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/Outreach/Actions/ProcessIncomingWebhook.php::App\\Domains\\Outreach\\Actions\\ProcessIncomingWebhook::execute",
        "fqmn": "App\\Domains\\Outreach\\Actions\\ProcessIncomingWebhook@execute",
        "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/Outreach/Actions/SyncConversationCost.php::App\\Domains\\Outreach\\Actions\\SyncConversationCost::__construct",
        "fqmn": "App\\Domains\\Outreach\\Actions\\SyncConversationCost@__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/Outreach/Actions/SyncConversationCost.php::App\\Domains\\Outreach\\Actions\\SyncConversationCost::execute",
        "fqmn": "App\\Domains\\Outreach\\Actions\\SyncConversationCost@execute",
        "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/Outreach/Actions/UpdateCampaignStats.php::App\\Domains\\Outreach\\Actions\\UpdateCampaignStats::execute",
        "fqmn": "App\\Domains\\Outreach\\Actions\\UpdateCampaignStats@execute",
        "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/Outreach/Jobs/FetchDeliveryStatusJob.php::App\\Domains\\Outreach\\Jobs\\FetchDeliveryStatusJob::__construct",
        "fqmn": "App\\Domains\\Outreach\\Jobs\\FetchDeliveryStatusJob@__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/Outreach/Jobs/FetchDeliveryStatusJob.php::App\\Domains\\Outreach\\Jobs\\FetchDeliveryStatusJob::handle",
        "fqmn": "App\\Domains\\Outreach\\Jobs\\FetchDeliveryStatusJob@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/Outreach/Jobs/ProcessWebhookJob.php::App\\Domains\\Outreach\\Jobs\\ProcessWebhookJob::__construct",
        "fqmn": "App\\Domains\\Outreach\\Jobs\\ProcessWebhookJob@__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/Outreach/Jobs/ProcessWebhookJob.php::App\\Domains\\Outreach\\Jobs\\ProcessWebhookJob::handle",
        "fqmn": "App\\Domains\\Outreach\\Jobs\\ProcessWebhookJob@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/Outreach/Jobs/SendWhatsAppMessageJob.php::App\\Domains\\Outreach\\Jobs\\SendWhatsAppMessageJob::__construct",
        "fqmn": "App\\Domains\\Outreach\\Jobs\\SendWhatsAppMessageJob@__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/Outreach/Jobs/SendWhatsAppMessageJob.php::App\\Domains\\Outreach\\Jobs\\SendWhatsAppMessageJob::handle",
        "fqmn": "App\\Domains\\Outreach\\Jobs\\SendWhatsAppMessageJob@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/Outreach/Jobs/SyncConversationCostsJob.php::App\\Domains\\Outreach\\Jobs\\SyncConversationCostsJob::__construct",
        "fqmn": "App\\Domains\\Outreach\\Jobs\\SyncConversationCostsJob@__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/Outreach/Jobs/SyncConversationCostsJob.php::App\\Domains\\Outreach\\Jobs\\SyncConversationCostsJob::handle",
        "fqmn": "App\\Domains\\Outreach\\Jobs\\SyncConversationCostsJob@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/Outreach/Pipelines/DeliveryStatusPipeline.php::App\\Domains\\Outreach\\Pipelines\\DeliveryStatusPipeline::handle",
        "fqmn": "App\\Domains\\Outreach\\Pipelines\\DeliveryStatusPipeline@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/Outreach/Webhooks/WhatsAppWebhookController.php::App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController::__construct",
        "fqmn": "App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController@__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/Outreach/Webhooks/WhatsAppWebhookController.php::App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController::handle",
        "fqmn": "App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController@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/Payments/Actions/ApplyDeductionsAction.php::App\\Domains\\Payments\\Actions\\ApplyDeductionsAction::__construct",
        "fqmn": "App\\Domains\\Payments\\Actions\\ApplyDeductionsAction@__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/Payments/Actions/ApplyDeductionsAction.php::App\\Domains\\Payments\\Actions\\ApplyDeductionsAction::execute",
        "fqmn": "App\\Domains\\Payments\\Actions\\ApplyDeductionsAction@execute",
        "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/Payments/Actions/CreateTransactionAction.php::App\\Domains\\Payments\\Actions\\CreateTransactionAction::__construct",
        "fqmn": "App\\Domains\\Payments\\Actions\\CreateTransactionAction@__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/Payments/Actions/CreateTransactionAction.php::App\\Domains\\Payments\\Actions\\CreateTransactionAction::execute",
        "fqmn": "App\\Domains\\Payments\\Actions\\CreateTransactionAction@execute",
        "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/Payments/Actions/FinalizeTransactionAction.php::App\\Domains\\Payments\\Actions\\FinalizeTransactionAction::__construct",
        "fqmn": "App\\Domains\\Payments\\Actions\\FinalizeTransactionAction@__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/Payments/Actions/FinalizeTransactionAction.php::App\\Domains\\Payments\\Actions\\FinalizeTransactionAction::execute",
        "fqmn": "App\\Domains\\Payments\\Actions\\FinalizeTransactionAction@execute",
        "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/Payments/Actions/PersistDeductionsAction.php::App\\Domains\\Payments\\Actions\\PersistDeductionsAction::execute",
        "fqmn": "App\\Domains\\Payments\\Actions\\PersistDeductionsAction@execute",
        "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/Payments/Actions/RecordPaymentAction.php::App\\Domains\\Payments\\Actions\\RecordPaymentAction::__construct",
        "fqmn": "App\\Domains\\Payments\\Actions\\RecordPaymentAction@__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/Payments/Actions/RecordPaymentAction.php::App\\Domains\\Payments\\Actions\\RecordPaymentAction::execute",
        "fqmn": "App\\Domains\\Payments\\Actions\\RecordPaymentAction@execute",
        "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/Payments/Actions/VoidPaymentDeductionsAction.php::App\\Domains\\Payments\\Actions\\VoidPaymentDeductionsAction::execute",
        "fqmn": "App\\Domains\\Payments\\Actions\\VoidPaymentDeductionsAction@execute",
        "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/Payments/Listeners/RecordForfeitedBookingRevenue.php::App\\Domains\\Payments\\Listeners\\RecordForfeitedBookingRevenue::handle",
        "fqmn": "App\\Domains\\Payments\\Listeners\\RecordForfeitedBookingRevenue@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/Payments/Models/Deduction.php::App\\Domains\\Payments\\Models\\Deduction::calculateFromPercentage",
        "fqmn": "App\\Domains\\Payments\\Models\\Deduction@calculateFromPercentage",
        "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/Payments/Models/PaymentRequest.php::App\\Domains\\Payments\\Models\\PaymentRequest::landlord",
        "fqmn": "App\\Domains\\Payments\\Models\\PaymentRequest@landlord",
        "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/Payments/Models/PaymentRequest.php::App\\Domains\\Payments\\Models\\PaymentRequest::organization",
        "fqmn": "App\\Domains\\Payments\\Models\\PaymentRequest@organization",
        "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/Payments/Models/PaymentRequest.php::App\\Domains\\Payments\\Models\\PaymentRequest::tenant",
        "fqmn": "App\\Domains\\Payments\\Models\\PaymentRequest@tenant",
        "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/Payments/Models/PaymentRequest.php::App\\Domains\\Payments\\Models\\PaymentRequest::user",
        "fqmn": "App\\Domains\\Payments\\Models\\PaymentRequest@user",
        "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/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::allForOrganization",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@allForOrganization",
        "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/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::countForOrganization",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@countForOrganization",
        "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/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::findForOrganization",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@findForOrganization",
        "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/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::getByMethodForOrganization",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@getByMethodForOrganization",
        "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/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::getByStatusForOrganization",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@getByStatusForOrganization",
        "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/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::getForLandlord",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@getForLandlord",
        "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/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::getForTenant",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@getForTenant",
        "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/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::getInDateRangeForOrganization",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@getInDateRangeForOrganization",
        "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/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::getNeedingTransfer",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@getNeedingTransfer",
        "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/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::getRecentForOrganization",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@getRecentForOrganization",
        "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/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::paginatedForOrganization",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@paginatedForOrganization",
        "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/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::search",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@search",
        "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/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::allForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@allForOrganization",
        "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/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::countActiveForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@countActiveForOrganization",
        "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/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::countForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@countForOrganization",
        "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/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::delete",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@delete",
        "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/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::emailExistsInOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@emailExistsInOrganization",
        "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/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::findByEmailForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@findByEmailForOrganization",
        "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/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::findForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@findForOrganization",
        "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/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::findOrFailForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@findOrFailForOrganization",
        "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/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::getActiveForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@getActiveForOrganization",
        "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/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::paginatedForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@paginatedForOrganization",
        "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/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::search",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@search",
        "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/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::store",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@store",
        "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/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::update",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@update",
        "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/People/Repositories/TenantRepository.php::App\\Domains\\People\\Repositories\\TenantRepository::allForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\TenantRepository@allForOrganization",
        "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/People/Repositories/TenantRepository.php::App\\Domains\\People\\Repositories\\TenantRepository::countActiveForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\TenantRepository@countActiveForOrganization",
        "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/People/Repositories/TenantRepository.php::App\\Domains\\People\\Repositories\\TenantRepository::countForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\TenantRepository@countForOrganization",
        "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/People/Repositories/TenantRepository.php::App\\Domains\\People\\Repositories\\TenantRepository::delete",
        "fqmn": "App\\Domains\\People\\Repositories\\TenantRepository@delete",
        "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/People/Repositories/TenantRepository.php::App\\Domains\\People\\Repositories\\TenantRepository::emailExistsInOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\TenantRepository@emailExistsInOrganization",
        "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/People/Repositories/TenantRepository.php::App\\Domains\\People\\Repositories\\TenantRepository::findByEmailForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\TenantRepository@findByEmailForOrganization",
        "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/People/Repositories/TenantRepository.php::App\\Domains\\People\\Repositories\\TenantRepository::findForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\TenantRepository@findForOrganization",
        "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/People/Repositories/TenantRepository.php::App\\Domains\\People\\Repositories\\TenantRepository::findOrFailForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\TenantRepository@findOrFailForOrganization",
        "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/People/Repositories/TenantRepository.php::App\\Domains\\People\\Repositories\\TenantRepository::getActiveForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\TenantRepository@getActiveForOrganization",
        "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/People/Repositories/TenantRepository.php::App\\Domains\\People\\Repositories\\TenantRepository::paginatedForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\TenantRepository@paginatedForOrganization",
        "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/People/Repositories/TenantRepository.php::App\\Domains\\People\\Repositories\\TenantRepository::search",
        "fqmn": "App\\Domains\\People\\Repositories\\TenantRepository@search",
        "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/People/Repositories/TenantRepository.php::App\\Domains\\People\\Repositories\\TenantRepository::store",
        "fqmn": "App\\Domains\\People\\Repositories\\TenantRepository@store",
        "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/People/Repositories/TenantRepository.php::App\\Domains\\People\\Repositories\\TenantRepository::update",
        "fqmn": "App\\Domains\\People\\Repositories\\TenantRepository@update",
        "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/Properties/Repositories/PropertyRepository.php::App\\Domains\\Properties\\Repositories\\PropertyRepository::allForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\PropertyRepository@allForOrganization",
        "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/Properties/Repositories/PropertyRepository.php::App\\Domains\\Properties\\Repositories\\PropertyRepository::countActiveForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\PropertyRepository@countActiveForOrganization",
        "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/Properties/Repositories/PropertyRepository.php::App\\Domains\\Properties\\Repositories\\PropertyRepository::countForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\PropertyRepository@countForOrganization",
        "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/Properties/Repositories/PropertyRepository.php::App\\Domains\\Properties\\Repositories\\PropertyRepository::delete",
        "fqmn": "App\\Domains\\Properties\\Repositories\\PropertyRepository@delete",
        "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/Properties/Repositories/PropertyRepository.php::App\\Domains\\Properties\\Repositories\\PropertyRepository::findForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\PropertyRepository@findForOrganization",
        "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/Properties/Repositories/PropertyRepository.php::App\\Domains\\Properties\\Repositories\\PropertyRepository::findOrFailForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\PropertyRepository@findOrFailForOrganization",
        "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/Properties/Repositories/PropertyRepository.php::App\\Domains\\Properties\\Repositories\\PropertyRepository::getActiveForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\PropertyRepository@getActiveForOrganization",
        "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/Properties/Repositories/PropertyRepository.php::App\\Domains\\Properties\\Repositories\\PropertyRepository::getByTypeForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\PropertyRepository@getByTypeForOrganization",
        "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/Properties/Repositories/PropertyRepository.php::App\\Domains\\Properties\\Repositories\\PropertyRepository::getForLandlord",
        "fqmn": "App\\Domains\\Properties\\Repositories\\PropertyRepository@getForLandlord",
        "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/Properties/Repositories/PropertyRepository.php::App\\Domains\\Properties\\Repositories\\PropertyRepository::getStatisticsForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\PropertyRepository@getStatisticsForOrganization",
        "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/Properties/Repositories/PropertyRepository.php::App\\Domains\\Properties\\Repositories\\PropertyRepository::paginatedForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\PropertyRepository@paginatedForOrganization",
        "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/Properties/Repositories/PropertyRepository.php::App\\Domains\\Properties\\Repositories\\PropertyRepository::search",
        "fqmn": "App\\Domains\\Properties\\Repositories\\PropertyRepository@search",
        "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/Properties/Repositories/PropertyRepository.php::App\\Domains\\Properties\\Repositories\\PropertyRepository::store",
        "fqmn": "App\\Domains\\Properties\\Repositories\\PropertyRepository@store",
        "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/Properties/Repositories/PropertyRepository.php::App\\Domains\\Properties\\Repositories\\PropertyRepository::update",
        "fqmn": "App\\Domains\\Properties\\Repositories\\PropertyRepository@update",
        "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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::allForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@allForOrganization",
        "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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::assignTenant",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@assignTenant",
        "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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::codeExistsInProperty",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@codeExistsInProperty",
        "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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::countForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@countForOrganization",
        "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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::delete",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@delete",
        "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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::findForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@findForOrganization",
        "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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::findOrFailForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@findOrFailForOrganization",
        "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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::getByStatusForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@getByStatusForOrganization",
        "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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::getForProperty",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@getForProperty",
        "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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::getForTenant",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@getForTenant",
        "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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::getOccupiedForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@getOccupiedForOrganization",
        "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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::getStatisticsForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@getStatisticsForOrganization",
        "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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::getVacantForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@getVacantForOrganization",
        "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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::paginatedForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@paginatedForOrganization",
        "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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::search",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@search",
        "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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::store",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@store",
        "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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::update",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@update",
        "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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::vacateUnit",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@vacateUnit",
        "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/Reminders/Actions/CancelRemindersForRentCycleAction.php::App\\Domains\\Reminders\\Actions\\CancelRemindersForRentCycleAction::execute",
        "fqmn": "App\\Domains\\Reminders\\Actions\\CancelRemindersForRentCycleAction@execute",
        "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/Reminders/Actions/MapReminderTypeToTemplateTypeAction.php::App\\Domains\\Reminders\\Actions\\MapReminderTypeToTemplateTypeAction::__construct",
        "fqmn": "App\\Domains\\Reminders\\Actions\\MapReminderTypeToTemplateTypeAction@__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/Reminders/Actions/MapReminderTypeToTemplateTypeAction.php::App\\Domains\\Reminders\\Actions\\MapReminderTypeToTemplateTypeAction::execute",
        "fqmn": "App\\Domains\\Reminders\\Actions\\MapReminderTypeToTemplateTypeAction@execute",
        "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/Reminders/Actions/ProcessDueRemindersAction.php::App\\Domains\\Reminders\\Actions\\ProcessDueRemindersAction::__construct",
        "fqmn": "App\\Domains\\Reminders\\Actions\\ProcessDueRemindersAction@__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/Reminders/Actions/ProcessDueRemindersAction.php::App\\Domains\\Reminders\\Actions\\ProcessDueRemindersAction::run",
        "fqmn": "App\\Domains\\Reminders\\Actions\\ProcessDueRemindersAction@run",
        "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/Reminders/Actions/ScheduleRemindersForRentCycleAction.php::App\\Domains\\Reminders\\Actions\\ScheduleRemindersForRentCycleAction::__construct",
        "fqmn": "App\\Domains\\Reminders\\Actions\\ScheduleRemindersForRentCycleAction@__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/Reminders/Actions/ScheduleRemindersForRentCycleAction.php::App\\Domains\\Reminders\\Actions\\ScheduleRemindersForRentCycleAction::execute",
        "fqmn": "App\\Domains\\Reminders\\Actions\\ScheduleRemindersForRentCycleAction@execute",
        "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/Reminders/Jobs/BulkScheduleRemindersJob.php::App\\Domains\\Reminders\\Jobs\\BulkScheduleRemindersJob::__construct",
        "fqmn": "App\\Domains\\Reminders\\Jobs\\BulkScheduleRemindersJob@__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/Reminders/Jobs/BulkScheduleRemindersJob.php::App\\Domains\\Reminders\\Jobs\\BulkScheduleRemindersJob::handle",
        "fqmn": "App\\Domains\\Reminders\\Jobs\\BulkScheduleRemindersJob@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/Reminders/Jobs/DownloadInboundAttachmentJob.php::App\\Domains\\Reminders\\Jobs\\DownloadInboundAttachmentJob::__construct",
        "fqmn": "App\\Domains\\Reminders\\Jobs\\DownloadInboundAttachmentJob@__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/Reminders/Jobs/DownloadInboundAttachmentJob.php::App\\Domains\\Reminders\\Jobs\\DownloadInboundAttachmentJob::handle",
        "fqmn": "App\\Domains\\Reminders\\Jobs\\DownloadInboundAttachmentJob@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/Reminders/Jobs/ProcessRemindersJob.php::App\\Domains\\Reminders\\Jobs\\ProcessRemindersJob::handle",
        "fqmn": "App\\Domains\\Reminders\\Jobs\\ProcessRemindersJob@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/Reminders/Jobs/SendReminderJob.php::App\\Domains\\Reminders\\Jobs\\SendReminderJob::__construct",
        "fqmn": "App\\Domains\\Reminders\\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/Domains/Reminders/Jobs/SendReminderJob.php::App\\Domains\\Reminders\\Jobs\\SendReminderJob::handle",
        "fqmn": "App\\Domains\\Reminders\\Jobs\\SendReminderJob@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/Reminders/Jobs/SendReminderJob.php::App\\Domains\\Reminders\\Jobs\\SendReminderJob::tags",
        "fqmn": "App\\Domains\\Reminders\\Jobs\\SendReminderJob@tags",
        "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/Reminders/Repositories/ReminderRepository.php::App\\Domains\\Reminders\\Repositories\\ReminderRepository::countByChannelForOrganization",
        "fqmn": "App\\Domains\\Reminders\\Repositories\\ReminderRepository@countByChannelForOrganization",
        "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/Reminders/Repositories/ReminderRepository.php::App\\Domains\\Reminders\\Repositories\\ReminderRepository::countByStatusForOrganization",
        "fqmn": "App\\Domains\\Reminders\\Repositories\\ReminderRepository@countByStatusForOrganization",
        "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/Reminders/Repositories/ReminderRepository.php::App\\Domains\\Reminders\\Repositories\\ReminderRepository::deleteOldReminders",
        "fqmn": "App\\Domains\\Reminders\\Repositories\\ReminderRepository@deleteOldReminders",
        "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/Reminders/Repositories/ReminderRepository.php::App\\Domains\\Reminders\\Repositories\\ReminderRepository::findForOrganization",
        "fqmn": "App\\Domains\\Reminders\\Repositories\\ReminderRepository@findForOrganization",
        "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/Reminders/Repositories/ReminderRepository.php::App\\Domains\\Reminders\\Repositories\\ReminderRepository::getByChannelForOrganization",
        "fqmn": "App\\Domains\\Reminders\\Repositories\\ReminderRepository@getByChannelForOrganization",
        "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/Reminders/Repositories/ReminderRepository.php::App\\Domains\\Reminders\\Repositories\\ReminderRepository::getByStatusForOrganization",
        "fqmn": "App\\Domains\\Reminders\\Repositories\\ReminderRepository@getByStatusForOrganization",
        "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/Reminders/Repositories/ReminderRepository.php::App\\Domains\\Reminders\\Repositories\\ReminderRepository::getByTypeForOrganization",
        "fqmn": "App\\Domains\\Reminders\\Repositories\\ReminderRepository@getByTypeForOrganization",
        "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/Reminders/Repositories/ReminderRepository.php::App\\Domains\\Reminders\\Repositories\\ReminderRepository::getDue",
        "fqmn": "App\\Domains\\Reminders\\Repositories\\ReminderRepository@getDue",
        "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/Reminders/Repositories/ReminderRepository.php::App\\Domains\\Reminders\\Repositories\\ReminderRepository::getForTenant",
        "fqmn": "App\\Domains\\Reminders\\Repositories\\ReminderRepository@getForTenant",
        "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/Reminders/Repositories/ReminderRepository.php::App\\Domains\\Reminders\\Repositories\\ReminderRepository::getRecentForOrganization",
        "fqmn": "App\\Domains\\Reminders\\Repositories\\ReminderRepository@getRecentForOrganization",
        "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/Reminders/Repositories/ReminderRepository.php::App\\Domains\\Reminders\\Repositories\\ReminderRepository::paginatedForOrganization",
        "fqmn": "App\\Domains\\Reminders\\Repositories\\ReminderRepository@paginatedForOrganization",
        "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/Reports/Repositories/AnalyticsRepository.php::App\\Domains\\Reports\\Repositories\\AnalyticsRepository::getCollectionEfficiencyByMonth",
        "fqmn": "App\\Domains\\Reports\\Repositories\\AnalyticsRepository@getCollectionEfficiencyByMonth",
        "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/Reports/Repositories/AnalyticsRepository.php::App\\Domains\\Reports\\Repositories\\AnalyticsRepository::getPaymentTotalsByStatus",
        "fqmn": "App\\Domains\\Reports\\Repositories\\AnalyticsRepository@getPaymentTotalsByStatus",
        "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/Reports/Repositories/AnalyticsRepository.php::App\\Domains\\Reports\\Repositories\\AnalyticsRepository::getPropertyPerformance",
        "fqmn": "App\\Domains\\Reports\\Repositories\\AnalyticsRepository@getPropertyPerformance",
        "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/Reports/Repositories/AnalyticsRepository.php::App\\Domains\\Reports\\Repositories\\AnalyticsRepository::getRentCycleCountsByStatus",
        "fqmn": "App\\Domains\\Reports\\Repositories\\AnalyticsRepository@getRentCycleCountsByStatus",
        "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/Reports/Repositories/AnalyticsRepository.php::App\\Domains\\Reports\\Repositories\\AnalyticsRepository::getTenantPaymentPatterns",
        "fqmn": "App\\Domains\\Reports\\Repositories\\AnalyticsRepository@getTenantPaymentPatterns",
        "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/Reports/Repositories/AnalyticsRepository.php::App\\Domains\\Reports\\Repositories\\AnalyticsRepository::getUnitUtilizationStats",
        "fqmn": "App\\Domains\\Reports\\Repositories\\AnalyticsRepository@getUnitUtilizationStats",
        "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/Reports/Resources/ReportResource.php::App\\Domains\\Reports\\Resources\\ReportResource::getModelLabel",
        "fqmn": "App\\Domains\\Reports\\Resources\\ReportResource@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/Reports/Resources/ReportResource.php::App\\Domains\\Reports\\Resources\\ReportResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Reports\\Resources\\ReportResource@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::canCreate",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@canCreate",
        "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::getEloquentQuery",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@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/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::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/MyCommissionsResource/Pages/ViewCommission.php::App\\Domains\\Sales\\Resources\\MyCommissionsResource\\Pages\\ViewCommission::infolist",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource\\Pages\\ViewCommission@infolist",
        "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/MyInvoicesResource.php::App\\Domains\\Sales\\Resources\\MyInvoicesResource::canCreate",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyInvoicesResource@canCreate",
        "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/MyInvoicesResource.php::App\\Domains\\Sales\\Resources\\MyInvoicesResource::form",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyInvoicesResource@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/MyInvoicesResource.php::App\\Domains\\Sales\\Resources\\MyInvoicesResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyInvoicesResource@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/Sales/Resources/MyInvoicesResource.php::App\\Domains\\Sales\\Resources\\MyInvoicesResource::getModelLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyInvoicesResource@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/MyInvoicesResource.php::App\\Domains\\Sales\\Resources\\MyInvoicesResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyInvoicesResource@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/MyInvoicesResource.php::App\\Domains\\Sales\\Resources\\MyInvoicesResource::getPages",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyInvoicesResource@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/MyInvoicesResource.php::App\\Domains\\Sales\\Resources\\MyInvoicesResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyInvoicesResource@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/MyInvoicesResource.php::App\\Domains\\Sales\\Resources\\MyInvoicesResource::table",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyInvoicesResource@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/MyOrganizationsResource.php::App\\Domains\\Sales\\Resources\\MyOrganizationsResource::canCreate",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@canCreate",
        "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/MyOrganizationsResource.php::App\\Domains\\Sales\\Resources\\MyOrganizationsResource::form",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@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/MyOrganizationsResource.php::App\\Domains\\Sales\\Resources\\MyOrganizationsResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@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/Sales/Resources/MyOrganizationsResource.php::App\\Domains\\Sales\\Resources\\MyOrganizationsResource::getModelLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@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/MyOrganizationsResource.php::App\\Domains\\Sales\\Resources\\MyOrganizationsResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@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/MyOrganizationsResource.php::App\\Domains\\Sales\\Resources\\MyOrganizationsResource::getPages",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@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/MyOrganizationsResource.php::App\\Domains\\Sales\\Resources\\MyOrganizationsResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@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/MyOrganizationsResource.php::App\\Domains\\Sales\\Resources\\MyOrganizationsResource::table",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@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/AuditLogResource.php::App\\Domains\\SuperAdmin\\Resources\\AuditLogResource::canViewAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\AuditLogResource@canViewAny",
        "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/AuditLogResource.php::App\\Domains\\SuperAdmin\\Resources\\AuditLogResource::getEloquentQuery",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\AuditLogResource@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/AuditLogResource.php::App\\Domains\\SuperAdmin\\Resources\\AuditLogResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\AuditLogResource@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/AuditLogResource.php::App\\Domains\\SuperAdmin\\Resources\\AuditLogResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\AuditLogResource@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/AuditLogResource.php::App\\Domains\\SuperAdmin\\Resources\\AuditLogResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\AuditLogResource@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/AuditLogResource/Pages/ListAudit.php::App\\Domains\\SuperAdmin\\Resources\\AuditLogResource\\Pages\\ListAudit::getTitle",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\AuditLogResource\\Pages\\ListAudit@getTitle",
        "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/BillingAdminActionsResource.php::App\\Domains\\SuperAdmin\\Resources\\BillingAdminActionsResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingAdminActionsResource@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/BillingAdminActionsResource/Pages/ListBillingAdminActions.php::App\\Domains\\SuperAdmin\\Resources\\BillingAdminActionsResource\\Pages\\ListBillingAdminActions::getTitle",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingAdminActionsResource\\Pages\\ListBillingAdminActions@getTitle",
        "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::canViewAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@canViewAny",
        "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::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::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@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/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/BillingEventLogResource/Pages/ListBillingEventLogEntries.php::App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource\\Pages\\ListBillingEventLogEntries::getTitle",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource\\Pages\\ListBillingEventLogEntries@getTitle",
        "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/BillingReconciliationResource.php::App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource::canViewAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource@canViewAny",
        "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/BillingReconciliationResource.php::App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource@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/BillingReconciliationResource.php::App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource@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/BillingReconciliationResource.php::App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource@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/BillingReconciliationResource/Pages/BillingReconciliation.php::App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource\\Pages\\BillingReconciliation::mount",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource\\Pages\\BillingReconciliation@mount",
        "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/ClickLogResource.php::App\\Domains\\SuperAdmin\\Resources\\ClickLogResource::canView",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ClickLogResource@canView",
        "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/ClickLogResource.php::App\\Domains\\SuperAdmin\\Resources\\ClickLogResource::canViewAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ClickLogResource@canViewAny",
        "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/ClickLogResource.php::App\\Domains\\SuperAdmin\\Resources\\ClickLogResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ClickLogResource@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/ClickLogResource.php::App\\Domains\\SuperAdmin\\Resources\\ClickLogResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ClickLogResource@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/ClickLogResource.php::App\\Domains\\SuperAdmin\\Resources\\ClickLogResource::getRelations",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ClickLogResource@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/ClickLogResource.php::App\\Domains\\SuperAdmin\\Resources\\ClickLogResource::maskIp",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ClickLogResource@maskIp",
        "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/ClickLogResource.php::App\\Domains\\SuperAdmin\\Resources\\ClickLogResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ClickLogResource@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/ClickLogResource.php::App\\Domains\\SuperAdmin\\Resources\\ClickLogResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ClickLogResource@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/DiscountCodeResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource@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/DiscountCodeResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource@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/DiscountCodeResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource::getRelations",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource@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/DiscountCodeResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource@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/DiscountCodeResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource@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/DiscountCodeResource/RelationManagers/UsagesRelationManager.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource\\RelationManagers\\UsagesRelationManager::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource\\RelationManagers\\UsagesRelationManager@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/DiscountCodeResource/RelationManagers/UsagesRelationManager.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource\\RelationManagers\\UsagesRelationManager::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource\\RelationManagers\\UsagesRelationManager@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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::canCreate",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@canCreate",
        "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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::canDelete",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@canDelete",
        "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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::canDeleteAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@canDeleteAny",
        "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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::canEdit",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@canEdit",
        "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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::canView",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@canView",
        "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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::canViewAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@canViewAny",
        "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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::getEloquentQuery",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::getRelations",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@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/DiscountCodeUsageResource/Pages/ViewDiscountCodeUsage.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource\\Pages\\ViewDiscountCodeUsage::infolist",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource\\Pages\\ViewDiscountCodeUsage@infolist",
        "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/EmailTemplateResource.php::App\\Domains\\SuperAdmin\\Resources\\EmailTemplateResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\EmailTemplateResource@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/EmailTemplateResource.php::App\\Domains\\SuperAdmin\\Resources\\EmailTemplateResource::getModelLabel",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\EmailTemplateResource@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/EmailTemplateResource.php::App\\Domains\\SuperAdmin\\Resources\\EmailTemplateResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\EmailTemplateResource@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/EmailTemplateResource.php::App\\Domains\\SuperAdmin\\Resources\\EmailTemplateResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\EmailTemplateResource@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/EmailTemplateResource.php::App\\Domains\\SuperAdmin\\Resources\\EmailTemplateResource::getRelations",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\EmailTemplateResource@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/EmailTemplateResource.php::App\\Domains\\SuperAdmin\\Resources\\EmailTemplateResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\EmailTemplateResource@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/EmailTemplateResource.php::App\\Domains\\SuperAdmin\\Resources\\EmailTemplateResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\EmailTemplateResource@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/GlobalUserResource.php::App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource@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/GlobalUserResource.php::App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource@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/GlobalUserResource.php::App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource@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/GlobalUserResource.php::App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource@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/GlobalUserResource/Pages/ListUsers.php::App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource\\Pages\\ListUsers::getTitle",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource\\Pages\\ListUsers@getTitle",
        "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/LeadResource.php::App\\Domains\\SuperAdmin\\Resources\\LeadResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\LeadResource@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/LeadResource.php::App\\Domains\\SuperAdmin\\Resources\\LeadResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\LeadResource@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/LeadResource.php::App\\Domains\\SuperAdmin\\Resources\\LeadResource::getRelations",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\LeadResource@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/LeadResource.php::App\\Domains\\SuperAdmin\\Resources\\LeadResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\LeadResource@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/MessagePackageResource.php::App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource@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/MessagePackageResource.php::App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource@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/MessagePackageResource.php::App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource::getRelations",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource@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/MessagePackageResource.php::App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource@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/MessagePackageResource.php::App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource@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/NotificationInsightsResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource::canViewAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource@canViewAny",
        "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/NotificationInsightsResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource@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/NotificationInsightsResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource::getEloquentQuery",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource@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/NotificationInsightsResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource@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/NotificationInsightsResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource@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/NotificationInsightsResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource@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/OrganizationManagementResource.php::App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource@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/OrganizationManagementResource.php::App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource::getEloquentQuery",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource@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/OrganizationManagementResource.php::App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource@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/OrganizationManagementResource.php::App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource@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/OrganizationManagementResource.php::App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource@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/SalesCommissionResource.php::App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource::canCreate",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@canCreate",
        "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::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::getEloquentQuery",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@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/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::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/SubscriptionBillingTimelineResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource::canViewAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@canViewAny",
        "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/SubscriptionBillingTimelineResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource::getModelLabel",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@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/SubscriptionBillingTimelineResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@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/SubscriptionBillingTimelineResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@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/SubscriptionBillingTimelineResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource::getRelations",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@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/SubscriptionBillingTimelineResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@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/SubscriptionBillingTimelineResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@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/SubscriptionTierResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@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/SubscriptionTierResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource::getModelLabel",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@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/SubscriptionTierResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@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/SubscriptionTierResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@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/SubscriptionTierResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource::getRelations",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@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/SubscriptionTierResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@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/SubscriptionTierResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@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/SubscriptionTierResource/Pages/ManageTiers.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource\\Pages\\ManageTiers::getTitle",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource\\Pages\\ManageTiers@getTitle",
        "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/SupportTicketResource.php::App\\Domains\\SuperAdmin\\Resources\\SupportTicketResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SupportTicketResource@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/SupportTicketResource.php::App\\Domains\\SuperAdmin\\Resources\\SupportTicketResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SupportTicketResource@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/SupportTicketResource.php::App\\Domains\\SuperAdmin\\Resources\\SupportTicketResource::getRelations",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SupportTicketResource@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/SupportTicketResource.php::App\\Domains\\SuperAdmin\\Resources\\SupportTicketResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SupportTicketResource@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/TrackingLinkResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource::canCreate",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource@canCreate",
        "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/TrackingLinkResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource::canDelete",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource@canDelete",
        "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/TrackingLinkResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource::canDeleteAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource@canDeleteAny",
        "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/TrackingLinkResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource::canEdit",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource@canEdit",
        "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/TrackingLinkResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource::canView",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource@canView",
        "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/TrackingLinkResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource::canViewAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource@canViewAny",
        "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/TrackingLinkResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource@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/TrackingLinkResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource@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/TrackingLinkResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource::getRelations",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource@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/TrackingLinkResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource@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/TrackingLinkResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource@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/TrackingLinkResource/Pages/ViewTrackingLink.php::App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource\\Pages\\ViewTrackingLink::infolist",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource\\Pages\\ViewTrackingLink@infolist",
        "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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::canCreate",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@canCreate",
        "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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::canDelete",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@canDelete",
        "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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::canDeleteAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@canDeleteAny",
        "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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::canEdit",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@canEdit",
        "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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::canView",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@canView",
        "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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::canViewAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@canViewAny",
        "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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::getRelations",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@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/WebhookEventAttemptResource.php::App\\Domains\\SuperAdmin\\Resources\\WebhookEventAttemptResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\WebhookEventAttemptResource@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/WebhookEventAttemptResource/Pages/ListWebhookEventAttempts.php::App\\Domains\\SuperAdmin\\Resources\\WebhookEventAttemptResource\\Pages\\ListWebhookEventAttempts::getTitle",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\WebhookEventAttemptResource\\Pages\\ListWebhookEventAttempts@getTitle",
        "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/WebhookEventResource.php::App\\Domains\\SuperAdmin\\Resources\\WebhookEventResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\WebhookEventResource@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/WebhookEventResource/Pages/ListWebhookEvents.php::App\\Domains\\SuperAdmin\\Resources\\WebhookEventResource\\Pages\\ListWebhookEvents::getTitle",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\WebhookEventResource\\Pages\\ListWebhookEvents@getTitle",
        "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/Tenants/Resources/MyLeaseResource.php::App\\Domains\\Tenants\\Resources\\MyLeaseResource::canCreate",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyLeaseResource@canCreate",
        "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/Tenants/Resources/MyLeaseResource.php::App\\Domains\\Tenants\\Resources\\MyLeaseResource::canDelete",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyLeaseResource@canDelete",
        "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/Tenants/Resources/MyLeaseResource.php::App\\Domains\\Tenants\\Resources\\MyLeaseResource::canEdit",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyLeaseResource@canEdit",
        "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/Tenants/Resources/MyLeaseResource.php::App\\Domains\\Tenants\\Resources\\MyLeaseResource::canView",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyLeaseResource@canView",
        "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/Tenants/Resources/MyLeaseResource.php::App\\Domains\\Tenants\\Resources\\MyLeaseResource::canViewAny",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyLeaseResource@canViewAny",
        "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/Tenants/Resources/MyLeaseResource.php::App\\Domains\\Tenants\\Resources\\MyLeaseResource::form",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyLeaseResource@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/Tenants/Resources/MyLeaseResource.php::App\\Domains\\Tenants\\Resources\\MyLeaseResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyLeaseResource@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/Tenants/Resources/MyLeaseResource.php::App\\Domains\\Tenants\\Resources\\MyLeaseResource::getModelLabel",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyLeaseResource@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/Tenants/Resources/MyLeaseResource.php::App\\Domains\\Tenants\\Resources\\MyLeaseResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyLeaseResource@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/Tenants/Resources/MyLeaseResource.php::App\\Domains\\Tenants\\Resources\\MyLeaseResource::getPages",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyLeaseResource@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/Tenants/Resources/MyLeaseResource.php::App\\Domains\\Tenants\\Resources\\MyLeaseResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyLeaseResource@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/Tenants/Resources/MyLeaseResource.php::App\\Domains\\Tenants\\Resources\\MyLeaseResource::table",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyLeaseResource@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/Tenants/Resources/MyPaymentsResource.php::App\\Domains\\Tenants\\Resources\\MyPaymentsResource::canCreate",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@canCreate",
        "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/Tenants/Resources/MyPaymentsResource.php::App\\Domains\\Tenants\\Resources\\MyPaymentsResource::canDelete",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@canDelete",
        "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/Tenants/Resources/MyPaymentsResource.php::App\\Domains\\Tenants\\Resources\\MyPaymentsResource::canEdit",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@canEdit",
        "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/Tenants/Resources/MyPaymentsResource.php::App\\Domains\\Tenants\\Resources\\MyPaymentsResource::canView",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@canView",
        "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/Tenants/Resources/MyPaymentsResource.php::App\\Domains\\Tenants\\Resources\\MyPaymentsResource::canViewAny",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@canViewAny",
        "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/Tenants/Resources/MyPaymentsResource.php::App\\Domains\\Tenants\\Resources\\MyPaymentsResource::form",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@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/Tenants/Resources/MyPaymentsResource.php::App\\Domains\\Tenants\\Resources\\MyPaymentsResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@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/Tenants/Resources/MyPaymentsResource.php::App\\Domains\\Tenants\\Resources\\MyPaymentsResource::getModelLabel",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@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/Tenants/Resources/MyPaymentsResource.php::App\\Domains\\Tenants\\Resources\\MyPaymentsResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@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/Tenants/Resources/MyPaymentsResource.php::App\\Domains\\Tenants\\Resources\\MyPaymentsResource::getPages",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@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/Tenants/Resources/MyPaymentsResource.php::App\\Domains\\Tenants\\Resources\\MyPaymentsResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@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/Tenants/Resources/MyPaymentsResource.php::App\\Domains\\Tenants\\Resources\\MyPaymentsResource::table",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@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/Tenants/Resources/MyRentCyclesResource.php::App\\Domains\\Tenants\\Resources\\MyRentCyclesResource::canCreate",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyRentCyclesResource@canCreate",
        "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/Tenants/Resources/MyRentCyclesResource.php::App\\Domains\\Tenants\\Resources\\MyRentCyclesResource::canDelete",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyRentCyclesResource@canDelete",
        "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/Tenants/Resources/MyRentCyclesResource.php::App\\Domains\\Tenants\\Resources\\MyRentCyclesResource::canEdit",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyRentCyclesResource@canEdit",
        "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/Tenants/Resources/MyRentCyclesResource.php::App\\Domains\\Tenants\\Resources\\MyRentCyclesResource::form",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyRentCyclesResource@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/Tenants/Resources/MyRentCyclesResource.php::App\\Domains\\Tenants\\Resources\\MyRentCyclesResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyRentCyclesResource@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/Tenants/Resources/MyRentCyclesResource.php::App\\Domains\\Tenants\\Resources\\MyRentCyclesResource::getModelLabel",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyRentCyclesResource@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/Tenants/Resources/MyRentCyclesResource.php::App\\Domains\\Tenants\\Resources\\MyRentCyclesResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyRentCyclesResource@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/Tenants/Resources/MyRentCyclesResource.php::App\\Domains\\Tenants\\Resources\\MyRentCyclesResource::getPages",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyRentCyclesResource@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/Tenants/Resources/MyRentCyclesResource.php::App\\Domains\\Tenants\\Resources\\MyRentCyclesResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyRentCyclesResource@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/Tenants/Resources/MyRentCyclesResource.php::App\\Domains\\Tenants\\Resources\\MyRentCyclesResource::table",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyRentCyclesResource@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/Http/Controllers/Admin/PlanVersionController.php::App\\Http\\Controllers\\Admin\\PlanVersionController::index",
        "fqmn": "App\\Http\\Controllers\\Admin\\PlanVersionController@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/Admin/PlanVersionController.php::App\\Http\\Controllers\\Admin\\PlanVersionController::show",
        "fqmn": "App\\Http\\Controllers\\Admin\\PlanVersionController@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/Admin/PlanVersionController.php::App\\Http\\Controllers\\Admin\\PlanVersionController::store",
        "fqmn": "App\\Http\\Controllers\\Admin\\PlanVersionController@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/Admin/PlanVersionController.php::App\\Http\\Controllers\\Admin\\PlanVersionController::update",
        "fqmn": "App\\Http\\Controllers\\Admin\\PlanVersionController@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/Admin/PlanVersionFeatureController.php::App\\Http\\Controllers\\Admin\\PlanVersionFeatureController::store",
        "fqmn": "App\\Http\\Controllers\\Admin\\PlanVersionFeatureController@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/Admin/PlanVersionFeatureController.php::App\\Http\\Controllers\\Admin\\PlanVersionFeatureController::update",
        "fqmn": "App\\Http\\Controllers\\Admin\\PlanVersionFeatureController@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/Admin/ZohoController.php::App\\Http\\Controllers\\Admin\\ZohoController::__construct",
        "fqmn": "App\\Http\\Controllers\\Admin\\ZohoController@__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/Admin/ZohoController.php::App\\Http\\Controllers\\Admin\\ZohoController::callback",
        "fqmn": "App\\Http\\Controllers\\Admin\\ZohoController@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/Admin/ZohoController.php::App\\Http\\Controllers\\Admin\\ZohoController::connect",
        "fqmn": "App\\Http\\Controllers\\Admin\\ZohoController@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/Admin/ZohoController.php::App\\Http\\Controllers\\Admin\\ZohoController::index",
        "fqmn": "App\\Http\\Controllers\\Admin\\ZohoController@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/AgencyBackupController.php::App\\Http\\Controllers\\AgencyBackupController::download",
        "fqmn": "App\\Http\\Controllers\\AgencyBackupController@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/AgencyWhatsAppProfileController.php::App\\Http\\Controllers\\AgencyWhatsAppProfileController::show",
        "fqmn": "App\\Http\\Controllers\\AgencyWhatsAppProfileController@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/AgencyWhatsAppProfileController.php::App\\Http\\Controllers\\AgencyWhatsAppProfileController::sync",
        "fqmn": "App\\Http\\Controllers\\AgencyWhatsAppProfileController@sync",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/AgencyWhatsAppProfileController.php::App\\Http\\Controllers\\AgencyWhatsAppProfileController::update",
        "fqmn": "App\\Http\\Controllers\\AgencyWhatsAppProfileController@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/MaintenanceDigestPreferencesController.php::App\\Http\\Controllers\\Api\\MaintenanceDigestPreferencesController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceDigestPreferencesController@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/MaintenanceDigestPreferencesController.php::App\\Http\\Controllers\\Api\\MaintenanceDigestPreferencesController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceDigestPreferencesController@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/MaintenanceMetricsController.php::App\\Http\\Controllers\\Api\\MaintenanceMetricsController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceMetricsController@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/MaintenanceSlaController.php::App\\Http\\Controllers\\Api\\MaintenanceSlaController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceSlaController@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/MaintenanceSlaController.php::App\\Http\\Controllers\\Api\\MaintenanceSlaController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceSlaController@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/MaintenanceSlaController.php::App\\Http\\Controllers\\Api\\MaintenanceSlaController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceSlaController@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/MaintenanceSlaController.php::App\\Http\\Controllers\\Api\\MaintenanceSlaController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceSlaController@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/MaintenanceSlaController.php::App\\Http\\Controllers\\Api\\MaintenanceSlaController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceSlaController@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/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::addComment",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@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/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::approve",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@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/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::assign",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@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/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::complete",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@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/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@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/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::reopen",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@reopen",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::reviewSuggestion",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@reviewSuggestion",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@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/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::slaLogs",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@slaLogs",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@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/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::suggestions",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@suggestions",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::updateStatus",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@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/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::uploadQuote",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@uploadQuote",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "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/MobileDashboardController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileDashboardController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileDashboardController@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/MobileForgotPasswordController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileForgotPasswordController::sendResetLink",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileForgotPasswordController@sendResetLink",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "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/MobilePaymentController.php::App\\Http\\Controllers\\Api\\Mobile\\MobilePaymentController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobilePaymentController@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/MobilePeopleController.php::App\\Http\\Controllers\\Api\\Mobile\\MobilePeopleController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobilePeopleController@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/MobilePersonDetailController.php::App\\Http\\Controllers\\Api\\Mobile\\MobilePersonDetailController::properties",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobilePersonDetailController@properties",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "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/MobilePropertyController.php::App\\Http\\Controllers\\Api\\Mobile\\MobilePropertyController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobilePropertyController@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/MobileUnitController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileUnitController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileUnitController@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/OutreachAI/PredictionController.php::App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController::getABTestStats",
        "fqmn": "App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController@getABTestStats",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/OutreachAI/PredictionController.php::App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController::getFeatureImportance",
        "fqmn": "App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController@getFeatureImportance",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/OutreachAI/PredictionController.php::App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController::getHistory",
        "fqmn": "App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController@getHistory",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/OutreachAI/PredictionController.php::App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController::getLatest",
        "fqmn": "App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController@getLatest",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/AppController.php::App\\Http\\Controllers\\AppController::index",
        "fqmn": "App\\Http\\Controllers\\AppController@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/Auth/AuthController.php::App\\Http\\Controllers\\Auth\\AuthController::__construct",
        "fqmn": "App\\Http\\Controllers\\Auth\\AuthController@__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/Auth/AuthController.php::App\\Http\\Controllers\\Auth\\AuthController::login",
        "fqmn": "App\\Http\\Controllers\\Auth\\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/Auth/AuthController.php::App\\Http\\Controllers\\Auth\\AuthController::logout",
        "fqmn": "App\\Http\\Controllers\\Auth\\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/Auth/AuthController.php::App\\Http\\Controllers\\Auth\\AuthController::register",
        "fqmn": "App\\Http\\Controllers\\Auth\\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/Auth/AuthController.php::App\\Http\\Controllers\\Auth\\AuthController::showRegister",
        "fqmn": "App\\Http\\Controllers\\Auth\\AuthController@showRegister",
        "bucket": "DEFER",
        "signals": [
          "zero_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/PasswordResetController.php::App\\Http\\Controllers\\Auth\\PasswordResetController::reset",
        "fqmn": "App\\Http\\Controllers\\Auth\\PasswordResetController@reset",
        "bucket": "DEFER",
        "signals": [
          "zero_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/PasswordResetController.php::App\\Http\\Controllers\\Auth\\PasswordResetController::sendResetLinkEmail",
        "fqmn": "App\\Http\\Controllers\\Auth\\PasswordResetController@sendResetLinkEmail",
        "bucket": "DEFER",
        "signals": [
          "zero_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/PasswordResetController.php::App\\Http\\Controllers\\Auth\\PasswordResetController::showForgotPassword",
        "fqmn": "App\\Http\\Controllers\\Auth\\PasswordResetController@showForgotPassword",
        "bucket": "DEFER",
        "signals": [
          "zero_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/PasswordResetController.php::App\\Http\\Controllers\\Auth\\PasswordResetController::showResetForm",
        "fqmn": "App\\Http\\Controllers\\Auth\\PasswordResetController@showResetForm",
        "bucket": "DEFER",
        "signals": [
          "zero_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/VerificationController.php::App\\Http\\Controllers\\Auth\\VerificationController::resend",
        "fqmn": "App\\Http\\Controllers\\Auth\\VerificationController@resend",
        "bucket": "DEFER",
        "signals": [
          "zero_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/VerificationController.php::App\\Http\\Controllers\\Auth\\VerificationController::showResendForm",
        "fqmn": "App\\Http\\Controllers\\Auth\\VerificationController@showResendForm",
        "bucket": "DEFER",
        "signals": [
          "zero_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/VerificationController.php::App\\Http\\Controllers\\Auth\\VerificationController::verify",
        "fqmn": "App\\Http\\Controllers\\Auth\\VerificationController@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/InvitationController.php::App\\Http\\Controllers\\InvitationController::__construct",
        "fqmn": "App\\Http\\Controllers\\InvitationController@__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/InvitationController.php::App\\Http\\Controllers\\InvitationController::accept",
        "fqmn": "App\\Http\\Controllers\\InvitationController@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/InvitationController.php::App\\Http\\Controllers\\InvitationController::destroy",
        "fqmn": "App\\Http\\Controllers\\InvitationController@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/InvitationController.php::App\\Http\\Controllers\\InvitationController::index",
        "fqmn": "App\\Http\\Controllers\\InvitationController@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/InvitationController.php::App\\Http\\Controllers\\InvitationController::show",
        "fqmn": "App\\Http\\Controllers\\InvitationController@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/InvitationController.php::App\\Http\\Controllers\\InvitationController::store",
        "fqmn": "App\\Http\\Controllers\\InvitationController@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/Landing/PlansController.php::App\\Http\\Controllers\\Landing\\PlansController::index",
        "fqmn": "App\\Http\\Controllers\\Landing\\PlansController@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/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/LeadController.php::App\\Http\\Controllers\\LeadController::store",
        "fqmn": "App\\Http\\Controllers\\LeadController@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/LocaleController.php::App\\Http\\Controllers\\LocaleController::post",
        "fqmn": "App\\Http\\Controllers\\LocaleController@post",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/LocaleController.php::App\\Http\\Controllers\\LocaleController::switch",
        "fqmn": "App\\Http\\Controllers\\LocaleController@switch",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/OrgWhatsAppOnboardingController.php::App\\Http\\Controllers\\OrgWhatsAppOnboardingController::selectNumber",
        "fqmn": "App\\Http\\Controllers\\OrgWhatsAppOnboardingController@selectNumber",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/OrgWhatsAppOnboardingController.php::App\\Http\\Controllers\\OrgWhatsAppOnboardingController::start",
        "fqmn": "App\\Http\\Controllers\\OrgWhatsAppOnboardingController@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/Outreach/FollowUpMetricsController.php::App\\Http\\Controllers\\Outreach\\FollowUpMetricsController::index",
        "fqmn": "App\\Http\\Controllers\\Outreach\\FollowUpMetricsController@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/Outreach/FollowUpMetricsController.php::App\\Http\\Controllers\\Outreach\\FollowUpMetricsController::priorities",
        "fqmn": "App\\Http\\Controllers\\Outreach\\FollowUpMetricsController@priorities",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Payments/PaymentRequestController.php::App\\Http\\Controllers\\Payments\\PaymentRequestController::pay",
        "fqmn": "App\\Http\\Controllers\\Payments\\PaymentRequestController@pay",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Payments/PaymentRequestController.php::App\\Http\\Controllers\\Payments\\PaymentRequestController::show",
        "fqmn": "App\\Http\\Controllers\\Payments\\PaymentRequestController@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/Settings/WhatsAppSettingsController.php::App\\Http\\Controllers\\Settings\\WhatsAppSettingsController::provision",
        "fqmn": "App\\Http\\Controllers\\Settings\\WhatsAppSettingsController@provision",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Settings/WhatsAppSettingsController.php::App\\Http\\Controllers\\Settings\\WhatsAppSettingsController::show",
        "fqmn": "App\\Http\\Controllers\\Settings\\WhatsAppSettingsController@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/Settings/WhatsAppSettingsController.php::App\\Http\\Controllers\\Settings\\WhatsAppSettingsController::test",
        "fqmn": "App\\Http\\Controllers\\Settings\\WhatsAppSettingsController@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/Settings/WhatsAppSettingsController.php::App\\Http\\Controllers\\Settings\\WhatsAppSettingsController::update",
        "fqmn": "App\\Http\\Controllers\\Settings\\WhatsAppSettingsController@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/TenantPaymentController.php::App\\Http\\Controllers\\TenantPaymentController::__construct",
        "fqmn": "App\\Http\\Controllers\\TenantPaymentController@__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/TenantPaymentController.php::App\\Http\\Controllers\\TenantPaymentController::initiate",
        "fqmn": "App\\Http\\Controllers\\TenantPaymentController@initiate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/TenantPaymentController.php::App\\Http\\Controllers\\TenantPaymentController::success",
        "fqmn": "App\\Http\\Controllers\\TenantPaymentController@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/Testing/DashboardPerformanceIndicatorsController.php::App\\Http\\Controllers\\Testing\\DashboardPerformanceIndicatorsController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\DashboardPerformanceIndicatorsController@__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/Testing/DashboardQuickStatsController.php::App\\Http\\Controllers\\Testing\\DashboardQuickStatsController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\DashboardQuickStatsController@__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/Testing/LandlordOverviewStatsController.php::App\\Http\\Controllers\\Testing\\LandlordOverviewStatsController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\LandlordOverviewStatsController@__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/Testing/OutreachConversationInboundController.php::App\\Http\\Controllers\\Testing\\OutreachConversationInboundController::store",
        "fqmn": "App\\Http\\Controllers\\Testing\\OutreachConversationInboundController@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/Testing/OutreachKnowledgeValidateController.php::App\\Http\\Controllers\\Testing\\OutreachKnowledgeValidateController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\OutreachKnowledgeValidateController@__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/Testing/OutreachPricingSuggestController.php::App\\Http\\Controllers\\Testing\\OutreachPricingSuggestController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\OutreachPricingSuggestController@__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/Testing/RecordAnonymousDiscountCodeUsageController.php::App\\Http\\Controllers\\Testing\\RecordAnonymousDiscountCodeUsageController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\RecordAnonymousDiscountCodeUsageController@__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/Testing/RecordSubscriptionDiscountCodeUsageController.php::App\\Http\\Controllers\\Testing\\RecordSubscriptionDiscountCodeUsageController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\RecordSubscriptionDiscountCodeUsageController@__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/TrackingController.php::App\\Http\\Controllers\\TrackingController::redirect",
        "fqmn": "App\\Http\\Controllers\\TrackingController@redirect",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/VerificationController.php::App\\Http\\Controllers\\VerificationController::check",
        "fqmn": "App\\Http\\Controllers\\VerificationController@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/VerificationController.php::App\\Http\\Controllers\\VerificationController::start",
        "fqmn": "App\\Http\\Controllers\\VerificationController@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/Web/FeaturePreviewController.php::App\\Http\\Controllers\\Web\\FeaturePreviewController::start",
        "fqmn": "App\\Http\\Controllers\\Web\\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/Web/GuestRenewalController.php::App\\Http\\Controllers\\Web\\GuestRenewalController::__construct",
        "fqmn": "App\\Http\\Controllers\\Web\\GuestRenewalController@__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/Web/GuestRenewalController.php::App\\Http\\Controllers\\Web\\GuestRenewalController::process",
        "fqmn": "App\\Http\\Controllers\\Web\\GuestRenewalController@process",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Web/GuestRenewalController.php::App\\Http\\Controllers\\Web\\GuestRenewalController::show",
        "fqmn": "App\\Http\\Controllers\\Web\\GuestRenewalController@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/Web/LandlordStatementController.php::App\\Http\\Controllers\\Web\\LandlordStatementController::download",
        "fqmn": "App\\Http\\Controllers\\Web\\LandlordStatementController@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/Web/ProspectShortlistController.php::App\\Http\\Controllers\\Web\\ProspectShortlistController::show",
        "fqmn": "App\\Http\\Controllers\\Web\\ProspectShortlistController@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/Web/SubscriptionController.php::App\\Http\\Controllers\\Web\\SubscriptionController::__construct",
        "fqmn": "App\\Http\\Controllers\\Web\\SubscriptionController@__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/Web/SubscriptionController.php::App\\Http\\Controllers\\Web\\SubscriptionController::failure",
        "fqmn": "App\\Http\\Controllers\\Web\\SubscriptionController@failure",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Web/SubscriptionController.php::App\\Http\\Controllers\\Web\\SubscriptionController::index",
        "fqmn": "App\\Http\\Controllers\\Web\\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/Web/SubscriptionController.php::App\\Http\\Controllers\\Web\\SubscriptionController::subscribe",
        "fqmn": "App\\Http\\Controllers\\Web\\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/Web/SubscriptionController.php::App\\Http\\Controllers\\Web\\SubscriptionController::success",
        "fqmn": "App\\Http\\Controllers\\Web\\SubscriptionController@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/Webhooks/Dialog360StatusWebhookController.php::App\\Http\\Controllers\\Webhooks\\Dialog360StatusWebhookController::handle",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\Dialog360StatusWebhookController@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/Webhooks/Dialog360WebhookController.php::App\\Http\\Controllers\\Webhooks\\Dialog360WebhookController::handle",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\Dialog360WebhookController@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/Webhooks/TapSettlementWebhookController.php::App\\Http\\Controllers\\Webhooks\\TapSettlementWebhookController::handle",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\TapSettlementWebhookController@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/Webhooks/TapWebhookController.php::App\\Http\\Controllers\\Webhooks\\TapWebhookController::__construct",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\TapWebhookController@__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/Webhooks/TapWebhookController.php::App\\Http\\Controllers\\Webhooks\\TapWebhookController::handle",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\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/Webhooks/TapWebhookController.php::App\\Http\\Controllers\\Webhooks\\TapWebhookController::processCombinedSubscriptionPayment",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\TapWebhookController@processCombinedSubscriptionPayment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Webhooks/TapWebhookController.php::App\\Http\\Controllers\\Webhooks\\TapWebhookController::processCreditTopUp",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\TapWebhookController@processCreditTopUp",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Webhooks/TapWebhookController.php::App\\Http\\Controllers\\Webhooks\\TapWebhookController::processFeatureAddonPayment",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\TapWebhookController@processFeatureAddonPayment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Webhooks/TapWebhookController.php::App\\Http\\Controllers\\Webhooks\\TapWebhookController::processRentCyclePayment",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\TapWebhookController@processRentCyclePayment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Webhooks/TapWebhookController.php::App\\Http\\Controllers\\Webhooks\\TapWebhookController::processSubscriptionPayment",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\TapWebhookController@processSubscriptionPayment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Webhooks/TapWebhookController.php::App\\Http\\Controllers\\Webhooks\\TapWebhookController::processTapEventPayload",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\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/Webhooks/TwilioWebhookController.php::App\\Http\\Controllers\\Webhooks\\TwilioWebhookController::inbound",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\TwilioWebhookController@inbound",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Webhooks/TwilioWebhookController.php::App\\Http\\Controllers\\Webhooks\\TwilioWebhookController::incomingMessage",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\TwilioWebhookController@incomingMessage",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Webhooks/TwilioWebhookController.php::App\\Http\\Controllers\\Webhooks\\TwilioWebhookController::status",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\TwilioWebhookController@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/Webhooks/ZeptoWebhookController.php::App\\Http\\Controllers\\Webhooks\\ZeptoWebhookController::handleBounce",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\ZeptoWebhookController@handleBounce",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Webhooks/ZohoWebhookController.php::App\\Http\\Controllers\\Webhooks\\ZohoWebhookController::__construct",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\ZohoWebhookController@__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/Webhooks/ZohoWebhookController.php::App\\Http\\Controllers\\Webhooks\\ZohoWebhookController::handleCustomer",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\ZohoWebhookController@handleCustomer",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Webhooks/ZohoWebhookController.php::App\\Http\\Controllers\\Webhooks\\ZohoWebhookController::handleError",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\ZohoWebhookController@handleError",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Webhooks/ZohoWebhookController.php::App\\Http\\Controllers\\Webhooks\\ZohoWebhookController::handleInvoice",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\ZohoWebhookController@handleInvoice",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/AllocateDeferredRevenue.php::App\\Jobs\\AllocateDeferredRevenue::__construct",
        "fqmn": "App\\Jobs\\AllocateDeferredRevenue@__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/AnalyzePaymentProofJob.php::App\\Jobs\\AnalyzePaymentProofJob::__construct",
        "fqmn": "App\\Jobs\\AnalyzePaymentProofJob@__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/ApproveReminderTemplateJob.php::App\\Jobs\\ApproveReminderTemplateJob::__construct",
        "fqmn": "App\\Jobs\\ApproveReminderTemplateJob@__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/BuildMessagePackageInvoiceContextJob.php::App\\Jobs\\Billing\\BuildMessagePackageInvoiceContextJob::__construct",
        "fqmn": "App\\Jobs\\Billing\\BuildMessagePackageInvoiceContextJob@__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/CreateAuditLogJob.php::App\\Jobs\\Billing\\CreateAuditLogJob::__construct",
        "fqmn": "App\\Jobs\\Billing\\CreateAuditLogJob@__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/CreateMessagePackageAndBuildInvoiceContextJob.php::App\\Jobs\\Billing\\CreateMessagePackageAndBuildInvoiceContextJob::__construct",
        "fqmn": "App\\Jobs\\Billing\\CreateMessagePackageAndBuildInvoiceContextJob@__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/CreateMessagePackageJob.php::App\\Jobs\\Billing\\CreateMessagePackageJob::__construct",
        "fqmn": "App\\Jobs\\Billing\\CreateMessagePackageJob@__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/PushZohoSettlementPaymentJob.php::App\\Jobs\\Billing\\PushZohoSettlementPaymentJob::__construct",
        "fqmn": "App\\Jobs\\Billing\\PushZohoSettlementPaymentJob@__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/RunMessageBillingWorkflowJob.php::App\\Jobs\\Billing\\RunMessageBillingWorkflowJob::__construct",
        "fqmn": "App\\Jobs\\Billing\\RunMessageBillingWorkflowJob@__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/Chat/InboundMessageJob.php::App\\Jobs\\Chat\\InboundMessageJob::__construct",
        "fqmn": "App\\Jobs\\Chat\\InboundMessageJob@__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/Chat/ProcessAIMessageJob.php::App\\Jobs\\Chat\\ProcessAIMessageJob::__construct",
        "fqmn": "App\\Jobs\\Chat\\ProcessAIMessageJob@__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/Chat/SendOutboundMessageJob.php::App\\Jobs\\Chat\\SendOutboundMessageJob::__construct",
        "fqmn": "App\\Jobs\\Chat\\SendOutboundMessageJob@__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/Dunning/RunDunningAttemptJob.php::App\\Jobs\\Dunning\\RunDunningAttemptJob::__construct",
        "fqmn": "App\\Jobs\\Dunning\\RunDunningAttemptJob@__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/GenerateAgencyBackupJob.php::App\\Jobs\\GenerateAgencyBackupJob::__construct",
        "fqmn": "App\\Jobs\\GenerateAgencyBackupJob@__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/GenerateFunnelSnapshotJob.php::App\\Jobs\\GenerateFunnelSnapshotJob::__construct",
        "fqmn": "App\\Jobs\\GenerateFunnelSnapshotJob@__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/LogClickJob.php::App\\Jobs\\LogClickJob::__construct",
        "fqmn": "App\\Jobs\\LogClickJob@__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/Outreach/CheckActivationStatusJob.php::App\\Jobs\\Outreach\\CheckActivationStatusJob::__construct",
        "fqmn": "App\\Jobs\\Outreach\\CheckActivationStatusJob@__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/Outreach/ProcessOutreachInboundMessageJob.php::App\\Jobs\\Outreach\\ProcessOutreachInboundMessageJob::__construct",
        "fqmn": "App\\Jobs\\Outreach\\ProcessOutreachInboundMessageJob@__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/Outreach/ProcessRenewalOutreachJob.php::App\\Jobs\\Outreach\\ProcessRenewalOutreachJob::__construct",
        "fqmn": "App\\Jobs\\Outreach\\ProcessRenewalOutreachJob@__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/Outreach/SendCampaignMessageJob.php::App\\Jobs\\Outreach\\SendCampaignMessageJob::__construct",
        "fqmn": "App\\Jobs\\Outreach\\SendCampaignMessageJob@__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/Outreach/SendCampaignMessageJob.php::App\\Jobs\\Outreach\\SendCampaignMessageJob::dispatchSync",
        "fqmn": "App\\Jobs\\Outreach\\SendCampaignMessageJob@dispatchSync",
        "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/Outreach/SendFollowUpMessageJob.php::App\\Jobs\\Outreach\\SendFollowUpMessageJob::__construct",
        "fqmn": "App\\Jobs\\Outreach\\SendFollowUpMessageJob@__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/OutreachAI/AutoSubscriptionNudgeJob.php::App\\Jobs\\OutreachAI\\AutoSubscriptionNudgeJob::__construct",
        "fqmn": "App\\Jobs\\OutreachAI\\AutoSubscriptionNudgeJob@__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/OutreachAI/DetectUpsellSuccessJob.php::App\\Jobs\\OutreachAI\\DetectUpsellSuccessJob::__construct",
        "fqmn": "App\\Jobs\\OutreachAI\\DetectUpsellSuccessJob@__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/OutreachAI/EvaluateFollowUpJob.php::App\\Jobs\\OutreachAI\\EvaluateFollowUpJob::__construct",
        "fqmn": "App\\Jobs\\OutreachAI\\EvaluateFollowUpJob@__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/OutreachAI/ExecuteScheduledClosingAttemptJob.php::App\\Jobs\\OutreachAI\\ExecuteScheduledClosingAttemptJob::__construct",
        "fqmn": "App\\Jobs\\OutreachAI\\ExecuteScheduledClosingAttemptJob@__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/OutreachAI/HandleObjectionJob.php::App\\Jobs\\OutreachAI\\HandleObjectionJob::__construct",
        "fqmn": "App\\Jobs\\OutreachAI\\HandleObjectionJob@__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/OutreachAI/NotifySalesTeamJob.php::App\\Jobs\\OutreachAI\\NotifySalesTeamJob::__construct",
        "fqmn": "App\\Jobs\\OutreachAI\\NotifySalesTeamJob@__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/OutreachAI/PostReplyPersistenceJob.php::App\\Jobs\\OutreachAI\\PostReplyPersistenceJob::__construct",
        "fqmn": "App\\Jobs\\OutreachAI\\PostReplyPersistenceJob@__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/OutreachAI/ProcessConversationAnalyticsJob.php::App\\Jobs\\OutreachAI\\ProcessConversationAnalyticsJob::__construct",
        "fqmn": "App\\Jobs\\OutreachAI\\ProcessConversationAnalyticsJob@__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/OutreachAI/ReactivatePortalUserJob.php::App\\Jobs\\OutreachAI\\ReactivatePortalUserJob::__construct",
        "fqmn": "App\\Jobs\\OutreachAI\\ReactivatePortalUserJob@__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/OutreachAI/RunDailyPredictionSweepJob.php::App\\Jobs\\OutreachAI\\RunDailyPredictionSweepJob::__construct",
        "fqmn": "App\\Jobs\\OutreachAI\\RunDailyPredictionSweepJob@__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/OutreachAI/RunDeepReasoningJob.php::App\\Jobs\\OutreachAI\\RunDeepReasoningJob::__construct",
        "fqmn": "App\\Jobs\\OutreachAI\\RunDeepReasoningJob@__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/OutreachAI/RunOptimizationCycleJob.php::App\\Jobs\\OutreachAI\\RunOptimizationCycleJob::__construct",
        "fqmn": "App\\Jobs\\OutreachAI\\RunOptimizationCycleJob@__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/OutreachAI/RunSequenceStepJob.php::App\\Jobs\\OutreachAI\\RunSequenceStepJob::__construct",
        "fqmn": "App\\Jobs\\OutreachAI\\RunSequenceStepJob@__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/OutreachAI/RunShadowBrainJob.php::App\\Jobs\\OutreachAI\\RunShadowBrainJob::__construct",
        "fqmn": "App\\Jobs\\OutreachAI\\RunShadowBrainJob@__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/OutreachAI/SendAiWhatsappReplyJob.php::App\\Jobs\\OutreachAI\\SendAiWhatsappReplyJob::__construct",
        "fqmn": "App\\Jobs\\OutreachAI\\SendAiWhatsappReplyJob@__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/OutreachAI/SendHumanHandoffNotificationJob.php::App\\Jobs\\OutreachAI\\SendHumanHandoffNotificationJob::__construct",
        "fqmn": "App\\Jobs\\OutreachAI\\SendHumanHandoffNotificationJob@__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/OutreachAI/SendReengagementMessageJob.php::App\\Jobs\\OutreachAI\\SendReengagementMessageJob::__construct",
        "fqmn": "App\\Jobs\\OutreachAI\\SendReengagementMessageJob@__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/OutreachAI/SendScheduledAppointmentFollowupJob.php::App\\Jobs\\OutreachAI\\SendScheduledAppointmentFollowupJob::__construct",
        "fqmn": "App\\Jobs\\OutreachAI\\SendScheduledAppointmentFollowupJob@__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/OutreachAI/SendTypingIndicatorJob.php::App\\Jobs\\OutreachAI\\SendTypingIndicatorJob::__construct",
        "fqmn": "App\\Jobs\\OutreachAI\\SendTypingIndicatorJob@__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/ProcessInboundWhatsAppMessageJob.php::App\\Jobs\\ProcessInboundWhatsAppMessageJob::__construct",
        "fqmn": "App\\Jobs\\ProcessInboundWhatsAppMessageJob@__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/ProcessTapWebhookJob.php::App\\Jobs\\ProcessTapWebhookJob::__construct",
        "fqmn": "App\\Jobs\\ProcessTapWebhookJob@__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/ProcessWhatsAppTemplateUpdateJob.php::App\\Jobs\\ProcessWhatsAppTemplateUpdateJob::__construct",
        "fqmn": "App\\Jobs\\ProcessWhatsAppTemplateUpdateJob@__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/ProcessWhatsAppWebhookJob.php::App\\Jobs\\ProcessWhatsAppWebhookJob::__construct",
        "fqmn": "App\\Jobs\\ProcessWhatsAppWebhookJob@__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/ProcessZohoWebhook.php::App\\Jobs\\ProcessZohoWebhook::__construct",
        "fqmn": "App\\Jobs\\ProcessZohoWebhook@__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/PushWhatsAppTemplateJob.php::App\\Jobs\\PushWhatsAppTemplateJob::__construct",
        "fqmn": "App\\Jobs\\PushWhatsAppTemplateJob@__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/RejectReminderTemplateJob.php::App\\Jobs\\RejectReminderTemplateJob::__construct",
        "fqmn": "App\\Jobs\\RejectReminderTemplateJob@__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/RetryFailedZohoSync.php::App\\Jobs\\RetryFailedZohoSync::__construct",
        "fqmn": "App\\Jobs\\RetryFailedZohoSync@__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/SendInvitationEmail.php::App\\Jobs\\SendInvitationEmail::__construct",
        "fqmn": "App\\Jobs\\SendInvitationEmail@__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/SendReminderJob.php::App\\Jobs\\SendReminderJob::attempts",
        "fqmn": "App\\Jobs\\SendReminderJob@attempts",
        "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/SendTransferNotification.php::App\\Jobs\\SendTransferNotification::__construct",
        "fqmn": "App\\Jobs\\SendTransferNotification@__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/SendTrialNudgeJob.php::App\\Jobs\\SendTrialNudgeJob::__construct",
        "fqmn": "App\\Jobs\\SendTrialNudgeJob@__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/SyncOrganizationToZohoBooks.php::App\\Jobs\\SyncOrganizationToZohoBooks::__construct",
        "fqmn": "App\\Jobs\\SyncOrganizationToZohoBooks@__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/SyncTapFeeToZoho.php::App\\Jobs\\SyncTapFeeToZoho::__construct",
        "fqmn": "App\\Jobs\\SyncTapFeeToZoho@__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/SyncTapSettlementFeeToZoho.php::App\\Jobs\\SyncTapSettlementFeeToZoho::__construct",
        "fqmn": "App\\Jobs\\SyncTapSettlementFeeToZoho@__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/SyncTapSettlementPaymentToZoho.php::App\\Jobs\\SyncTapSettlementPaymentToZoho::__construct",
        "fqmn": "App\\Jobs\\SyncTapSettlementPaymentToZoho@__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/SyncTapSettlementToZoho.php::App\\Jobs\\SyncTapSettlementToZoho::__construct",
        "fqmn": "App\\Jobs\\SyncTapSettlementToZoho@__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/SyncWhatsAppTemplateStatusJob.php::App\\Jobs\\SyncWhatsAppTemplateStatusJob::__construct",
        "fqmn": "App\\Jobs\\SyncWhatsAppTemplateStatusJob@__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/SyncZohoInvoice.php::App\\Jobs\\SyncZohoInvoice::__construct",
        "fqmn": "App\\Jobs\\SyncZohoInvoice@__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/CancelRemindersOnPayment.php::App\\Listeners\\CancelRemindersOnPayment::__construct",
        "fqmn": "App\\Listeners\\CancelRemindersOnPayment@__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/CancelRemindersOnPayment.php::App\\Listeners\\CancelRemindersOnPayment::handleAndSnapshot",
        "fqmn": "App\\Listeners\\CancelRemindersOnPayment@handleAndSnapshot",
        "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/MarkLeadAsConverted.php::App\\Listeners\\MarkLeadAsConverted::__construct",
        "fqmn": "App\\Listeners\\MarkLeadAsConverted@__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/OnSubscriptionCapturedPostInvoice.php::App\\Listeners\\OnSubscriptionCapturedPostInvoice::__construct",
        "fqmn": "App\\Listeners\\OnSubscriptionCapturedPostInvoice@__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/OnSubscriptionRefundedCreateCreditNote.php::App\\Listeners\\OnSubscriptionRefundedCreateCreditNote::__construct",
        "fqmn": "App\\Listeners\\OnSubscriptionRefundedCreateCreditNote@__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/Models/DunningPolicy.php::App\\Models\\DunningPolicy::attempts",
        "fqmn": "App\\Models\\DunningPolicy@attempts",
        "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/DunningPolicy.php::App\\Models\\DunningPolicy::getAttribute",
        "fqmn": "App\\Models\\DunningPolicy@getAttribute",
        "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/DunningPolicy.php::App\\Models\\DunningPolicy::resolveForOrganization",
        "fqmn": "App\\Models\\DunningPolicy@resolveForOrganization",
        "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/Invoice.php::App\\Models\\Invoice::generateInvoiceNumber",
        "fqmn": "App\\Models\\Invoice@generateInvoiceNumber",
        "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/MessageTemplate.php::App\\Models\\MessageTemplate::getAvailableVariables",
        "fqmn": "App\\Models\\MessageTemplate@getAvailableVariables",
        "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::forOrganization",
        "fqmn": "App\\Models\\NotificationSetting@forOrganization",
        "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/OutreachAI/HumanHandoffState.php::App\\Models\\OutreachAI\\HumanHandoffState::getActiveConversation",
        "fqmn": "App\\Models\\OutreachAI\\HumanHandoffState@getActiveConversation",
        "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/OutreachAI/HumanHandoffState.php::App\\Models\\OutreachAI\\HumanHandoffState::instance",
        "fqmn": "App\\Models\\OutreachAI\\HumanHandoffState@instance",
        "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/OutreachAI/HumanHandoffState.php::App\\Models\\OutreachAI\\HumanHandoffState::isAvailable",
        "fqmn": "App\\Models\\OutreachAI\\HumanHandoffState@isAvailable",
        "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/OutreachAI/HumanHandoffState.php::App\\Models\\OutreachAI\\HumanHandoffState::release",
        "fqmn": "App\\Models\\OutreachAI\\HumanHandoffState@release",
        "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/PhoneVerification.php::App\\Models\\PhoneVerification::isPhoneVerified",
        "fqmn": "App\\Models\\PhoneVerification@isPhoneVerified",
        "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/WebhookEvent.php::App\\Models\\WebhookEvent::getProcessedResult",
        "fqmn": "App\\Models\\WebhookEvent@getProcessedResult",
        "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/WebhookEvent.php::App\\Models\\WebhookEvent::isProcessed",
        "fqmn": "App\\Models\\WebhookEvent@isProcessed",
        "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/ZohoWebhookEvent.php::App\\Models\\ZohoWebhookEvent::isDuplicate",
        "fqmn": "App\\Models\\ZohoWebhookEvent@isDuplicate",
        "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/BookingPolicy.php::App\\Policies\\BookingPolicy::cancel",
        "fqmn": "App\\Policies\\BookingPolicy@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/BookingPolicy.php::App\\Policies\\BookingPolicy::convert",
        "fqmn": "App\\Policies\\BookingPolicy@convert",
        "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/FollowUpPolicy.php::App\\Policies\\FollowUpPolicy::cancel",
        "fqmn": "App\\Policies\\FollowUpPolicy@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/FollowUpPolicy.php::App\\Policies\\FollowUpPolicy::trigger",
        "fqmn": "App\\Policies\\FollowUpPolicy@trigger",
        "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/InvitationPolicy.php::App\\Policies\\InvitationPolicy::resend",
        "fqmn": "App\\Policies\\InvitationPolicy@resend",
        "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/LandlordPolicy.php::App\\Policies\\LandlordPolicy::invite",
        "fqmn": "App\\Policies\\LandlordPolicy@invite",
        "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/LeasePolicy.php::App\\Policies\\LeasePolicy::manageContracts",
        "fqmn": "App\\Policies\\LeasePolicy@manageContracts",
        "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/LeasePolicy.php::App\\Policies\\LeasePolicy::terminate",
        "fqmn": "App\\Policies\\LeasePolicy@terminate",
        "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/MaintenanceTicketPolicy.php::App\\Policies\\MaintenanceTicketPolicy::assignWorker",
        "fqmn": "App\\Policies\\MaintenanceTicketPolicy@assignWorker",
        "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/MaintenanceTicketPolicy.php::App\\Policies\\MaintenanceTicketPolicy::reopen",
        "fqmn": "App\\Policies\\MaintenanceTicketPolicy@reopen",
        "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/MaintenanceTicketPolicy.php::App\\Policies\\MaintenanceTicketPolicy::reviewSuggestion",
        "fqmn": "App\\Policies\\MaintenanceTicketPolicy@reviewSuggestion",
        "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/MaintenanceTicketPolicy.php::App\\Policies\\MaintenanceTicketPolicy::uploadQuote",
        "fqmn": "App\\Policies\\MaintenanceTicketPolicy@uploadQuote",
        "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/MaintenanceTicketPolicy.php::App\\Policies\\MaintenanceTicketPolicy::viewSlaLogs",
        "fqmn": "App\\Policies\\MaintenanceTicketPolicy@viewSlaLogs",
        "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/MaintenanceTicketPolicy.php::App\\Policies\\MaintenanceTicketPolicy::viewSuggestions",
        "fqmn": "App\\Policies\\MaintenanceTicketPolicy@viewSuggestions",
        "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/PaymentProofPolicy.php::App\\Policies\\PaymentProofPolicy::review",
        "fqmn": "App\\Policies\\PaymentProofPolicy@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/PropertyPolicy.php::App\\Policies\\PropertyPolicy::manageDocuments",
        "fqmn": "App\\Policies\\PropertyPolicy@manageDocuments",
        "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/ReminderPolicy.php::App\\Policies\\ReminderPolicy::cancel",
        "fqmn": "App\\Policies\\ReminderPolicy@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/ReminderPolicy.php::App\\Policies\\ReminderPolicy::manageSettings",
        "fqmn": "App\\Policies\\ReminderPolicy@manageSettings",
        "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/RentCyclePolicy.php::App\\Policies\\RentCyclePolicy::bulkUpdate",
        "fqmn": "App\\Policies\\RentCyclePolicy@bulkUpdate",
        "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/RentCyclePolicy.php::App\\Policies\\RentCyclePolicy::markOverdue",
        "fqmn": "App\\Policies\\RentCyclePolicy@markOverdue",
        "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/RentCyclePolicy.php::App\\Policies\\RentCyclePolicy::markPaid",
        "fqmn": "App\\Policies\\RentCyclePolicy@markPaid",
        "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/Security/CspPolicy.php::App\\Policies\\Security\\CspPolicy::configure",
        "fqmn": "App\\Policies\\Security\\CspPolicy@configure",
        "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/TenantPolicy.php::App\\Policies\\TenantPolicy::invite",
        "fqmn": "App\\Policies\\TenantPolicy@invite",
        "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/TransactionPolicy.php::App\\Policies\\TransactionPolicy::finalize",
        "fqmn": "App\\Policies\\TransactionPolicy@finalize",
        "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/TransferPolicy.php::App\\Policies\\TransferPolicy::bulkComplete",
        "fqmn": "App\\Policies\\TransferPolicy@bulkComplete",
        "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/TransferPolicy.php::App\\Policies\\TransferPolicy::complete",
        "fqmn": "App\\Policies\\TransferPolicy@complete",
        "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/UnitPolicy.php::App\\Policies\\UnitPolicy::assignTenant",
        "fqmn": "App\\Policies\\UnitPolicy@assignTenant",
        "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/UnitPolicy.php::App\\Policies\\UnitPolicy::vacate",
        "fqmn": "App\\Policies\\UnitPolicy@vacate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Repositories/OrganizationScopedRepository.php::App\\Repositories\\OrganizationScopedRepository::create",
        "fqmn": "App\\Repositories\\OrganizationScopedRepository@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Repositories/OrganizationScopedRepository.php::App\\Repositories\\OrganizationScopedRepository::query",
        "fqmn": "App\\Repositories\\OrganizationScopedRepository@query",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Repositories/OrganizationScopedRepository.php::App\\Repositories\\OrganizationScopedRepository::setOrganization",
        "fqmn": "App\\Repositories\\OrganizationScopedRepository@setOrganization",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Repositories/OrganizationScopedRepository.php::App\\Repositories\\OrganizationScopedRepository::setOrganizationId",
        "fqmn": "App\\Repositories\\OrganizationScopedRepository@setOrganizationId",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Repositories/Outreach/CampaignAttemptRepository.php::App\\Repositories\\Outreach\\CampaignAttemptRepository::getFilteredAttempts",
        "fqmn": "App\\Repositories\\Outreach\\CampaignAttemptRepository@getFilteredAttempts",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Repositories/Outreach/LeadRepository.php::App\\Repositories\\Outreach\\LeadRepository::getAttemptCount",
        "fqmn": "App\\Repositories\\Outreach\\LeadRepository@getAttemptCount",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Repositories/Outreach/LeadRepository.php::App\\Repositories\\Outreach\\LeadRepository::getFilteredLeads",
        "fqmn": "App\\Repositories\\Outreach\\LeadRepository@getFilteredLeads",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Repositories/Outreach/LeadRepository.php::App\\Repositories\\Outreach\\LeadRepository::paginate",
        "fqmn": "App\\Repositories\\Outreach\\LeadRepository@paginate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Repositories/OutreachAI/QualificationRepository.php::App\\Repositories\\OutreachAI\\QualificationRepository::getOrCreate",
        "fqmn": "App\\Repositories\\OutreachAI\\QualificationRepository@getOrCreate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Repositories/OutreachAI/QualificationRepository.php::App\\Repositories\\OutreachAI\\QualificationRepository::updateFromExtraction",
        "fqmn": "App\\Repositories\\OutreachAI\\QualificationRepository@updateFromExtraction",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Repositories/WhatsAppMessageRepository.php::App\\Repositories\\WhatsAppMessageRepository::getLatestForSidebar",
        "fqmn": "App\\Repositories\\WhatsAppMessageRepository@getLatestForSidebar",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Repositories/WhatsAppMessageRepository.php::App\\Repositories\\WhatsAppMessageRepository::getMessagesForSession",
        "fqmn": "App\\Repositories\\WhatsAppMessageRepository@getMessagesForSession",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Sandbox/Dialog360/Controllers/MessageController.php::App\\Sandbox\\Dialog360\\Controllers\\MessageController::__construct",
        "fqmn": "App\\Sandbox\\Dialog360\\Controllers\\MessageController@__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/Sandbox/Dialog360/Controllers/MessageController.php::App\\Sandbox\\Dialog360\\Controllers\\MessageController::store",
        "fqmn": "App\\Sandbox\\Dialog360\\Controllers\\MessageController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Sandbox/Dialog360/Controllers/MetricsController.php::App\\Sandbox\\Dialog360\\Controllers\\MetricsController::__construct",
        "fqmn": "App\\Sandbox\\Dialog360\\Controllers\\MetricsController@__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/Sandbox/Dialog360/Controllers/MetricsController.php::App\\Sandbox\\Dialog360\\Controllers\\MetricsController::connections",
        "fqmn": "App\\Sandbox\\Dialog360\\Controllers\\MetricsController@connections",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Sandbox/Dialog360/Controllers/MetricsController.php::App\\Sandbox\\Dialog360\\Controllers\\MetricsController::messages",
        "fqmn": "App\\Sandbox\\Dialog360\\Controllers\\MetricsController@messages",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Sandbox/Dialog360/Controllers/TemplateController.php::App\\Sandbox\\Dialog360\\Controllers\\TemplateController::__construct",
        "fqmn": "App\\Sandbox\\Dialog360\\Controllers\\TemplateController@__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/Sandbox/Dialog360/Controllers/TemplateController.php::App\\Sandbox\\Dialog360\\Controllers\\TemplateController::show",
        "fqmn": "App\\Sandbox\\Dialog360\\Controllers\\TemplateController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Sandbox/Dialog360/Controllers/TemplateController.php::App\\Sandbox\\Dialog360\\Controllers\\TemplateController::store",
        "fqmn": "App\\Sandbox\\Dialog360\\Controllers\\TemplateController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Sandbox/Dialog360/Controllers/WebhookController.php::App\\Sandbox\\Dialog360\\Controllers\\WebhookController::test",
        "fqmn": "App\\Sandbox\\Dialog360\\Controllers\\WebhookController@test",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Security/AllowedUrlValidator.php::App\\Security\\AllowedUrlValidator::isAllowed",
        "fqmn": "App\\Security\\AllowedUrlValidator@isAllowed",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Services/Integrations/BrotionsSalesService.php::App\\Services\\Integrations\\BrotionsSalesService::__construct",
        "fqmn": "App\\Services\\Integrations\\BrotionsSalesService@__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/Integrations/BrotionsSalesService.php::App\\Services\\Integrations\\BrotionsSalesService::reportDealWon",
        "fqmn": "App\\Services\\Integrations\\BrotionsSalesService@reportDealWon",
        "bucket": "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/Integrations/BrotionsSalesService.php::App\\Services\\Integrations\\BrotionsSalesService::reportSubscriptionCancelled",
        "fqmn": "App\\Services\\Integrations\\BrotionsSalesService@reportSubscriptionCancelled",
        "bucket": "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/Integrations/BrotionsSalesService.php::App\\Services\\Integrations\\BrotionsSalesService::reportTrialStarted",
        "fqmn": "App\\Services\\Integrations\\BrotionsSalesService@reportTrialStarted",
        "bucket": "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/ValueObjects/Address.php::App\\ValueObjects\\Address::fromArray",
        "fqmn": "App\\ValueObjects\\Address@fromArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "fqmn": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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/api.php::get::/files/stats::App\\Api\\Controllers\\FileController::stats",
        "fqmn": "App\\Api\\Controllers\\FileController@stats",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/api.php::get::/health::closure",
        "fqmn": "route::routes/api.php::get::/health::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/api.php::get::/internal/metrics::closure",
        "fqmn": "route::routes/api.php::get::/internal/metrics::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/api.php::get::/invitations::App\\Http\\Controllers\\InvitationController::index",
        "fqmn": "App\\Http\\Controllers\\InvitationController@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/api.php::get::/landlord/dashboard::App\\Api\\Controllers\\LandlordDashboardController::dashboard",
        "fqmn": "App\\Api\\Controllers\\LandlordDashboardController@dashboard",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/api.php::get::/landlords::App\\Api\\Controllers\\LandlordController::index",
        "fqmn": "App\\Api\\Controllers\\LandlordController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/api.php::get::/leases::App\\Api\\Controllers\\LeaseController::index",
        "fqmn": "App\\Api\\Controllers\\LeaseController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/api.php::get::/maintenance/digest-preferences::App\\Http\\Controllers\\Api\\MaintenanceDigestPreferencesController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceDigestPreferencesController@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": "route::routes/api.php::get::/maintenance/metrics::App\\Http\\Controllers\\Api\\MaintenanceMetricsController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceMetricsController@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/api.php::get::/maintenance/slas::App\\Http\\Controllers\\Api\\MaintenanceSlaController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceSlaController@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/api.php::get::/maintenance/tickets::App\\Http\\Controllers\\Api\\MaintenanceTicketController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@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/api.php::get::/org/deductions::App\\Api\\Controllers\\OrgDeductionSettingsController::show",
        "fqmn": "App\\Api\\Controllers\\OrgDeductionSettingsController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/api.php::get::/payment-proofs::App\\Api\\Controllers\\PaymentProofController::index",
        "fqmn": "App\\Api\\Controllers\\PaymentProofController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/api.php::get::/payments::App\\Api\\Controllers\\PaymentController::index",
        "fqmn": "App\\Api\\Controllers\\PaymentController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/api.php::get::/predictions/conversation/{conversation}/latest::App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController::getLatest",
        "fqmn": "App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController@getLatest",
        "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::/properties::App\\Api\\Controllers\\PropertyController::index",
        "fqmn": "App\\Api\\Controllers\\PropertyController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/api.php::get::/reminders::App\\Api\\Controllers\\ReminderController::index",
        "fqmn": "App\\Api\\Controllers\\ReminderController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/api.php::get::/rent-cycles::App\\Api\\Controllers\\RentCycleController::index",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/api.php::get::/reports/organization-dashboard::App\\Api\\Controllers\\ReportController::organizationDashboard",
        "fqmn": "App\\Api\\Controllers\\ReportController@organizationDashboard",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/api.php::get::/subscriptions/current::App\\Api\\Controllers\\SubscriptionController::current",
        "fqmn": "App\\Api\\Controllers\\SubscriptionController@current",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/api.php::get::/tenant-dashboard::App\\Api\\Controllers\\TenantDashboardController::dashboard",
        "fqmn": "App\\Api\\Controllers\\TenantDashboardController@dashboard",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/api.php::get::/tenant/dashboard::App\\Api\\Controllers\\TenantDashboardController::dashboard",
        "fqmn": "App\\Api\\Controllers\\TenantDashboardController@dashboard",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/api.php::get::/tenants::App\\Api\\Controllers\\TenantController::index",
        "fqmn": "App\\Api\\Controllers\\TenantController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/api.php::get::/testing/outreach-ai/pricing/suggest-plan::App\\Http\\Controllers\\Testing\\OutreachPricingSuggestController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\OutreachPricingSuggestController@__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/api.php::get::/testing/sate/dashboard/performance-indicators::App\\Http\\Controllers\\Testing\\DashboardPerformanceIndicatorsController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\DashboardPerformanceIndicatorsController@__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/api.php::get::/testing/sate/dashboard/quick-stats::App\\Http\\Controllers\\Testing\\DashboardQuickStatsController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\DashboardQuickStatsController@__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/api.php::get::/testing/sate/landlord/overview-stats::App\\Http\\Controllers\\Testing\\LandlordOverviewStatsController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\LandlordOverviewStatsController@__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/api.php::get::/tickets/approve/{token}::closure",
        "fqmn": "route::routes/api.php::get::/tickets/approve/{token}::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/api.php::get::/transfers/pending::App\\Api\\Controllers\\TransferController::pending",
        "fqmn": "App\\Api\\Controllers\\TransferController@pending",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/api.php::get::/units::App\\Api\\Controllers\\UnitController::index",
        "fqmn": "App\\Api\\Controllers\\UnitController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/api.php::get::/whatsapp/agencies/profile::App\\Http\\Controllers\\AgencyWhatsAppProfileController::show",
        "fqmn": "App\\Http\\Controllers\\AgencyWhatsAppProfileController@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": "route::routes/api.php::get::/whatsapp/profile::App\\Http\\Controllers\\AgencyWhatsAppProfileController::show",
        "fqmn": "App\\Http\\Controllers\\AgencyWhatsAppProfileController@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": "route::routes/api.php::post::/__sate/outreach-ai/drift/analyze::closure",
        "fqmn": "route::routes/api.php::post::/__sate/outreach-ai/drift/analyze::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/api.php::post::/__sate/outreach-ai/misunderstanding-detect::closure",
        "fqmn": "route::routes/api.php::post::/__sate/outreach-ai/misunderstanding-detect::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/api.php::post::/__sate/outreach-ai/optout/detect::closure",
        "fqmn": "route::routes/api.php::post::/__sate/outreach-ai/optout/detect::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/api.php::post::/__sate/outreach-ai/trajectory/adjust::closure",
        "fqmn": "route::routes/api.php::post::/__sate/outreach-ai/trajectory/adjust::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/api.php::post::/__tests/outreach-ai/compliance/check::closure",
        "fqmn": "route::routes/api.php::post::/__tests/outreach-ai/compliance/check::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/api.php::post::/__tests/outreach-ai/knowledge/validate::closure",
        "fqmn": "route::routes/api.php::post::/__tests/outreach-ai/knowledge/validate::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/api.php::post::/bookings::App\\Api\\Controllers\\BookingController::store",
        "fqmn": "App\\Api\\Controllers\\BookingController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/api.php::post::/gateway/register::App\\Api\\Controllers\\GatewayController::register",
        "fqmn": "App\\Api\\Controllers\\GatewayController@register",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/api.php::post::/inbound::App\\Http\\Controllers\\Webhooks\\TwilioWebhookController::inbound",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\TwilioWebhookController@inbound",
        "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::post::/login::App\\Http\\Controllers\\Auth\\AuthController::login",
        "fqmn": "App\\Http\\Controllers\\Auth\\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": "route::routes/api.php::post::/maintenance/tickets/{ticket}/approve::App\\Http\\Controllers\\Api\\MaintenanceTicketController::approve",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@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": "route::routes/api.php::post::/testing/outreach-ai/conversations/{conversation}/inbound::App\\Http\\Controllers\\Testing\\OutreachConversationInboundController::store",
        "fqmn": "App\\Http\\Controllers\\Testing\\OutreachConversationInboundController@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": "route::routes/api.php::post::/testing/outreach-ai/knowledge/validate-reply::App\\Http\\Controllers\\Testing\\OutreachKnowledgeValidateController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\OutreachKnowledgeValidateController@__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/api.php::post::/testing/sate/auth/filament/agency-register-batch::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/auth/filament/agency-register-batch::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/api.php::post::/testing/sate/auth/filament/agency-register::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/auth/filament/agency-register::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/api.php::post::/testing/sate/billing/credit-transactions/create::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/credit-transactions/create::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/api.php::post::/testing/sate/billing/dunning/evaluate::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/dunning/evaluate::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/api.php::post::/testing/sate/billing/dunning/policy-resolve::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/dunning/policy-resolve::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/api.php::post::/testing/sate/billing/dunning/run-attempt::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/dunning/run-attempt::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/api.php::post::/testing/sate/billing/dunning/start::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/dunning/start::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/api.php::post::/testing/sate/billing/invoices/generate-credit-topup::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/invoices/generate-credit-topup::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/api.php::post::/testing/sate/billing/invoices/generate-message-package::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/invoices/generate-message-package::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/api.php::post::/testing/sate/billing/invoices/generate-subscription::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/invoices/generate-subscription::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/api.php::post::/testing/sate/billing/subscription-event::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscription-event::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/api.php::post::/testing/sate/billing/subscription/add-credits::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscription/add-credits::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/api.php::post::/testing/sate/billing/subscription/create-soft-deleted::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscription/create-soft-deleted::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/api.php::post::/testing/sate/billing/subscription/suspend::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscription/suspend::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/api.php::post::/testing/sate/billing/subscriptions/auto-charge/run::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscriptions/auto-charge/run::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/api.php::post::/testing/sate/billing/subscriptions/convert-trial-to-paid::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscriptions/convert-trial-to-paid::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/api.php::post::/testing/sate/billing/subscriptions/evaluate-post-dunning-failure::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscriptions/evaluate-post-dunning-failure::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/api.php::post::/testing/sate/billing/subscriptions/move-to-active::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscriptions/move-to-active::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/api.php::post::/testing/sate/billing/subscriptions/transition::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscriptions/transition::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/api.php::post::/testing/sate/billing/tap-settlements/auto-allocate::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/tap-settlements/auto-allocate::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/api.php::post::/testing/sate/billing/tap-settlements/match::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/tap-settlements/match::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/api.php::post::/testing/sate/billing/tap-webhook/process-twice::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/tap-webhook/process-twice::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/api.php::post::/testing/sate/billing/tap-webhook/process::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/tap-webhook/process::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/api.php::post::/testing/sate/billing/zoho/analytics/invoice-anomalies::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/zoho/analytics/invoice-anomalies::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/api.php::post::/testing/sate/billing/zoho/analytics/monthly-invoice-stats::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/zoho/analytics/monthly-invoice-stats::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/api.php::post::/testing/sate/billing/zoho/analytics/vat-exposure::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/zoho/analytics/vat-exposure::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/api.php::post::/testing/sate/billing/zoho/sync-invoice::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/zoho/sync-invoice::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/api.php::post::/testing/sate/billing/zoho/sync-tap-settlement::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/zoho/sync-tap-settlement::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/api.php::post::/testing/sate/discount-code-usages/anonymous/record::App\\Http\\Controllers\\Testing\\RecordAnonymousDiscountCodeUsageController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\RecordAnonymousDiscountCodeUsageController@__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/api.php::post::/testing/sate/discount-code-usages/subscription/record::App\\Http\\Controllers\\Testing\\RecordSubscriptionDiscountCodeUsageController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\RecordSubscriptionDiscountCodeUsageController@__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/api.php::post::/testing/sate/dunning/auto-charge/run::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/dunning/auto-charge/run::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/api.php::post::/testing/sate/dunning/resolve-policy::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/dunning/resolve-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/api.php::post::/testing/sate/dunning/run-attempt::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/dunning/run-attempt::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/api.php::post::/testing/sate/dunning/start::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/dunning/start::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/api.php::post::/testing/sate/dunning/transition-active::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/dunning/transition-active::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/api.php::post::/testing/sate/email-template/apply-placeholders::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/email-template/apply-placeholders::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/api.php::post::/testing/sate/email-template/get-localized-content::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/email-template/get-localized-content::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/api.php::post::/testing/sate/email-template/get-template-for::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/email-template/get-template-for::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/api.php::post::/testing/sate/email-template/is-enabled-for-organization::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/email-template/is-enabled-for-organization::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/api.php::post::/testing/sate/files/security/scan-for-virus::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/files/security/scan-for-virus::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/api.php::post::/testing/sate/files/security/validate::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/files/security/validate::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/api.php::post::/testing/sate/maintenance/landlord-approval-request/notify::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/maintenance/landlord-approval-request/notify::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/api.php::post::/testing/sate/maintenance/landlord-approval-request/twilio::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/maintenance/landlord-approval-request/twilio::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/api.php::post::/testing/sate/maintenance/tenant-ticket-confirmation/notify::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/maintenance/tenant-ticket-confirmation/notify::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/api.php::post::/testing/sate/maintenance/tenant-ticket-confirmation/twilio::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/maintenance/tenant-ticket-confirmation/twilio::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/api.php::post::/testing/sate/maintenance/ticket-completed/notify::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/maintenance/ticket-completed/notify::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/api.php::post::/testing/sate/maintenance/worker-assigned/notify::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/maintenance/worker-assigned/notify::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/api.php::post::/testing/sate/notifications/over-limit::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/notifications/over-limit::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/api.php::post::/testing/sate/notifications/payment-failed::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/notifications/payment-failed::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/api.php::post::/testing/sate/notifications/payment-proof-submitted::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/notifications/payment-proof-submitted::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/api.php::post::/testing/sate/notifications/retry-scheduled::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/notifications/retry-scheduled::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/api.php::post::/testing/sate/notifications/security-alert::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/notifications/security-alert::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/api.php::post::/testing/sate/outreach-ai/ai/generate-reply::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/ai/generate-reply::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/api.php::post::/testing/sate/outreach-ai/churn-prevention/run::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/churn-prevention/run::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/api.php::post::/testing/sate/outreach-ai/emotion/adjust-goal::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/emotion/adjust-goal::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/api.php::post::/testing/sate/outreach-ai/emotion/update::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/emotion/update::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/api.php::post::/testing/sate/outreach-ai/generate-reply-with-weights::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/generate-reply-with-weights::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/api.php::post::/testing/sate/outreach-ai/generate-reply::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/generate-reply::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/api.php::post::/testing/sate/outreach-ai/goal/derive::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/goal/derive::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/api.php::post::/testing/sate/outreach-ai/knowledge/forbidden-phrases/check::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/knowledge/forbidden-phrases/check::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/api.php::post::/testing/sate/outreach-ai/knowledge/forbidden-phrases/sanitize::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/knowledge/forbidden-phrases/sanitize::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/api.php::post::/testing/sate/outreach-ai/optimization/persist-adjustments::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/optimization/persist-adjustments::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/api.php::post::/testing/sate/outreach-ai/persona/enforce::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/persona/enforce::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/api.php::post::/testing/sate/outreach-ai/persona/structure/restructure::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/persona/structure/restructure::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/api.php::post::/testing/sate/outreach-ai/persona/tone-select::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/persona/tone-select::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/api.php::post::/testing/sate/outreach-ai/persona/validate-transparency::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/persona/validate-transparency::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/api.php::post::/testing/sate/outreach-ai/prompt/sentiment-modifier::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/prompt/sentiment-modifier::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/api.php::post::/testing/sate/outreach-ai/question/detect-all::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/question/detect-all::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/api.php::post::/testing/sate/outreach-ai/question/detect::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/question/detect::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/api.php::post::/testing/sate/outreach-ai/reengagement/build-message::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/reengagement/build-message::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/api.php::post::/testing/sate/outreach-ai/reengagement/run::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/reengagement/run::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/api.php::post::/testing/sate/outreach-ai/reply-evaluate::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/reply-evaluate::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/api.php::post::/testing/sate/outreach-ai/revenue/discount-decide::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/revenue/discount-decide::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/api.php::post::/testing/sate/outreach-ai/revenue/process-inbound::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/revenue/process-inbound::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/api.php::post::/testing/sate/outreach-ai/safety/abuse/check-inbound::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/safety/abuse/check-inbound::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/api.php::post::/testing/sate/outreach-ai/safety/abuse/detect-spam-like::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/safety/abuse/detect-spam-like::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/api.php::post::/testing/sate/outreach-ai/safety/process-outbound::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/safety/process-outbound::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/api.php::post::/testing/sate/outreach-ai/safety/validate-inbound::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/safety/validate-inbound::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/api.php::post::/testing/sate/outreach-ai/sales-acceleration/accelerate::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sales-acceleration/accelerate::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/api.php::post::/testing/sate/outreach-ai/sales/subscription/generate-trial-sequence::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/generate-trial-sequence::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/api.php::post::/testing/sate/outreach-ai/sales/subscription/maybe-inject-sales-prompt::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/maybe-inject-sales-prompt::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/api.php::post::/testing/sate/outreach-ai/sales/subscription/update-stage::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/update-stage::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/api.php::post::/testing/sate/outreach-ai/send-ai-whatsapp-reply/run::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/send-ai-whatsapp-reply/run::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/api.php::post::/testing/sate/outreach-ai/sentiment/analyze-and-audit::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sentiment/analyze-and-audit::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/api.php::post::/testing/sate/outreach-ai/sentiment/analyze::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sentiment/analyze::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/api.php::post::/testing/sate/outreach-ai/sequence/process-command::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sequence/process-command::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/api.php::post::/testing/sate/outreach-ai/sequence/run-step::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sequence/run-step::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/api.php::post::/testing/sate/outreach-ai/sequence/run-steps::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sequence/run-steps::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/api.php::post::/testing/sate/outreach-ai/subscription-nudge/run::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/subscription-nudge/run::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/api.php::post::/testing/sate/outreach-ai/trial/extend::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/trial/extend::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/api.php::post::/testing/sate/outreach/followups/adjust-timing-by-temperature::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach/followups/adjust-timing-by-temperature::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/api.php::post::/testing/sate/outreach/followups/convert-interval-to-timestamp::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach/followups/convert-interval-to-timestamp::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/api.php::post::/testing/sate/outreach/followups/schedule::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach/followups/schedule::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/api.php::post::/testing/sate/outreach/sync-conversation-costs/run::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach/sync-conversation-costs/run::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/api.php::post::/testing/sate/reminders/cancel-for-rent-cycle::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/reminders/cancel-for-rent-cycle::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/api.php::post::/testing/sate/reminders/templates/review::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/reminders/templates/review::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/api.php::post::/testing/sate/subscription/feature-access/determine-access::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/subscription/feature-access/determine-access::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/api.php::post::/testing/sate/subscription/feature-access/enforce::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/subscription/feature-access/enforce::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/api.php::post::/testing/sate/subscription/feature-access/feature-display-name::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/subscription/feature-access/feature-display-name::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/api.php::post::/testing/sate/subscription/feature-access/resolve-feature-key::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/subscription/feature-access/resolve-feature-key::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/api.php::post::/testing/sate/tap/create-subscription-charge::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/tap/create-subscription-charge::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/api.php::post::/testing/sate/tap/webhook/process-attempt::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/tap/webhook/process-attempt::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/api.php::post::/testing/sate/whatsapp/dialog360/inbound::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/whatsapp/dialog360/inbound::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/api.php::post::/testing/sate/whatsapp/session-notes/create::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/whatsapp/session-notes/create::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/api.php::post::/testing/sate/whatsapp/sessions/attempt-create::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/whatsapp/sessions/attempt-create::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/api.php::post::/testing/sate/whatsapp/sessions/create::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/whatsapp/sessions/create::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/api.php::post::/testing/sate/whatsapp/webhook/process-status::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/whatsapp/webhook/process-status::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/api.php::post::/testing/sate/zoho/webhook/process::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/zoho/webhook/process::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/api.php::post::/verify/start::App\\Http\\Controllers\\VerificationController::start",
        "fqmn": "App\\Http\\Controllers\\VerificationController@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": "route::routes/api.php::post::/webhooks/360dialog/inbound::App\\Http\\Controllers\\Webhooks\\Dialog360WebhookController::handle",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\Dialog360WebhookController@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": "route::routes/api.php::post::/webhooks/360dialog/status::App\\Http\\Controllers\\Webhooks\\Dialog360StatusWebhookController::handle",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\Dialog360StatusWebhookController@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": "route::routes/api.php::post::/webhooks/tap::App\\Http\\Controllers\\Webhooks\\TapWebhookController::handle",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\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": "route::routes/api.php::post::/webhooks/zepto/bounce::App\\Http\\Controllers\\Webhooks\\ZeptoWebhookController::handleBounce",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\ZeptoWebhookController@handleBounce",
        "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::post::/whatsapp/agencies/onboarding/start::App\\Http\\Controllers\\OrgWhatsAppOnboardingController::start",
        "fqmn": "App\\Http\\Controllers\\OrgWhatsAppOnboardingController@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": "route::routes/mobile.php::post::/forgot-password::App\\Http\\Controllers\\Api\\Mobile\\MobileForgotPasswordController::sendResetLink",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileForgotPasswordController@sendResetLink",
        "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/mobile.php::post::/login::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": "route::routes/mobile.php::post::/logout::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": "route::routes/outreach.php::any::/testing/outreach-ai/{path}::closure",
        "fqmn": "route::routes/outreach.php::any::/testing/outreach-ai/{path}::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/outreach.php::any::/testing/sate/{path}::closure",
        "fqmn": "route::routes/outreach.php::any::/testing/sate/{path}::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/outreach.php::post::/outreach/webhook/whatsapp::App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController::handle",
        "fqmn": "App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController@handle",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/outreach.php::post::/outreach/webhook/whatsapp/test::closure",
        "fqmn": "route::routes/outreach.php::post::/outreach/webhook/whatsapp/test::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/outreach.php::post::/whatsapp::App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController::handle",
        "fqmn": "App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController@handle",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/sandbox/360dialog.php::post::/messages::App\\Sandbox\\Dialog360\\Controllers\\MessageController::store",
        "fqmn": "App\\Sandbox\\Dialog360\\Controllers\\MessageController@store",
        "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::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": "route::routes/web.php::get::/agencies::closure",
        "fqmn": "route::routes/web.php::get::/agencies::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::App\\Http\\Controllers\\AppController::index",
        "fqmn": "App\\Http\\Controllers\\AppController@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::/collection::closure",
        "fqmn": "route::routes/web.php::get::/collection::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::/email/verify/{id}/{hash}::App\\Http\\Controllers\\Auth\\VerificationController::verify",
        "fqmn": "App\\Http\\Controllers\\Auth\\VerificationController@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": "route::routes/web.php::get::/email/verify/resend::App\\Http\\Controllers\\Auth\\VerificationController::showResendForm",
        "fqmn": "App\\Http\\Controllers\\Auth\\VerificationController@showResendForm",
        "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::/favicon.ico::closure",
        "fqmn": "route::routes/web.php::get::/favicon.ico::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::/healthz::closure",
        "fqmn": "route::routes/web.php::get::/healthz::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::/images/favicon.ico::closure",
        "fqmn": "route::routes/web.php::get::/images/favicon.ico::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::/invoicing::closure",
        "fqmn": "route::routes/web.php::get::/invoicing::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::/landlords::closure",
        "fqmn": "route::routes/web.php::get::/landlords::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::/locale/{lang}::App\\Http\\Controllers\\LocaleController::switch",
        "fqmn": "App\\Http\\Controllers\\LocaleController@switch",
        "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::/log::closure",
        "fqmn": "route::routes/web.php::get::/log::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::/maintenance::closure",
        "fqmn": "route::routes/web.php::get::/maintenance::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::/manifest.json::closure",
        "fqmn": "route::routes/web.php::get::/manifest.json::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::/payments::closure",
        "fqmn": "route::routes/web.php::get::/payments::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::/robots.txt::closure",
        "fqmn": "route::routes/web.php::get::/robots.txt::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::/service-worker.js::closure",
        "fqmn": "route::routes/web.php::get::/service-worker.js::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::/test/ipinfo::closure",
        "fqmn": "route::routes/web.php::get::/test/ipinfo::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::/whatsapp::closure",
        "fqmn": "route::routes/web.php::get::/whatsapp::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::/email/verify/resend::App\\Http\\Controllers\\Auth\\VerificationController::resend",
        "fqmn": "App\\Http\\Controllers\\Auth\\VerificationController@resend",
        "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::/leads::App\\Http\\Controllers\\LeadController::store",
        "fqmn": "App\\Http\\Controllers\\LeadController@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": "route::routes/web.php::post::/locale::App\\Http\\Controllers\\LocaleController::post",
        "fqmn": "App\\Http\\Controllers\\LocaleController@post",
        "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": 2787,
    "framework_entry_points_excluded": 494
  },
  "framework_entry_points": {
    "total": 494,
    "by_kind": {
      "console_command": 93,
      "form_request": 150,
      "queued_job": 107,
      "event_listener": 14,
      "policy": 129,
      "livewire_component": 1
    },
    "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\\Actions\\EmailTemplates\\IsEmailTemplateEnabledForOrganizationAction@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Actions\\EmailTemplates\\RenderEmailTemplateAction@__construct",
          "App\\Actions\\EmailTemplates\\SendEmailTemplateAction@__construct",
          "App\\Actions\\SendEmailTemplateAction@__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_002",
        "canonical": "App\\Actions\\EmailTemplates\\SendEmailTemplateAction@execute",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Actions\\SendEmailTemplateAction@execute"
        ],
        "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\\Actions\\EmailTemplates\\SendEmailTemplateToManyRecipientsAction@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Actions\\EmailTemplates\\SendEmailTemplateToUsersUsingTheirLocaleAction@__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_004",
        "canonical": "App\\Actions\\OutreachAI\\AssignClusterAction@execute",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Actions\\OutreachAI\\ComputeAttributionAction@execute",
          "App\\Actions\\OutreachAI\\OutputInsightsAction@execute"
        ],
        "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_005",
        "canonical": "App\\Actions\\OutreachAI\\SalesAcceleration\\RunQualificationOutcomeAction@execute",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Actions\\OutreachAI\\SalesAcceleration\\RunSalesAccelerationOutcomeAction@execute",
          "App\\Services\\OutreachAI\\Sales\\IntentToBuyDetector@detect",
          "App\\Services\\OutreachAI\\Sales\\PainPointExtractor@extract",
          "App\\Services\\OutreachAI\\SalesAcceleration\\SalesIntentDetector@detect",
          "App\\Services\\OutreachAI\\UX\\MessageClarityService@analyzeClarity"
        ],
        "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_006",
        "canonical": "App\\Actions\\Payments\\CreatePaymentDeductionAction@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Actions\\Payments\\RecordPaymentAction@__construct",
          "App\\Domains\\Payments\\Actions\\RecordPaymentAction@__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_007",
        "canonical": "App\\Actions\\Payments\\FinalizeTransactionAction@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Payments\\Actions\\CreateTransactionAction@__construct",
          "App\\Domains\\Payments\\Actions\\FinalizeTransactionAction@__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_008",
        "canonical": "App\\Actions\\Zoho\\SyncZohoCustomerAction@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Actions\\Zoho\\SyncZohoInvoiceAction@__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_009",
        "canonical": "App\\Actions\\Zoho\\SyncZohoCustomerAction@execute",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\SubscriptionService@getEffectiveLimits"
        ],
        "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_010",
        "canonical": "App\\AIBr\\Domain\\Knowledge\\RetrievalConstraintService@applyConstraints",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\PricingPrimitives@getAvailablePrimitives"
        ],
        "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\\AIBr\\Domain\\Scoring\\LeadPriorityService@calculateScore",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\LeadPriorityService@calculateScore"
        ],
        "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_012",
        "canonical": "App\\AIBr\\Support\\Helpers@normalizeText",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\AIBr\\Support\\TextFilters@sanitize",
          "App\\Support\\OutreachAI\\Knowledge\\ForbiddenPhrasesRegistry@sanitize",
          "App\\Support\\OutreachAI\\Persona\\StyleRules@addStructure",
          "App\\Support\\OutreachAI\\Persona\\StyleRules@beMoreDirect",
          "App\\Support\\OutreachAI\\Persona\\StyleRules@clarify",
          "App\\Support\\OutreachAI\\Persona\\StyleRules@lengthen",
          "App\\Support\\OutreachAI\\Persona\\StyleRules@removeFiller",
          "App\\Support\\OutreachAI\\Persona\\StyleRules@simplify",
          "App\\Support\\OutreachAI\\Persona\\StyleRules@softenTone"
        ],
        "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_013",
        "canonical": "App\\Api\\Controllers\\BookingController@cancel",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Api\\Controllers\\BookingController@convert"
        ],
        "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\\Api\\Controllers\\BookingController@store",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Api\\Controllers\\BookingController@store",
          "App\\Http\\Controllers\\Api\\MaintenanceTicketController@store"
        ],
        "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_015",
        "canonical": "App\\Api\\Controllers\\FileController@index",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Api\\Controllers\\LandlordController@index",
          "App\\Api\\Controllers\\LandlordController@index",
          "App\\Api\\Controllers\\LandlordDashboardController@leases",
          "App\\Api\\Controllers\\LandlordDashboardController@properties",
          "App\\Api\\Controllers\\LeaseController@expiringSoon",
          "App\\Api\\Controllers\\LeaseController@index",
          "App\\Api\\Controllers\\LeaseController@index",
          "App\\Api\\Controllers\\PaymentController@index",
          "App\\Api\\Controllers\\PaymentController@index",
          "App\\Api\\Controllers\\PaymentController@recent",
          "App\\Api\\Controllers\\PropertyController@index",
          "App\\Api\\Controllers\\PropertyController@index",
          "App\\Api\\Controllers\\ReminderController@index",
          "App\\Api\\Controllers\\ReminderController@index",
          "App\\Api\\Controllers\\ReminderController@recent",
          "App\\Api\\Controllers\\RentCycleController@dueSoon",
          "App\\Api\\Controllers\\TenantController@index",
          "App\\Api\\Controllers\\TenantController@index",
          "App\\Api\\Controllers\\UnitController@index",
          "App\\Api\\Controllers\\UnitController@index",
          "App\\Http\\Controllers\\Api\\MaintenanceTicketController@index",
          "App\\Http\\Controllers\\Api\\MaintenanceTicketController@index"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 23,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_016",
        "canonical": "App\\Api\\Controllers\\FileController@stats",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Api\\Controllers\\FileController@stats",
          "App\\Api\\Controllers\\ReportController@occupancyTrends",
          "App\\Api\\Controllers\\TransferController@stats"
        ],
        "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_017",
        "canonical": "App\\Api\\Controllers\\GatewayController@register",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Api\\Controllers\\GatewayController@register"
        ],
        "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\\Api\\Controllers\\LandlordController@stats",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Api\\Controllers\\TenantController@stats"
        ],
        "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_019",
        "canonical": "App\\Api\\Controllers\\LandlordDashboardController@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Api\\Controllers\\TenantDashboardController@__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_020",
        "canonical": "App\\Api\\Controllers\\LandlordDashboardController@dashboard",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Api\\Controllers\\LandlordDashboardController@dashboard"
        ],
        "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\\Api\\Controllers\\LeaseController@active",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Api\\Controllers\\LeaseController@expired",
          "App\\Api\\Controllers\\PaymentController@needingTransfer",
          "App\\Api\\Controllers\\RentCycleController@dueToday",
          "App\\Api\\Controllers\\RentCycleController@overdue",
          "App\\Api\\Controllers\\RentCycleController@pending",
          "App\\Api\\Controllers\\TransferController@pending",
          "App\\Api\\Controllers\\TransferController@pending"
        ],
        "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_022",
        "canonical": "App\\Api\\Controllers\\LeaseController@stats",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Api\\Controllers\\LeaseController@upcomingDueDates",
          "App\\Api\\Controllers\\PaymentController@stats",
          "App\\Api\\Controllers\\ReminderController@stats",
          "App\\Api\\Controllers\\ReportController@monthlyCollections",
          "App\\Api\\Controllers\\ReportController@topProperties",
          "App\\Http\\Controllers\\InvitationController@index",
          "App\\Http\\Controllers\\InvitationController@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_023",
        "canonical": "App\\Api\\Controllers\\OrgDeductionSettingsController@show",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Api\\Controllers\\OrgDeductionSettingsController@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_024",
        "canonical": "App\\Api\\Controllers\\PaymentProofController@approve",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Api\\Controllers\\PaymentProofController@reject"
        ],
        "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_025",
        "canonical": "App\\Api\\Controllers\\PaymentProofController@index",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Api\\Controllers\\PaymentProofController@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_026",
        "canonical": "App\\Api\\Controllers\\PaymentProofController@pendingCount",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Api\\Controllers\\PaymentProofController@requiresReview"
        ],
        "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\\Api\\Controllers\\PropertyController@stats",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Api\\Controllers\\RentCycleController@stats"
        ],
        "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_028",
        "canonical": "App\\Api\\Controllers\\RentCycleController@index",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Api\\Controllers\\RentCycleController@index",
          "App\\Api\\Controllers\\TransferController@index"
        ],
        "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\\Api\\Controllers\\RentCycleController@monthlyCollections",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController@getFeatureImportance"
        ],
        "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_030",
        "canonical": "App\\Api\\Controllers\\ReportController@landlordDashboard",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Api\\Controllers\\ReportController@tenantDashboard"
        ],
        "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\\Api\\Controllers\\ReportController@organizationDashboard",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Api\\Controllers\\ReportController@organizationDashboard"
        ],
        "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_032",
        "canonical": "App\\Api\\Controllers\\ReportExportController@exportFinancialSummary",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Api\\Controllers\\SubscriptionController@transactions"
        ],
        "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_033",
        "canonical": "App\\Api\\Controllers\\SubscriptionController@current",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Api\\Controllers\\SubscriptionController@current",
          "App\\Api\\Controllers\\SubscriptionController@usage"
        ],
        "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_034",
        "canonical": "App\\Api\\Controllers\\TenantDashboardController@dashboard",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Api\\Controllers\\TenantDashboardController@dashboard",
          "App\\Api\\Controllers\\TenantDashboardController@dashboard"
        ],
        "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_035",
        "canonical": "App\\Api\\Controllers\\UnitController@occupied",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Api\\Controllers\\UnitController@vacant"
        ],
        "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\\Api\\Resources\\MaintenanceTicketResource@toArray",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Api\\Resources\\UnitResource@toArray"
        ],
        "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_037",
        "canonical": "App\\Console\\Commands\\CleanupS3Backups@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Console\\Commands\\CleanupWebhookEvents@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_038",
        "canonical": "App\\Console\\Commands\\DetectUpsellSuccessCommand@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Console\\Commands\\DispatchDueDunningAttempts@handle",
          "App\\Console\\Commands\\DispatchScheduledClosingAttempts@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_039",
        "canonical": "App\\Console\\Commands\\GenerateApiToken@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Console\\Commands\\SetConversationMode@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_040",
        "canonical": "App\\Console\\Commands\\OutreachAI\\ShowFailures@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Console\\Commands\\ViewABTestResultsCommand@handle",
          "App\\Console\\Commands\\ViewPredictionStatsCommand@handle",
          "App\\Domains\\Files\\Repositories\\FileRepository@getTotalStorageForOrganization",
          "App\\Support\\MarketingMetrics@collectedThisMonth",
          "App\\Support\\MarketingMetrics@propertiesManaged"
        ],
        "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_041",
        "canonical": "App\\Console\\Commands\\RecalculateLeadStages@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Requests\\Auth\\RegisterRequest@prepareForValidation"
        ],
        "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_042",
        "canonical": "App\\Console\\Commands\\RunOnAllEnvironments@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Console\\Commands\\WhatsAppDebugConfig@handle",
          "App\\Services\\Integrations\\BrotionsSalesService@__construct",
          "App\\Services\\OpenAI\\OpenAIVisionService@__construct",
          "App\\Services\\TapClient@__construct",
          "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@__construct"
        ],
        "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_043",
        "canonical": "App\\Console\\Commands\\WhatsAppAuthCheck@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Console\\Commands\\WhatsAppTemplatesList@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_044",
        "canonical": "App\\Console\\Commands\\WhatsAppListContent@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Console\\Commands\\WhatsAppStatus@handle",
          "App\\Console\\Commands\\WhatsAppTest360Dialog@handle",
          "App\\Console\\Commands\\WhatsAppTestSend@handle",
          "App\\Console\\Commands\\WhatsAppTestTemplate@handle"
        ],
        "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_045",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@afterCreate",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Agencies\\Resources\\AgencyUserResource@afterSave"
        ],
        "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_046",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@canCreate",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Agencies\\Resources\\PropertyResource@canCreate",
          "App\\Domains\\Agencies\\Resources\\TenantResource@canCreate"
        ],
        "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_047",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@canViewAny",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Agencies\\Resources\\LandlordResource@canCreate",
          "App\\Domains\\Agencies\\Resources\\UnitResource@canCreate",
          "App\\Domains\\Landlords\\Resources\\LandlordDelegateResource@canViewAny",
          "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@canViewAny",
          "App\\Domains\\Landlords\\Resources\\MyTenantsResource@canViewAny",
          "App\\Domains\\Landlords\\Resources\\MyTransfersResource@canViewAny",
          "App\\Domains\\SuperAdmin\\Resources\\ClickLogResource@canViewAny",
          "App\\Domains\\SuperAdmin\\Resources\\ClickLogResource@shouldRegisterNavigation",
          "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource@shouldRegisterNavigation",
          "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@canViewAny",
          "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@shouldRegisterNavigation",
          "App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource@shouldRegisterNavigation",
          "App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource@shouldRegisterNavigation",
          "App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource@shouldRegisterNavigation",
          "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@shouldRegisterNavigation",
          "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@shouldRegisterNavigation",
          "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource@canCreate",
          "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource@canDeleteAny",
          "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource@canViewAny",
          "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource@shouldRegisterNavigation",
          "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@canViewAny",
          "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@shouldRegisterNavigation",
          "App\\Domains\\Tenants\\Resources\\MyLeaseResource@canViewAny",
          "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@canViewAny"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 25,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_048",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getModelLabel",
          "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getPluralModelLabel",
          "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getTitle",
          "App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\CreateAgencyUser@getHeading",
          "App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\CreateAgencyUser@getTitle",
          "App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\EditAgencyUser@getHeading",
          "App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\EditAgencyUser@getTitle",
          "App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\ViewAgencyUser@getHeading",
          "App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\ViewAgencyUser@getTitle",
          "App\\Domains\\Agencies\\Resources\\FileResource@getModelLabel",
          "App\\Domains\\Agencies\\Resources\\FileResource@getNavigationLabel",
          "App\\Domains\\Agencies\\Resources\\FileResource@getPluralModelLabel",
          "App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\CreateLabour@getTitle",
          "App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\EditLabour@getTitle",
          "App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ListLabours@getBreadcrumb",
          "App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ListLabours@getHeading",
          "App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ListLabours@getTitle",
          "App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ViewLabour@getTitle",
          "App\\Domains\\Agencies\\Resources\\LandlordResource@getModelLabel",
          "App\\Domains\\Agencies\\Resources\\LandlordResource@getNavigationLabel",
          "App\\Domains\\Agencies\\Resources\\LandlordResource@getPluralModelLabel",
          "App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\CreateLandlord@getTitle",
          "App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\EditLandlord@getTitle",
          "App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ListLandlords@getBreadcrumb",
          "App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ListLandlords@getHeading",
          "App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ListLandlords@getTitle",
          "App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ViewLandlord@getTitle",
          "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@getModelLabel",
          "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@getPluralModelLabel",
          "App\\Domains\\Agencies\\Resources\\LeaseResource@getModelLabel",
          "App\\Domains\\Agencies\\Resources\\LeaseResource@getNavigationLabel",
          "App\\Domains\\Agencies\\Resources\\LeaseResource@getPluralModelLabel",
          "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings@getNavigationLabel",
          "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings@getTitle",
          "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\CreateLease@getTitle",
          "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\EditLease@getTitle",
          "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ListLeases@getTitle",
          "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ViewLease@getTitle",
          "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@getModelLabel",
          "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@getNavigationLabel",
          "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@getPluralModelLabel",
          "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource\\Pages\\CreateMaintenanceSla@getHeading",
          "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource\\Pages\\CreateMaintenanceSla@getTitle",
          "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@getModelLabel",
          "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@getNavigationLabel",
          "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@getPluralModelLabel",
          "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource@getModelLabel",
          "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource@getNavigationLabel",
          "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource@getPluralModelLabel",
          "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\Pages\\CreateMaintenanceTicket@getHeading",
          "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\Pages\\CreateMaintenanceTicket@getTitle",
          "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@getModelLabel",
          "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@getNavigationLabel",
          "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@getPluralModelLabel",
          "App\\Domains\\Agencies\\Resources\\Pages\\ManageAgencyUsers@getHeading",
          "App\\Domains\\Agencies\\Resources\\Pages\\ManageAgencyUsers@getTitle",
          "App\\Domains\\Agencies\\Resources\\PaymentProofResource@getModelLabel",
          "App\\Domains\\Agencies\\Resources\\PaymentProofResource@getNavigationLabel",
          "App\\Domains\\Agencies\\Resources\\PaymentProofResource@getPluralModelLabel",
          "App\\Domains\\Agencies\\Resources\\PaymentResource@getModelLabel",
          "App\\Domains\\Agencies\\Resources\\PaymentResource@getNavigationLabel",
          "App\\Domains\\Agencies\\Resources\\PaymentResource@getPluralModelLabel",
          "App\\Domains\\Agencies\\Resources\\PaymentResource\\Pages\\CreatePayment@getTitle",
          "App\\Domains\\Agencies\\Resources\\PaymentResource\\Pages\\EditPayment@getTitle",
          "App\\Domains\\Agencies\\Resources\\PaymentResource\\Pages\\ViewPayment@getTitle",
          "App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager@getModelLabel",
          "App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager@getPluralModelLabel",
          "App\\Domains\\Agencies\\Resources\\PropertyResource@getModelLabel",
          "App\\Domains\\Agencies\\Resources\\PropertyResource@getNavigationLabel",
          "App\\Domains\\Agencies\\Resources\\PropertyResource@getPluralModelLabel",
          "App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\CreateProperty@getTitle",
          "App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\EditProperty@getTitle",
          "App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\ListProperties@getTitle",
          "App\\Domains\\Agencies\\Resources\\ReminderLogResource@getModelLabel",
          "App\\Domains\\Agencies\\Resources\\ReminderLogResource@getNavigationLabel",
          "App\\Domains\\Agencies\\Resources\\ReminderLogResource@getPluralModelLabel",
          "App\\Domains\\Agencies\\Resources\\ReminderLogResource\\Pages\\ListReminderLogs@getBreadcrumb",
          "App\\Domains\\Agencies\\Resources\\ReminderLogResource\\Pages\\ListReminderLogs@getHeading",
          "App\\Domains\\Agencies\\Resources\\ReminderLogResource\\Pages\\ListReminderLogs@getTitle",
          "App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@getModelLabel",
          "App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@getPluralModelLabel",
          "App\\Domains\\Agencies\\Resources\\RentCycleResource@getModelLabel",
          "App\\Domains\\Agencies\\Resources\\RentCycleResource@getNavigationLabel",
          "App\\Domains\\Agencies\\Resources\\RentCycleResource@getPluralModelLabel",
          "App\\Domains\\Agencies\\Resources\\RentCycleResource\\Pages\\ViewRentCycle@getTitle",
          "App\\Domains\\Agencies\\Resources\\SupportTicketResource@getModelLabel",
          "App\\Domains\\Agencies\\Resources\\SupportTicketResource@getNavigationLabel",
          "App\\Domains\\Agencies\\Resources\\SupportTicketResource@getPluralModelLabel",
          "App\\Domains\\Agencies\\Resources\\TenantResource@getModelLabel",
          "App\\Domains\\Agencies\\Resources\\TenantResource@getNavigationLabel",
          "App\\Domains\\Agencies\\Resources\\TenantResource@getPluralModelLabel",
          "App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\CreateTenant@getTitle",
          "App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\EditTenant@getTitle",
          "App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\ListTenants@getTitle",
          "App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\ViewTenant@getTitle",
          "App\\Domains\\Agencies\\Resources\\TransferResource@getModelLabel",
          "App\\Domains\\Agencies\\Resources\\TransferResource@getPluralModelLabel",
          "App\\Domains\\Agencies\\Resources\\UnitResource@getModelLabel",
          "App\\Domains\\Agencies\\Resources\\UnitResource@getNavigationLabel",
          "App\\Domains\\Agencies\\Resources\\UnitResource@getPluralModelLabel",
          "App\\Domains\\Files\\Resources\\FileResource@getModelLabel",
          "App\\Domains\\Files\\Resources\\FileResource@getNavigationLabel",
          "App\\Domains\\Files\\Resources\\FileResource@getPluralModelLabel",
          "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@getModelLabel",
          "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@getNavigationLabel",
          "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@getPluralModelLabel",
          "App\\Domains\\Landlords\\Resources\\MyTenantsResource@getModelLabel",
          "App\\Domains\\Landlords\\Resources\\MyTenantsResource@getNavigationLabel",
          "App\\Domains\\Landlords\\Resources\\MyTenantsResource@getPluralModelLabel",
          "App\\Domains\\Landlords\\Resources\\MyTransfersResource@getModelLabel",
          "App\\Domains\\Landlords\\Resources\\MyTransfersResource@getNavigationLabel",
          "App\\Domains\\Landlords\\Resources\\MyTransfersResource@getPluralModelLabel",
          "App\\Domains\\Reports\\Resources\\ReportResource@getModelLabel",
          "App\\Domains\\Reports\\Resources\\ReportResource@getPluralModelLabel",
          "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getModelLabel",
          "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getNavigationLabel",
          "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPluralModelLabel",
          "App\\Domains\\Sales\\Resources\\MyInvoicesResource@getModelLabel",
          "App\\Domains\\Sales\\Resources\\MyInvoicesResource@getNavigationLabel",
          "App\\Domains\\Sales\\Resources\\MyInvoicesResource@getPluralModelLabel",
          "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@getModelLabel",
          "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@getNavigationLabel",
          "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@getPluralModelLabel",
          "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getModelLabel",
          "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getNavigationLabel",
          "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getPluralModelLabel",
          "App\\Domains\\Tenants\\Resources\\MyLeaseResource@getModelLabel",
          "App\\Domains\\Tenants\\Resources\\MyLeaseResource@getNavigationLabel",
          "App\\Domains\\Tenants\\Resources\\MyLeaseResource@getPluralModelLabel",
          "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@getModelLabel",
          "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@getNavigationLabel",
          "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@getPluralModelLabel",
          "App\\Domains\\Tenants\\Resources\\MyRentCyclesResource@getModelLabel",
          "App\\Domains\\Tenants\\Resources\\MyRentCyclesResource@getNavigationLabel",
          "App\\Domains\\Tenants\\Resources\\MyRentCyclesResource@getPluralModelLabel",
          "App\\Services\\OutreachAI\\Orchestration\\ModelRouter@creative",
          "App\\Services\\OutreachAI\\Orchestration\\ModelRouter@deepReasoning",
          "App\\Services\\OutreachAI\\Orchestration\\ModelRouter@fastReasoning",
          "App\\Services\\OutreachAI\\Sales\\PricingAuthority@getLivePricingSummary",
          "App\\Services\\SystemSettings@adminWhatsAppProvider",
          "App\\Services\\WhatsApp\\WhatsAppConnectivityService@getActiveProvider",
          "App\\Services\\Zoho\\ZohoBooksClient@accessToken"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 143,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_049",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getLabel",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getNavigationGroup",
          "App\\Domains\\Agencies\\Resources\\NotificationCenterResource@getLabel",
          "App\\Domains\\Agencies\\Resources\\NotificationCenterResource@getPluralLabel",
          "App\\Domains\\Agencies\\Resources\\TransferResource@getNavigationGroup"
        ],
        "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_050",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@mutateFormDataBeforeCreate",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Agencies\\Resources\\LabourResource@mutateFormDataBeforeCreate"
        ],
        "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_051",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@form",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Agencies\\Resources\\UnitResource@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_052",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getEloquentQuery",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Agencies\\Resources\\LandlordResource@getEloquentQuery",
          "App\\Domains\\Agencies\\Resources\\LeaseResource@getEloquentQuery",
          "App\\Domains\\Agencies\\Resources\\PaymentProofResource@getEloquentQuery",
          "App\\Domains\\Agencies\\Resources\\PaymentResource@getEloquentQuery",
          "App\\Domains\\Agencies\\Resources\\PropertyResource@getEloquentQuery",
          "App\\Domains\\Agencies\\Resources\\ReminderLogResource@getEloquentQuery",
          "App\\Domains\\Agencies\\Resources\\TenantResource@getEloquentQuery",
          "App\\Domains\\Agencies\\Resources\\UnitResource@getEloquentQuery",
          "App\\Domains\\Files\\Resources\\FileResource@getEloquentQuery",
          "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getEloquentQuery",
          "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@getEloquentQuery",
          "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@getEloquentQuery",
          "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getEloquentQuery"
        ],
        "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_053",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Agencies\\Resources\\LandlordResource@getPages",
          "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@getPages",
          "App\\Domains\\Agencies\\Resources\\LeaseResource@getPages",
          "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@getPages",
          "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@getPages",
          "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource@getPages",
          "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource@getRelations",
          "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@getPages",
          "App\\Domains\\Agencies\\Resources\\NotificationCenterResource@getPages",
          "App\\Domains\\Agencies\\Resources\\NotificationSettingsResource@getPages",
          "App\\Domains\\Agencies\\Resources\\PaymentProofResource@getPages",
          "App\\Domains\\Agencies\\Resources\\PaymentResource@getPages",
          "App\\Domains\\Agencies\\Resources\\PropertyResource@getPages",
          "App\\Domains\\Agencies\\Resources\\ReminderLogResource@getPages",
          "App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@getPages",
          "App\\Domains\\Agencies\\Resources\\RentCycleResource@getPages",
          "App\\Domains\\Agencies\\Resources\\SupportTicketResource@getPages",
          "App\\Domains\\Agencies\\Resources\\TenantResource@getPages",
          "App\\Domains\\Agencies\\Resources\\TransferResource@getPages",
          "App\\Domains\\Agencies\\Resources\\UnitResource@getPages",
          "App\\Domains\\Imports\\Constants\\CsvImportSchema@allSchemas",
          "App\\Domains\\Landlords\\Resources\\LandlordDelegateResource@getPages",
          "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@getPages",
          "App\\Domains\\Landlords\\Resources\\MyTenantsResource@getPages",
          "App\\Domains\\Landlords\\Resources\\MyTransfersResource@getPages",
          "App\\Domains\\Payments\\Services\\DeductionCalculator@getDefaultTemplates",
          "App\\Domains\\Properties\\Repositories\\UnitRepository@getStatisticsForOrganization",
          "App\\Domains\\Reports\\Services\\ReportExportService@getCollectionReportHeaders",
          "App\\Domains\\Reports\\Services\\ReportExportService@getOverdueReportHeaders",
          "App\\Domains\\Reports\\Services\\ReportExportService@getRentRollHeaders",
          "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
          "App\\Domains\\Sales\\Resources\\MyInvoicesResource@getPages",
          "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@getPages",
          "App\\Domains\\SuperAdmin\\Resources\\AuditLogResource@getPages",
          "App\\Domains\\SuperAdmin\\Resources\\BillingAdminActionsResource@getPages",
          "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@getPages",
          "App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource@getPages",
          "App\\Domains\\SuperAdmin\\Resources\\ClickLogResource@getPages",
          "App\\Domains\\SuperAdmin\\Resources\\ClickLogResource@getRelations",
          "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource@getPages",
          "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource@getRelations",
          "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@getPages",
          "App\\Domains\\SuperAdmin\\Resources\\EmailTemplateResource@getPages",
          "App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource@getPages",
          "App\\Domains\\SuperAdmin\\Resources\\LeadResource@getPages",
          "App\\Domains\\SuperAdmin\\Resources\\LeadResource@getRelations",
          "App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource@getPages",
          "App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource@getRelations",
          "App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource@getPages",
          "App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource@getPages",
          "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getPages",
          "App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@getPages",
          "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@getPages",
          "App\\Domains\\SuperAdmin\\Resources\\SupportTicketResource@getPages",
          "App\\Domains\\SuperAdmin\\Resources\\SupportTicketResource@getRelations",
          "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource@getPages",
          "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource@getRelations",
          "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@getPages",
          "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@getRelations",
          "App\\Domains\\SuperAdmin\\Resources\\WebhookEventAttemptResource@getPages",
          "App\\Domains\\SuperAdmin\\Resources\\WebhookEventResource@getPages",
          "App\\Domains\\Tenants\\Resources\\MyLeaseResource@getPages",
          "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@getPages",
          "App\\Domains\\Tenants\\Resources\\MyRentCyclesResource@getPages",
          "App\\Http\\Requests\\AcceptInvitationRequest@rules",
          "App\\Http\\Requests\\Admin\\StorePlanVersionFeatureRequest@rules",
          "App\\Http\\Requests\\Admin\\StorePlanVersionRequest@rules",
          "App\\Http\\Requests\\Admin\\UpdatePlanVersionFeatureRequest@rules",
          "App\\Http\\Requests\\Admin\\UpdatePlanVersionRequest@rules",
          "App\\Http\\Requests\\Auth\\LoginRequest@attributes",
          "App\\Http\\Requests\\Auth\\LoginRequest@messages",
          "App\\Http\\Requests\\Auth\\LoginRequest@rules",
          "App\\Http\\Requests\\Auth\\RegisterRequest@rules",
          "App\\Http\\Requests\\Auth\\ResendVerificationRequest@rules",
          "App\\Http\\Requests\\Auth\\ResetPasswordRequest@rules",
          "App\\Http\\Requests\\Auth\\SendPasswordResetLinkRequest@rules",
          "App\\Http\\Requests\\Files\\BulkUploadRequest@attributes",
          "App\\Http\\Requests\\Files\\BulkUploadRequest@messages",
          "App\\Http\\Requests\\Files\\BulkUploadRequest@rules",
          "App\\Http\\Requests\\Files\\UploadFileRequest@rules",
          "App\\Http\\Requests\\Gateway\\DeliveryStatusRequest@rules",
          "App\\Http\\Requests\\Gateway\\HeartbeatRequest@rules",
          "App\\Http\\Requests\\Gateway\\RegisterGatewayRequest@rules",
          "App\\Http\\Requests\\InvitationRequest@attributes",
          "App\\Http\\Requests\\Leads\\StoreLeadRequest@rules",
          "App\\Http\\Requests\\Leases\\StoreLeaseRequest@rules",
          "App\\Http\\Requests\\Leases\\TerminateLeaseRequest@rules",
          "App\\Http\\Requests\\Locale\\SetLocaleRequest@rules",
          "App\\Http\\Requests\\Maintenance\\AddCommentRequest@rules",
          "App\\Http\\Requests\\Maintenance\\ApproveTicketRequest@rules",
          "App\\Http\\Requests\\Maintenance\\AssignLabourRequest@rules",
          "App\\Http\\Requests\\Maintenance\\AssignWorkerRequest@rules",
          "App\\Http\\Requests\\Maintenance\\UpdateTicketStatusRequest@rules",
          "App\\Http\\Requests\\Maintenance\\UploadQuoteRequest@rules",
          "App\\Http\\Requests\\OrgDeductionSettings\\UpdateOrgDeductionSettingsRequest@rules",
          "App\\Http\\Requests\\PaymentProofs\\SubmitProofRequest@messages",
          "App\\Http\\Requests\\PaymentProofs\\SubmitProofRequest@rules",
          "App\\Http\\Requests\\Payments\\UpdatePaymentRequest@attributes",
          "App\\Http\\Requests\\Payments\\UpdatePaymentRequest@messages",
          "App\\Http\\Requests\\People\\StoreLandlordRequest@rules",
          "App\\Http\\Requests\\People\\StoreTenantRequest@rules",
          "App\\Http\\Requests\\Profile\\UpdateProfileRequest@attributes",
          "App\\Http\\Requests\\Profile\\UpdateProfileRequest@messages",
          "App\\Http\\Requests\\Properties\\AssignTenantRequest@attributes",
          "App\\Http\\Requests\\Properties\\AssignTenantRequest@messages",
          "App\\Http\\Requests\\Properties\\AssignTenantRequest@rules",
          "App\\Http\\Requests\\Properties\\GetPropertiesByTypeRequest@rules",
          "App\\Http\\Requests\\Properties\\GetPropertiesForLandlordRequest@rules",
          "App\\Http\\Requests\\Properties\\StorePropertyRequest@rules",
          "App\\Http\\Requests\\Properties\\StoreUnitRequest@rules",
          "App\\Http\\Requests\\Properties\\UpdatePropertyRequest@rules",
          "App\\Http\\Requests\\Properties\\UpdateUnitCompositionRequest@attributes",
          "App\\Http\\Requests\\Properties\\UpdateUnitCompositionRequest@messages",
          "App\\Http\\Requests\\Properties\\UpdateUnitCompositionRequest@rules",
          "App\\Http\\Requests\\Reminders\\GetRemindersByStatusRequest@rules",
          "App\\Http\\Requests\\Reports\\ExportCollectionReportRequest@rules",
          "App\\Http\\Requests\\Reports\\ExportOverdueReportRequest@rules",
          "App\\Http\\Requests\\Reports\\ExportRentRollRequest@rules",
          "App\\Http\\Requests\\Subscriptions\\SubscribeRequest@rules",
          "App\\Http\\Requests\\Subscriptions\\TopUpRequest@rules",
          "App\\Http\\Requests\\Transfers\\BulkCompleteTransferRequest@attributes",
          "App\\Http\\Requests\\Transfers\\BulkCompleteTransferRequest@messages",
          "App\\Http\\Requests\\Transfers\\CompleteTransferRequest@attributes",
          "App\\Http\\Requests\\Transfers\\CompleteTransferRequest@messages",
          "App\\Http\\Requests\\Transfers\\CompleteTransferRequest@rules",
          "App\\Http\\Requests\\Transfers\\FailTransferRequest@rules",
          "App\\Http\\Requests\\Verification\\CheckVerificationRequest@rules",
          "App\\Http\\Requests\\Verification\\StartVerificationRequest@rules",
          "App\\Http\\Requests\\WhatsApp\\ProvisionWhatsAppRequest@rules",
          "App\\Http\\Requests\\WhatsApp\\SelectPhoneNumberRequest@rules",
          "App\\Http\\Requests\\WhatsApp\\StartOnboardingRequest@rules",
          "App\\Http\\Requests\\WhatsApp\\TestWhatsAppRequest@rules",
          "App\\Http\\Requests\\WhatsApp\\UpdateWhatsAppIntegrationRequest@rules",
          "App\\Http\\Requests\\WhatsApp\\UpdateWhatsAppProfileRequest@rules",
          "App\\Http\\Requests\\WhatsApp\\UpdateWhatsAppSettingsRequest@rules",
          "App\\Models\\MessageTemplate@getAvailableVariables",
          "App\\Services\\Messaging\\MessagingResult@toArray",
          "App\\Services\\Outreach\\AnalyticsService@getOverviewStats",
          "App\\Services\\OutreachAI\\AdaptiveLearningEngine@evolveStrategiesDaily",
          "App\\Services\\OutreachAI\\AudioConverter@getStorageStats",
          "App\\Services\\OutreachAI\\ConversationPlanService@addAddOnOfferStep",
          "App\\Services\\OutreachAI\\ConversationPlanService@addPriceAlignmentExplainerStep",
          "App\\Services\\OutreachAI\\ConversationPlanService@addUpsellSequenceStep",
          "App\\Services\\OutreachAI\\Sales\\PricingResolver@getAllPlans",
          "App\\Services\\OutreachAI\\StrategyScoreService@computeSuccessRatios",
          "App\\Services\\WhatsApp\\Inbound\\CanonicalInboundMessage@toArray",
          "App\\Services\\WhatsApp\\Templates\\Dialog360TemplateProvider@templateCapabilities",
          "App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider@templateCapabilities",
          "App\\Services\\Zoho\\ZohoBooksClient@getConnectionStatus",
          "App\\Support\\OutreachAI\\Knowledge\\AllowedKnowledgeRegistry@getPricingFacts",
          "App\\Support\\OutreachAI\\Knowledge\\FAQTemplateRegistry@getTemplates",
          "App\\Support\\OutreachAI\\Safety\\ComplianceRules@getForbiddenPhrases",
          "App\\Support\\OutreachAI\\Safety\\OptOutEnforcer@getConfirmationMessage"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 154,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_054",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource@getRelations",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Agencies\\Resources\\PropertyResource@getRelations",
          "App\\Domains\\Agencies\\Resources\\TenantResource@getRelations",
          "App\\Domains\\Agencies\\Resources\\UnitResource@getRelations",
          "App\\Domains\\Landlords\\Actions\\GetLandlordOverviewWidgetStatsAction@execute",
          "App\\Http\\Requests\\Profile\\UpdateProfileRequest@rules",
          "App\\Services\\GccCountryService@getCountries",
          "App\\Services\\GccCountryService@getCountryCodes",
          "App\\Services\\OutreachAI\\FunnelBehaviorEngine@computeStageDifficultyScores",
          "App\\Services\\Payments\\Tap\\TapWebhookValidationResult@errors",
          "App\\Support\\FactoryToolkit@factoryFullCycle",
          "App\\Support\\OutreachAI\\Knowledge\\AllowedKnowledgeRegistry@getAllowedFacts",
          "App\\Support\\OutreachAI\\Knowledge\\ForbiddenPhrasesRegistry@getForbiddenCategories"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 13,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_055",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@form",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@form",
          "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@form",
          "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\CommentsRelationManager@form",
          "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\MediaRelationManager@form",
          "App\\Domains\\Agencies\\Resources\\NotificationSettingsResource@form",
          "App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\FilesRelationManager@form",
          "App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\UnitsRelationManager@form",
          "App\\Domains\\Agencies\\Resources\\SupportTicketResource@form",
          "App\\Domains\\Agencies\\Resources\\UnitResource\\RelationManagers\\FilesRelationManager@form",
          "App\\Domains\\Files\\Resources\\FileResource@form",
          "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@form",
          "App\\Domains\\Landlords\\Resources\\MyTenantsResource@form",
          "App\\Domains\\Landlords\\Resources\\MyTransfersResource@form",
          "App\\Domains\\Sales\\Resources\\MyCommissionsResource@form",
          "App\\Domains\\Sales\\Resources\\MyInvoicesResource@form",
          "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@form",
          "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource@form",
          "App\\Domains\\SuperAdmin\\Resources\\EmailTemplateResource@form",
          "App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource@form",
          "App\\Domains\\SuperAdmin\\Resources\\LeadResource@form",
          "App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource@form",
          "App\\Domains\\SuperAdmin\\Resources\\SupportTicketResource@form",
          "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource@form",
          "App\\Domains\\Tenants\\Resources\\MyLeaseResource@form",
          "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@form",
          "App\\Domains\\Tenants\\Resources\\MyRentCyclesResource@form"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 27,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_056",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@getTitle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@getTitle",
          "App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager@getTitle",
          "App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\FilesRelationManager@getTitle",
          "App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\UnitsRelationManager@getTitle",
          "App\\Domains\\Agencies\\Resources\\UnitResource\\RelationManagers\\FilesRelationManager@getTitle"
        ],
        "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_057",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@table",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@table",
          "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@table",
          "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\CommentsRelationManager@table",
          "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\MediaRelationManager@table",
          "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SlaLogsRelationManager@table",
          "App\\Domains\\Agencies\\Resources\\NotificationCenterResource@table",
          "App\\Domains\\Agencies\\Resources\\NotificationSettingsResource@table",
          "App\\Domains\\Agencies\\Resources\\PaymentProofResource@table",
          "App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager@table",
          "App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\UnitsRelationManager@table",
          "App\\Domains\\Agencies\\Resources\\ReminderLogResource@table",
          "App\\Domains\\Agencies\\Resources\\SupportTicketResource@table",
          "App\\Domains\\Files\\Resources\\FileResource@table",
          "App\\Domains\\Landlords\\Resources\\MyTenantsResource@table",
          "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@table",
          "App\\Domains\\SuperAdmin\\Resources\\AuditLogResource@table",
          "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@table",
          "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource@table",
          "App\\Domains\\SuperAdmin\\Resources\\EmailTemplateResource@table",
          "App\\Domains\\SuperAdmin\\Resources\\LeadResource@table",
          "App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource@table",
          "App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@table",
          "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@table",
          "App\\Domains\\Tenants\\Resources\\MyLeaseResource@table"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 25,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_058",
        "canonical": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@getEloquentQuery",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@getEloquentQuery",
          "App\\Domains\\Agencies\\Resources\\RentCycleResource@getEloquentQuery",
          "App\\Domains\\Agencies\\Resources\\TransferResource@getEloquentQuery",
          "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@getEloquentQuery",
          "App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource@getEloquentQuery"
        ],
        "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_059",
        "canonical": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Agencies\\Resources\\NotificationCenterResource@shouldRegisterNavigation",
          "App\\Domains\\Agencies\\Resources\\NotificationSettingsResource@shouldRegisterNavigation",
          "App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@shouldRegisterNavigation",
          "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@canCreate",
          "App\\Domains\\Landlords\\Resources\\MyTenantsResource@canCreate",
          "App\\Domains\\Landlords\\Resources\\MyTransfersResource@canCreate",
          "App\\Domains\\Sales\\Resources\\MyCommissionsResource@canCreate",
          "App\\Domains\\Sales\\Resources\\MyInvoicesResource@canCreate",
          "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@canCreate",
          "App\\Domains\\SuperAdmin\\Resources\\AuditLogResource@shouldRegisterNavigation",
          "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@shouldRegisterNavigation",
          "App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource@shouldRegisterNavigation",
          "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@canCreate",
          "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@canDeleteAny",
          "App\\Domains\\SuperAdmin\\Resources\\EmailTemplateResource@shouldRegisterNavigation",
          "App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource@shouldRegisterNavigation",
          "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@canCreate",
          "App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@shouldRegisterNavigation",
          "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@canCreate",
          "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@canDeleteAny",
          "App\\Domains\\Tenants\\Resources\\MyLeaseResource@canCreate",
          "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@canCreate",
          "App\\Domains\\Tenants\\Resources\\MyRentCyclesResource@canCreate"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 24,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_060",
        "canonical": "App\\Domains\\Agencies\\Resources\\LeaseResource@table",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@table"
        ],
        "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_061",
        "canonical": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ListLeases@getSubheading",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\ListProperties@getSubheading",
          "App\\Domains\\Agencies\\Resources\\SupportTicketResource\\Pages\\ListSupportTickets@getSubheading",
          "App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\ListTenants@getSubheading",
          "App\\Domains\\Agencies\\Resources\\TransferResource\\Pages\\ListTransfers@getSubheading",
          "App\\Domains\\Agencies\\Resources\\UnitResource\\Pages\\ListUnits@getSubheading"
        ],
        "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_062",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@getEloquentQuery",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource@getEloquentQuery",
          "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@getEloquentQuery",
          "App\\Domains\\Agencies\\Resources\\SupportTicketResource@getEloquentQuery",
          "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@getEloquentQuery",
          "App\\Domains\\Landlords\\Resources\\MyTransfersResource@getEloquentQuery",
          "App\\Domains\\Tenants\\Resources\\MyLeaseResource@getEloquentQuery",
          "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@getEloquentQuery"
        ],
        "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_063",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@infolist",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Agencies\\Resources\\SupportTicketResource@infolist",
          "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource\\Pages\\ViewDiscountCodeUsage@infolist",
          "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource\\Pages\\ViewTrackingLink@infolist"
        ],
        "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_064",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@shouldRegisterNavigation",
          "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource@shouldRegisterNavigation",
          "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@shouldRegisterNavigation",
          "App\\Http\\Requests\\InvitationRequest@authorize",
          "App\\Http\\Requests\\PaymentProofs\\SubmitProofRequest@authorize",
          "App\\Http\\Requests\\Payments\\UpdatePaymentRequest@authorize",
          "App\\Http\\Requests\\People\\StoreLandlordRequest@authorize",
          "App\\Http\\Requests\\People\\StoreTenantRequest@authorize",
          "App\\Http\\Requests\\People\\UpdateLandlordRequest@authorize",
          "App\\Http\\Requests\\People\\UpdateTenantRequest@authorize",
          "App\\Http\\Requests\\Properties\\AssignTenantRequest@authorize",
          "App\\Http\\Requests\\Properties\\StoreUnitRequest@authorize",
          "App\\Http\\Requests\\Properties\\UpdateUnitCompositionRequest@authorize",
          "App\\Http\\Requests\\Properties\\UpdateUnitRequest@authorize",
          "App\\Http\\Requests\\Transfers\\BulkCompleteTransferRequest@authorize",
          "App\\Http\\Requests\\Transfers\\CompleteTransferRequest@authorize",
          "App\\Http\\Requests\\WhatsApp\\ProvisionWhatsAppRequest@authorize",
          "App\\Http\\Requests\\WhatsApp\\TestWhatsAppRequest@authorize",
          "App\\Http\\Requests\\WhatsApp\\UpdateWhatsAppSettingsRequest@authorize",
          "App\\Services\\Payments\\Tap\\TapWebhookValidationResult@isValid"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 21,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_065",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@form",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SlaLogsRelationManager@form",
          "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SuggestionsRelationManager@form",
          "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@form",
          "App\\Domains\\Agencies\\Resources\\NotificationCenterResource@form",
          "App\\Domains\\Agencies\\Resources\\RentCycleResource@form",
          "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@form",
          "App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource@form",
          "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource\\RelationManagers\\UsagesRelationManager@form",
          "App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource@form"
        ],
        "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_066",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@table",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\SuperAdmin\\Resources\\ClickLogResource@table",
          "App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource@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_067",
        "canonical": "App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\FilesRelationManager@table",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Landlords\\Resources\\LandlordDelegateResource@table",
          "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@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_068",
        "canonical": "App\\Domains\\Agencies\\Resources\\RentCycleResource\\Pages\\ListRentCycles@getTabs",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\Outreach\\FollowUpMetricsService@dailyStats"
        ],
        "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\\Domains\\Agencies\\Resources\\TransferResource@getRelations",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@getRelations",
          "App\\Domains\\SuperAdmin\\Resources\\EmailTemplateResource@getRelations",
          "App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@getRelations",
          "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@getRelations"
        ],
        "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_070",
        "canonical": "App\\Domains\\Billing\\Services\\CurrencyService@getDefaultCurrency",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Billing\\Services\\GlobalTaxRulesService@getDefaultCurrencyForCountry",
          "App\\Domains\\Billing\\Services\\GlobalTaxRulesService@getDefaultLocaleForCountry",
          "App\\Domains\\Billing\\Services\\GlobalTaxRulesService@getInvoiceFormatForCountry"
        ],
        "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_071",
        "canonical": "App\\Domains\\Billing\\Services\\GlobalTaxRulesService@getDefaultTaxRateForCountry",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Billing\\Services\\GlobalTaxRulesService@getTaxRate"
        ],
        "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\\Domains\\Billing\\Services\\GlobalTaxRulesService@getLineItemTaxRulesForCountry",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Billing\\Services\\GlobalTaxRulesService@getNumberFormatForCountry"
        ],
        "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\\Domains\\Billing\\Services\\GlobalTaxRulesService@isEInvoicingRequiredForCountry",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Billing\\Services\\GlobalTaxRulesService@isMultiLanguageRequiredForCountry",
          "App\\Domains\\Billing\\Services\\GlobalTaxRulesService@isQrRequiredForCountry"
        ],
        "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_074",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@allForOrganization",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Leases\\Repositories\\RentCycleRepository@allForOrganization",
          "App\\Domains\\Payments\\Repositories\\PaymentRepository@allForOrganization",
          "App\\Domains\\Payments\\Repositories\\PaymentRepository@getNeedingTransfer",
          "App\\Domains\\People\\Repositories\\LandlordRepository@allForOrganization",
          "App\\Domains\\People\\Repositories\\LandlordRepository@getActiveForOrganization",
          "App\\Domains\\People\\Repositories\\TenantRepository@getActiveForOrganization"
        ],
        "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_075",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@countForOrganization",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Leases\\Repositories\\LeaseRepository@countActiveForOrganization",
          "App\\Domains\\Leases\\Repositories\\LeaseRepository@countForOrganization",
          "App\\Domains\\Payments\\Repositories\\PaymentRepository@countForOrganization",
          "App\\Domains\\People\\Repositories\\LandlordRepository@countActiveForOrganization",
          "App\\Domains\\People\\Repositories\\LandlordRepository@countForOrganization",
          "App\\Domains\\People\\Repositories\\TenantRepository@countActiveForOrganization",
          "App\\Domains\\People\\Repositories\\TenantRepository@countForOrganization",
          "App\\Domains\\Properties\\Repositories\\PropertyRepository@countActiveForOrganization",
          "App\\Domains\\Properties\\Repositories\\PropertyRepository@countForOrganization",
          "App\\Domains\\Properties\\Repositories\\UnitRepository@countForOrganization",
          "App\\Domains\\Reminders\\Actions\\ProcessDueRemindersAction@run",
          "App\\Services\\Imports\\CsvImportSessionManager@cleanupOldSessions",
          "App\\Services\\OutreachAI\\NudgeService@processDueNudges"
        ],
        "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_076",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@getByTypeForOrganization",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Properties\\Repositories\\PropertyRepository@getByTypeForOrganization"
        ],
        "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\\Domains\\Files\\Repositories\\FileRepository@getOrphanedFiles",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Leases\\Repositories\\LeaseRepository@allForOrganization",
          "App\\Domains\\Leases\\Repositories\\LeaseRepository@getActiveForOrganization",
          "App\\Domains\\Leases\\Repositories\\LeaseRepository@getExpiredForOrganization",
          "App\\Domains\\Leases\\Repositories\\RentCycleRepository@getDueToday",
          "App\\Domains\\Leases\\Repositories\\RentCycleRepository@getOverdueForOrganization",
          "App\\Domains\\Properties\\Repositories\\PropertyRepository@getActiveForOrganization",
          "App\\Domains\\Properties\\Repositories\\UnitRepository@getOccupiedForOrganization",
          "App\\Domains\\Properties\\Repositories\\UnitRepository@getVacantForOrganization",
          "App\\Domains\\Reminders\\Repositories\\ReminderRepository@getDue"
        ],
        "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_078",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@paginatedForOrganization",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Leases\\Repositories\\LeaseRepository@paginatedForOrganization",
          "App\\Domains\\Leases\\Repositories\\RentCycleRepository@paginatedForOrganization",
          "App\\Domains\\Payments\\Repositories\\PaymentRepository@paginatedForOrganization",
          "App\\Domains\\People\\Repositories\\TenantRepository@paginatedForOrganization",
          "App\\Domains\\Properties\\Repositories\\PropertyRepository@paginatedForOrganization",
          "App\\Domains\\Properties\\Repositories\\UnitRepository@paginatedForOrganization"
        ],
        "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_079",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@search",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Leases\\Repositories\\LeaseRepository@search",
          "App\\Domains\\Payments\\Repositories\\PaymentRepository@search",
          "App\\Domains\\People\\Repositories\\TenantRepository@search",
          "App\\Domains\\Properties\\Repositories\\PropertyRepository@search",
          "App\\Domains\\Properties\\Repositories\\UnitRepository@search"
        ],
        "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_080",
        "canonical": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@canDelete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@canEdit",
          "App\\Domains\\Landlords\\Resources\\MyTenantsResource@canDelete",
          "App\\Domains\\Landlords\\Resources\\MyTenantsResource@canEdit",
          "App\\Domains\\Landlords\\Resources\\MyTransfersResource@canDelete",
          "App\\Domains\\Landlords\\Resources\\MyTransfersResource@canEdit",
          "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@canDelete",
          "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@canEdit",
          "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@canDelete",
          "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@canEdit"
        ],
        "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_081",
        "canonical": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@canView",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Landlords\\Resources\\MyTenantsResource@canView",
          "App\\Domains\\Landlords\\Resources\\MyTransfersResource@canView",
          "App\\Domains\\SuperAdmin\\Resources\\ClickLogResource@canView",
          "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource@canDelete",
          "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource@canEdit",
          "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource@canView",
          "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@canView"
        ],
        "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_082",
        "canonical": "App\\Domains\\Landlords\\Resources\\MyTenantsResource@getEloquentQuery",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Tenants\\Resources\\MyRentCyclesResource@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_083",
        "canonical": "App\\Domains\\Leases\\Actions\\CreateLeaseAction@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Leases\\Actions\\GenerateRentCyclesAction@__construct",
          "App\\Domains\\Leases\\Actions\\UpdateLeaseAction@__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_084",
        "canonical": "App\\Domains\\Leases\\Repositories\\LeaseRepository@getForLandlord",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Leases\\Repositories\\RentCycleRepository@getForLandlord",
          "App\\Domains\\Payments\\Services\\TransferService@getTransfersForLandlord",
          "App\\Domains\\Properties\\Repositories\\PropertyRepository@getForLandlord"
        ],
        "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_085",
        "canonical": "App\\Domains\\Leases\\Repositories\\LeaseRepository@getForTenant",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Leases\\Repositories\\RentCycleRepository@getForTenant",
          "App\\Domains\\Properties\\Repositories\\UnitRepository@getForTenant"
        ],
        "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_086",
        "canonical": "App\\Domains\\Leases\\Repositories\\RentCycleRepository@getByStatusForOrganization",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Reminders\\Repositories\\ReminderRepository@getByStatusForOrganization"
        ],
        "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\\Domains\\Maintenance\\Actions\\AssignSlaToTicketAction@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Maintenance\\Actions\\ExtendSlaAction@__construct",
          "App\\Domains\\Maintenance\\Actions\\PauseSlaAction@__construct",
          "App\\Domains\\Maintenance\\Actions\\ResumeSlaAction@__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_088",
        "canonical": "App\\Domains\\Maintenance\\Notifications\\LandlordApprovalRequestNotification@sendTwilioNotification",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Maintenance\\Notifications\\TenantTicketConfirmationNotification@sendTwilioNotification"
        ],
        "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\\Domains\\Outreach\\Jobs\\FetchDeliveryStatusJob@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Outreach\\Jobs\\SendWhatsAppMessageJob@__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_090",
        "canonical": "App\\Domains\\Outreach\\Services\\AudienceHealthService@getBlockedOptOut",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Outreach\\Services\\AudienceHealthService@getInvalidNumbers",
          "App\\Domains\\Outreach\\Services\\AudienceHealthService@getValidNumbers"
        ],
        "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\\Domains\\Outreach\\Services\\BillingService@getCampaignCostBreakdown",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Outreach\\Services\\BillingService@getConversationTypes"
        ],
        "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_092",
        "canonical": "App\\Domains\\Outreach\\Services\\DeliveryStatusService@getDelivered",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Outreach\\Services\\DeliveryStatusService@getRead",
          "App\\Domains\\Outreach\\Services\\DeliveryStatusService@getUndelivered",
          "App\\Domains\\Outreach\\Services\\RepliesService@getAIClassifiedReplies",
          "App\\Domains\\Outreach\\Services\\RepliesService@getAllReplies",
          "App\\Domains\\Outreach\\Services\\RepliesService@getFollowUpRequired",
          "App\\Domains\\Outreach\\Services\\RepliesService@getInterested",
          "App\\Domains\\Outreach\\Services\\RepliesService@getNotInterested"
        ],
        "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_093",
        "canonical": "App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController@handle",
          "App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController@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_094",
        "canonical": "App\\Domains\\Payments\\Models\\PaymentRequest@landlord",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Payments\\Models\\PaymentRequest@tenant",
          "App\\Domains\\Payments\\Models\\PaymentRequest@user"
        ],
        "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_095",
        "canonical": "App\\Domains\\Payments\\Repositories\\PaymentRepository@getByStatusForOrganization",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Properties\\Repositories\\UnitRepository@getByStatusForOrganization"
        ],
        "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_096",
        "canonical": "App\\Domains\\Payments\\Repositories\\PaymentRepository@getForTenant",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Reminders\\Repositories\\ReminderRepository@getForTenant"
        ],
        "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\\Domains\\Payments\\Services\\PaymentProof\\ManualReviewFallbackAnalyzer@analyze",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Payments\\Services\\PaymentProof\\OpenAIPaymentProofAnalyzer@analyze"
        ],
        "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_098",
        "canonical": "App\\Domains\\People\\Repositories\\LandlordRepository@emailExistsInOrganization",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\People\\Repositories\\TenantRepository@emailExistsInOrganization"
        ],
        "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_099",
        "canonical": "App\\Domains\\People\\Repositories\\LandlordRepository@paginatedForOrganization",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Reminders\\Repositories\\ReminderRepository@paginatedForOrganization"
        ],
        "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_100",
        "canonical": "App\\Domains\\People\\Repositories\\TenantRepository@allForOrganization",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Properties\\Repositories\\PropertyRepository@allForOrganization",
          "App\\Domains\\Properties\\Repositories\\UnitRepository@allForOrganization"
        ],
        "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_101",
        "canonical": "App\\Domains\\Properties\\Repositories\\PropertyRepository@getStatisticsForOrganization",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\Outreach\\AnalyticsService@getAttemptsPerCountry",
          "App\\Services\\OutreachAI\\ABTestingService@getExperimentalWeights",
          "App\\Services\\OutreachAI\\FunnelBehaviorEngine@analyzeAppointmentImpact",
          "App\\Services\\OutreachAI\\FunnelBehaviorEngine@analyzeBudgetImpact",
          "App\\Services\\OutreachAI\\FunnelBehaviorEngine@analyzeDiscountImpact",
          "App\\Services\\OutreachAI\\FunnelBehaviorEngine@analyzeObjectionImpact",
          "App\\Services\\OutreachAI\\FunnelBehaviorEngine@analyzeObjectionInfluenceOnClosing",
          "App\\Services\\OutreachAI\\FunnelBehaviorEngine@analyzeTrialImpact"
        ],
        "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_102",
        "canonical": "App\\Domains\\Properties\\Services\\UnitCompositionService@getCompositionText",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Properties\\Services\\UnitCompositionService@getVisualLayout"
        ],
        "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_103",
        "canonical": "App\\Domains\\Reminders\\Actions\\CancelRemindersForRentCycleAction@execute",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Reminders\\Services\\ReminderService@cancelRemindersForRentCycle"
        ],
        "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\\Domains\\Reminders\\Actions\\MapReminderTypeToTemplateTypeAction@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Reminders\\Actions\\ProcessDueRemindersAction@__construct",
          "App\\Domains\\Reminders\\Actions\\ScheduleRemindersForRentCycleAction@__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_105",
        "canonical": "App\\Domains\\Reminders\\Jobs\\SendReminderJob@tags",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\Outreach\\ProcessOutreachInboundMessageJob@middleware",
          "App\\Jobs\\Outreach\\SendFollowUpMessageJob@tags",
          "App\\Jobs\\OutreachAI\\RunChurnPreventionCheckJob@tags",
          "App\\Jobs\\OutreachAI\\SendReengagementMessageJob@tags",
          "App\\Jobs\\ProcessTapWebhookJob@backoff"
        ],
        "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_106",
        "canonical": "App\\Domains\\Reminders\\Repositories\\ReminderRepository@countByChannelForOrganization",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Reminders\\Repositories\\ReminderRepository@countByStatusForOrganization"
        ],
        "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_107",
        "canonical": "App\\Domains\\Reminders\\Services\\ReminderMonitoringService@logScheduled",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Reminders\\Services\\ReminderMonitoringService@logSent"
        ],
        "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\\Domains\\Reminders\\Services\\ReminderScheduler@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Listeners\\CancelRemindersOnPayment@__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_109",
        "canonical": "App\\Domains\\Reminders\\Services\\ReminderService@getReminderStatistics",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\PropertyDocumentService@getStorageStatistics",
          "App\\Services\\UsageMeterService@getUsageForOrganization"
        ],
        "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_110",
        "canonical": "App\\Domains\\Reminders\\Services\\ReminderService@mapReminderTypeToTemplateType",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\PromptLibrary@getAgencyPricingExplanation",
          "App\\Services\\OutreachAI\\PromptLibrary@getCounterProposalTemplate"
        ],
        "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\\Domains\\Reports\\Repositories\\AnalyticsRepository@getPaymentTotalsByStatus",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Reports\\Repositories\\AnalyticsRepository@getRentCycleCountsByStatus"
        ],
        "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_112",
        "canonical": "App\\Domains\\Reports\\Services\\DashboardService@getQuickStats",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Reports\\Services\\ReportExportService@exportFinancialSummary",
          "App\\Domains\\Reports\\Services\\ReportService@getOccupancyTrends",
          "App\\Services\\SubscriptionService@getEffectiveLimits"
        ],
        "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_113",
        "canonical": "App\\Domains\\Reports\\Services\\ReportExportService@exportOverdueReport",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Reports\\Services\\ReportExportService@exportRentRoll"
        ],
        "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_114",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@table",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Sales\\Resources\\MyInvoicesResource@table"
        ],
        "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_115",
        "canonical": "App\\Domains\\SuperAdmin\\Resources\\AuditLogResource@canViewAny",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@canViewAny",
          "App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource@canViewAny",
          "App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource@canViewAny",
          "App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@canViewAny"
        ],
        "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_116",
        "canonical": "App\\Domains\\SuperAdmin\\Resources\\ClickLogResource@form",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@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_117",
        "canonical": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource\\RelationManagers\\UsagesRelationManager@table",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@table"
        ],
        "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_118",
        "canonical": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@getPluralModelLabel",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource\\Pages\\ManageTiers@getTitle"
        ],
        "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_119",
        "canonical": "App\\Domains\\Tenants\\Resources\\MyLeaseResource@canDelete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Tenants\\Resources\\MyLeaseResource@canEdit",
          "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@canDelete",
          "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@canEdit",
          "App\\Domains\\Tenants\\Resources\\MyRentCyclesResource@canDelete",
          "App\\Domains\\Tenants\\Resources\\MyRentCyclesResource@canEdit"
        ],
        "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_120",
        "canonical": "App\\Domains\\Tenants\\Resources\\MyLeaseResource@canView",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@canView"
        ],
        "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\\Http\\Controllers\\Admin\\PlanVersionController@index",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Landing\\PlansController@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_122",
        "canonical": "App\\Http\\Controllers\\AgencyWhatsAppProfileController@show",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\AgencyWhatsAppProfileController@show",
          "App\\Http\\Controllers\\AgencyWhatsAppProfileController@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_123",
        "canonical": "App\\Http\\Controllers\\Api\\MaintenanceDigestPreferencesController@show",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\MaintenanceDigestPreferencesController@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_124",
        "canonical": "App\\Http\\Controllers\\Api\\MaintenanceMetricsController@index",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\MaintenanceMetricsController@index",
          "App\\Http\\Controllers\\Api\\MaintenanceSlaController@index",
          "App\\Http\\Controllers\\Api\\MaintenanceSlaController@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_125",
        "canonical": "App\\Http\\Controllers\\Api\\MaintenanceSlaController@destroy",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\MaintenanceSlaController@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_126",
        "canonical": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@approve",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\MaintenanceTicketController@approve"
        ],
        "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\\Http\\Controllers\\Api\\MaintenanceTicketController@slaLogs",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\MaintenanceTicketController@suggestions"
        ],
        "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_128",
        "canonical": "App\\Http\\Controllers\\Api\\Mobile\\MobileForgotPasswordController@sendResetLink",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\Mobile\\MobileForgotPasswordController@sendResetLink"
        ],
        "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\\Http\\Controllers\\Api\\Mobile\\MobilePeopleController@index",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\Mobile\\MobilePropertyController@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_130",
        "canonical": "App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController@getLatest",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController@getLatest"
        ],
        "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_131",
        "canonical": "App\\Http\\Controllers\\AppController@index",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\AppController@index",
          "App\\Http\\Controllers\\Auth\\PasswordResetController@showForgotPassword",
          "App\\Http\\Controllers\\Auth\\VerificationController@showResendForm",
          "App\\Http\\Controllers\\Auth\\VerificationController@showResendForm"
        ],
        "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\\Http\\Controllers\\Auth\\AuthController@login",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Auth\\AuthController@login"
        ],
        "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_133",
        "canonical": "App\\Http\\Controllers\\Auth\\VerificationController@resend",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Auth\\VerificationController@resend"
        ],
        "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_134",
        "canonical": "App\\Http\\Controllers\\Auth\\VerificationController@verify",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Auth\\VerificationController@verify"
        ],
        "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_135",
        "canonical": "App\\Http\\Controllers\\LandingController@index",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\LandingController@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_136",
        "canonical": "App\\Http\\Controllers\\LeadController@store",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\LeadController@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_137",
        "canonical": "App\\Http\\Controllers\\LocaleController@post",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\LocaleController@post"
        ],
        "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\\Http\\Controllers\\LocaleController@switch",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\LocaleController@switch"
        ],
        "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_139",
        "canonical": "App\\Http\\Controllers\\OrgWhatsAppOnboardingController@start",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\OrgWhatsAppOnboardingController@start"
        ],
        "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_140",
        "canonical": "App\\Http\\Controllers\\Outreach\\FollowUpMetricsController@index",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Outreach\\FollowUpMetricsController@priorities"
        ],
        "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_141",
        "canonical": "App\\Http\\Controllers\\Testing\\DashboardPerformanceIndicatorsController@__invoke",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Testing\\DashboardPerformanceIndicatorsController@__invoke",
          "App\\Http\\Controllers\\Testing\\DashboardQuickStatsController@__invoke",
          "App\\Http\\Controllers\\Testing\\DashboardQuickStatsController@__invoke"
        ],
        "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_142",
        "canonical": "App\\Http\\Controllers\\Testing\\LandlordOverviewStatsController@__invoke",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Testing\\LandlordOverviewStatsController@__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_143",
        "canonical": "App\\Http\\Controllers\\Testing\\OutreachConversationInboundController@store",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Testing\\OutreachConversationInboundController@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_144",
        "canonical": "App\\Http\\Controllers\\Testing\\OutreachKnowledgeValidateController@__invoke",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Testing\\OutreachKnowledgeValidateController@__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_145",
        "canonical": "App\\Http\\Controllers\\Testing\\OutreachPricingSuggestController@__invoke",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Testing\\OutreachPricingSuggestController@__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_146",
        "canonical": "App\\Http\\Controllers\\Testing\\RecordAnonymousDiscountCodeUsageController@__invoke",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Testing\\RecordAnonymousDiscountCodeUsageController@__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_147",
        "canonical": "App\\Http\\Controllers\\Testing\\RecordSubscriptionDiscountCodeUsageController@__invoke",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Testing\\RecordSubscriptionDiscountCodeUsageController@__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_148",
        "canonical": "App\\Http\\Controllers\\VerificationController@start",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\VerificationController@start"
        ],
        "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\\Http\\Controllers\\Webhooks\\Dialog360StatusWebhookController@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Webhooks\\Dialog360StatusWebhookController@handle",
          "App\\Http\\Controllers\\Webhooks\\TwilioWebhookController@status"
        ],
        "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_150",
        "canonical": "App\\Http\\Controllers\\Webhooks\\Dialog360WebhookController@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Webhooks\\Dialog360WebhookController@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_151",
        "canonical": "App\\Http\\Controllers\\Webhooks\\TapWebhookController@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Webhooks\\TapWebhookController@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_152",
        "canonical": "App\\Http\\Controllers\\Webhooks\\TwilioWebhookController@inbound",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Webhooks\\TwilioWebhookController@inbound"
        ],
        "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_153",
        "canonical": "App\\Http\\Controllers\\Webhooks\\ZeptoWebhookController@handleBounce",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Webhooks\\ZeptoWebhookController@handleBounce"
        ],
        "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_154",
        "canonical": "App\\Http\\Controllers\\Webhooks\\ZohoWebhookController@handleCustomer",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Webhooks\\ZohoWebhookController@handleError"
        ],
        "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_155",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Requests\\Admin\\StorePlanVersionFeatureRequest@authorize",
          "App\\Http\\Requests\\Admin\\StorePlanVersionRequest@authorize",
          "App\\Http\\Requests\\Admin\\UpdatePlanVersionFeatureRequest@authorize",
          "App\\Http\\Requests\\Admin\\UpdatePlanVersionRequest@authorize",
          "App\\Http\\Requests\\Auth\\LoginRequest@authorize",
          "App\\Http\\Requests\\Auth\\RegisterRequest@authorize",
          "App\\Http\\Requests\\Auth\\ResendVerificationRequest@authorize",
          "App\\Http\\Requests\\Auth\\ResetPasswordRequest@authorize",
          "App\\Http\\Requests\\Auth\\SendPasswordResetLinkRequest@authorize",
          "App\\Http\\Requests\\Gateway\\DeliveryStatusRequest@authorize",
          "App\\Http\\Requests\\Gateway\\HeartbeatRequest@authorize",
          "App\\Http\\Requests\\Gateway\\RegisterGatewayRequest@authorize",
          "App\\Http\\Requests\\Leads\\StoreLeadRequest@authorize",
          "App\\Http\\Requests\\Leases\\StoreLeaseRequest@authorize",
          "App\\Http\\Requests\\Leases\\TerminateLeaseRequest@authorize",
          "App\\Http\\Requests\\Leases\\UpdateLeaseRequest@authorize",
          "App\\Http\\Requests\\Locale\\SetLocaleRequest@authorize",
          "App\\Http\\Requests\\Maintenance\\AddCommentRequest@authorize",
          "App\\Http\\Requests\\Maintenance\\ApproveTicketRequest@authorize",
          "App\\Http\\Requests\\Maintenance\\AssignLabourRequest@authorize",
          "App\\Http\\Requests\\Maintenance\\AssignWorkerRequest@authorize",
          "App\\Http\\Requests\\Maintenance\\UpdateTicketStatusRequest@authorize",
          "App\\Http\\Requests\\Maintenance\\UploadQuoteRequest@authorize",
          "App\\Http\\Requests\\OrgDeductionSettings\\UpdateOrgDeductionSettingsRequest@authorize",
          "App\\Http\\Requests\\Profile\\UpdateProfileRequest@authorize",
          "App\\Http\\Requests\\Properties\\GetPropertiesByTypeRequest@authorize",
          "App\\Http\\Requests\\Properties\\GetPropertiesForLandlordRequest@authorize",
          "App\\Http\\Requests\\Properties\\StorePropertyRequest@authorize",
          "App\\Http\\Requests\\Properties\\UpdatePropertyRequest@authorize",
          "App\\Http\\Requests\\Reminders\\GetRemindersByStatusRequest@authorize",
          "App\\Http\\Requests\\RentCycles\\BulkUpdateRentCycleRequest@authorize",
          "App\\Http\\Requests\\RentCycles\\UpdateRentCycleRequest@authorize",
          "App\\Http\\Requests\\Reports\\ExportCollectionReportRequest@authorize",
          "App\\Http\\Requests\\Reports\\ExportOverdueReportRequest@authorize",
          "App\\Http\\Requests\\Reports\\ExportRentRollRequest@authorize",
          "App\\Http\\Requests\\Subscriptions\\SubscribeRequest@authorize",
          "App\\Http\\Requests\\Subscriptions\\TopUpRequest@authorize",
          "App\\Http\\Requests\\Transfers\\FailTransferRequest@authorize",
          "App\\Http\\Requests\\Verification\\CheckVerificationRequest@authorize",
          "App\\Http\\Requests\\Verification\\StartVerificationRequest@authorize",
          "App\\Http\\Requests\\WhatsApp\\SelectPhoneNumberRequest@authorize",
          "App\\Http\\Requests\\WhatsApp\\StartOnboardingRequest@authorize",
          "App\\Http\\Requests\\WhatsApp\\UpdateWhatsAppIntegrationRequest@authorize",
          "App\\Http\\Requests\\WhatsApp\\UpdateWhatsAppProfileRequest@authorize"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 45,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_156",
        "canonical": "App\\Http\\Requests\\Files\\BulkUploadRequest@authorize",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Requests\\Files\\UploadFileRequest@authorize",
          "App\\Models\\OutreachAI\\HumanHandoffState@isAvailable"
        ],
        "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_157",
        "canonical": "App\\Http\\Requests\\InvitationRequest@messages",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Requests\\Payments\\StorePaymentRequest@rules",
          "App\\Http\\Requests\\Payments\\UpdatePaymentRequest@rules",
          "App\\Http\\Requests\\RentCycles\\BulkUpdateRentCycleRequest@rules",
          "App\\Http\\Requests\\RentCycles\\UpdateRentCycleRequest@rules",
          "App\\Http\\Requests\\Transfers\\BulkCompleteTransferRequest@rules"
        ],
        "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_158",
        "canonical": "App\\Http\\Requests\\Leases\\UpdateLeaseRequest@rules",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Requests\\People\\UpdateLandlordRequest@rules",
          "App\\Http\\Requests\\People\\UpdateTenantRequest@rules",
          "App\\Http\\Requests\\Properties\\UpdateUnitRequest@rules"
        ],
        "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_159",
        "canonical": "App\\Jobs\\Billing\\PushZohoSettlementPaymentJob@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\SyncTapFeeToZoho@__construct",
          "App\\Jobs\\SyncTapSettlementFeeToZoho@__construct",
          "App\\Jobs\\SyncTapSettlementPaymentToZoho@__construct",
          "App\\Jobs\\SyncTapSettlementToZoho@__construct"
        ],
        "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_160",
        "canonical": "App\\Jobs\\Chat\\InboundMessageJob@failed",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\Chat\\ProcessAIMessageJob@failed",
          "App\\Jobs\\Chat\\SendOutboundMessageJob@failed"
        ],
        "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_161",
        "canonical": "App\\Jobs\\Chat\\SendOutboundMessageJob@backoff",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\LogClickJob@backoff",
          "App\\Jobs\\Outreach\\SendCampaignMessageJob@middleware",
          "App\\Jobs\\Outreach\\SendFollowUpMessageJob@backoff",
          "App\\Jobs\\OutreachAI\\SendAiWhatsappReplyJob@backoff",
          "App\\Jobs\\OutreachAI\\SendReengagementMessageJob@backoff",
          "App\\Jobs\\ProcessDunningRetryJob@tags"
        ],
        "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_162",
        "canonical": "App\\Jobs\\Dunning\\RunDunningAttemptJob@tags",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\OutreachAI\\HandleObjectionJob@tags",
          "App\\Jobs\\OutreachAI\\SendHumanHandoffNotificationJob@tags",
          "App\\Jobs\\OutreachAI\\SendScheduledAppointmentFollowupJob@tags"
        ],
        "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\\Jobs\\Dunning\\RunDunningSweepJob@tags",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\SendInvitationEmail@backoff",
          "App\\Jobs\\SendReminderJob@backoff"
        ],
        "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_164",
        "canonical": "App\\Jobs\\GenerateFunnelSnapshotJob@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\OutreachAI\\ProcessConversationAnalyticsJob@handle",
          "App\\Jobs\\RetryTapWebhookJob@handle",
          "App\\Jobs\\SendTransferNotification@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_165",
        "canonical": "App\\Jobs\\Outreach\\SendCampaignMessageJob@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\ProcessTapWebhookJob@__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_166",
        "canonical": "App\\Jobs\\OutreachAI\\RunDailyPredictionSweepJob@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\OutreachAI\\RunOptimizationCycleJob@__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_167",
        "canonical": "App\\Jobs\\ProcessWhatsAppTemplateUpdateJob@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\ProcessWhatsAppWebhookJob@__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_168",
        "canonical": "App\\Jobs\\PushWhatsAppTemplateJob@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\SyncWhatsAppTemplateStatusJob@__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_169",
        "canonical": "App\\Jobs\\SendInvitationEmail@retryUntil",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\SendReminderJob@retryUntil"
        ],
        "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_170",
        "canonical": "App\\Listeners\\OnSubscriptionCapturedPostInvoice@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Listeners\\OnSubscriptionRefundedCreateCreditNote@__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_171",
        "canonical": "App\\Models\\WebhookEvent@isProcessed",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Models\\ZohoWebhookEvent@isDuplicate"
        ],
        "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_172",
        "canonical": "App\\Policies\\AdaptiveWeightPolicy@create",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\AdaptiveWeightPolicy@viewAny",
          "App\\Policies\\AuditLeakPolicy@create",
          "App\\Policies\\AuditLeakPolicy@viewAny",
          "App\\Policies\\ConversationPolicy@create",
          "App\\Policies\\ConversationPolicy@viewAny",
          "App\\Policies\\EmailTemplatePolicy@viewAny",
          "App\\Policies\\FollowUpPolicy@create",
          "App\\Policies\\FollowUpPolicy@viewAny",
          "App\\Policies\\InvitationPolicy@create",
          "App\\Policies\\InvitationPolicy@viewAny",
          "App\\Policies\\LandlordPolicy@create",
          "App\\Policies\\LandlordPolicy@viewAny",
          "App\\Policies\\LearningSignalPolicy@create",
          "App\\Policies\\LearningSignalPolicy@viewAny",
          "App\\Policies\\MaintenanceSlaPolicy@viewAny",
          "App\\Policies\\MaintenanceTicketPolicy@create",
          "App\\Policies\\MaintenanceTicketPolicy@viewAny",
          "App\\Policies\\OrganizationPolicy@viewAny",
          "App\\Policies\\PaymentPolicy@create",
          "App\\Policies\\PaymentPolicy@viewAny",
          "App\\Policies\\PaymentProofPolicy@create",
          "App\\Policies\\PaymentProofPolicy@viewAny",
          "App\\Policies\\PropertyPolicy@create",
          "App\\Policies\\PropertyPolicy@viewAny",
          "App\\Policies\\ReminderPolicy@manageSettings",
          "App\\Policies\\ReminderTemplatePolicy@create",
          "App\\Policies\\ReminderTemplatePolicy@viewAny",
          "App\\Policies\\SupportTicketPolicy@create",
          "App\\Policies\\SupportTicketPolicy@viewAny",
          "App\\Policies\\TenantPolicy@create",
          "App\\Policies\\TenantPolicy@viewAny",
          "App\\Policies\\TransactionPolicy@create",
          "App\\Policies\\TransactionPolicy@viewAny",
          "App\\Policies\\TransferPolicy@bulkComplete",
          "App\\Policies\\TransferPolicy@viewAny",
          "App\\Policies\\UnitPolicy@viewAny"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 37,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_173",
        "canonical": "App\\Policies\\AdaptiveWeightPolicy@delete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\AdaptiveWeightPolicy@forceDelete",
          "App\\Policies\\AdaptiveWeightPolicy@restore",
          "App\\Policies\\AdaptiveWeightPolicy@update",
          "App\\Policies\\AdaptiveWeightPolicy@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_174",
        "canonical": "App\\Policies\\AuditLeakPolicy@delete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\AuditLeakPolicy@forceDelete",
          "App\\Policies\\AuditLeakPolicy@restore",
          "App\\Policies\\AuditLeakPolicy@update",
          "App\\Policies\\AuditLeakPolicy@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_175",
        "canonical": "App\\Policies\\BookingPolicy@cancel",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\BookingPolicy@convert"
        ],
        "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_176",
        "canonical": "App\\Policies\\ConversationPolicy@delete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\ConversationPolicy@forceDelete",
          "App\\Policies\\ConversationPolicy@restore",
          "App\\Policies\\ConversationPolicy@update",
          "App\\Policies\\ConversationPolicy@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_177",
        "canonical": "App\\Policies\\FilePolicy@create",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\FilePolicy@viewAny",
          "App\\Policies\\RentCyclePolicy@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_178",
        "canonical": "App\\Policies\\FilePolicy@delete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\FilePolicy@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_179",
        "canonical": "App\\Policies\\FollowUpPolicy@cancel",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\FollowUpPolicy@delete",
          "App\\Policies\\FollowUpPolicy@forceDelete",
          "App\\Policies\\FollowUpPolicy@restore",
          "App\\Policies\\FollowUpPolicy@trigger",
          "App\\Policies\\FollowUpPolicy@update",
          "App\\Policies\\FollowUpPolicy@view"
        ],
        "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_180",
        "canonical": "App\\Policies\\InvitationPolicy@delete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\InvitationPolicy@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_181",
        "canonical": "App\\Policies\\LandlordPolicy@delete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\LandlordPolicy@invite",
          "App\\Policies\\LandlordPolicy@update",
          "App\\Policies\\LandlordPolicy@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_182",
        "canonical": "App\\Policies\\LearningSignalPolicy@delete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\LearningSignalPolicy@forceDelete",
          "App\\Policies\\LearningSignalPolicy@restore",
          "App\\Policies\\LearningSignalPolicy@update",
          "App\\Policies\\LearningSignalPolicy@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_183",
        "canonical": "App\\Policies\\LeasePolicy@create",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\LeasePolicy@viewAny"
        ],
        "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_184",
        "canonical": "App\\Policies\\LeasePolicy@delete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\LeasePolicy@update",
          "App\\Policies\\LeasePolicy@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_185",
        "canonical": "App\\Policies\\LeasePolicy@manageContracts",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\LeasePolicy@terminate"
        ],
        "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\\Policies\\MaintenanceSlaPolicy@delete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\MaintenanceSlaPolicy@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_187",
        "canonical": "App\\Policies\\MaintenanceTicketPolicy@assignWorker",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\MaintenanceTicketPolicy@uploadQuote"
        ],
        "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_188",
        "canonical": "App\\Policies\\MaintenanceTicketPolicy@reopen",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\MaintenanceTicketPolicy@reviewSuggestion"
        ],
        "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_189",
        "canonical": "App\\Policies\\MaintenanceTicketPolicy@update",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\MaintenanceTicketPolicy@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_190",
        "canonical": "App\\Policies\\MaintenanceTicketPolicy@viewSlaLogs",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\MaintenanceTicketPolicy@viewSuggestions"
        ],
        "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\\Policies\\PaymentPolicy@delete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\PaymentPolicy@restore",
          "App\\Policies\\PaymentPolicy@update",
          "App\\Policies\\PaymentPolicy@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_192",
        "canonical": "App\\Policies\\PropertyPolicy@delete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\PropertyPolicy@manageDocuments",
          "App\\Policies\\PropertyPolicy@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_193",
        "canonical": "App\\Policies\\ReminderPolicy@cancel",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\ReminderPolicy@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_194",
        "canonical": "App\\Policies\\ReminderTemplatePolicy@update",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\ReminderTemplatePolicy@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_195",
        "canonical": "App\\Policies\\RentCyclePolicy@markOverdue",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\RentCyclePolicy@markPaid",
          "App\\Policies\\RentCyclePolicy@update",
          "App\\Policies\\RentCyclePolicy@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_196",
        "canonical": "App\\Policies\\TenantPolicy@delete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\TenantPolicy@invite",
          "App\\Policies\\TenantPolicy@update",
          "App\\Policies\\TenantPolicy@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_197",
        "canonical": "App\\Policies\\TransactionPolicy@finalize",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\TransactionPolicy@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_198",
        "canonical": "App\\Policies\\TransferPolicy@complete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\TransferPolicy@update",
          "App\\Policies\\TransferPolicy@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_199",
        "canonical": "App\\Policies\\UnitPolicy@assignTenant",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\UnitPolicy@delete",
          "App\\Policies\\UnitPolicy@update",
          "App\\Policies\\UnitPolicy@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_200",
        "canonical": "App\\Repositories\\Outreach\\CampaignAttemptRepository@getFilteredAttempts",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Repositories\\Outreach\\LeadRepository@getFilteredLeads"
        ],
        "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_201",
        "canonical": "App\\Sandbox\\Dialog360\\Controllers\\MessageController@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Sandbox\\Dialog360\\Controllers\\MetricsController@__construct",
          "App\\Sandbox\\Dialog360\\Controllers\\TemplateController@__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_202",
        "canonical": "App\\Sandbox\\Dialog360\\Controllers\\MessageController@store",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Sandbox\\Dialog360\\Controllers\\MessageController@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_203",
        "canonical": "App\\Sandbox\\Dialog360\\Controllers\\MetricsController@connections",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Sandbox\\Dialog360\\Controllers\\MetricsController@messages"
        ],
        "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_204",
        "canonical": "App\\Services\\Billing\\BillingAlertService@checkAndNotifyLowBalance",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\Billing\\BillingAlertService@notifyCreditExhausted"
        ],
        "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_205",
        "canonical": "App\\Services\\Billing\\BillingAmountCalculator@calculateFromBase",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\Tax\\TaxAmountCalculator@calculateFromBase"
        ],
        "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\\Billing\\VatService@determinePolicy",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\SubscriptionBillingService@billNow"
        ],
        "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\\Billing\\ZohoBillingAnalyticsService@detectInvoiceAnomalies",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\Billing\\ZohoBillingAnalyticsService@getVatExposure"
        ],
        "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\\Billing\\ZohoBillingAnalyticsService@getClearanceStatusStats",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\Outreach\\AnalyticsService@getDeliveryRatePerCountry",
          "App\\Services\\Outreach\\AnalyticsService@getDeliveryRatePerTemplate"
        ],
        "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_209",
        "canonical": "App\\Services\\Billing\\ZohoExpenseSyncService@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\Billing\\ZohoPaymentSyncService@__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_210",
        "canonical": "App\\Services\\BillingStateService@applyZohoVoidedOrCancelled",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\Integrations\\BrotionsSalesService@reportDealWon"
        ],
        "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\\BillingStateService@moveToActive",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\BillingStateService@moveToCanceled",
          "App\\Services\\BillingStateService@moveToExpired",
          "App\\Services\\BillingStateService@moveToGrace",
          "App\\Services\\BillingStateService@moveToPastDue",
          "App\\Services\\BillingStateService@moveToPendingPayment",
          "App\\Services\\BillingStateService@moveToSuspended"
        ],
        "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_212",
        "canonical": "App\\Services\\GccCountryService@getCountryName",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\GccCountryService@getCurrencyName"
        ],
        "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\\Imports\\CsvImportExecutor@generateErrorReport",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\Imports\\CsvImportExecutorV2@generateErrorReport"
        ],
        "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\\Imports\\CsvImportSessionManager@deleteSession",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Support\\Chat\\StateRepository@clearSession",
          "App\\Support\\Chat\\StateRepository@releaseLock"
        ],
        "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_215",
        "canonical": "App\\Services\\Imports\\CsvImportSessionManager@markComplete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Support\\Chat\\StateRepository@updateLastMessageTimestamp"
        ],
        "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\\InvoiceService@prepareForZatca",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\ZATCAInvoiceService@prepareForZATCA"
        ],
        "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\\Messaging\\MessageQuotaService@checkDailyLimit",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\Messaging\\MessageQuotaService@checkMonthlyLimit"
        ],
        "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\\OrganizationRegistrationService@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\CrossSellEngine@__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_219",
        "canonical": "App\\Services\\Outreach\\PhoneNumberNormalizer@normalize",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Support\\Services\\UnifiedPhoneNormalizer@normalize"
        ],
        "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\\OutreachAI\\ABTestingService@shouldUseExperimentalWeights",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\ConversationGovernanceService@handleUserSilence"
        ],
        "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\\OutreachAI\\AdaptiveLearningEngine@computeOutcomeWeights",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\StrategyScoreService@assignScoresToMessageTypes",
          "App\\Services\\OutreachAI\\StrategyScoreService@trackMultiStepFunnelPerformance"
        ],
        "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_222",
        "canonical": "App\\Services\\OutreachAI\\AffordabilityScoringService@emit",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\ChurnPredictionEngine@emit",
          "App\\Services\\OutreachAI\\FunnelBehaviorEngine@emit",
          "App\\Services\\OutreachAI\\PlanRecommendationService@emit",
          "App\\Services\\OutreachAI\\PredictionEngine@emit",
          "App\\Services\\OutreachAI\\SentimentRecoveryEngine@analyzeAndRecover"
        ],
        "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_223",
        "canonical": "App\\Services\\OutreachAI\\AgencyConversion\\AgencyConversionDecisionService@generateConversionPrompt",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\RetrievalConstraintService@getConstrainedContext"
        ],
        "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\\OutreachAI\\AgencyConversion\\AgencyDemoScheduler@detectDemoInterest",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\AgencyConversion\\AgencyPricingExplainService@detectPricingIntent",
          "App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionCTA@detectAcceptance"
        ],
        "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_225",
        "canonical": "App\\Services\\OutreachAI\\AppointmentSchedulingService@suggestAppointmentForClosing",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\ContractRenewal\\RenewalIncentiveEngine@calculate",
          "App\\Services\\OutreachAI\\ConversationAttributionEngine@getConversationSummaryAttribution",
          "App\\Services\\OutreachAI\\CustomerSuccess\\MilestoneDetectionService@detect",
          "App\\Services\\OutreachAI\\EscalationIntelligenceEngine@analyzeEscalationNeed",
          "App\\Services\\OutreachAI\\PaymentEngine\\PaymentPatternAnalysisService@analyze",
          "App\\Services\\OutreachAI\\PropertyMatcher\\PropertyRecommendationEngine@recommend",
          "App\\Services\\OutreachAI\\Qualification\\QualificationGapDetector@detectGaps",
          "App\\Services\\OutreachAI\\SubscriptionSalesEngine@generateTrialSequence"
        ],
        "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_226",
        "canonical": "App\\Services\\OutreachAI\\AssetDetectionService@detect",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\AutoReplyDetectionService@detect",
          "App\\Support\\OutreachAI\\Safety\\AbuseDetector@checkInbound",
          "App\\Support\\OutreachAI\\Safety\\SafetyRules@validateInbound",
          "App\\Support\\OutreachAI\\UpsellMessageBuilder@validateSafety"
        ],
        "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_227",
        "canonical": "App\\Services\\OutreachAI\\AudioDownloadService@download",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\MediaDownloadService@download"
        ],
        "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\\OutreachAI\\AutoCorrectionService@clearDirectives",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\ConversationService@closeConversation"
        ],
        "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\\OutreachAI\\ContractRenewal\\RenewalCampaignService@shouldStartCampaign",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\ContractRenewal\\RenewalTimingOptimizer@optimize",
          "App\\Services\\OutreachAI\\RevenueEngine\\RevenueUrgencyModel@predict",
          "App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionEngine@evaluateTrialClosingStrategy",
          "App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionEvaluator@evaluate"
        ],
        "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_230",
        "canonical": "App\\Services\\OutreachAI\\ConversationClusterService@assignCluster",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\Sales\\ValuePropositionEngine@generate"
        ],
        "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_231",
        "canonical": "App\\Services\\OutreachAI\\ConversationGoalService@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\ConversationPlanService@__construct",
          "App\\Services\\OutreachAI\\ConversionDetectionService@__construct",
          "App\\Services\\OutreachAI\\QualificationExtractionService@__construct",
          "App\\Services\\OutreachAI\\ShortTermMemoryService@__construct"
        ],
        "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_232",
        "canonical": "App\\Services\\OutreachAI\\ConversationService@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\ConversationService@recordInboundMessage"
        ],
        "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\\OutreachAI\\CrossSellEngine@detectOpportunities",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\HandoffService@determineHandoffNeeded"
        ],
        "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_234",
        "canonical": "App\\Services\\OutreachAI\\DealClosingEngine@shouldResolveObjectionsBeforeClosing",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\ObjectionResponseService@detectFinalObjectionMoments",
          "App\\Services\\OutreachAI\\PropertyMatcher\\LeadPropertyAffinityService@analyze"
        ],
        "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_235",
        "canonical": "App\\Services\\OutreachAI\\EscalationIntelligenceEngine@shouldDelayEscalation",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\HandoffService@shouldPreventRepeatedEscalation",
          "App\\Services\\OutreachAI\\UserActivityAnalyzer@isActiveUser"
        ],
        "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_236",
        "canonical": "App\\Services\\OutreachAI\\FailureLogger@aiFailed",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\FailureLogger@appointmentFailed",
          "App\\Services\\OutreachAI\\FailureLogger@followUpFailed",
          "App\\Services\\OutreachAI\\FailureLogger@messageFailed"
        ],
        "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_237",
        "canonical": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@analyzeConversationDNA",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\FunnelBehaviorEngine@outputInsights",
          "App\\Services\\OutreachAI\\LeadWarmthEngine@detectSimilarConverters",
          "App\\Services\\OutreachAI\\PredictionEngine@calculateClosingReadinessScore"
        ],
        "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_238",
        "canonical": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@computeTransitionProbabilities",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\StrategyScoreService@rankCTAApproaches"
        ],
        "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\\Services\\OutreachAI\\HandoffService@handleHandoffRequest",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\Orchestration\\SignalDirector@warmupContext",
          "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnAppointmentScheduled",
          "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnDiscountInteraction",
          "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnFunnelStageChange",
          "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnInboundMessage",
          "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnObjectionDetected",
          "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnOutboundMessage",
          "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnPricingInteraction",
          "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnReengagementFired",
          "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnTrialExtended",
          "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnWarmthStageChange",
          "App\\Services\\OutreachAI\\SequenceBuilder@build"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 13,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_240",
        "canonical": "App\\Services\\OutreachAI\\IntentTrajectoryService@shouldPauseTrajectory",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\IntentTrajectoryService@shouldReturnToQualification"
        ],
        "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\\Services\\OutreachAI\\Orchestration\\RollingSummaryService@getRollingSummary",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\PromptExperimentService@getInstruction"
        ],
        "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\\Services\\OutreachAI\\PromptLibrary@getAgencyFollowUpTemplate",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\PromptLibrary@getReengagementTemplate"
        ],
        "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_243",
        "canonical": "App\\Services\\OutreachAI\\PromptLibrary@getTrajectoryStageInstructions",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\PromptLibrary@getTrajectoryTemplate"
        ],
        "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\\Services\\OutreachAI\\Qualification\\IndustrySegmentationEngine@segment",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\SalesAcceleration\\SalesUrgencyEngine@detect"
        ],
        "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_245",
        "canonical": "App\\Services\\OutreachAI\\Qualification\\RealTimeQualificationEngine@emit",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\TrialEngine\\TrialIntentDetector@emit"
        ],
        "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\\Services\\OutreachAI\\Qualification\\RealTimeQualificationEngine@qualify",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\RevenueEngine\\ARMEOrchestrator@processInbound"
        ],
        "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\\Services\\OutreachAI\\Quality\\PersonaAdaptationAgent@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\Quality\\VerificationAgent@__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_248",
        "canonical": "App\\Services\\OutreachAI\\RevenueEngine\\DiscountDecisionEngine@decide",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\Sales\\OfferWindowEngine@detectWindow"
        ],
        "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\\Services\\OutreachAI\\RevenueEngine\\RevenueUrgencyModel@classify",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\Sales\\DemoPitchEngine@generatePitch"
        ],
        "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": "App\\Services\\OutreachAI\\Sales\\FeatureRenderer@shouldHandle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\Sales\\PricingRenderer@shouldHandle"
        ],
        "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": "App\\Services\\OutreachAI\\Sales\\PricingResolver@getCanonicalContract",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\Sales\\PricingResolver@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_252",
        "canonical": "App\\Services\\OutreachAI\\SentimentRecoveryEngine@recordRecoveryAttempt",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Support\\OutreachAI\\Safety\\FrequencyLimiter@recordOutbound"
        ],
        "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_253",
        "canonical": "App\\Services\\OutreachAI\\SignupLinkGenerator@hasBeenClicked",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\UserActivityAnalyzer@isFreeTier"
        ],
        "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_254",
        "canonical": "App\\Services\\OutreachAI\\StateAwareResponseService@getClarificationResponse",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\StateAwareResponseService@getVoiceFailureResponse"
        ],
        "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_255",
        "canonical": "App\\Services\\OutreachAI\\StateAwareResponseService@getFollowUp2",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\StateAwareResponseService@getFollowUpFinal"
        ],
        "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_256",
        "canonical": "App\\Services\\OutreachAI\\TemplateApprovalMonitor@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\TemplatePerformanceAnalyzer@__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_257",
        "canonical": "App\\Services\\OutreachAI\\TemplateUsageTracker@recordConversion",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\TemplateUsageTracker@recordDelivery",
          "App\\Services\\OutreachAI\\TemplateUsageTracker@recordRead",
          "App\\Services\\OutreachAI\\TemplateUsageTracker@recordReply"
        ],
        "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_258",
        "canonical": "App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionNudgeService@generateNudgeMessage",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\TrialEngine\\TrialNudgeEngine@generateNudgeMessage"
        ],
        "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_259",
        "canonical": "App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionNudgeService@scheduleNudges",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OutreachAI\\TrialEngine\\TrialNudgeEngine@scheduleNudges"
        ],
        "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_260",
        "canonical": "App\\Services\\RedirectService@getAuthenticatedUserPath",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\RedirectService@getPostInvitationPath",
          "App\\Services\\RedirectService@getPostRegistrationPath"
        ],
        "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_261",
        "canonical": "App\\Services\\SystemSettings@setAdminWhatsAppProvider",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\SystemSettings@setAppWhatsAppProvider"
        ],
        "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_262",
        "canonical": "App\\Services\\TapPaymentMethodService@getDefaultPaymentMethods",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\TapPaymentMethodService@getPaymentMethodsForCountry"
        ],
        "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_263",
        "canonical": "App\\Services\\WhatsApp\\Dialog360OnboardingService@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\WhatsApp\\Dialog360ProfileService@__construct",
          "App\\Services\\ZeptoMailService@__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_264",
        "canonical": "App\\Services\\WhatsApp\\Dialog360OnboardingService@fetchBusinessProfile",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\WhatsApp\\Dialog360ProfileService@fetchProfile"
        ],
        "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_265",
        "canonical": "App\\Services\\WhatsApp\\Handlers\\HumanReplyHandler@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\WhatsApp\\Routing\\WhatsAppMessageRouter@route"
        ],
        "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_266",
        "canonical": "App\\Services\\WhatsApp\\Normalizer\\Dialog360WhatsAppNormalizer@normalizeError",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\WhatsApp\\Normalizer\\TwilioWhatsAppNormalizer@normalizeError"
        ],
        "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_267",
        "canonical": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@sendDocument",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@sendImage"
        ],
        "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_268",
        "canonical": "App\\Services\\WhatsApp\\SmartReplyService@buildContractMedia",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\WhatsApp\\SmartReplyService@buildInvoiceMessage",
          "App\\Services\\WhatsApp\\SmartReplyService@buildRentReminderMessage",
          "App\\Services\\WhatsApp\\SmartReplyService@buildUnitLocationMessage"
        ],
        "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_269",
        "canonical": "App\\Services\\WhatsApp\\SmartReplyService@buildOutstandingBalanceMessage",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\WhatsApp\\SmartReplyService@buildPaymentLinkMessage"
        ],
        "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_270",
        "canonical": "App\\Services\\WhatsApp\\Templates\\Dialog360TemplateProvider@deleteTemplate",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider@deleteTemplate"
        ],
        "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_271",
        "canonical": "App\\Services\\WhatsApp\\WhatsAppConsentService@recordOptIn",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\WhatsApp\\WhatsAppConsentService@recordOptOut"
        ],
        "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_272",
        "canonical": "App\\Services\\Zoho\\Normalizers\\BahrainAddressNormalizer@normalize",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\Zoho\\Normalizers\\KuwaitAddressNormalizer@normalize",
          "App\\Services\\Zoho\\Normalizers\\OmanAddressNormalizer@normalize",
          "App\\Services\\Zoho\\Normalizers\\QatarAddressNormalizer@normalize",
          "App\\Services\\Zoho\\Normalizers\\SaudiAddressNormalizer@normalize",
          "App\\Services\\Zoho\\Normalizers\\UAEAddressNormalizer@normalize"
        ],
        "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_273",
        "canonical": "App\\Support\\Cache\\CacheManagerProxy@add",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Support\\Cache\\CacheManagerProxy@put"
        ],
        "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_274",
        "canonical": "App\\Support\\Chat\\StateRepository@saveInboundMessage",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Support\\Chat\\StateRepository@saveOutboundMessage"
        ],
        "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_275",
        "canonical": "App\\Support\\FactoryToolkit@fullLeaseCycle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Support\\FactoryToolkit@paymentScenario"
        ],
        "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_276",
        "canonical": "App\\Support\\Logging\\WhatsAppLogger@error",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Support\\Logging\\WhatsAppLogger@info"
        ],
        "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_277",
        "canonical": "App\\Support\\OutreachAI\\AdaptiveWeightStore@decreaseWeight",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Support\\OutreachAI\\AdaptiveWeightStore@increaseWeight"
        ],
        "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_278",
        "canonical": "App\\Support\\OutreachAI\\Knowledge\\KnowledgeGuard@validateReply",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Support\\OutreachAI\\Safety\\SafetySupervisor@checkOutbound"
        ],
        "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_279",
        "canonical": "App\\Support\\OutreachAI\\Knowledge\\PlanPricingRegistry@getPackageDetails",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Support\\OutreachAI\\Knowledge\\PlanPricingRegistry@getPricingSummary"
        ],
        "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_280",
        "canonical": "App\\Support\\OutreachAI\\Persona\\ToneSelector@getToneConstraints",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Support\\OutreachAI\\Persona\\ToneSelector@getToneInstructions"
        ],
        "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_281",
        "canonical": "App\\Support\\Testing\\LogFake@alert",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Support\\Testing\\LogFake@critical",
          "App\\Support\\Testing\\LogFake@debug",
          "App\\Support\\Testing\\LogFake@emergency",
          "App\\Support\\Testing\\LogFake@error",
          "App\\Support\\Testing\\LogFake@info",
          "App\\Support\\Testing\\LogFake@notice",
          "App\\Support\\Testing\\LogFake@warning"
        ],
        "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_282",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "route::routes/api.php::post::/__sate/outreach-ai/drift/analyze::closure",
          "route::routes/api.php::post::/__sate/outreach-ai/misunderstanding-detect::closure",
          "route::routes/api.php::post::/__sate/outreach-ai/optout/detect::closure",
          "route::routes/api.php::post::/__sate/outreach-ai/trajectory/adjust::closure",
          "route::routes/api.php::post::/__tests/outreach-ai/compliance/check::closure",
          "route::routes/api.php::post::/__tests/outreach-ai/knowledge/validate::closure",
          "route::routes/api.php::post::/testing/sate/billing/credit-transactions/create::closure",
          "route::routes/api.php::post::/testing/sate/billing/dunning/evaluate::closure",
          "route::routes/api.php::post::/testing/sate/billing/dunning/policy-resolve::closure",
          "route::routes/api.php::post::/testing/sate/billing/dunning/run-attempt::closure",
          "route::routes/api.php::post::/testing/sate/billing/dunning/start::closure",
          "route::routes/api.php::post::/testing/sate/billing/invoices/generate-subscription::closure",
          "route::routes/api.php::post::/testing/sate/billing/subscription-event::closure",
          "route::routes/api.php::post::/testing/sate/billing/subscription/add-credits::closure",
          "route::routes/api.php::post::/testing/sate/billing/subscription/suspend::closure",
          "route::routes/api.php::post::/testing/sate/billing/subscriptions/auto-charge/run::closure",
          "route::routes/api.php::post::/testing/sate/billing/subscriptions/convert-trial-to-paid::closure",
          "route::routes/api.php::post::/testing/sate/billing/subscriptions/evaluate-post-dunning-failure::closure",
          "route::routes/api.php::post::/testing/sate/billing/subscriptions/move-to-active::closure",
          "route::routes/api.php::post::/testing/sate/billing/subscriptions/transition::closure",
          "route::routes/api.php::post::/testing/sate/billing/tap-settlements/auto-allocate::closure",
          "route::routes/api.php::post::/testing/sate/billing/tap-settlements/match::closure",
          "route::routes/api.php::post::/testing/sate/dunning/resolve-policy::closure",
          "route::routes/api.php::post::/testing/sate/dunning/run-attempt::closure",
          "route::routes/api.php::post::/testing/sate/dunning/start::closure",
          "route::routes/api.php::post::/testing/sate/dunning/transition-active::closure",
          "route::routes/api.php::post::/testing/sate/email-template/apply-placeholders::closure",
          "route::routes/api.php::post::/testing/sate/email-template/get-localized-content::closure",
          "route::routes/api.php::post::/testing/sate/email-template/get-template-for::closure",
          "route::routes/api.php::post::/testing/sate/maintenance/landlord-approval-request/notify::closure",
          "route::routes/api.php::post::/testing/sate/maintenance/landlord-approval-request/twilio::closure",
          "route::routes/api.php::post::/testing/sate/maintenance/tenant-ticket-confirmation/notify::closure",
          "route::routes/api.php::post::/testing/sate/maintenance/tenant-ticket-confirmation/twilio::closure",
          "route::routes/api.php::post::/testing/sate/maintenance/ticket-completed/notify::closure",
          "route::routes/api.php::post::/testing/sate/maintenance/worker-assigned/notify::closure",
          "route::routes/api.php::post::/testing/sate/notifications/over-limit::closure",
          "route::routes/api.php::post::/testing/sate/notifications/payment-failed::closure",
          "route::routes/api.php::post::/testing/sate/notifications/payment-proof-submitted::closure",
          "route::routes/api.php::post::/testing/sate/notifications/security-alert::closure",
          "route::routes/api.php::post::/testing/sate/outreach-ai/ai/generate-reply::closure",
          "route::routes/api.php::post::/testing/sate/outreach-ai/churn-prevention/run::closure",
          "route::routes/api.php::post::/testing/sate/outreach-ai/emotion/adjust-goal::closure",
          "route::routes/api.php::post::/testing/sate/outreach-ai/emotion/update::closure",
          "route::routes/api.php::post::/testing/sate/outreach-ai/generate-reply::closure",
          "route::routes/api.php::post::/testing/sate/outreach-ai/goal/derive::closure",
          "route::routes/api.php::post::/testing/sate/outreach-ai/knowledge/forbidden-phrases/check::closure",
          "route::routes/api.php::post::/testing/sate/outreach-ai/knowledge/forbidden-phrases/sanitize::closure",
          "route::routes/api.php::post::/testing/sate/outreach-ai/optimization/persist-adjustments::closure",
          "route::routes/api.php::post::/testing/sate/outreach-ai/persona/enforce::closure",
          "route::routes/api.php::post::/testing/sate/outreach-ai/persona/structure/restructure::closure",
          "route::routes/api.php::post::/testing/sate/outreach-ai/persona/tone-select::closure",
          "route::routes/api.php::post::/testing/sate/outreach-ai/persona/validate-transparency::closure",
          "route::routes/api.php::post::/testing/sate/outreach-ai/prompt/sentiment-modifier::closure",
          "route::routes/api.php::post::/testing/sate/outreach-ai/question/detect-all::closure",
          "route::routes/api.php::post::/testing/sate/outreach-ai/question/detect::closure",
          "route::routes/api.php::post::/testing/sate/outreach-ai/reengagement/build-message::closure",
          "route::routes/api.php::post::/testing/sate/outreach-ai/reply-evaluate::closure",
          "route::routes/api.php::post::/testing/sate/outreach-ai/revenue/discount-decide::closure",
          "route::routes/api.php::post::/testing/sate/outreach-ai/revenue/process-inbound::closure",
          "route::routes/api.php::post::/testing/sate/outreach-ai/safety/abuse/check-inbound::closure",
          "route::routes/api.php::post::/testing/sate/outreach-ai/safety/abuse/detect-spam-like::closure",
          "route::routes/api.php::post::/testing/sate/outreach-ai/safety/process-outbound::closure",
          "route::routes/api.php::post::/testing/sate/outreach-ai/safety/validate-inbound::closure",
          "route::routes/api.php::post::/testing/sate/outreach-ai/sales-acceleration/accelerate::closure",
          "route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/generate-trial-sequence::closure",
          "route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/maybe-inject-sales-prompt::closure",
          "route::routes/api.php::post::/testing/sate/outreach-ai/sentiment/analyze::closure",
          "route::routes/api.php::post::/testing/sate/outreach-ai/sequence/process-command::closure",
          "route::routes/api.php::post::/testing/sate/outreach-ai/sequence/run-step::closure",
          "route::routes/api.php::post::/testing/sate/outreach-ai/sequence/run-steps::closure",
          "route::routes/api.php::post::/testing/sate/outreach-ai/subscription-nudge/run::closure",
          "route::routes/api.php::post::/testing/sate/outreach-ai/trial/extend::closure",
          "route::routes/api.php::post::/testing/sate/outreach/followups/adjust-timing-by-temperature::closure",
          "route::routes/api.php::post::/testing/sate/subscription/feature-access/determine-access::closure",
          "route::routes/api.php::post::/testing/sate/subscription/feature-access/enforce::closure",
          "route::routes/api.php::post::/testing/sate/subscription/feature-access/feature-display-name::closure",
          "route::routes/api.php::post::/testing/sate/subscription/feature-access/resolve-feature-key::closure",
          "route::routes/api.php::post::/testing/sate/tap/webhook/process-attempt::closure",
          "route::routes/api.php::post::/testing/sate/whatsapp/dialog360/inbound::closure",
          "route::routes/api.php::post::/testing/sate/whatsapp/webhook/process-status::closure",
          "route::routes/api.php::post::/testing/sate/zoho/webhook/process::closure"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 82,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_283",
        "canonical": "route::routes/api.php::get::/health::closure",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "route::routes/api.php::post::/testing/sate/notifications/retry-scheduled::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_284",
        "canonical": "route::routes/api.php::get::/internal/metrics::closure",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "route::routes/outreach.php::post::/outreach/webhook/whatsapp/test::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_285",
        "canonical": "App\\Livewire\\Landing\\ContactForm@__invoke",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\Billing\\ZohoBillingAnalyticsService@__invoke",
          "App\\Support\\OutreachAI\\Knowledge\\ForbiddenPhrasesRegistry@__invoke",
          "App\\Support\\OutreachAI\\Persona\\PersonaConfig@__invoke",
          "App\\Support\\OutreachAI\\Persona\\PersonaConfig@__invoke",
          "App\\Support\\OutreachAI\\Persona\\PersonaConfig@__invoke"
        ],
        "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_286",
        "canonical": "route::routes/api.php::get::/tickets/approve/{token}::closure",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "route::routes/web.php::get::/log::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_287",
        "canonical": "route::routes/api.php::post::/testing/sate/auth/filament/agency-register-batch::closure",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "route::routes/api.php::post::/testing/sate/billing/invoices/generate-credit-topup::closure",
          "route::routes/api.php::post::/testing/sate/billing/invoices/generate-message-package::closure",
          "route::routes/api.php::post::/testing/sate/billing/zoho/analytics/invoice-anomalies::closure",
          "route::routes/api.php::post::/testing/sate/billing/zoho/analytics/monthly-invoice-stats::closure",
          "route::routes/api.php::post::/testing/sate/billing/zoho/analytics/vat-exposure::closure",
          "route::routes/api.php::post::/testing/sate/email-template/is-enabled-for-organization::closure",
          "route::routes/api.php::post::/testing/sate/tap/create-subscription-charge::closure"
        ],
        "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_288",
        "canonical": "route::routes/api.php::post::/testing/sate/billing/tap-webhook/process-twice::closure",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "route::routes/api.php::post::/testing/sate/billing/tap-webhook/process::closure",
          "route::routes/api.php::post::/testing/sate/outreach-ai/sentiment/analyze-and-audit::closure",
          "route::routes/api.php::post::/testing/sate/reminders/cancel-for-rent-cycle::closure"
        ],
        "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_289",
        "canonical": "route::routes/api.php::post::/testing/sate/billing/zoho/sync-invoice::closure",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "route::routes/api.php::post::/testing/sate/billing/zoho/sync-tap-settlement::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_290",
        "canonical": "route::routes/api.php::post::/testing/sate/files/security/scan-for-virus::closure",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "route::routes/api.php::post::/testing/sate/outreach-ai/generate-reply-with-weights::closure",
          "route::routes/api.php::post::/testing/sate/outreach/followups/schedule::closure",
          "route::routes/api.php::post::/testing/sate/whatsapp/session-notes/create::closure",
          "route::routes/api.php::post::/testing/sate/whatsapp/sessions/create::closure"
        ],
        "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_291",
        "canonical": "route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/update-stage::closure",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "route::routes/api.php::post::/testing/sate/outreach/followups/convert-interval-to-timestamp::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_292",
        "canonical": "route::routes/outreach.php::any::/testing/outreach-ai/{path}::closure",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "route::routes/outreach.php::any::/testing/sate/{path}::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_293",
        "canonical": "route::routes/web.php::get::/agencies::closure",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "route::routes/web.php::get::/collection::closure",
          "route::routes/web.php::get::/invoicing::closure",
          "route::routes/web.php::get::/landlords::closure",
          "route::routes/web.php::get::/maintenance::closure",
          "route::routes/web.php::get::/payments::closure",
          "route::routes/web.php::get::/whatsapp::closure"
        ],
        "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_294",
        "canonical": "route::routes/web.php::get::/favicon.ico::closure",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "route::routes/web.php::get::/images/favicon.ico::closure",
          "route::routes/web.php::get::/manifest.json::closure",
          "route::routes/web.php::get::/robots.txt::closure",
          "route::routes/web.php::get::/service-worker.js::closure"
        ],
        "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"
      }
    ],
    "total_clusters": 294,
    "total_surfaces_in_clusters": 1516
  },
  "coverage_gaps": {
    "gaps": [
      {
        "surface_id": "method::app/Actions/Auth/FilamentAgencyRegisterAction.php::App\\Actions\\Auth\\FilamentAgencyRegisterAction::execute",
        "fqmn": "App\\Actions\\Auth\\FilamentAgencyRegisterAction@execute",
        "expected_test_path": "tests/Unit/FilamentAgencyRegisterActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/Billing/AddUnitsToSubscriptionAction.php::App\\Actions\\Billing\\AddUnitsToSubscriptionAction::execute",
        "fqmn": "App\\Actions\\Billing\\AddUnitsToSubscriptionAction@execute",
        "expected_test_path": "tests/Unit/AddUnitsToSubscriptionActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/Billing/CreateCreditTransactionAction.php::App\\Actions\\Billing\\CreateCreditTransactionAction::execute",
        "fqmn": "App\\Actions\\Billing\\CreateCreditTransactionAction@execute",
        "expected_test_path": "tests/Unit/CreateCreditTransactionActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/Billing/CreateProrationChargeAction.php::App\\Actions\\Billing\\CreateProrationChargeAction::execute",
        "fqmn": "App\\Actions\\Billing\\CreateProrationChargeAction@execute",
        "expected_test_path": "tests/Unit/CreateProrationChargeActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/Billing/CreateSoftDeletedOrganizationSubscriptionAction.php::App\\Actions\\Billing\\CreateSoftDeletedOrganizationSubscriptionAction::execute",
        "fqmn": "App\\Actions\\Billing\\CreateSoftDeletedOrganizationSubscriptionAction@execute",
        "expected_test_path": "tests/Unit/CreateSoftDeletedOrganizationSubscriptionActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/Billing/RecordSubscriptionDiscountCodeUsageAction.php::App\\Actions\\Billing\\RecordSubscriptionDiscountCodeUsageAction::execute",
        "fqmn": "App\\Actions\\Billing\\RecordSubscriptionDiscountCodeUsageAction@execute",
        "expected_test_path": "tests/Unit/RecordSubscriptionDiscountCodeUsageActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/EmailTemplates/IsEmailTemplateEnabledForOrganizationAction.php::App\\Actions\\EmailTemplates\\IsEmailTemplateEnabledForOrganizationAction::execute",
        "fqmn": "App\\Actions\\EmailTemplates\\IsEmailTemplateEnabledForOrganizationAction@execute",
        "expected_test_path": "tests/Unit/IsEmailTemplateEnabledForOrganizationActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/EmailTemplates/RenderEmailTemplateAction.php::App\\Actions\\EmailTemplates\\RenderEmailTemplateAction::execute",
        "fqmn": "App\\Actions\\EmailTemplates\\RenderEmailTemplateAction@execute",
        "expected_test_path": "tests/Unit/RenderEmailTemplateActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/EmailTemplates/SendEmailTemplateAction.php::App\\Actions\\EmailTemplates\\SendEmailTemplateAction::execute",
        "fqmn": "App\\Actions\\EmailTemplates\\SendEmailTemplateAction@execute",
        "expected_test_path": "tests/Unit/SendEmailTemplateActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/EmailTemplates/SendEmailTemplateToManyRecipientsAction.php::App\\Actions\\EmailTemplates\\SendEmailTemplateToManyRecipientsAction::execute",
        "fqmn": "App\\Actions\\EmailTemplates\\SendEmailTemplateToManyRecipientsAction@execute",
        "expected_test_path": "tests/Unit/SendEmailTemplateToManyRecipientsActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/EmailTemplates/SendEmailTemplateToUsersUsingTheirLocaleAction.php::App\\Actions\\EmailTemplates\\SendEmailTemplateToUsersUsingTheirLocaleAction::execute",
        "fqmn": "App\\Actions\\EmailTemplates\\SendEmailTemplateToUsersUsingTheirLocaleAction@execute",
        "expected_test_path": "tests/Unit/SendEmailTemplateToUsersUsingTheirLocaleActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/NotificationPreferences/ClearNotificationPreferenceAction.php::App\\Actions\\NotificationPreferences\\ClearNotificationPreferenceAction::run",
        "fqmn": "App\\Actions\\NotificationPreferences\\ClearNotificationPreferenceAction@run",
        "expected_test_path": "tests/Unit/ClearNotificationPreferenceActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/Outreach/CancelFollowUp.php::App\\Actions\\Outreach\\CancelFollowUp::__invoke",
        "fqmn": "App\\Actions\\Outreach\\CancelFollowUp@__invoke",
        "expected_test_path": "tests/Unit/CancelFollowUpTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/Outreach/CheckFollowUpSafetyAction.php::App\\Actions\\Outreach\\CheckFollowUpSafetyAction::execute",
        "fqmn": "App\\Actions\\Outreach\\CheckFollowUpSafetyAction@execute",
        "expected_test_path": "tests/Unit/CheckFollowUpSafetyActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/Outreach/CreateCountryAction.php::App\\Actions\\Outreach\\CreateCountryAction::execute",
        "fqmn": "App\\Actions\\Outreach\\CreateCountryAction@execute",
        "expected_test_path": "tests/Unit/CreateCountryActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/Outreach/CreateFollowUpAction.php::App\\Actions\\Outreach\\CreateFollowUpAction::execute",
        "fqmn": "App\\Actions\\Outreach\\CreateFollowUpAction@execute",
        "expected_test_path": "tests/Unit/CreateFollowUpActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/Outreach/CreateLeadAction.php::App\\Actions\\Outreach\\CreateLeadAction::execute",
        "fqmn": "App\\Actions\\Outreach\\CreateLeadAction@execute",
        "expected_test_path": "tests/Unit/CreateLeadActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/Outreach/ImportLeadsAction.php::App\\Actions\\Outreach\\ImportLeadsAction::execute",
        "fqmn": "App\\Actions\\Outreach\\ImportLeadsAction@execute",
        "expected_test_path": "tests/Unit/ImportLeadsActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/Outreach/TriggerFollowUpNow.php::App\\Actions\\Outreach\\TriggerFollowUpNow::__invoke",
        "fqmn": "App\\Actions\\Outreach\\TriggerFollowUpNow@__invoke",
        "expected_test_path": "tests/Unit/TriggerFollowUpNowTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/OutreachAI/AssignClusterAction.php::App\\Actions\\OutreachAI\\AssignClusterAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\AssignClusterAction@execute",
        "expected_test_path": "tests/Unit/AssignClusterActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/OutreachAI/ComputeAttributionAction.php::App\\Actions\\OutreachAI\\ComputeAttributionAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\ComputeAttributionAction@execute",
        "expected_test_path": "tests/Unit/ComputeAttributionActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/OutreachAI/DecideDiscountAction.php::App\\Actions\\OutreachAI\\DecideDiscountAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\DecideDiscountAction@execute",
        "expected_test_path": "tests/Unit/DecideDiscountActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/OutreachAI/DeriveGoalAction.php::App\\Actions\\OutreachAI\\DeriveGoalAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\DeriveGoalAction@execute",
        "expected_test_path": "tests/Unit/DeriveGoalActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/OutreachAI/DetectBudgetAction.php::App\\Actions\\OutreachAI\\DetectBudgetAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\DetectBudgetAction@execute",
        "expected_test_path": "tests/Unit/DetectBudgetActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/OutreachAI/GenerateAIResponderReplyAction.php::App\\Actions\\OutreachAI\\GenerateAIResponderReplyAction::run",
        "fqmn": "App\\Actions\\OutreachAI\\GenerateAIResponderReplyAction@run",
        "expected_test_path": "tests/Unit/GenerateAIResponderReplyActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/OutreachAI/GenerateReplyOutcomeAction.php::App\\Actions\\OutreachAI\\GenerateReplyOutcomeAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\GenerateReplyOutcomeAction@execute",
        "expected_test_path": "tests/Unit/GenerateReplyOutcomeActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/OutreachAI/GetBudgetStrategyAction.php::App\\Actions\\OutreachAI\\GetBudgetStrategyAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\GetBudgetStrategyAction@execute",
        "expected_test_path": "tests/Unit/GetBudgetStrategyActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/OutreachAI/GetClosingActionNextStepAction.php::App\\Actions\\OutreachAI\\GetClosingActionNextStepAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\GetClosingActionNextStepAction@execute",
        "expected_test_path": "tests/Unit/GetClosingActionNextStepActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/OutreachAI/GetClosingStepAction.php::App\\Actions\\OutreachAI\\GetClosingStepAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\GetClosingStepAction@execute",
        "expected_test_path": "tests/Unit/GetClosingStepActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/OutreachAI/IssueAIDiscountAction.php::App\\Actions\\OutreachAI\\IssueAIDiscountAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\IssueAIDiscountAction@execute",
        "expected_test_path": "tests/Unit/IssueAIDiscountActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/OutreachAI/OutputInsightsAction.php::App\\Actions\\OutreachAI\\OutputInsightsAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\OutputInsightsAction@execute",
        "expected_test_path": "tests/Unit/OutputInsightsActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/OutreachAI/RecommendPlanAction.php::App\\Actions\\OutreachAI\\RecommendPlanAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\RecommendPlanAction@execute",
        "expected_test_path": "tests/Unit/RecommendPlanActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/OutreachAI/RecordFunnelEventAction.php::App\\Actions\\OutreachAI\\RecordFunnelEventAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\RecordFunnelEventAction@execute",
        "expected_test_path": "tests/Unit/RecordFunnelEventActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/OutreachAI/SalesAcceleration/AccelerateSalesAccelerationAction.php::App\\Actions\\OutreachAI\\SalesAcceleration\\AccelerateSalesAccelerationAction::run",
        "fqmn": "App\\Actions\\OutreachAI\\SalesAcceleration\\AccelerateSalesAccelerationAction@run",
        "expected_test_path": "tests/Unit/AccelerateSalesAccelerationActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/OutreachAI/SalesAcceleration/RunQualificationOutcomeAction.php::App\\Actions\\OutreachAI\\SalesAcceleration\\RunQualificationOutcomeAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\SalesAcceleration\\RunQualificationOutcomeAction@execute",
        "expected_test_path": "tests/Unit/RunQualificationOutcomeActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/OutreachAI/SalesAcceleration/RunSalesAccelerationOutcomeAction.php::App\\Actions\\OutreachAI\\SalesAcceleration\\RunSalesAccelerationOutcomeAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\SalesAcceleration\\RunSalesAccelerationOutcomeAction@execute",
        "expected_test_path": "tests/Unit/RunSalesAccelerationOutcomeActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/OutreachAI/ScoreAffordabilityAction.php::App\\Actions\\OutreachAI\\ScoreAffordabilityAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\ScoreAffordabilityAction@execute",
        "expected_test_path": "tests/Unit/ScoreAffordabilityActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/Payments/CreatePaymentDeductionAction.php::App\\Actions\\Payments\\CreatePaymentDeductionAction::execute",
        "fqmn": "App\\Actions\\Payments\\CreatePaymentDeductionAction@execute",
        "expected_test_path": "tests/Unit/CreatePaymentDeductionActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/Payments/RecordPaymentAction.php::App\\Actions\\Payments\\RecordPaymentAction::execute",
        "fqmn": "App\\Actions\\Payments\\RecordPaymentAction@execute",
        "expected_test_path": "tests/Unit/RecordPaymentActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/Properties/CreateProspectShortlistAction.php::App\\Actions\\Properties\\CreateProspectShortlistAction::execute",
        "fqmn": "App\\Actions\\Properties\\CreateProspectShortlistAction@execute",
        "expected_test_path": "tests/Unit/CreateProspectShortlistActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/Properties/CreateProspectShortlistUnitAction.php::App\\Actions\\Properties\\CreateProspectShortlistUnitAction::execute",
        "fqmn": "App\\Actions\\Properties\\CreateProspectShortlistUnitAction@execute",
        "expected_test_path": "tests/Unit/CreateProspectShortlistUnitActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/Properties/IncrementProspectShortlistViewsAction.php::App\\Actions\\Properties\\IncrementProspectShortlistViewsAction::execute",
        "fqmn": "App\\Actions\\Properties\\IncrementProspectShortlistViewsAction@execute",
        "expected_test_path": "tests/Unit/IncrementProspectShortlistViewsActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/Properties/UpdateProspectShortlistAction.php::App\\Actions\\Properties\\UpdateProspectShortlistAction::execute",
        "fqmn": "App\\Actions\\Properties\\UpdateProspectShortlistAction@execute",
        "expected_test_path": "tests/Unit/UpdateProspectShortlistActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/Properties/UpdateProspectShortlistUnitAction.php::App\\Actions\\Properties\\UpdateProspectShortlistUnitAction::execute",
        "fqmn": "App\\Actions\\Properties\\UpdateProspectShortlistUnitAction@execute",
        "expected_test_path": "tests/Unit/UpdateProspectShortlistUnitActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/PushSubscriptions/ManagePushSubscriptionAction.php::App\\Actions\\PushSubscriptions\\ManagePushSubscriptionAction::execute",
        "fqmn": "App\\Actions\\PushSubscriptions\\ManagePushSubscriptionAction@execute",
        "expected_test_path": "tests/Unit/ManagePushSubscriptionActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/SendEmailTemplateAction.php::App\\Actions\\SendEmailTemplateAction::execute",
        "fqmn": "App\\Actions\\SendEmailTemplateAction@execute",
        "expected_test_path": "tests/Unit/SendEmailTemplateActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/Users/RestoreUserWithNewEmailAction.php::App\\Actions\\Users\\RestoreUserWithNewEmailAction::execute",
        "fqmn": "App\\Actions\\Users\\RestoreUserWithNewEmailAction@execute",
        "expected_test_path": "tests/Unit/RestoreUserWithNewEmailActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/Zoho/SyncZohoCustomerAction.php::App\\Actions\\Zoho\\SyncZohoCustomerAction::execute",
        "fqmn": "App\\Actions\\Zoho\\SyncZohoCustomerAction@execute",
        "expected_test_path": "tests/Unit/SyncZohoCustomerActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Actions/Zoho/SyncZohoInvoiceAction.php::App\\Actions\\Zoho\\SyncZohoInvoiceAction::execute",
        "fqmn": "App\\Actions\\Zoho\\SyncZohoInvoiceAction@execute",
        "expected_test_path": "tests/Unit/SyncZohoInvoiceActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/AIBr/Support/Helpers.php::App\\AIBr\\Support\\Helpers::normalizeText",
        "fqmn": "App\\AIBr\\Support\\Helpers@normalizeText",
        "expected_test_path": "tests/Unit/HelpersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/AIBr/Support/TextFilters.php::App\\AIBr\\Support\\TextFilters::sanitize",
        "fqmn": "App\\AIBr\\Support\\TextFilters@sanitize",
        "expected_test_path": "tests/Unit/TextFiltersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/BookingController.php::App\\Api\\Controllers\\BookingController::cancel",
        "fqmn": "App\\Api\\Controllers\\BookingController@cancel",
        "expected_test_path": "tests/Unit/BookingControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/BookingController.php::App\\Api\\Controllers\\BookingController::convert",
        "fqmn": "App\\Api\\Controllers\\BookingController@convert",
        "expected_test_path": "tests/Unit/BookingControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/BookingController.php::App\\Api\\Controllers\\BookingController::store",
        "fqmn": "App\\Api\\Controllers\\BookingController@store",
        "expected_test_path": "tests/Unit/BookingControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/FileController.php::App\\Api\\Controllers\\FileController::bulkUpload",
        "fqmn": "App\\Api\\Controllers\\FileController@bulkUpload",
        "expected_test_path": "tests/Unit/FileControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/FileController.php::App\\Api\\Controllers\\FileController::destroy",
        "fqmn": "App\\Api\\Controllers\\FileController@destroy",
        "expected_test_path": "tests/Unit/FileControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/FileController.php::App\\Api\\Controllers\\FileController::download",
        "fqmn": "App\\Api\\Controllers\\FileController@download",
        "expected_test_path": "tests/Unit/FileControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/FileController.php::App\\Api\\Controllers\\FileController::index",
        "fqmn": "App\\Api\\Controllers\\FileController@index",
        "expected_test_path": "tests/Unit/FileControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/FileController.php::App\\Api\\Controllers\\FileController::show",
        "fqmn": "App\\Api\\Controllers\\FileController@show",
        "expected_test_path": "tests/Unit/FileControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/FileController.php::App\\Api\\Controllers\\FileController::stats",
        "fqmn": "App\\Api\\Controllers\\FileController@stats",
        "expected_test_path": "tests/Unit/FileControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/FileController.php::App\\Api\\Controllers\\FileController::upload",
        "fqmn": "App\\Api\\Controllers\\FileController@upload",
        "expected_test_path": "tests/Unit/FileControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/GatewayController.php::App\\Api\\Controllers\\GatewayController::deliveryStatus",
        "fqmn": "App\\Api\\Controllers\\GatewayController@deliveryStatus",
        "expected_test_path": "tests/Unit/GatewayControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/GatewayController.php::App\\Api\\Controllers\\GatewayController::heartbeat",
        "fqmn": "App\\Api\\Controllers\\GatewayController@heartbeat",
        "expected_test_path": "tests/Unit/GatewayControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/GatewayController.php::App\\Api\\Controllers\\GatewayController::register",
        "fqmn": "App\\Api\\Controllers\\GatewayController@register",
        "expected_test_path": "tests/Unit/GatewayControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/GatewayController.php::App\\Api\\Controllers\\GatewayController::whatsappConfig",
        "fqmn": "App\\Api\\Controllers\\GatewayController@whatsappConfig",
        "expected_test_path": "tests/Unit/GatewayControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/LandlordController.php::App\\Api\\Controllers\\LandlordController::destroy",
        "fqmn": "App\\Api\\Controllers\\LandlordController@destroy",
        "expected_test_path": "tests/Unit/LandlordControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/LandlordController.php::App\\Api\\Controllers\\LandlordController::index",
        "fqmn": "App\\Api\\Controllers\\LandlordController@index",
        "expected_test_path": "tests/Unit/LandlordControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/LandlordController.php::App\\Api\\Controllers\\LandlordController::resendInvitation",
        "fqmn": "App\\Api\\Controllers\\LandlordController@resendInvitation",
        "expected_test_path": "tests/Unit/LandlordControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/LandlordController.php::App\\Api\\Controllers\\LandlordController::show",
        "fqmn": "App\\Api\\Controllers\\LandlordController@show",
        "expected_test_path": "tests/Unit/LandlordControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/LandlordController.php::App\\Api\\Controllers\\LandlordController::stats",
        "fqmn": "App\\Api\\Controllers\\LandlordController@stats",
        "expected_test_path": "tests/Unit/LandlordControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/LandlordController.php::App\\Api\\Controllers\\LandlordController::store",
        "fqmn": "App\\Api\\Controllers\\LandlordController@store",
        "expected_test_path": "tests/Unit/LandlordControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/LandlordController.php::App\\Api\\Controllers\\LandlordController::update",
        "fqmn": "App\\Api\\Controllers\\LandlordController@update",
        "expected_test_path": "tests/Unit/LandlordControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/LandlordDashboardController.php::App\\Api\\Controllers\\LandlordDashboardController::dashboard",
        "fqmn": "App\\Api\\Controllers\\LandlordDashboardController@dashboard",
        "expected_test_path": "tests/Unit/LandlordDashboardControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/LandlordDashboardController.php::App\\Api\\Controllers\\LandlordDashboardController::leases",
        "fqmn": "App\\Api\\Controllers\\LandlordDashboardController@leases",
        "expected_test_path": "tests/Unit/LandlordDashboardControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/LandlordDashboardController.php::App\\Api\\Controllers\\LandlordDashboardController::properties",
        "fqmn": "App\\Api\\Controllers\\LandlordDashboardController@properties",
        "expected_test_path": "tests/Unit/LandlordDashboardControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/LandlordDashboardController.php::App\\Api\\Controllers\\LandlordDashboardController::transfers",
        "fqmn": "App\\Api\\Controllers\\LandlordDashboardController@transfers",
        "expected_test_path": "tests/Unit/LandlordDashboardControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::active",
        "fqmn": "App\\Api\\Controllers\\LeaseController@active",
        "expected_test_path": "tests/Unit/LeaseControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::destroy",
        "fqmn": "App\\Api\\Controllers\\LeaseController@destroy",
        "expected_test_path": "tests/Unit/LeaseControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::expired",
        "fqmn": "App\\Api\\Controllers\\LeaseController@expired",
        "expected_test_path": "tests/Unit/LeaseControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::expiringSoon",
        "fqmn": "App\\Api\\Controllers\\LeaseController@expiringSoon",
        "expected_test_path": "tests/Unit/LeaseControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::index",
        "fqmn": "App\\Api\\Controllers\\LeaseController@index",
        "expected_test_path": "tests/Unit/LeaseControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::show",
        "fqmn": "App\\Api\\Controllers\\LeaseController@show",
        "expected_test_path": "tests/Unit/LeaseControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::stats",
        "fqmn": "App\\Api\\Controllers\\LeaseController@stats",
        "expected_test_path": "tests/Unit/LeaseControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::store",
        "fqmn": "App\\Api\\Controllers\\LeaseController@store",
        "expected_test_path": "tests/Unit/LeaseControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::terminate",
        "fqmn": "App\\Api\\Controllers\\LeaseController@terminate",
        "expected_test_path": "tests/Unit/LeaseControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::upcomingDueDates",
        "fqmn": "App\\Api\\Controllers\\LeaseController@upcomingDueDates",
        "expected_test_path": "tests/Unit/LeaseControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::update",
        "fqmn": "App\\Api\\Controllers\\LeaseController@update",
        "expected_test_path": "tests/Unit/LeaseControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/OrgDeductionSettingsController.php::App\\Api\\Controllers\\OrgDeductionSettingsController::show",
        "fqmn": "App\\Api\\Controllers\\OrgDeductionSettingsController@show",
        "expected_test_path": "tests/Unit/OrgDeductionSettingsControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/OrgDeductionSettingsController.php::App\\Api\\Controllers\\OrgDeductionSettingsController::update",
        "fqmn": "App\\Api\\Controllers\\OrgDeductionSettingsController@update",
        "expected_test_path": "tests/Unit/OrgDeductionSettingsControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/OrgWhatsAppIntegrationController.php::App\\Api\\Controllers\\OrgWhatsAppIntegrationController::show",
        "fqmn": "App\\Api\\Controllers\\OrgWhatsAppIntegrationController@show",
        "expected_test_path": "tests/Unit/OrgWhatsAppIntegrationControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/OrgWhatsAppIntegrationController.php::App\\Api\\Controllers\\OrgWhatsAppIntegrationController::update",
        "fqmn": "App\\Api\\Controllers\\OrgWhatsAppIntegrationController@update",
        "expected_test_path": "tests/Unit/OrgWhatsAppIntegrationControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/PaymentController.php::App\\Api\\Controllers\\PaymentController::createTransfer",
        "fqmn": "App\\Api\\Controllers\\PaymentController@createTransfer",
        "expected_test_path": "tests/Unit/PaymentControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/PaymentController.php::App\\Api\\Controllers\\PaymentController::destroy",
        "fqmn": "App\\Api\\Controllers\\PaymentController@destroy",
        "expected_test_path": "tests/Unit/PaymentControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/PaymentController.php::App\\Api\\Controllers\\PaymentController::index",
        "fqmn": "App\\Api\\Controllers\\PaymentController@index",
        "expected_test_path": "tests/Unit/PaymentControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/PaymentController.php::App\\Api\\Controllers\\PaymentController::needingTransfer",
        "fqmn": "App\\Api\\Controllers\\PaymentController@needingTransfer",
        "expected_test_path": "tests/Unit/PaymentControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/PaymentController.php::App\\Api\\Controllers\\PaymentController::recent",
        "fqmn": "App\\Api\\Controllers\\PaymentController@recent",
        "expected_test_path": "tests/Unit/PaymentControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/PaymentController.php::App\\Api\\Controllers\\PaymentController::show",
        "fqmn": "App\\Api\\Controllers\\PaymentController@show",
        "expected_test_path": "tests/Unit/PaymentControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/PaymentController.php::App\\Api\\Controllers\\PaymentController::stats",
        "fqmn": "App\\Api\\Controllers\\PaymentController@stats",
        "expected_test_path": "tests/Unit/PaymentControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/PaymentController.php::App\\Api\\Controllers\\PaymentController::store",
        "fqmn": "App\\Api\\Controllers\\PaymentController@store",
        "expected_test_path": "tests/Unit/PaymentControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/PaymentController.php::App\\Api\\Controllers\\PaymentController::transfers",
        "fqmn": "App\\Api\\Controllers\\PaymentController@transfers",
        "expected_test_path": "tests/Unit/PaymentControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/PaymentController.php::App\\Api\\Controllers\\PaymentController::update",
        "fqmn": "App\\Api\\Controllers\\PaymentController@update",
        "expected_test_path": "tests/Unit/PaymentControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/PaymentProofController.php::App\\Api\\Controllers\\PaymentProofController::approve",
        "fqmn": "App\\Api\\Controllers\\PaymentProofController@approve",
        "expected_test_path": "tests/Unit/PaymentProofControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/PaymentProofController.php::App\\Api\\Controllers\\PaymentProofController::index",
        "fqmn": "App\\Api\\Controllers\\PaymentProofController@index",
        "expected_test_path": "tests/Unit/PaymentProofControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/PaymentProofController.php::App\\Api\\Controllers\\PaymentProofController::pendingCount",
        "fqmn": "App\\Api\\Controllers\\PaymentProofController@pendingCount",
        "expected_test_path": "tests/Unit/PaymentProofControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/PaymentProofController.php::App\\Api\\Controllers\\PaymentProofController::reject",
        "fqmn": "App\\Api\\Controllers\\PaymentProofController@reject",
        "expected_test_path": "tests/Unit/PaymentProofControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/PaymentProofController.php::App\\Api\\Controllers\\PaymentProofController::requiresReview",
        "fqmn": "App\\Api\\Controllers\\PaymentProofController@requiresReview",
        "expected_test_path": "tests/Unit/PaymentProofControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/PaymentProofController.php::App\\Api\\Controllers\\PaymentProofController::show",
        "fqmn": "App\\Api\\Controllers\\PaymentProofController@show",
        "expected_test_path": "tests/Unit/PaymentProofControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/PaymentProofController.php::App\\Api\\Controllers\\PaymentProofController::store",
        "fqmn": "App\\Api\\Controllers\\PaymentProofController@store",
        "expected_test_path": "tests/Unit/PaymentProofControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/PaymentProofController.php::App\\Api\\Controllers\\PaymentProofController::submit",
        "fqmn": "App\\Api\\Controllers\\PaymentProofController@submit",
        "expected_test_path": "tests/Unit/PaymentProofControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/PropertyController.php::App\\Api\\Controllers\\PropertyController::byType",
        "fqmn": "App\\Api\\Controllers\\PropertyController@byType",
        "expected_test_path": "tests/Unit/PropertyControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/PropertyController.php::App\\Api\\Controllers\\PropertyController::destroy",
        "fqmn": "App\\Api\\Controllers\\PropertyController@destroy",
        "expected_test_path": "tests/Unit/PropertyControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/PropertyController.php::App\\Api\\Controllers\\PropertyController::forLandlord",
        "fqmn": "App\\Api\\Controllers\\PropertyController@forLandlord",
        "expected_test_path": "tests/Unit/PropertyControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/PropertyController.php::App\\Api\\Controllers\\PropertyController::index",
        "fqmn": "App\\Api\\Controllers\\PropertyController@index",
        "expected_test_path": "tests/Unit/PropertyControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/PropertyController.php::App\\Api\\Controllers\\PropertyController::show",
        "fqmn": "App\\Api\\Controllers\\PropertyController@show",
        "expected_test_path": "tests/Unit/PropertyControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/PropertyController.php::App\\Api\\Controllers\\PropertyController::stats",
        "fqmn": "App\\Api\\Controllers\\PropertyController@stats",
        "expected_test_path": "tests/Unit/PropertyControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/PropertyController.php::App\\Api\\Controllers\\PropertyController::store",
        "fqmn": "App\\Api\\Controllers\\PropertyController@store",
        "expected_test_path": "tests/Unit/PropertyControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/PropertyController.php::App\\Api\\Controllers\\PropertyController::update",
        "fqmn": "App\\Api\\Controllers\\PropertyController@update",
        "expected_test_path": "tests/Unit/PropertyControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/ReminderController.php::App\\Api\\Controllers\\ReminderController::__construct",
        "fqmn": "App\\Api\\Controllers\\ReminderController@__construct",
        "expected_test_path": "tests/Unit/ReminderControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/ReminderController.php::App\\Api\\Controllers\\ReminderController::byStatus",
        "fqmn": "App\\Api\\Controllers\\ReminderController@byStatus",
        "expected_test_path": "tests/Unit/ReminderControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/ReminderController.php::App\\Api\\Controllers\\ReminderController::cancel",
        "fqmn": "App\\Api\\Controllers\\ReminderController@cancel",
        "expected_test_path": "tests/Unit/ReminderControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/ReminderController.php::App\\Api\\Controllers\\ReminderController::index",
        "fqmn": "App\\Api\\Controllers\\ReminderController@index",
        "expected_test_path": "tests/Unit/ReminderControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/ReminderController.php::App\\Api\\Controllers\\ReminderController::recent",
        "fqmn": "App\\Api\\Controllers\\ReminderController@recent",
        "expected_test_path": "tests/Unit/ReminderControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/ReminderController.php::App\\Api\\Controllers\\ReminderController::show",
        "fqmn": "App\\Api\\Controllers\\ReminderController@show",
        "expected_test_path": "tests/Unit/ReminderControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/ReminderController.php::App\\Api\\Controllers\\ReminderController::stats",
        "fqmn": "App\\Api\\Controllers\\ReminderController@stats",
        "expected_test_path": "tests/Unit/ReminderControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::bulkUpdate",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@bulkUpdate",
        "expected_test_path": "tests/Unit/RentCycleControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::dueSoon",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@dueSoon",
        "expected_test_path": "tests/Unit/RentCycleControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::dueToday",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@dueToday",
        "expected_test_path": "tests/Unit/RentCycleControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::index",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@index",
        "expected_test_path": "tests/Unit/RentCycleControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::markOverdue",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@markOverdue",
        "expected_test_path": "tests/Unit/RentCycleControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::markPaid",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@markPaid",
        "expected_test_path": "tests/Unit/RentCycleControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::monthlyCollections",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@monthlyCollections",
        "expected_test_path": "tests/Unit/RentCycleControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::overdue",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@overdue",
        "expected_test_path": "tests/Unit/RentCycleControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::pending",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@pending",
        "expected_test_path": "tests/Unit/RentCycleControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::show",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@show",
        "expected_test_path": "tests/Unit/RentCycleControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::stats",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@stats",
        "expected_test_path": "tests/Unit/RentCycleControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::update",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@update",
        "expected_test_path": "tests/Unit/RentCycleControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/ReportController.php::App\\Api\\Controllers\\ReportController::landlordDashboard",
        "fqmn": "App\\Api\\Controllers\\ReportController@landlordDashboard",
        "expected_test_path": "tests/Unit/ReportControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/ReportController.php::App\\Api\\Controllers\\ReportController::monthlyCollections",
        "fqmn": "App\\Api\\Controllers\\ReportController@monthlyCollections",
        "expected_test_path": "tests/Unit/ReportControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/ReportController.php::App\\Api\\Controllers\\ReportController::occupancyTrends",
        "fqmn": "App\\Api\\Controllers\\ReportController@occupancyTrends",
        "expected_test_path": "tests/Unit/ReportControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/ReportController.php::App\\Api\\Controllers\\ReportController::organizationDashboard",
        "fqmn": "App\\Api\\Controllers\\ReportController@organizationDashboard",
        "expected_test_path": "tests/Unit/ReportControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/ReportController.php::App\\Api\\Controllers\\ReportController::tenantDashboard",
        "fqmn": "App\\Api\\Controllers\\ReportController@tenantDashboard",
        "expected_test_path": "tests/Unit/ReportControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/ReportController.php::App\\Api\\Controllers\\ReportController::topProperties",
        "fqmn": "App\\Api\\Controllers\\ReportController@topProperties",
        "expected_test_path": "tests/Unit/ReportControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/ReportExportController.php::App\\Api\\Controllers\\ReportExportController::exportCollectionReport",
        "fqmn": "App\\Api\\Controllers\\ReportExportController@exportCollectionReport",
        "expected_test_path": "tests/Unit/ReportExportControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/ReportExportController.php::App\\Api\\Controllers\\ReportExportController::exportFinancialSummary",
        "fqmn": "App\\Api\\Controllers\\ReportExportController@exportFinancialSummary",
        "expected_test_path": "tests/Unit/ReportExportControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/ReportExportController.php::App\\Api\\Controllers\\ReportExportController::exportOverdueReport",
        "fqmn": "App\\Api\\Controllers\\ReportExportController@exportOverdueReport",
        "expected_test_path": "tests/Unit/ReportExportControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/ReportExportController.php::App\\Api\\Controllers\\ReportExportController::exportRentRoll",
        "fqmn": "App\\Api\\Controllers\\ReportExportController@exportRentRoll",
        "expected_test_path": "tests/Unit/ReportExportControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/SubscriptionController.php::App\\Api\\Controllers\\SubscriptionController::current",
        "fqmn": "App\\Api\\Controllers\\SubscriptionController@current",
        "expected_test_path": "tests/Unit/SubscriptionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/SubscriptionController.php::App\\Api\\Controllers\\SubscriptionController::subscribe",
        "fqmn": "App\\Api\\Controllers\\SubscriptionController@subscribe",
        "expected_test_path": "tests/Unit/SubscriptionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/SubscriptionController.php::App\\Api\\Controllers\\SubscriptionController::tiers",
        "fqmn": "App\\Api\\Controllers\\SubscriptionController@tiers",
        "expected_test_path": "tests/Unit/SubscriptionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/SubscriptionController.php::App\\Api\\Controllers\\SubscriptionController::topUp",
        "fqmn": "App\\Api\\Controllers\\SubscriptionController@topUp",
        "expected_test_path": "tests/Unit/SubscriptionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/SubscriptionController.php::App\\Api\\Controllers\\SubscriptionController::transactions",
        "fqmn": "App\\Api\\Controllers\\SubscriptionController@transactions",
        "expected_test_path": "tests/Unit/SubscriptionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/SubscriptionController.php::App\\Api\\Controllers\\SubscriptionController::usage",
        "fqmn": "App\\Api\\Controllers\\SubscriptionController@usage",
        "expected_test_path": "tests/Unit/SubscriptionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/TenantController.php::App\\Api\\Controllers\\TenantController::destroy",
        "fqmn": "App\\Api\\Controllers\\TenantController@destroy",
        "expected_test_path": "tests/Unit/TenantControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/TenantController.php::App\\Api\\Controllers\\TenantController::index",
        "fqmn": "App\\Api\\Controllers\\TenantController@index",
        "expected_test_path": "tests/Unit/TenantControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/TenantController.php::App\\Api\\Controllers\\TenantController::resendInvitation",
        "fqmn": "App\\Api\\Controllers\\TenantController@resendInvitation",
        "expected_test_path": "tests/Unit/TenantControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/TenantController.php::App\\Api\\Controllers\\TenantController::show",
        "fqmn": "App\\Api\\Controllers\\TenantController@show",
        "expected_test_path": "tests/Unit/TenantControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/TenantController.php::App\\Api\\Controllers\\TenantController::stats",
        "fqmn": "App\\Api\\Controllers\\TenantController@stats",
        "expected_test_path": "tests/Unit/TenantControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/TenantController.php::App\\Api\\Controllers\\TenantController::store",
        "fqmn": "App\\Api\\Controllers\\TenantController@store",
        "expected_test_path": "tests/Unit/TenantControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/TenantController.php::App\\Api\\Controllers\\TenantController::update",
        "fqmn": "App\\Api\\Controllers\\TenantController@update",
        "expected_test_path": "tests/Unit/TenantControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/TenantDashboardController.php::App\\Api\\Controllers\\TenantDashboardController::dashboard",
        "fqmn": "App\\Api\\Controllers\\TenantDashboardController@dashboard",
        "expected_test_path": "tests/Unit/TenantDashboardControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/TenantDashboardController.php::App\\Api\\Controllers\\TenantDashboardController::payments",
        "fqmn": "App\\Api\\Controllers\\TenantDashboardController@payments",
        "expected_test_path": "tests/Unit/TenantDashboardControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/TenantDashboardController.php::App\\Api\\Controllers\\TenantDashboardController::reminders",
        "fqmn": "App\\Api\\Controllers\\TenantDashboardController@reminders",
        "expected_test_path": "tests/Unit/TenantDashboardControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/TenantDashboardController.php::App\\Api\\Controllers\\TenantDashboardController::rentCycles",
        "fqmn": "App\\Api\\Controllers\\TenantDashboardController@rentCycles",
        "expected_test_path": "tests/Unit/TenantDashboardControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/TransferController.php::App\\Api\\Controllers\\TransferController::bulkComplete",
        "fqmn": "App\\Api\\Controllers\\TransferController@bulkComplete",
        "expected_test_path": "tests/Unit/TransferControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/TransferController.php::App\\Api\\Controllers\\TransferController::complete",
        "fqmn": "App\\Api\\Controllers\\TransferController@complete",
        "expected_test_path": "tests/Unit/TransferControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/TransferController.php::App\\Api\\Controllers\\TransferController::fail",
        "fqmn": "App\\Api\\Controllers\\TransferController@fail",
        "expected_test_path": "tests/Unit/TransferControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/TransferController.php::App\\Api\\Controllers\\TransferController::index",
        "fqmn": "App\\Api\\Controllers\\TransferController@index",
        "expected_test_path": "tests/Unit/TransferControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/TransferController.php::App\\Api\\Controllers\\TransferController::pending",
        "fqmn": "App\\Api\\Controllers\\TransferController@pending",
        "expected_test_path": "tests/Unit/TransferControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/TransferController.php::App\\Api\\Controllers\\TransferController::show",
        "fqmn": "App\\Api\\Controllers\\TransferController@show",
        "expected_test_path": "tests/Unit/TransferControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/TransferController.php::App\\Api\\Controllers\\TransferController::stats",
        "fqmn": "App\\Api\\Controllers\\TransferController@stats",
        "expected_test_path": "tests/Unit/TransferControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::assignTenant",
        "fqmn": "App\\Api\\Controllers\\UnitController@assignTenant",
        "expected_test_path": "tests/Unit/UnitControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::destroy",
        "fqmn": "App\\Api\\Controllers\\UnitController@destroy",
        "expected_test_path": "tests/Unit/UnitControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::index",
        "fqmn": "App\\Api\\Controllers\\UnitController@index",
        "expected_test_path": "tests/Unit/UnitControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::occupied",
        "fqmn": "App\\Api\\Controllers\\UnitController@occupied",
        "expected_test_path": "tests/Unit/UnitControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::show",
        "fqmn": "App\\Api\\Controllers\\UnitController@show",
        "expected_test_path": "tests/Unit/UnitControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::stats",
        "fqmn": "App\\Api\\Controllers\\UnitController@stats",
        "expected_test_path": "tests/Unit/UnitControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::store",
        "fqmn": "App\\Api\\Controllers\\UnitController@store",
        "expected_test_path": "tests/Unit/UnitControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::update",
        "fqmn": "App\\Api\\Controllers\\UnitController@update",
        "expected_test_path": "tests/Unit/UnitControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::updateComposition",
        "fqmn": "App\\Api\\Controllers\\UnitController@updateComposition",
        "expected_test_path": "tests/Unit/UnitControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::vacant",
        "fqmn": "App\\Api\\Controllers\\UnitController@vacant",
        "expected_test_path": "tests/Unit/UnitControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::vacate",
        "fqmn": "App\\Api\\Controllers\\UnitController@vacate",
        "expected_test_path": "tests/Unit/UnitControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::validateForSharing",
        "fqmn": "App\\Api\\Controllers\\UnitController@validateForSharing",
        "expected_test_path": "tests/Unit/UnitControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Resources/PropertyResource.php::App\\Api\\Resources\\PropertyResource::toArray",
        "fqmn": "App\\Api\\Resources\\PropertyResource@toArray",
        "expected_test_path": "tests/Unit/PropertyResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Resources/RentCycleResource.php::App\\Api\\Resources\\RentCycleResource::toArray",
        "fqmn": "App\\Api\\Resources\\RentCycleResource@toArray",
        "expected_test_path": "tests/Unit/RentCycleResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Resources/TenantResource.php::App\\Api\\Resources\\TenantResource::toArray",
        "fqmn": "App\\Api\\Resources\\TenantResource@toArray",
        "expected_test_path": "tests/Unit/TenantResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Api/Resources/UnitResource.php::App\\Api\\Resources\\UnitResource::toArray",
        "fqmn": "App\\Api\\Resources\\UnitResource@toArray",
        "expected_test_path": "tests/Unit/UnitResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/AuditCollectionInbox.php::App\\Console\\Commands\\AuditCollectionInbox::handle",
        "fqmn": "App\\Console\\Commands\\AuditCollectionInbox@handle",
        "expected_test_path": "tests/Unit/AuditCollectionInboxTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/AuditSingleActTests.php::App\\Console\\Commands\\AuditSingleActTests::handle",
        "fqmn": "App\\Console\\Commands\\AuditSingleActTests@handle",
        "expected_test_path": "tests/Unit/AuditSingleActTestsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/AutoStartCampaign.php::App\\Console\\Commands\\AutoStartCampaign::handle",
        "fqmn": "App\\Console\\Commands\\AutoStartCampaign@handle",
        "expected_test_path": "tests/Unit/AutoStartCampaignTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/BackfillDunning.php::App\\Console\\Commands\\BackfillDunning::handle",
        "fqmn": "App\\Console\\Commands\\BackfillDunning@handle",
        "expected_test_path": "tests/Unit/BackfillDunningTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/CacheRoutesWithFilament.php::App\\Console\\Commands\\CacheRoutesWithFilament::handle",
        "fqmn": "App\\Console\\Commands\\CacheRoutesWithFilament@handle",
        "expected_test_path": "tests/Unit/CacheRoutesWithFilamentTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ChatbotLoadTestCommand.php::App\\Console\\Commands\\ChatbotLoadTestCommand::handle",
        "fqmn": "App\\Console\\Commands\\ChatbotLoadTestCommand@handle",
        "expected_test_path": "tests/Unit/ChatbotLoadTestCommandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/CleanupDunningData.php::App\\Console\\Commands\\CleanupDunningData::handle",
        "fqmn": "App\\Console\\Commands\\CleanupDunningData@handle",
        "expected_test_path": "tests/Unit/CleanupDunningDataTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/CleanupExpiredInvitations.php::App\\Console\\Commands\\CleanupExpiredInvitations::handle",
        "fqmn": "App\\Console\\Commands\\CleanupExpiredInvitations@handle",
        "expected_test_path": "tests/Unit/CleanupExpiredInvitationsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/CleanupOldVoiceFiles.php::App\\Console\\Commands\\CleanupOldVoiceFiles::handle",
        "fqmn": "App\\Console\\Commands\\CleanupOldVoiceFiles@handle",
        "expected_test_path": "tests/Unit/CleanupOldVoiceFilesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/CleanupOrphanedFiles.php::App\\Console\\Commands\\CleanupOrphanedFiles::handle",
        "fqmn": "App\\Console\\Commands\\CleanupOrphanedFiles@handle",
        "expected_test_path": "tests/Unit/CleanupOrphanedFilesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/CleanupS3Backups.php::App\\Console\\Commands\\CleanupS3Backups::handle",
        "fqmn": "App\\Console\\Commands\\CleanupS3Backups@handle",
        "expected_test_path": "tests/Unit/CleanupS3BackupsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/CleanupWebhookEvents.php::App\\Console\\Commands\\CleanupWebhookEvents::handle",
        "fqmn": "App\\Console\\Commands\\CleanupWebhookEvents@handle",
        "expected_test_path": "tests/Unit/CleanupWebhookEventsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/DebugAiReply.php::App\\Console\\Commands\\DebugAiReply::handle",
        "fqmn": "App\\Console\\Commands\\DebugAiReply@handle",
        "expected_test_path": "tests/Unit/DebugAiReplyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/DetectUpsellSuccessCommand.php::App\\Console\\Commands\\DetectUpsellSuccessCommand::handle",
        "fqmn": "App\\Console\\Commands\\DetectUpsellSuccessCommand@handle",
        "expected_test_path": "tests/Unit/DetectUpsellSuccessCommandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/DevSeedInbound.php::App\\Console\\Commands\\DevSeedInbound::handle",
        "fqmn": "App\\Console\\Commands\\DevSeedInbound@handle",
        "expected_test_path": "tests/Unit/DevSeedInboundTest.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/DispatchScheduledClosingAttempts.php::App\\Console\\Commands\\DispatchScheduledClosingAttempts::handle",
        "fqmn": "App\\Console\\Commands\\DispatchScheduledClosingAttempts@handle",
        "expected_test_path": "tests/Unit/DispatchScheduledClosingAttemptsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/DunningMetrics.php::App\\Console\\Commands\\DunningMetrics::handle",
        "fqmn": "App\\Console\\Commands\\DunningMetrics@handle",
        "expected_test_path": "tests/Unit/DunningMetricsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/EscalateMaintenanceTickets.php::App\\Console\\Commands\\EscalateMaintenanceTickets::handle",
        "fqmn": "App\\Console\\Commands\\EscalateMaintenanceTickets@handle",
        "expected_test_path": "tests/Unit/EscalateMaintenanceTicketsTest.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/FileSystemHealthCheck.php::App\\Console\\Commands\\FileSystemHealthCheck::handle",
        "fqmn": "App\\Console\\Commands\\FileSystemHealthCheck@handle",
        "expected_test_path": "tests/Unit/FileSystemHealthCheckTest.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/GenerateMonthlyReports.php::App\\Console\\Commands\\GenerateMonthlyReports::handle",
        "fqmn": "App\\Console\\Commands\\GenerateMonthlyReports@handle",
        "expected_test_path": "tests/Unit/GenerateMonthlyReportsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/HardDeleteUserAndOrganization.php::App\\Console\\Commands\\HardDeleteUserAndOrganization::handle",
        "fqmn": "App\\Console\\Commands\\HardDeleteUserAndOrganization@handle",
        "expected_test_path": "tests/Unit/HardDeleteUserAndOrganizationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/InitiatePhase2Rollout.php::App\\Console\\Commands\\InitiatePhase2Rollout::handle",
        "fqmn": "App\\Console\\Commands\\InitiatePhase2Rollout@handle",
        "expected_test_path": "tests/Unit/InitiatePhase2RolloutTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/MarkOverdueRentCycles.php::App\\Console\\Commands\\MarkOverdueRentCycles::handle",
        "fqmn": "App\\Console\\Commands\\MarkOverdueRentCycles@handle",
        "expected_test_path": "tests/Unit/MarkOverdueRentCyclesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/MatchTapSettlement.php::App\\Console\\Commands\\MatchTapSettlement::handle",
        "fqmn": "App\\Console\\Commands\\MatchTapSettlement@handle",
        "expected_test_path": "tests/Unit/MatchTapSettlementTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/MissingCoverageCommand.php::App\\Console\\Commands\\MissingCoverageCommand::handle",
        "fqmn": "App\\Console\\Commands\\MissingCoverageCommand@handle",
        "expected_test_path": "tests/Unit/MissingCoverageCommandTest.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/Outreach/AuditDispatchCommand.php::App\\Console\\Commands\\Outreach\\AuditDispatchCommand::handle",
        "fqmn": "App\\Console\\Commands\\Outreach\\AuditDispatchCommand@handle",
        "expected_test_path": "tests/Unit/AuditDispatchCommandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/OutreachAI/ExpireStuckHandoffsCommand.php::App\\Console\\Commands\\OutreachAI\\ExpireStuckHandoffsCommand::handle",
        "fqmn": "App\\Console\\Commands\\OutreachAI\\ExpireStuckHandoffsCommand@handle",
        "expected_test_path": "tests/Unit/ExpireStuckHandoffsCommandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/OutreachAI/ShowFailures.php::App\\Console\\Commands\\OutreachAI\\ShowFailures::handle",
        "fqmn": "App\\Console\\Commands\\OutreachAI\\ShowFailures@handle",
        "expected_test_path": "tests/Unit/ShowFailuresTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/OutreachRegisterTestLead.php::App\\Console\\Commands\\OutreachRegisterTestLead::handle",
        "fqmn": "App\\Console\\Commands\\OutreachRegisterTestLead@handle",
        "expected_test_path": "tests/Unit/OutreachRegisterTestLeadTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/PaymentsHealthCheck.php::App\\Console\\Commands\\PaymentsHealthCheck::handle",
        "fqmn": "App\\Console\\Commands\\PaymentsHealthCheck@handle",
        "expected_test_path": "tests/Unit/PaymentsHealthCheckTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ProcessDripCampaign.php::App\\Console\\Commands\\ProcessDripCampaign::handle",
        "fqmn": "App\\Console\\Commands\\ProcessDripCampaign@handle",
        "expected_test_path": "tests/Unit/ProcessDripCampaignTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ProcessHumanHandoffQueue.php::App\\Console\\Commands\\ProcessHumanHandoffQueue::handle",
        "fqmn": "App\\Console\\Commands\\ProcessHumanHandoffQueue@handle",
        "expected_test_path": "tests/Unit/ProcessHumanHandoffQueueTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ProcessRemindersCommand.php::App\\Console\\Commands\\ProcessRemindersCommand::handle",
        "fqmn": "App\\Console\\Commands\\ProcessRemindersCommand@handle",
        "expected_test_path": "tests/Unit/ProcessRemindersCommandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ProcessSubscriptionNudgesCommand.php::App\\Console\\Commands\\ProcessSubscriptionNudgesCommand::handle",
        "fqmn": "App\\Console\\Commands\\ProcessSubscriptionNudgesCommand@handle",
        "expected_test_path": "tests/Unit/ProcessSubscriptionNudgesCommandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ResetFailedCampaignsToday.php::App\\Console\\Commands\\ResetFailedCampaignsToday::handle",
        "fqmn": "App\\Console\\Commands\\ResetFailedCampaignsToday@handle",
        "expected_test_path": "tests/Unit/ResetFailedCampaignsTodayTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ResetLeadStatus.php::App\\Console\\Commands\\ResetLeadStatus::handle",
        "fqmn": "App\\Console\\Commands\\ResetLeadStatus@handle",
        "expected_test_path": "tests/Unit/ResetLeadStatusTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ResetOutreachMemory.php::App\\Console\\Commands\\ResetOutreachMemory::handle",
        "fqmn": "App\\Console\\Commands\\ResetOutreachMemory@handle",
        "expected_test_path": "tests/Unit/ResetOutreachMemoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/RunAdaptiveLearning.php::App\\Console\\Commands\\RunAdaptiveLearning::handle",
        "fqmn": "App\\Console\\Commands\\RunAdaptiveLearning@handle",
        "expected_test_path": "tests/Unit/RunAdaptiveLearningTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/RunChurnPreventionChecksCommand.php::App\\Console\\Commands\\RunChurnPreventionChecksCommand::handle",
        "fqmn": "App\\Console\\Commands\\RunChurnPreventionChecksCommand@handle",
        "expected_test_path": "tests/Unit/RunChurnPreventionChecksCommandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/RunFollowUpsCommand.php::App\\Console\\Commands\\RunFollowUpsCommand::handle",
        "fqmn": "App\\Console\\Commands\\RunFollowUpsCommand@handle",
        "expected_test_path": "tests/Unit/RunFollowUpsCommandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/RunPortalInactivityChecksCommand.php::App\\Console\\Commands\\RunPortalInactivityChecksCommand::handle",
        "fqmn": "App\\Console\\Commands\\RunPortalInactivityChecksCommand@handle",
        "expected_test_path": "tests/Unit/RunPortalInactivityChecksCommandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/RunScheduledAgencyBackups.php::App\\Console\\Commands\\RunScheduledAgencyBackups::handle",
        "fqmn": "App\\Console\\Commands\\RunScheduledAgencyBackups@handle",
        "expected_test_path": "tests/Unit/RunScheduledAgencyBackupsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ScanForReengagementsCommand.php::App\\Console\\Commands\\ScanForReengagementsCommand::handle",
        "fqmn": "App\\Console\\Commands\\ScanForReengagementsCommand@handle",
        "expected_test_path": "tests/Unit/ScanForReengagementsCommandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ScanScheduledAppointmentsCommand.php::App\\Console\\Commands\\ScanScheduledAppointmentsCommand::handle",
        "fqmn": "App\\Console\\Commands\\ScanScheduledAppointmentsCommand@handle",
        "expected_test_path": "tests/Unit/ScanScheduledAppointmentsCommandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ScheduleOptimizationCycleCommand.php::App\\Console\\Commands\\ScheduleOptimizationCycleCommand::handle",
        "fqmn": "App\\Console\\Commands\\ScheduleOptimizationCycleCommand@handle",
        "expected_test_path": "tests/Unit/ScheduleOptimizationCycleCommandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ScheduleUpcomingReminders.php::App\\Console\\Commands\\ScheduleUpcomingReminders::handle",
        "fqmn": "App\\Console\\Commands\\ScheduleUpcomingReminders@handle",
        "expected_test_path": "tests/Unit/ScheduleUpcomingRemindersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/SecurityScanCommand.php::App\\Console\\Commands\\SecurityScanCommand::handle",
        "fqmn": "App\\Console\\Commands\\SecurityScanCommand@handle",
        "expected_test_path": "tests/Unit/SecurityScanCommandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/SendInvitationReminders.php::App\\Console\\Commands\\SendInvitationReminders::handle",
        "fqmn": "App\\Console\\Commands\\SendInvitationReminders@handle",
        "expected_test_path": "tests/Unit/SendInvitationRemindersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/SetConversationMode.php::App\\Console\\Commands\\SetConversationMode::handle",
        "fqmn": "App\\Console\\Commands\\SetConversationMode@handle",
        "expected_test_path": "tests/Unit/SetConversationModeTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ShowOutreachTranscript.php::App\\Console\\Commands\\ShowOutreachTranscript::handle",
        "fqmn": "App\\Console\\Commands\\ShowOutreachTranscript@handle",
        "expected_test_path": "tests/Unit/ShowOutreachTranscriptTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/SimulateOutreachConversation.php::App\\Console\\Commands\\SimulateOutreachConversation::handle",
        "fqmn": "App\\Console\\Commands\\SimulateOutreachConversation@handle",
        "expected_test_path": "tests/Unit/SimulateOutreachConversationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/SubscriptionConsistencyCheckCommand.php::App\\Console\\Commands\\SubscriptionConsistencyCheckCommand::handle",
        "fqmn": "App\\Console\\Commands\\SubscriptionConsistencyCheckCommand@handle",
        "expected_test_path": "tests/Unit/SubscriptionConsistencyCheckCommandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/SyncInvoicesToBrotions.php::App\\Console\\Commands\\SyncInvoicesToBrotions::handle",
        "fqmn": "App\\Console\\Commands\\SyncInvoicesToBrotions@handle",
        "expected_test_path": "tests/Unit/SyncInvoicesToBrotionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/SyncMarketingTemplates.php::App\\Console\\Commands\\SyncMarketingTemplates::handle",
        "fqmn": "App\\Console\\Commands\\SyncMarketingTemplates@handle",
        "expected_test_path": "tests/Unit/SyncMarketingTemplatesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/SyncWhatsAppTemplates.php::App\\Console\\Commands\\SyncWhatsAppTemplates::handle",
        "fqmn": "App\\Console\\Commands\\SyncWhatsAppTemplates@handle",
        "expected_test_path": "tests/Unit/SyncWhatsAppTemplatesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/TestIpinfo.php::App\\Console\\Commands\\TestIpinfo::handle",
        "fqmn": "App\\Console\\Commands\\TestIpinfo@handle",
        "expected_test_path": "tests/Unit/TestIpinfoTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/TestQueuesCommand.php::App\\Console\\Commands\\TestQueuesCommand::handle",
        "fqmn": "App\\Console\\Commands\\TestQueuesCommand@handle",
        "expected_test_path": "tests/Unit/TestQueuesCommandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/TestZohoDirectInvoice.php::App\\Console\\Commands\\TestZohoDirectInvoice::handle",
        "fqmn": "App\\Console\\Commands\\TestZohoDirectInvoice@handle",
        "expected_test_path": "tests/Unit/TestZohoDirectInvoiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/UpdateTemplateStatsCommand.php::App\\Console\\Commands\\UpdateTemplateStatsCommand::handle",
        "fqmn": "App\\Console\\Commands\\UpdateTemplateStatsCommand@handle",
        "expected_test_path": "tests/Unit/UpdateTemplateStatsCommandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/VerifyNavigationOrder.php::App\\Console\\Commands\\VerifyNavigationOrder::handle",
        "fqmn": "App\\Console\\Commands\\VerifyNavigationOrder@handle",
        "expected_test_path": "tests/Unit/VerifyNavigationOrderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ViewABTestResultsCommand.php::App\\Console\\Commands\\ViewABTestResultsCommand::handle",
        "fqmn": "App\\Console\\Commands\\ViewABTestResultsCommand@handle",
        "expected_test_path": "tests/Unit/ViewABTestResultsCommandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ViewPredictionExplanationCommand.php::App\\Console\\Commands\\ViewPredictionExplanationCommand::handle",
        "fqmn": "App\\Console\\Commands\\ViewPredictionExplanationCommand@handle",
        "expected_test_path": "tests/Unit/ViewPredictionExplanationCommandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ViewPredictionStatsCommand.php::App\\Console\\Commands\\ViewPredictionStatsCommand::handle",
        "fqmn": "App\\Console\\Commands\\ViewPredictionStatsCommand@handle",
        "expected_test_path": "tests/Unit/ViewPredictionStatsCommandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/WhatsAppAuthCheck.php::App\\Console\\Commands\\WhatsAppAuthCheck::handle",
        "fqmn": "App\\Console\\Commands\\WhatsAppAuthCheck@handle",
        "expected_test_path": "tests/Unit/WhatsAppAuthCheckTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/WhatsAppListContent.php::App\\Console\\Commands\\WhatsAppListContent::handle",
        "fqmn": "App\\Console\\Commands\\WhatsAppListContent@handle",
        "expected_test_path": "tests/Unit/WhatsAppListContentTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/WhatsAppProvision.php::App\\Console\\Commands\\WhatsAppProvision::handle",
        "fqmn": "App\\Console\\Commands\\WhatsAppProvision@handle",
        "expected_test_path": "tests/Unit/WhatsAppProvisionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/WhatsAppPushTemplates.php::App\\Console\\Commands\\WhatsAppPushTemplates::handle",
        "fqmn": "App\\Console\\Commands\\WhatsAppPushTemplates@handle",
        "expected_test_path": "tests/Unit/WhatsAppPushTemplatesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/WhatsAppStatus.php::App\\Console\\Commands\\WhatsAppStatus::handle",
        "fqmn": "App\\Console\\Commands\\WhatsAppStatus@handle",
        "expected_test_path": "tests/Unit/WhatsAppStatusTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/WhatsAppTemplatePush.php::App\\Console\\Commands\\WhatsAppTemplatePush::handle",
        "fqmn": "App\\Console\\Commands\\WhatsAppTemplatePush@handle",
        "expected_test_path": "tests/Unit/WhatsAppTemplatePushTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/WhatsAppTemplatesList.php::App\\Console\\Commands\\WhatsAppTemplatesList::handle",
        "fqmn": "App\\Console\\Commands\\WhatsAppTemplatesList@handle",
        "expected_test_path": "tests/Unit/WhatsAppTemplatesListTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/WhatsAppTemplatesSync.php::App\\Console\\Commands\\WhatsAppTemplatesSync::handle",
        "fqmn": "App\\Console\\Commands\\WhatsAppTemplatesSync@handle",
        "expected_test_path": "tests/Unit/WhatsAppTemplatesSyncTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/WhatsAppTest360Dialog.php::App\\Console\\Commands\\WhatsAppTest360Dialog::handle",
        "fqmn": "App\\Console\\Commands\\WhatsAppTest360Dialog@handle",
        "expected_test_path": "tests/Unit/WhatsAppTest360DialogTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/WhatsAppTestSend.php::App\\Console\\Commands\\WhatsAppTestSend::handle",
        "fqmn": "App\\Console\\Commands\\WhatsAppTestSend@handle",
        "expected_test_path": "tests/Unit/WhatsAppTestSendTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/WhatsAppTestTemplate.php::App\\Console\\Commands\\WhatsAppTestTemplate::handle",
        "fqmn": "App\\Console\\Commands\\WhatsAppTestTemplate@handle",
        "expected_test_path": "tests/Unit/WhatsAppTestTemplateTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ZohoFindOrphans.php::App\\Console\\Commands\\ZohoFindOrphans::handle",
        "fqmn": "App\\Console\\Commands\\ZohoFindOrphans@handle",
        "expected_test_path": "tests/Unit/ZohoFindOrphansTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ZohoReconAll.php::App\\Console\\Commands\\ZohoReconAll::handle",
        "fqmn": "App\\Console\\Commands\\ZohoReconAll@handle",
        "expected_test_path": "tests/Unit/ZohoReconAllTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ZohoReconInvoice.php::App\\Console\\Commands\\ZohoReconInvoice::handle",
        "fqmn": "App\\Console\\Commands\\ZohoReconInvoice@handle",
        "expected_test_path": "tests/Unit/ZohoReconInvoiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::canCreate",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@canCreate",
        "expected_test_path": "tests/Unit/AgencyUserResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::canView",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@canView",
        "expected_test_path": "tests/Unit/AgencyUserResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::canViewAny",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@canViewAny",
        "expected_test_path": "tests/Unit/AgencyUserResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::getHeading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "expected_test_path": "tests/Unit/AgencyUserResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::getLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getLabel",
        "expected_test_path": "tests/Unit/AgencyUserResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getModelLabel",
        "expected_test_path": "tests/Unit/AgencyUserResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::getNavigationGroup",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getNavigationGroup",
        "expected_test_path": "tests/Unit/AgencyUserResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/AgencyUserResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getTitle",
        "expected_test_path": "tests/Unit/AgencyUserResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::mutateFormDataBeforeCreate",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@mutateFormDataBeforeCreate",
        "expected_test_path": "tests/Unit/AgencyUserResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::organizationHasSeatCapacity",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@organizationHasSeatCapacity",
        "expected_test_path": "tests/Unit/AgencyUserResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/AgencyUserResource/Pages/CreateAgencyUser.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\CreateAgencyUser::getHeading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\CreateAgencyUser@getHeading",
        "expected_test_path": "tests/Unit/CreateAgencyUserTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/AgencyUserResource/Pages/CreateAgencyUser.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\CreateAgencyUser::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\CreateAgencyUser@getTitle",
        "expected_test_path": "tests/Unit/CreateAgencyUserTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/AgencyUserResource/Pages/EditAgencyUser.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\EditAgencyUser::getHeading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\EditAgencyUser@getHeading",
        "expected_test_path": "tests/Unit/EditAgencyUserTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/AgencyUserResource/Pages/EditAgencyUser.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\EditAgencyUser::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\EditAgencyUser@getTitle",
        "expected_test_path": "tests/Unit/EditAgencyUserTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/AgencyUserResource/Pages/ViewAgencyUser.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\ViewAgencyUser::getHeading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\ViewAgencyUser@getHeading",
        "expected_test_path": "tests/Unit/ViewAgencyUserTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/AgencyUserResource/Pages/ViewAgencyUser.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\ViewAgencyUser::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\ViewAgencyUser@getTitle",
        "expected_test_path": "tests/Unit/ViewAgencyUserTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/FileResource.php::App\\Domains\\Agencies\\Resources\\FileResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\FileResource@form",
        "expected_test_path": "tests/Unit/FileResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/FileResource.php::App\\Domains\\Agencies\\Resources\\FileResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\FileResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/FileResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/FileResource.php::App\\Domains\\Agencies\\Resources\\FileResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\FileResource@getModelLabel",
        "expected_test_path": "tests/Unit/FileResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/FileResource.php::App\\Domains\\Agencies\\Resources\\FileResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\FileResource@getNavigationLabel",
        "expected_test_path": "tests/Unit/FileResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/FileResource.php::App\\Domains\\Agencies\\Resources\\FileResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "expected_test_path": "tests/Unit/FileResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/FileResource.php::App\\Domains\\Agencies\\Resources\\FileResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\FileResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/FileResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/FileResource.php::App\\Domains\\Agencies\\Resources\\FileResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\FileResource@table",
        "expected_test_path": "tests/Unit/FileResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LabourResource.php::App\\Domains\\Agencies\\Resources\\LabourResource::mutateFormDataBeforeCreate",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LabourResource@mutateFormDataBeforeCreate",
        "expected_test_path": "tests/Unit/LabourResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LabourResource/Pages/CreateLabour.php::App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\CreateLabour::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\CreateLabour@getTitle",
        "expected_test_path": "tests/Unit/CreateLabourTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LabourResource/Pages/EditLabour.php::App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\EditLabour::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\EditLabour@getTitle",
        "expected_test_path": "tests/Unit/EditLabourTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LabourResource/Pages/ListLabours.php::App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ListLabours::getBreadcrumb",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ListLabours@getBreadcrumb",
        "expected_test_path": "tests/Unit/ListLaboursTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LabourResource/Pages/ListLabours.php::App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ListLabours::getHeading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ListLabours@getHeading",
        "expected_test_path": "tests/Unit/ListLaboursTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LabourResource/Pages/ListLabours.php::App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ListLabours::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ListLabours@getTitle",
        "expected_test_path": "tests/Unit/ListLaboursTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LabourResource/Pages/ViewLabour.php::App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ViewLabour::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ViewLabour@getTitle",
        "expected_test_path": "tests/Unit/ViewLabourTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LandlordResource.php::App\\Domains\\Agencies\\Resources\\LandlordResource::canCreate",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource@canCreate",
        "expected_test_path": "tests/Unit/LandlordResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LandlordResource.php::App\\Domains\\Agencies\\Resources\\LandlordResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource@form",
        "expected_test_path": "tests/Unit/LandlordResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LandlordResource.php::App\\Domains\\Agencies\\Resources\\LandlordResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/LandlordResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LandlordResource.php::App\\Domains\\Agencies\\Resources\\LandlordResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource@getModelLabel",
        "expected_test_path": "tests/Unit/LandlordResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LandlordResource.php::App\\Domains\\Agencies\\Resources\\LandlordResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource@getNavigationLabel",
        "expected_test_path": "tests/Unit/LandlordResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LandlordResource.php::App\\Domains\\Agencies\\Resources\\LandlordResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource@getPages",
        "expected_test_path": "tests/Unit/LandlordResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LandlordResource.php::App\\Domains\\Agencies\\Resources\\LandlordResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/LandlordResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LandlordResource.php::App\\Domains\\Agencies\\Resources\\LandlordResource::getRelations",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource@getRelations",
        "expected_test_path": "tests/Unit/LandlordResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LandlordResource/Pages/CreateLandlord.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\CreateLandlord::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\CreateLandlord@getTitle",
        "expected_test_path": "tests/Unit/CreateLandlordTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LandlordResource/Pages/EditLandlord.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\EditLandlord::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\EditLandlord@getTitle",
        "expected_test_path": "tests/Unit/EditLandlordTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LandlordResource/Pages/ListLandlords.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ListLandlords::getBreadcrumb",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ListLandlords@getBreadcrumb",
        "expected_test_path": "tests/Unit/ListLandlordsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LandlordResource/Pages/ListLandlords.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ListLandlords::getHeading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ListLandlords@getHeading",
        "expected_test_path": "tests/Unit/ListLandlordsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LandlordResource/Pages/ListLandlords.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ListLandlords::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ListLandlords@getTitle",
        "expected_test_path": "tests/Unit/ListLandlordsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LandlordResource/Pages/ViewLandlord.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ViewLandlord::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ViewLandlord@getTitle",
        "expected_test_path": "tests/Unit/ViewLandlordTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LandlordResource/RelationManagers/DocumentsRelationManager.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@form",
        "expected_test_path": "tests/Unit/DocumentsRelationManagerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LandlordResource/RelationManagers/DocumentsRelationManager.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@getTitle",
        "expected_test_path": "tests/Unit/DocumentsRelationManagerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LandlordResource/RelationManagers/DocumentsRelationManager.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@table",
        "expected_test_path": "tests/Unit/DocumentsRelationManagerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LandlordResource/RelationManagers/PropertiesRelationManager.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@getTitle",
        "expected_test_path": "tests/Unit/PropertiesRelationManagerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LandlordResource/RelationManagers/PropertiesRelationManager.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@table",
        "expected_test_path": "tests/Unit/PropertiesRelationManagerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LeaseCycleResource.php::App\\Domains\\Agencies\\Resources\\LeaseCycleResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@form",
        "expected_test_path": "tests/Unit/LeaseCycleResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LeaseCycleResource.php::App\\Domains\\Agencies\\Resources\\LeaseCycleResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/LeaseCycleResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LeaseCycleResource.php::App\\Domains\\Agencies\\Resources\\LeaseCycleResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@getModelLabel",
        "expected_test_path": "tests/Unit/LeaseCycleResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LeaseCycleResource.php::App\\Domains\\Agencies\\Resources\\LeaseCycleResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@getPages",
        "expected_test_path": "tests/Unit/LeaseCycleResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LeaseCycleResource.php::App\\Domains\\Agencies\\Resources\\LeaseCycleResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/LeaseCycleResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LeaseCycleResource.php::App\\Domains\\Agencies\\Resources\\LeaseCycleResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation",
        "expected_test_path": "tests/Unit/LeaseCycleResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LeaseCycleResource.php::App\\Domains\\Agencies\\Resources\\LeaseCycleResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@table",
        "expected_test_path": "tests/Unit/LeaseCycleResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LeaseResource.php::App\\Domains\\Agencies\\Resources\\LeaseResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource@form",
        "expected_test_path": "tests/Unit/LeaseResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LeaseResource.php::App\\Domains\\Agencies\\Resources\\LeaseResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/LeaseResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LeaseResource.php::App\\Domains\\Agencies\\Resources\\LeaseResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource@getModelLabel",
        "expected_test_path": "tests/Unit/LeaseResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LeaseResource.php::App\\Domains\\Agencies\\Resources\\LeaseResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource@getNavigationLabel",
        "expected_test_path": "tests/Unit/LeaseResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LeaseResource.php::App\\Domains\\Agencies\\Resources\\LeaseResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource@getPages",
        "expected_test_path": "tests/Unit/LeaseResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LeaseResource.php::App\\Domains\\Agencies\\Resources\\LeaseResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/LeaseResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LeaseResource.php::App\\Domains\\Agencies\\Resources\\LeaseResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource@table",
        "expected_test_path": "tests/Unit/LeaseResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LeaseResource/Pages/Bookings.php::App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings::canAccess",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings@canAccess",
        "expected_test_path": "tests/Unit/BookingsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LeaseResource/Pages/Bookings.php::App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings@getNavigationLabel",
        "expected_test_path": "tests/Unit/BookingsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LeaseResource/Pages/Bookings.php::App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings@getTitle",
        "expected_test_path": "tests/Unit/BookingsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LeaseResource/Pages/Bookings.php::App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings@table",
        "expected_test_path": "tests/Unit/BookingsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LeaseResource/Pages/CreateLease.php::App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\CreateLease::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\CreateLease@getTitle",
        "expected_test_path": "tests/Unit/CreateLeaseTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LeaseResource/Pages/EditLease.php::App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\EditLease::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\EditLease@getTitle",
        "expected_test_path": "tests/Unit/EditLeaseTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LeaseResource/Pages/ListLeases.php::App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ListLeases::getSubheading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ListLeases@getSubheading",
        "expected_test_path": "tests/Unit/ListLeasesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LeaseResource/Pages/ListLeases.php::App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ListLeases::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ListLeases@getTitle",
        "expected_test_path": "tests/Unit/ListLeasesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LeaseResource/Pages/ViewLease.php::App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ViewLease::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ViewLease@getTitle",
        "expected_test_path": "tests/Unit/ViewLeaseTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/LeaseResource/Pages/ViewLease.php::App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ViewLease::infolist",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ViewLease@infolist",
        "expected_test_path": "tests/Unit/ViewLeaseTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/MaintenanceSlaResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@form",
        "expected_test_path": "tests/Unit/MaintenanceSlaResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/MaintenanceSlaResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/MaintenanceSlaResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/MaintenanceSlaResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@getModelLabel",
        "expected_test_path": "tests/Unit/MaintenanceSlaResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/MaintenanceSlaResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@getNavigationLabel",
        "expected_test_path": "tests/Unit/MaintenanceSlaResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/MaintenanceSlaResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@getPages",
        "expected_test_path": "tests/Unit/MaintenanceSlaResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/MaintenanceSlaResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/MaintenanceSlaResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/MaintenanceSlaResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource::infolist",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@infolist",
        "expected_test_path": "tests/Unit/MaintenanceSlaResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/MaintenanceSlaResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation",
        "expected_test_path": "tests/Unit/MaintenanceSlaResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/MaintenanceSlaResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@table",
        "expected_test_path": "tests/Unit/MaintenanceSlaResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/MaintenanceSlaResource/Pages/CreateMaintenanceSla.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource\\Pages\\CreateMaintenanceSla::getHeading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource\\Pages\\CreateMaintenanceSla@getHeading",
        "expected_test_path": "tests/Unit/CreateMaintenanceSlaTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/MaintenanceSlaResource/Pages/CreateMaintenanceSla.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource\\Pages\\CreateMaintenanceSla::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource\\Pages\\CreateMaintenanceSla@getTitle",
        "expected_test_path": "tests/Unit/CreateMaintenanceSlaTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/MaintenanceSuggestionResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@form",
        "expected_test_path": "tests/Unit/MaintenanceSuggestionResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/MaintenanceSuggestionResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/MaintenanceSuggestionResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/MaintenanceSuggestionResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@getModelLabel",
        "expected_test_path": "tests/Unit/MaintenanceSuggestionResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/MaintenanceSuggestionResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@getNavigationLabel",
        "expected_test_path": "tests/Unit/MaintenanceSuggestionResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/MaintenanceSuggestionResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@getPages",
        "expected_test_path": "tests/Unit/MaintenanceSuggestionResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/MaintenanceSuggestionResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/MaintenanceSuggestionResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/MaintenanceSuggestionResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@shouldRegisterNavigation",
        "expected_test_path": "tests/Unit/MaintenanceSuggestionResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/MaintenanceSuggestionResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@table",
        "expected_test_path": "tests/Unit/MaintenanceSuggestionResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/MaintenanceTicketResource/Actions/ExportTicketsAction.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\Actions\\ExportTicketsAction::getDefaultName",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\Actions\\ExportTicketsAction@getDefaultName",
        "expected_test_path": "tests/Unit/ExportTicketsActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/MaintenanceTicketResource/Pages/CreateMaintenanceTicket.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\Pages\\CreateMaintenanceTicket::getHeading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\Pages\\CreateMaintenanceTicket@getHeading",
        "expected_test_path": "tests/Unit/CreateMaintenanceTicketTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/MaintenanceTicketResource/Pages/CreateMaintenanceTicket.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\Pages\\CreateMaintenanceTicket::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\Pages\\CreateMaintenanceTicket@getTitle",
        "expected_test_path": "tests/Unit/CreateMaintenanceTicketTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/MaintenanceTicketResource/RelationManagers/CommentsRelationManager.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\CommentsRelationManager::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\CommentsRelationManager@form",
        "expected_test_path": "tests/Unit/CommentsRelationManagerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/MaintenanceTicketResource/RelationManagers/CommentsRelationManager.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\CommentsRelationManager::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\CommentsRelationManager@table",
        "expected_test_path": "tests/Unit/CommentsRelationManagerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/MaintenanceTicketResource/RelationManagers/MediaRelationManager.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\MediaRelationManager::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\MediaRelationManager@form",
        "expected_test_path": "tests/Unit/MediaRelationManagerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/MaintenanceTicketResource/RelationManagers/MediaRelationManager.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\MediaRelationManager::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\MediaRelationManager@table",
        "expected_test_path": "tests/Unit/MediaRelationManagerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/MaintenanceTicketResource/RelationManagers/SlaLogsRelationManager.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SlaLogsRelationManager::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SlaLogsRelationManager@form",
        "expected_test_path": "tests/Unit/SlaLogsRelationManagerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/MaintenanceTicketResource/RelationManagers/SlaLogsRelationManager.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SlaLogsRelationManager::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SlaLogsRelationManager@table",
        "expected_test_path": "tests/Unit/SlaLogsRelationManagerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/MaintenanceTicketResource/RelationManagers/SuggestionsRelationManager.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SuggestionsRelationManager::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SuggestionsRelationManager@form",
        "expected_test_path": "tests/Unit/SuggestionsRelationManagerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/MaintenanceTicketResource/RelationManagers/SuggestionsRelationManager.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SuggestionsRelationManager::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SuggestionsRelationManager@table",
        "expected_test_path": "tests/Unit/SuggestionsRelationManagerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/MaintenanceTicketSlaLogResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@form",
        "expected_test_path": "tests/Unit/MaintenanceTicketSlaLogResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/MaintenanceTicketSlaLogResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/MaintenanceTicketSlaLogResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/MaintenanceTicketSlaLogResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@getModelLabel",
        "expected_test_path": "tests/Unit/MaintenanceTicketSlaLogResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/MaintenanceTicketSlaLogResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@getNavigationLabel",
        "expected_test_path": "tests/Unit/MaintenanceTicketSlaLogResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/MaintenanceTicketSlaLogResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@getPages",
        "expected_test_path": "tests/Unit/MaintenanceTicketSlaLogResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/MaintenanceTicketSlaLogResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/MaintenanceTicketSlaLogResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/MaintenanceTicketSlaLogResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@shouldRegisterNavigation",
        "expected_test_path": "tests/Unit/MaintenanceTicketSlaLogResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/MaintenanceTicketSlaLogResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@table",
        "expected_test_path": "tests/Unit/MaintenanceTicketSlaLogResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/NotificationCenterResource.php::App\\Domains\\Agencies\\Resources\\NotificationCenterResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationCenterResource@form",
        "expected_test_path": "tests/Unit/NotificationCenterResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/NotificationCenterResource.php::App\\Domains\\Agencies\\Resources\\NotificationCenterResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationCenterResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/NotificationCenterResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/NotificationCenterResource.php::App\\Domains\\Agencies\\Resources\\NotificationCenterResource::getLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationCenterResource@getLabel",
        "expected_test_path": "tests/Unit/NotificationCenterResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/NotificationCenterResource.php::App\\Domains\\Agencies\\Resources\\NotificationCenterResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationCenterResource@getPages",
        "expected_test_path": "tests/Unit/NotificationCenterResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/NotificationCenterResource.php::App\\Domains\\Agencies\\Resources\\NotificationCenterResource::getPluralLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationCenterResource@getPluralLabel",
        "expected_test_path": "tests/Unit/NotificationCenterResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/NotificationCenterResource.php::App\\Domains\\Agencies\\Resources\\NotificationCenterResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationCenterResource@shouldRegisterNavigation",
        "expected_test_path": "tests/Unit/NotificationCenterResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/NotificationCenterResource.php::App\\Domains\\Agencies\\Resources\\NotificationCenterResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationCenterResource@table",
        "expected_test_path": "tests/Unit/NotificationCenterResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/Pages/ManageAgencyUsers.php::App\\Domains\\Agencies\\Resources\\Pages\\ManageAgencyUsers::getHeading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\Pages\\ManageAgencyUsers@getHeading",
        "expected_test_path": "tests/Unit/ManageAgencyUsersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/Pages/ManageAgencyUsers.php::App\\Domains\\Agencies\\Resources\\Pages\\ManageAgencyUsers::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\Pages\\ManageAgencyUsers@getTitle",
        "expected_test_path": "tests/Unit/ManageAgencyUsersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/PaymentResource/Pages/CreatePayment.php::App\\Domains\\Agencies\\Resources\\PaymentResource\\Pages\\CreatePayment::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource\\Pages\\CreatePayment@getTitle",
        "expected_test_path": "tests/Unit/CreatePaymentTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/PaymentResource/Pages/EditPayment.php::App\\Domains\\Agencies\\Resources\\PaymentResource\\Pages\\EditPayment::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource\\Pages\\EditPayment@getTitle",
        "expected_test_path": "tests/Unit/EditPaymentTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/PaymentResource/Pages/ViewPayment.php::App\\Domains\\Agencies\\Resources\\PaymentResource\\Pages\\ViewPayment::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource\\Pages\\ViewPayment@getTitle",
        "expected_test_path": "tests/Unit/ViewPaymentTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/PaymentResource/RelationManagers/PaymentProofsRelationManager.php::App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager@form",
        "expected_test_path": "tests/Unit/PaymentProofsRelationManagerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/PaymentResource/RelationManagers/PaymentProofsRelationManager.php::App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager@getModelLabel",
        "expected_test_path": "tests/Unit/PaymentProofsRelationManagerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/PaymentResource/RelationManagers/PaymentProofsRelationManager.php::App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager@getPluralModelLabel",
        "expected_test_path": "tests/Unit/PaymentProofsRelationManagerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/PaymentResource/RelationManagers/PaymentProofsRelationManager.php::App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager@getTitle",
        "expected_test_path": "tests/Unit/PaymentProofsRelationManagerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/PaymentResource/RelationManagers/PaymentProofsRelationManager.php::App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager@table",
        "expected_test_path": "tests/Unit/PaymentProofsRelationManagerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/PropertyResource.php::App\\Domains\\Agencies\\Resources\\PropertyResource::canCreate",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@canCreate",
        "expected_test_path": "tests/Unit/PropertyResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/PropertyResource.php::App\\Domains\\Agencies\\Resources\\PropertyResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@form",
        "expected_test_path": "tests/Unit/PropertyResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/PropertyResource.php::App\\Domains\\Agencies\\Resources\\PropertyResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/PropertyResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/PropertyResource.php::App\\Domains\\Agencies\\Resources\\PropertyResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@getModelLabel",
        "expected_test_path": "tests/Unit/PropertyResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/PropertyResource.php::App\\Domains\\Agencies\\Resources\\PropertyResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@getNavigationLabel",
        "expected_test_path": "tests/Unit/PropertyResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/PropertyResource.php::App\\Domains\\Agencies\\Resources\\PropertyResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@getPages",
        "expected_test_path": "tests/Unit/PropertyResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/PropertyResource.php::App\\Domains\\Agencies\\Resources\\PropertyResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/PropertyResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/PropertyResource.php::App\\Domains\\Agencies\\Resources\\PropertyResource::getRelations",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@getRelations",
        "expected_test_path": "tests/Unit/PropertyResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/PropertyResource.php::App\\Domains\\Agencies\\Resources\\PropertyResource::infolist",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@infolist",
        "expected_test_path": "tests/Unit/PropertyResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/PropertyResource.php::App\\Domains\\Agencies\\Resources\\PropertyResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@table",
        "expected_test_path": "tests/Unit/PropertyResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/PropertyResource/Pages/CreateProperty.php::App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\CreateProperty::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\CreateProperty@getTitle",
        "expected_test_path": "tests/Unit/CreatePropertyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/PropertyResource/Pages/EditProperty.php::App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\EditProperty::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\EditProperty@getTitle",
        "expected_test_path": "tests/Unit/EditPropertyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/PropertyResource/Pages/ListProperties.php::App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\ListProperties::getSubheading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\ListProperties@getSubheading",
        "expected_test_path": "tests/Unit/ListPropertiesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/PropertyResource/Pages/ListProperties.php::App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\ListProperties::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\ListProperties@getTitle",
        "expected_test_path": "tests/Unit/ListPropertiesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/PropertyResource/RelationManagers/FilesRelationManager.php::App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\FilesRelationManager::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\FilesRelationManager@form",
        "expected_test_path": "tests/Unit/FilesRelationManagerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/PropertyResource/RelationManagers/FilesRelationManager.php::App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\FilesRelationManager::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\FilesRelationManager@getTitle",
        "expected_test_path": "tests/Unit/FilesRelationManagerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/PropertyResource/RelationManagers/FilesRelationManager.php::App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\FilesRelationManager::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\FilesRelationManager@table",
        "expected_test_path": "tests/Unit/FilesRelationManagerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/PropertyResource/RelationManagers/UnitsRelationManager.php::App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\UnitsRelationManager::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\UnitsRelationManager@form",
        "expected_test_path": "tests/Unit/UnitsRelationManagerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/PropertyResource/RelationManagers/UnitsRelationManager.php::App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\UnitsRelationManager::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\UnitsRelationManager@getTitle",
        "expected_test_path": "tests/Unit/UnitsRelationManagerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/PropertyResource/RelationManagers/UnitsRelationManager.php::App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\UnitsRelationManager::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\UnitsRelationManager@table",
        "expected_test_path": "tests/Unit/UnitsRelationManagerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/ReminderTemplateResource.php::App\\Domains\\Agencies\\Resources\\ReminderTemplateResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@form",
        "expected_test_path": "tests/Unit/ReminderTemplateResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/ReminderTemplateResource.php::App\\Domains\\Agencies\\Resources\\ReminderTemplateResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/ReminderTemplateResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/ReminderTemplateResource.php::App\\Domains\\Agencies\\Resources\\ReminderTemplateResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@getModelLabel",
        "expected_test_path": "tests/Unit/ReminderTemplateResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/ReminderTemplateResource.php::App\\Domains\\Agencies\\Resources\\ReminderTemplateResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@getPages",
        "expected_test_path": "tests/Unit/ReminderTemplateResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/ReminderTemplateResource.php::App\\Domains\\Agencies\\Resources\\ReminderTemplateResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/ReminderTemplateResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/ReminderTemplateResource.php::App\\Domains\\Agencies\\Resources\\ReminderTemplateResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@shouldRegisterNavigation",
        "expected_test_path": "tests/Unit/ReminderTemplateResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/ReminderTemplateResource.php::App\\Domains\\Agencies\\Resources\\ReminderTemplateResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@table",
        "expected_test_path": "tests/Unit/ReminderTemplateResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/RentCycleResource.php::App\\Domains\\Agencies\\Resources\\RentCycleResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource@form",
        "expected_test_path": "tests/Unit/RentCycleResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/RentCycleResource.php::App\\Domains\\Agencies\\Resources\\RentCycleResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/RentCycleResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/RentCycleResource.php::App\\Domains\\Agencies\\Resources\\RentCycleResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource@getModelLabel",
        "expected_test_path": "tests/Unit/RentCycleResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/RentCycleResource.php::App\\Domains\\Agencies\\Resources\\RentCycleResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource@getNavigationLabel",
        "expected_test_path": "tests/Unit/RentCycleResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/RentCycleResource.php::App\\Domains\\Agencies\\Resources\\RentCycleResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource@getPages",
        "expected_test_path": "tests/Unit/RentCycleResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/RentCycleResource.php::App\\Domains\\Agencies\\Resources\\RentCycleResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/RentCycleResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/RentCycleResource.php::App\\Domains\\Agencies\\Resources\\RentCycleResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource@table",
        "expected_test_path": "tests/Unit/RentCycleResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/RentCycleResource/Pages/ListRentCycles.php::App\\Domains\\Agencies\\Resources\\RentCycleResource\\Pages\\ListRentCycles::getDefaultActiveTab",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource\\Pages\\ListRentCycles@getDefaultActiveTab",
        "expected_test_path": "tests/Unit/ListRentCyclesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/RentCycleResource/Pages/ListRentCycles.php::App\\Domains\\Agencies\\Resources\\RentCycleResource\\Pages\\ListRentCycles::getTabs",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource\\Pages\\ListRentCycles@getTabs",
        "expected_test_path": "tests/Unit/ListRentCyclesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/RentCycleResource/Pages/ViewRentCycle.php::App\\Domains\\Agencies\\Resources\\RentCycleResource\\Pages\\ViewRentCycle::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource\\Pages\\ViewRentCycle@getTitle",
        "expected_test_path": "tests/Unit/ViewRentCycleTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/SupportTicketResource.php::App\\Domains\\Agencies\\Resources\\SupportTicketResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource@form",
        "expected_test_path": "tests/Unit/SupportTicketResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/SupportTicketResource.php::App\\Domains\\Agencies\\Resources\\SupportTicketResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/SupportTicketResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/SupportTicketResource.php::App\\Domains\\Agencies\\Resources\\SupportTicketResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource@getModelLabel",
        "expected_test_path": "tests/Unit/SupportTicketResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/SupportTicketResource.php::App\\Domains\\Agencies\\Resources\\SupportTicketResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource@getNavigationLabel",
        "expected_test_path": "tests/Unit/SupportTicketResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/SupportTicketResource.php::App\\Domains\\Agencies\\Resources\\SupportTicketResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource@getPages",
        "expected_test_path": "tests/Unit/SupportTicketResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/SupportTicketResource.php::App\\Domains\\Agencies\\Resources\\SupportTicketResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/SupportTicketResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/SupportTicketResource.php::App\\Domains\\Agencies\\Resources\\SupportTicketResource::infolist",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource@infolist",
        "expected_test_path": "tests/Unit/SupportTicketResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/SupportTicketResource.php::App\\Domains\\Agencies\\Resources\\SupportTicketResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource@table",
        "expected_test_path": "tests/Unit/SupportTicketResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/SupportTicketResource/Pages/ListSupportTickets.php::App\\Domains\\Agencies\\Resources\\SupportTicketResource\\Pages\\ListSupportTickets::getSubheading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource\\Pages\\ListSupportTickets@getSubheading",
        "expected_test_path": "tests/Unit/ListSupportTicketsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/TenantResource.php::App\\Domains\\Agencies\\Resources\\TenantResource::canCreate",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource@canCreate",
        "expected_test_path": "tests/Unit/TenantResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/TenantResource.php::App\\Domains\\Agencies\\Resources\\TenantResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource@form",
        "expected_test_path": "tests/Unit/TenantResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/TenantResource.php::App\\Domains\\Agencies\\Resources\\TenantResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/TenantResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/TenantResource.php::App\\Domains\\Agencies\\Resources\\TenantResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource@getModelLabel",
        "expected_test_path": "tests/Unit/TenantResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/TenantResource.php::App\\Domains\\Agencies\\Resources\\TenantResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource@getNavigationLabel",
        "expected_test_path": "tests/Unit/TenantResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/TenantResource.php::App\\Domains\\Agencies\\Resources\\TenantResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource@getPages",
        "expected_test_path": "tests/Unit/TenantResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/TenantResource.php::App\\Domains\\Agencies\\Resources\\TenantResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/TenantResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/TenantResource.php::App\\Domains\\Agencies\\Resources\\TenantResource::getRelations",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource@getRelations",
        "expected_test_path": "tests/Unit/TenantResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/TenantResource.php::App\\Domains\\Agencies\\Resources\\TenantResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource@table",
        "expected_test_path": "tests/Unit/TenantResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/TenantResource/Pages/CreateTenant.php::App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\CreateTenant::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\CreateTenant@getTitle",
        "expected_test_path": "tests/Unit/CreateTenantTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/TenantResource/Pages/EditTenant.php::App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\EditTenant::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\EditTenant@getTitle",
        "expected_test_path": "tests/Unit/EditTenantTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/TenantResource/Pages/ListTenants.php::App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\ListTenants::getSubheading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\ListTenants@getSubheading",
        "expected_test_path": "tests/Unit/ListTenantsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/TenantResource/Pages/ListTenants.php::App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\ListTenants::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\ListTenants@getTitle",
        "expected_test_path": "tests/Unit/ListTenantsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/TenantResource/Pages/ViewTenant.php::App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\ViewTenant::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\ViewTenant@getTitle",
        "expected_test_path": "tests/Unit/ViewTenantTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/TransferResource.php::App\\Domains\\Agencies\\Resources\\TransferResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource@form",
        "expected_test_path": "tests/Unit/TransferResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/TransferResource.php::App\\Domains\\Agencies\\Resources\\TransferResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/TransferResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/TransferResource.php::App\\Domains\\Agencies\\Resources\\TransferResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource@getModelLabel",
        "expected_test_path": "tests/Unit/TransferResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/TransferResource.php::App\\Domains\\Agencies\\Resources\\TransferResource::getNavigationGroup",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource@getNavigationGroup",
        "expected_test_path": "tests/Unit/TransferResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/TransferResource.php::App\\Domains\\Agencies\\Resources\\TransferResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource@getPages",
        "expected_test_path": "tests/Unit/TransferResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/TransferResource.php::App\\Domains\\Agencies\\Resources\\TransferResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/TransferResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/TransferResource.php::App\\Domains\\Agencies\\Resources\\TransferResource::getRelations",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource@getRelations",
        "expected_test_path": "tests/Unit/TransferResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/TransferResource.php::App\\Domains\\Agencies\\Resources\\TransferResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource@table",
        "expected_test_path": "tests/Unit/TransferResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/TransferResource/Actions/ExportLandlordStatementAction.php::App\\Domains\\Agencies\\Resources\\TransferResource\\Actions\\ExportLandlordStatementAction::getDefaultName",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource\\Actions\\ExportLandlordStatementAction@getDefaultName",
        "expected_test_path": "tests/Unit/ExportLandlordStatementActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/TransferResource/Pages/ListTransfers.php::App\\Domains\\Agencies\\Resources\\TransferResource\\Pages\\ListTransfers::getSubheading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource\\Pages\\ListTransfers@getSubheading",
        "expected_test_path": "tests/Unit/ListTransfersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/UnitResource.php::App\\Domains\\Agencies\\Resources\\UnitResource::canCreate",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@canCreate",
        "expected_test_path": "tests/Unit/UnitResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/UnitResource.php::App\\Domains\\Agencies\\Resources\\UnitResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@form",
        "expected_test_path": "tests/Unit/UnitResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/UnitResource.php::App\\Domains\\Agencies\\Resources\\UnitResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/UnitResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/UnitResource.php::App\\Domains\\Agencies\\Resources\\UnitResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@getModelLabel",
        "expected_test_path": "tests/Unit/UnitResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/UnitResource.php::App\\Domains\\Agencies\\Resources\\UnitResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@getNavigationLabel",
        "expected_test_path": "tests/Unit/UnitResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/UnitResource.php::App\\Domains\\Agencies\\Resources\\UnitResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@getPages",
        "expected_test_path": "tests/Unit/UnitResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/UnitResource.php::App\\Domains\\Agencies\\Resources\\UnitResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/UnitResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/UnitResource.php::App\\Domains\\Agencies\\Resources\\UnitResource::getRelations",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@getRelations",
        "expected_test_path": "tests/Unit/UnitResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/UnitResource.php::App\\Domains\\Agencies\\Resources\\UnitResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@table",
        "expected_test_path": "tests/Unit/UnitResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/UnitResource/Pages/ListUnits.php::App\\Domains\\Agencies\\Resources\\UnitResource\\Pages\\ListUnits::getSubheading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource\\Pages\\ListUnits@getSubheading",
        "expected_test_path": "tests/Unit/ListUnitsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/UnitResource/Pages/ViewUnit.php::App\\Domains\\Agencies\\Resources\\UnitResource\\Pages\\ViewUnit::infolist",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource\\Pages\\ViewUnit@infolist",
        "expected_test_path": "tests/Unit/ViewUnitTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/UnitResource/RelationManagers/FilesRelationManager.php::App\\Domains\\Agencies\\Resources\\UnitResource\\RelationManagers\\FilesRelationManager::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource\\RelationManagers\\FilesRelationManager@form",
        "expected_test_path": "tests/Unit/FilesRelationManagerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/UnitResource/RelationManagers/FilesRelationManager.php::App\\Domains\\Agencies\\Resources\\UnitResource\\RelationManagers\\FilesRelationManager::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource\\RelationManagers\\FilesRelationManager@getTitle",
        "expected_test_path": "tests/Unit/FilesRelationManagerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Agencies/Resources/UnitResource/RelationManagers/FilesRelationManager.php::App\\Domains\\Agencies\\Resources\\UnitResource\\RelationManagers\\FilesRelationManager::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource\\RelationManagers\\FilesRelationManager@table",
        "expected_test_path": "tests/Unit/FilesRelationManagerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Billing/Actions/GenerateCreditTopUpInvoiceAction.php::App\\Domains\\Billing\\Actions\\GenerateCreditTopUpInvoiceAction::execute",
        "fqmn": "App\\Domains\\Billing\\Actions\\GenerateCreditTopUpInvoiceAction@execute",
        "expected_test_path": "tests/Unit/GenerateCreditTopUpInvoiceActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Billing/Actions/GenerateMessagePackageInvoiceAction.php::App\\Domains\\Billing\\Actions\\GenerateMessagePackageInvoiceAction::execute",
        "fqmn": "App\\Domains\\Billing\\Actions\\GenerateMessagePackageInvoiceAction@execute",
        "expected_test_path": "tests/Unit/GenerateMessagePackageInvoiceActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Billing/Actions/GenerateSubscriptionInvoiceAction.php::App\\Domains\\Billing\\Actions\\GenerateSubscriptionInvoiceAction::execute",
        "fqmn": "App\\Domains\\Billing\\Actions\\GenerateSubscriptionInvoiceAction@execute",
        "expected_test_path": "tests/Unit/GenerateSubscriptionInvoiceActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Billing/DTO/TaxBreakdown.php::App\\Domains\\Billing\\DTO\\TaxBreakdown::zero",
        "fqmn": "App\\Domains\\Billing\\DTO\\TaxBreakdown@zero",
        "expected_test_path": "tests/Unit/TaxBreakdownTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::allForOrganization",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@allForOrganization",
        "expected_test_path": "tests/Unit/FileRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::countByTypeForOrganization",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@countByTypeForOrganization",
        "expected_test_path": "tests/Unit/FileRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::countForOrganization",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@countForOrganization",
        "expected_test_path": "tests/Unit/FileRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::findForOrganization",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@findForOrganization",
        "expected_test_path": "tests/Unit/FileRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::getByMimeTypeForOrganization",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@getByMimeTypeForOrganization",
        "expected_test_path": "tests/Unit/FileRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::getByTypeForOrganization",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@getByTypeForOrganization",
        "expected_test_path": "tests/Unit/FileRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::getByUploaderForOrganization",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@getByUploaderForOrganization",
        "expected_test_path": "tests/Unit/FileRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::getForEntity",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@getForEntity",
        "expected_test_path": "tests/Unit/FileRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::getLargeFiles",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@getLargeFiles",
        "expected_test_path": "tests/Unit/FileRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::getOrphanedFiles",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@getOrphanedFiles",
        "expected_test_path": "tests/Unit/FileRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::getRecentForOrganization",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@getRecentForOrganization",
        "expected_test_path": "tests/Unit/FileRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::getTotalStorageForOrganization",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@getTotalStorageForOrganization",
        "expected_test_path": "tests/Unit/FileRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::paginatedForOrganization",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@paginatedForOrganization",
        "expected_test_path": "tests/Unit/FileRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::search",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@search",
        "expected_test_path": "tests/Unit/FileRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Files/Resources/FileResource.php::App\\Domains\\Files\\Resources\\FileResource::form",
        "fqmn": "App\\Domains\\Files\\Resources\\FileResource@form",
        "expected_test_path": "tests/Unit/FileResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Files/Resources/FileResource.php::App\\Domains\\Files\\Resources\\FileResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Files\\Resources\\FileResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/FileResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Files/Resources/FileResource.php::App\\Domains\\Files\\Resources\\FileResource::getModelLabel",
        "fqmn": "App\\Domains\\Files\\Resources\\FileResource@getModelLabel",
        "expected_test_path": "tests/Unit/FileResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Files/Resources/FileResource.php::App\\Domains\\Files\\Resources\\FileResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Files\\Resources\\FileResource@getNavigationLabel",
        "expected_test_path": "tests/Unit/FileResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Files/Resources/FileResource.php::App\\Domains\\Files\\Resources\\FileResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Files\\Resources\\FileResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/FileResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Files/Resources/FileResource.php::App\\Domains\\Files\\Resources\\FileResource::table",
        "fqmn": "App\\Domains\\Files\\Resources\\FileResource@table",
        "expected_test_path": "tests/Unit/FileResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Files/Services/FileSecurityService.php::App\\Domains\\Files\\Services\\FileSecurityService::scanForVirus",
        "fqmn": "App\\Domains\\Files\\Services\\FileSecurityService@scanForVirus",
        "expected_test_path": "tests/Feature/FileSecurityServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Imports/Constants/CsvImportSchema.php::App\\Domains\\Imports\\Constants\\CsvImportSchema::allSchemas",
        "fqmn": "App\\Domains\\Imports\\Constants\\CsvImportSchema@allSchemas",
        "expected_test_path": "tests/Unit/CsvImportSchemaTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Landlords/Actions/GetLandlordOverviewWidgetStatsAction.php::App\\Domains\\Landlords\\Actions\\GetLandlordOverviewWidgetStatsAction::execute",
        "fqmn": "App\\Domains\\Landlords\\Actions\\GetLandlordOverviewWidgetStatsAction@execute",
        "expected_test_path": "tests/Unit/GetLandlordOverviewWidgetStatsActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::allForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@allForOrganization",
        "expected_test_path": "tests/Unit/LeaseRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::countActiveForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@countActiveForOrganization",
        "expected_test_path": "tests/Unit/LeaseRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::countForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@countForOrganization",
        "expected_test_path": "tests/Unit/LeaseRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::findForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@findForOrganization",
        "expected_test_path": "tests/Unit/LeaseRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::findOrFailForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@findOrFailForOrganization",
        "expected_test_path": "tests/Unit/LeaseRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::getActiveForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@getActiveForOrganization",
        "expected_test_path": "tests/Unit/LeaseRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::getCurrentLeaseForTenant",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@getCurrentLeaseForTenant",
        "expected_test_path": "tests/Unit/LeaseRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::getCurrentLeaseForUnit",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@getCurrentLeaseForUnit",
        "expected_test_path": "tests/Unit/LeaseRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::getExpiredForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@getExpiredForOrganization",
        "expected_test_path": "tests/Unit/LeaseRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::getExpiringSoon",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@getExpiringSoon",
        "expected_test_path": "tests/Unit/LeaseRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::getForLandlord",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@getForLandlord",
        "expected_test_path": "tests/Unit/LeaseRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::getForTenant",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@getForTenant",
        "expected_test_path": "tests/Unit/LeaseRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::getStartingSoon",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@getStartingSoon",
        "expected_test_path": "tests/Unit/LeaseRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::paginatedForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@paginatedForOrganization",
        "expected_test_path": "tests/Unit/LeaseRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::search",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@search",
        "expected_test_path": "tests/Unit/LeaseRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::tenantHasActiveLease",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@tenantHasActiveLease",
        "expected_test_path": "tests/Unit/LeaseRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::unitHasActiveLease",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@unitHasActiveLease",
        "expected_test_path": "tests/Unit/LeaseRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Maintenance/Actions/AssignSlaToTicketAction.php::App\\Domains\\Maintenance\\Actions\\AssignSlaToTicketAction::execute",
        "fqmn": "App\\Domains\\Maintenance\\Actions\\AssignSlaToTicketAction@execute",
        "expected_test_path": "tests/Unit/AssignSlaToTicketActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Maintenance/Jobs/AggregateMaintenanceMetricsJob.php::App\\Domains\\Maintenance\\Jobs\\AggregateMaintenanceMetricsJob::handle",
        "fqmn": "App\\Domains\\Maintenance\\Jobs\\AggregateMaintenanceMetricsJob@handle",
        "expected_test_path": "tests/Feature/AggregateMaintenanceMetricsJobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Maintenance/Jobs/CheckMaintenanceSLAsJob.php::App\\Domains\\Maintenance\\Jobs\\CheckMaintenanceSLAsJob::handle",
        "fqmn": "App\\Domains\\Maintenance\\Jobs\\CheckMaintenanceSLAsJob@handle",
        "expected_test_path": "tests/Feature/CheckMaintenanceSLAsJobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Maintenance/Services/MaintenanceSlaService.php::App\\Domains\\Maintenance\\Services\\MaintenanceSlaService::assignSlaToTicket",
        "fqmn": "App\\Domains\\Maintenance\\Services\\MaintenanceSlaService@assignSlaToTicket",
        "expected_test_path": "tests/Feature/MaintenanceSlaServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Maintenance/Services/MaintenanceSlaService.php::App\\Domains\\Maintenance\\Services\\MaintenanceSlaService::pauseSla",
        "fqmn": "App\\Domains\\Maintenance\\Services\\MaintenanceSlaService@pauseSla",
        "expected_test_path": "tests/Feature/MaintenanceSlaServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Maintenance/Services/MaintenanceSlaService.php::App\\Domains\\Maintenance\\Services\\MaintenanceSlaService::resumeSla",
        "fqmn": "App\\Domains\\Maintenance\\Services\\MaintenanceSlaService@resumeSla",
        "expected_test_path": "tests/Feature/MaintenanceSlaServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Outreach/Services/BillingService.php::App\\Domains\\Outreach\\Services\\BillingService::getCampaignCostBreakdown",
        "fqmn": "App\\Domains\\Outreach\\Services\\BillingService@getCampaignCostBreakdown",
        "expected_test_path": "tests/Feature/BillingServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Outreach/Services/BillingService.php::App\\Domains\\Outreach\\Services\\BillingService::getConversationCosts",
        "fqmn": "App\\Domains\\Outreach\\Services\\BillingService@getConversationCosts",
        "expected_test_path": "tests/Feature/BillingServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Outreach/Services/BillingService.php::App\\Domains\\Outreach\\Services\\BillingService::getConversationTypes",
        "fqmn": "App\\Domains\\Outreach\\Services\\BillingService@getConversationTypes",
        "expected_test_path": "tests/Feature/BillingServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Outreach/Services/BillingService.php::App\\Domains\\Outreach\\Services\\BillingService::getCostOptimization",
        "fqmn": "App\\Domains\\Outreach\\Services\\BillingService@getCostOptimization",
        "expected_test_path": "tests/Feature/BillingServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Outreach/Webhooks/WhatsAppWebhookController.php::App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController::handle",
        "fqmn": "App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController@handle",
        "expected_test_path": "tests/Unit/WhatsAppWebhookControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Payments/Actions/ApplyDeductionsAction.php::App\\Domains\\Payments\\Actions\\ApplyDeductionsAction::execute",
        "fqmn": "App\\Domains\\Payments\\Actions\\ApplyDeductionsAction@execute",
        "expected_test_path": "tests/Unit/ApplyDeductionsActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Payments/Actions/CreateTransactionAction.php::App\\Domains\\Payments\\Actions\\CreateTransactionAction::execute",
        "fqmn": "App\\Domains\\Payments\\Actions\\CreateTransactionAction@execute",
        "expected_test_path": "tests/Unit/CreateTransactionActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Payments/Actions/RecordPaymentAction.php::App\\Domains\\Payments\\Actions\\RecordPaymentAction::execute",
        "fqmn": "App\\Domains\\Payments\\Actions\\RecordPaymentAction@execute",
        "expected_test_path": "tests/Unit/RecordPaymentActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Payments/Actions/VoidPaymentDeductionsAction.php::App\\Domains\\Payments\\Actions\\VoidPaymentDeductionsAction::execute",
        "fqmn": "App\\Domains\\Payments\\Actions\\VoidPaymentDeductionsAction@execute",
        "expected_test_path": "tests/Unit/VoidPaymentDeductionsActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Payments/Listeners/RecordForfeitedBookingRevenue.php::App\\Domains\\Payments\\Listeners\\RecordForfeitedBookingRevenue::handle",
        "fqmn": "App\\Domains\\Payments\\Listeners\\RecordForfeitedBookingRevenue@handle",
        "expected_test_path": "tests/Feature/RecordForfeitedBookingRevenueTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::allForOrganization",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@allForOrganization",
        "expected_test_path": "tests/Unit/PaymentRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::countForOrganization",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@countForOrganization",
        "expected_test_path": "tests/Unit/PaymentRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::findForOrganization",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@findForOrganization",
        "expected_test_path": "tests/Unit/PaymentRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::getByMethodForOrganization",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@getByMethodForOrganization",
        "expected_test_path": "tests/Unit/PaymentRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::getByStatusForOrganization",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@getByStatusForOrganization",
        "expected_test_path": "tests/Unit/PaymentRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::getForLandlord",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@getForLandlord",
        "expected_test_path": "tests/Unit/PaymentRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::getForTenant",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@getForTenant",
        "expected_test_path": "tests/Unit/PaymentRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::getInDateRangeForOrganization",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@getInDateRangeForOrganization",
        "expected_test_path": "tests/Unit/PaymentRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::getNeedingTransfer",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@getNeedingTransfer",
        "expected_test_path": "tests/Unit/PaymentRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::getRecentForOrganization",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@getRecentForOrganization",
        "expected_test_path": "tests/Unit/PaymentRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::paginatedForOrganization",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@paginatedForOrganization",
        "expected_test_path": "tests/Unit/PaymentRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::search",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@search",
        "expected_test_path": "tests/Unit/PaymentRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Payments/Services/PaymentProof/CachedPaymentProofAnalyzer.php::App\\Domains\\Payments\\Services\\PaymentProof\\CachedPaymentProofAnalyzer::analyze",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentProof\\CachedPaymentProofAnalyzer@analyze",
        "expected_test_path": "tests/Feature/CachedPaymentProofAnalyzerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Payments/Services/PaymentProof/OpenAIPaymentProofAnalyzer.php::App\\Domains\\Payments\\Services\\PaymentProof\\OpenAIPaymentProofAnalyzer::analyze",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentProof\\OpenAIPaymentProofAnalyzer@analyze",
        "expected_test_path": "tests/Feature/OpenAIPaymentProofAnalyzerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Payments/Services/WalletService.php::App\\Domains\\Payments\\Services\\WalletService::applyEntry",
        "fqmn": "App\\Domains\\Payments\\Services\\WalletService@applyEntry",
        "expected_test_path": "tests/Feature/WalletServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Payments/Services/WalletService.php::App\\Domains\\Payments\\Services\\WalletService::getOperatingWallet",
        "fqmn": "App\\Domains\\Payments\\Services\\WalletService@getOperatingWallet",
        "expected_test_path": "tests/Feature/WalletServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Payments/Services/WalletService.php::App\\Domains\\Payments\\Services\\WalletService::getTrustWallet",
        "fqmn": "App\\Domains\\Payments\\Services\\WalletService@getTrustWallet",
        "expected_test_path": "tests/Feature/WalletServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::allForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@allForOrganization",
        "expected_test_path": "tests/Unit/LandlordRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::countActiveForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@countActiveForOrganization",
        "expected_test_path": "tests/Unit/LandlordRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::countForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@countForOrganization",
        "expected_test_path": "tests/Unit/LandlordRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::delete",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@delete",
        "expected_test_path": "tests/Unit/LandlordRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::emailExistsInOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@emailExistsInOrganization",
        "expected_test_path": "tests/Unit/LandlordRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::findByEmailForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@findByEmailForOrganization",
        "expected_test_path": "tests/Unit/LandlordRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::findForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@findForOrganization",
        "expected_test_path": "tests/Unit/LandlordRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::findOrFailForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@findOrFailForOrganization",
        "expected_test_path": "tests/Unit/LandlordRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::getActiveForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@getActiveForOrganization",
        "expected_test_path": "tests/Unit/LandlordRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::paginatedForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@paginatedForOrganization",
        "expected_test_path": "tests/Unit/LandlordRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::search",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@search",
        "expected_test_path": "tests/Unit/LandlordRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::store",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@store",
        "expected_test_path": "tests/Unit/LandlordRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::update",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@update",
        "expected_test_path": "tests/Unit/LandlordRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::allForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@allForOrganization",
        "expected_test_path": "tests/Unit/UnitRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::assignTenant",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@assignTenant",
        "expected_test_path": "tests/Unit/UnitRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::codeExistsInProperty",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@codeExistsInProperty",
        "expected_test_path": "tests/Unit/UnitRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::countForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@countForOrganization",
        "expected_test_path": "tests/Unit/UnitRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::delete",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@delete",
        "expected_test_path": "tests/Unit/UnitRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::findForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@findForOrganization",
        "expected_test_path": "tests/Unit/UnitRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::findOrFailForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@findOrFailForOrganization",
        "expected_test_path": "tests/Unit/UnitRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::getByStatusForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@getByStatusForOrganization",
        "expected_test_path": "tests/Unit/UnitRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::getForProperty",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@getForProperty",
        "expected_test_path": "tests/Unit/UnitRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::getForTenant",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@getForTenant",
        "expected_test_path": "tests/Unit/UnitRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::getOccupiedForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@getOccupiedForOrganization",
        "expected_test_path": "tests/Unit/UnitRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::getStatisticsForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@getStatisticsForOrganization",
        "expected_test_path": "tests/Unit/UnitRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::getVacantForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@getVacantForOrganization",
        "expected_test_path": "tests/Unit/UnitRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::paginatedForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@paginatedForOrganization",
        "expected_test_path": "tests/Unit/UnitRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::search",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@search",
        "expected_test_path": "tests/Unit/UnitRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::store",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@store",
        "expected_test_path": "tests/Unit/UnitRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::update",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@update",
        "expected_test_path": "tests/Unit/UnitRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::vacateUnit",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@vacateUnit",
        "expected_test_path": "tests/Unit/UnitRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Reminders/Actions/CancelRemindersForRentCycleAction.php::App\\Domains\\Reminders\\Actions\\CancelRemindersForRentCycleAction::execute",
        "fqmn": "App\\Domains\\Reminders\\Actions\\CancelRemindersForRentCycleAction@execute",
        "expected_test_path": "tests/Unit/CancelRemindersForRentCycleActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Reminders/Actions/MapReminderTypeToTemplateTypeAction.php::App\\Domains\\Reminders\\Actions\\MapReminderTypeToTemplateTypeAction::execute",
        "fqmn": "App\\Domains\\Reminders\\Actions\\MapReminderTypeToTemplateTypeAction@execute",
        "expected_test_path": "tests/Unit/MapReminderTypeToTemplateTypeActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Reminders/Actions/ProcessDueRemindersAction.php::App\\Domains\\Reminders\\Actions\\ProcessDueRemindersAction::run",
        "fqmn": "App\\Domains\\Reminders\\Actions\\ProcessDueRemindersAction@run",
        "expected_test_path": "tests/Unit/ProcessDueRemindersActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Reminders/Actions/ScheduleRemindersForRentCycleAction.php::App\\Domains\\Reminders\\Actions\\ScheduleRemindersForRentCycleAction::execute",
        "fqmn": "App\\Domains\\Reminders\\Actions\\ScheduleRemindersForRentCycleAction@execute",
        "expected_test_path": "tests/Unit/ScheduleRemindersForRentCycleActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Reminders/Services/ReminderStateMachine.php::App\\Domains\\Reminders\\Services\\ReminderStateMachine::canTransition",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderStateMachine@canTransition",
        "expected_test_path": "tests/Feature/ReminderStateMachineTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Reminders/Services/ReminderStateMachine.php::App\\Domains\\Reminders\\Services\\ReminderStateMachine::getAllowedTransitions",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderStateMachine@getAllowedTransitions",
        "expected_test_path": "tests/Feature/ReminderStateMachineTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Reminders/Services/ReminderStateMachine.php::App\\Domains\\Reminders\\Services\\ReminderStateMachine::transition",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderStateMachine@transition",
        "expected_test_path": "tests/Feature/ReminderStateMachineTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Reports/Resources/ReportResource.php::App\\Domains\\Reports\\Resources\\ReportResource::getModelLabel",
        "fqmn": "App\\Domains\\Reports\\Resources\\ReportResource@getModelLabel",
        "expected_test_path": "tests/Unit/ReportResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Reports/Resources/ReportResource.php::App\\Domains\\Reports\\Resources\\ReportResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Reports\\Resources\\ReportResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/ReportResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Reports/Services/DashboardService.php::App\\Domains\\Reports\\Services\\DashboardService::getAgencyIncomeStats",
        "fqmn": "App\\Domains\\Reports\\Services\\DashboardService@getAgencyIncomeStats",
        "expected_test_path": "tests/Feature/DashboardServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Reports/Services/DashboardService.php::App\\Domains\\Reports\\Services\\DashboardService::getCollectionTrend",
        "fqmn": "App\\Domains\\Reports\\Services\\DashboardService@getCollectionTrend",
        "expected_test_path": "tests/Feature/DashboardServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Reports/Services/DashboardService.php::App\\Domains\\Reports\\Services\\DashboardService::getPerformanceIndicators",
        "fqmn": "App\\Domains\\Reports\\Services\\DashboardService@getPerformanceIndicators",
        "expected_test_path": "tests/Feature/DashboardServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Reports/Services/DashboardService.php::App\\Domains\\Reports\\Services\\DashboardService::getQuickStats",
        "fqmn": "App\\Domains\\Reports\\Services\\DashboardService@getQuickStats",
        "expected_test_path": "tests/Feature/DashboardServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Reports/Services/ReportExportService.php::App\\Domains\\Reports\\Services\\ReportExportService::exportCollectionReport",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportExportService@exportCollectionReport",
        "expected_test_path": "tests/Feature/ReportExportServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Reports/Services/ReportExportService.php::App\\Domains\\Reports\\Services\\ReportExportService::exportFinancialSummary",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportExportService@exportFinancialSummary",
        "expected_test_path": "tests/Feature/ReportExportServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Reports/Services/ReportExportService.php::App\\Domains\\Reports\\Services\\ReportExportService::exportOverdueReport",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportExportService@exportOverdueReport",
        "expected_test_path": "tests/Feature/ReportExportServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Reports/Services/ReportExportService.php::App\\Domains\\Reports\\Services\\ReportExportService::exportRentRoll",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportExportService@exportRentRoll",
        "expected_test_path": "tests/Feature/ReportExportServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Reports/Services/ReportExportService.php::App\\Domains\\Reports\\Services\\ReportExportService::getCollectionReportHeaders",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportExportService@getCollectionReportHeaders",
        "expected_test_path": "tests/Feature/ReportExportServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Reports/Services/ReportExportService.php::App\\Domains\\Reports\\Services\\ReportExportService::getOverdueReportHeaders",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportExportService@getOverdueReportHeaders",
        "expected_test_path": "tests/Feature/ReportExportServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Reports/Services/ReportExportService.php::App\\Domains\\Reports\\Services\\ReportExportService::getRentRollHeaders",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportExportService@getRentRollHeaders",
        "expected_test_path": "tests/Feature/ReportExportServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Reports/Services/ReportService.php::App\\Domains\\Reports\\Services\\ReportService::getLandlordSummary",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportService@getLandlordSummary",
        "expected_test_path": "tests/Feature/ReportServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Reports/Services/ReportService.php::App\\Domains\\Reports\\Services\\ReportService::getMonthlyCollections",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportService@getMonthlyCollections",
        "expected_test_path": "tests/Feature/ReportServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Reports/Services/ReportService.php::App\\Domains\\Reports\\Services\\ReportService::getOccupancyTrends",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportService@getOccupancyTrends",
        "expected_test_path": "tests/Feature/ReportServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Reports/Services/ReportService.php::App\\Domains\\Reports\\Services\\ReportService::getOrganizationSummary",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportService@getOrganizationSummary",
        "expected_test_path": "tests/Feature/ReportServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Reports/Services/ReportService.php::App\\Domains\\Reports\\Services\\ReportService::getTenantSummary",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportService@getTenantSummary",
        "expected_test_path": "tests/Feature/ReportServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Reports/Services/ReportService.php::App\\Domains\\Reports\\Services\\ReportService::getTopProperties",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportService@getTopProperties",
        "expected_test_path": "tests/Feature/ReportServiceTest.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::canCreate",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@canCreate",
        "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::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::getEloquentQuery",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getEloquentQuery",
        "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::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/MyCommissionsResource/Pages/ViewCommission.php::App\\Domains\\Sales\\Resources\\MyCommissionsResource\\Pages\\ViewCommission::infolist",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource\\Pages\\ViewCommission@infolist",
        "expected_test_path": "tests/Unit/ViewCommissionTest.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/MyInvoicesResource.php::App\\Domains\\Sales\\Resources\\MyInvoicesResource::canCreate",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyInvoicesResource@canCreate",
        "expected_test_path": "tests/Unit/MyInvoicesResourceTest.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/MyInvoicesResource.php::App\\Domains\\Sales\\Resources\\MyInvoicesResource::form",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyInvoicesResource@form",
        "expected_test_path": "tests/Unit/MyInvoicesResourceTest.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/MyInvoicesResource.php::App\\Domains\\Sales\\Resources\\MyInvoicesResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyInvoicesResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/MyInvoicesResourceTest.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/MyInvoicesResource.php::App\\Domains\\Sales\\Resources\\MyInvoicesResource::getModelLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyInvoicesResource@getModelLabel",
        "expected_test_path": "tests/Unit/MyInvoicesResourceTest.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/MyInvoicesResource.php::App\\Domains\\Sales\\Resources\\MyInvoicesResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyInvoicesResource@getNavigationLabel",
        "expected_test_path": "tests/Unit/MyInvoicesResourceTest.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/MyInvoicesResource.php::App\\Domains\\Sales\\Resources\\MyInvoicesResource::getPages",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyInvoicesResource@getPages",
        "expected_test_path": "tests/Unit/MyInvoicesResourceTest.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/MyInvoicesResource.php::App\\Domains\\Sales\\Resources\\MyInvoicesResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyInvoicesResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/MyInvoicesResourceTest.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/MyInvoicesResource.php::App\\Domains\\Sales\\Resources\\MyInvoicesResource::table",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyInvoicesResource@table",
        "expected_test_path": "tests/Unit/MyInvoicesResourceTest.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/MyOrganizationsResource.php::App\\Domains\\Sales\\Resources\\MyOrganizationsResource::canCreate",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@canCreate",
        "expected_test_path": "tests/Unit/MyOrganizationsResourceTest.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/MyOrganizationsResource.php::App\\Domains\\Sales\\Resources\\MyOrganizationsResource::form",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@form",
        "expected_test_path": "tests/Unit/MyOrganizationsResourceTest.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/MyOrganizationsResource.php::App\\Domains\\Sales\\Resources\\MyOrganizationsResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/MyOrganizationsResourceTest.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/MyOrganizationsResource.php::App\\Domains\\Sales\\Resources\\MyOrganizationsResource::getModelLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@getModelLabel",
        "expected_test_path": "tests/Unit/MyOrganizationsResourceTest.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/MyOrganizationsResource.php::App\\Domains\\Sales\\Resources\\MyOrganizationsResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@getNavigationLabel",
        "expected_test_path": "tests/Unit/MyOrganizationsResourceTest.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/MyOrganizationsResource.php::App\\Domains\\Sales\\Resources\\MyOrganizationsResource::getPages",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@getPages",
        "expected_test_path": "tests/Unit/MyOrganizationsResourceTest.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/MyOrganizationsResource.php::App\\Domains\\Sales\\Resources\\MyOrganizationsResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/MyOrganizationsResourceTest.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/MyOrganizationsResource.php::App\\Domains\\Sales\\Resources\\MyOrganizationsResource::table",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@table",
        "expected_test_path": "tests/Unit/MyOrganizationsResourceTest.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/AuditLogResource.php::App\\Domains\\SuperAdmin\\Resources\\AuditLogResource::canViewAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\AuditLogResource@canViewAny",
        "expected_test_path": "tests/Unit/AuditLogResourceTest.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/AuditLogResource.php::App\\Domains\\SuperAdmin\\Resources\\AuditLogResource::getEloquentQuery",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\AuditLogResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/AuditLogResourceTest.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/AuditLogResource.php::App\\Domains\\SuperAdmin\\Resources\\AuditLogResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\AuditLogResource@getPages",
        "expected_test_path": "tests/Unit/AuditLogResourceTest.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/AuditLogResource.php::App\\Domains\\SuperAdmin\\Resources\\AuditLogResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\AuditLogResource@shouldRegisterNavigation",
        "expected_test_path": "tests/Unit/AuditLogResourceTest.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/AuditLogResource.php::App\\Domains\\SuperAdmin\\Resources\\AuditLogResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\AuditLogResource@table",
        "expected_test_path": "tests/Unit/AuditLogResourceTest.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/AuditLogResource/Pages/ListAudit.php::App\\Domains\\SuperAdmin\\Resources\\AuditLogResource\\Pages\\ListAudit::getTitle",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\AuditLogResource\\Pages\\ListAudit@getTitle",
        "expected_test_path": "tests/Unit/ListAuditTest.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/BillingAdminActionsResource.php::App\\Domains\\SuperAdmin\\Resources\\BillingAdminActionsResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingAdminActionsResource@getPages",
        "expected_test_path": "tests/Unit/BillingAdminActionsResourceTest.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/BillingAdminActionsResource/Pages/ListBillingAdminActions.php::App\\Domains\\SuperAdmin\\Resources\\BillingAdminActionsResource\\Pages\\ListBillingAdminActions::getTitle",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingAdminActionsResource\\Pages\\ListBillingAdminActions@getTitle",
        "expected_test_path": "tests/Unit/ListBillingAdminActionsTest.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/Pages/ListBillingEventLogEntries.php::App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource\\Pages\\ListBillingEventLogEntries::getTitle",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource\\Pages\\ListBillingEventLogEntries@getTitle",
        "expected_test_path": "tests/Unit/ListBillingEventLogEntriesTest.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/BillingReconciliationResource.php::App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource::canViewAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource@canViewAny",
        "expected_test_path": "tests/Unit/BillingReconciliationResourceTest.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/BillingReconciliationResource.php::App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource@form",
        "expected_test_path": "tests/Unit/BillingReconciliationResourceTest.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/BillingReconciliationResource.php::App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource@getPages",
        "expected_test_path": "tests/Unit/BillingReconciliationResourceTest.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/BillingReconciliationResource.php::App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource@shouldRegisterNavigation",
        "expected_test_path": "tests/Unit/BillingReconciliationResourceTest.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/BillingReconciliationResource/Pages/BillingReconciliation.php::App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource\\Pages\\BillingReconciliation::mount",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource\\Pages\\BillingReconciliation@mount",
        "expected_test_path": "tests/Unit/BillingReconciliationTest.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/DiscountCodeResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource@form",
        "expected_test_path": "tests/Unit/DiscountCodeResourceTest.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/DiscountCodeResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource@getPages",
        "expected_test_path": "tests/Unit/DiscountCodeResourceTest.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/DiscountCodeResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource::getRelations",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource@getRelations",
        "expected_test_path": "tests/Unit/DiscountCodeResourceTest.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/DiscountCodeResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource@shouldRegisterNavigation",
        "expected_test_path": "tests/Unit/DiscountCodeResourceTest.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/DiscountCodeResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource@table",
        "expected_test_path": "tests/Unit/DiscountCodeResourceTest.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/DiscountCodeResource/RelationManagers/UsagesRelationManager.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource\\RelationManagers\\UsagesRelationManager::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource\\RelationManagers\\UsagesRelationManager@form",
        "expected_test_path": "tests/Unit/UsagesRelationManagerTest.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/DiscountCodeResource/RelationManagers/UsagesRelationManager.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource\\RelationManagers\\UsagesRelationManager::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource\\RelationManagers\\UsagesRelationManager@table",
        "expected_test_path": "tests/Unit/UsagesRelationManagerTest.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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::canCreate",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@canCreate",
        "expected_test_path": "tests/Unit/DiscountCodeUsageResourceTest.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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::canDelete",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@canDelete",
        "expected_test_path": "tests/Unit/DiscountCodeUsageResourceTest.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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::canDeleteAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@canDeleteAny",
        "expected_test_path": "tests/Unit/DiscountCodeUsageResourceTest.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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::canEdit",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@canEdit",
        "expected_test_path": "tests/Unit/DiscountCodeUsageResourceTest.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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::canView",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@canView",
        "expected_test_path": "tests/Unit/DiscountCodeUsageResourceTest.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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::canViewAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@canViewAny",
        "expected_test_path": "tests/Unit/DiscountCodeUsageResourceTest.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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@form",
        "expected_test_path": "tests/Unit/DiscountCodeUsageResourceTest.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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::getEloquentQuery",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/DiscountCodeUsageResourceTest.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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@getPages",
        "expected_test_path": "tests/Unit/DiscountCodeUsageResourceTest.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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::getRelations",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@getRelations",
        "expected_test_path": "tests/Unit/DiscountCodeUsageResourceTest.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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@shouldRegisterNavigation",
        "expected_test_path": "tests/Unit/DiscountCodeUsageResourceTest.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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@table",
        "expected_test_path": "tests/Unit/DiscountCodeUsageResourceTest.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/DiscountCodeUsageResource/Pages/ViewDiscountCodeUsage.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource\\Pages\\ViewDiscountCodeUsage::infolist",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource\\Pages\\ViewDiscountCodeUsage@infolist",
        "expected_test_path": "tests/Unit/ViewDiscountCodeUsageTest.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/GlobalUserResource.php::App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource@form",
        "expected_test_path": "tests/Unit/GlobalUserResourceTest.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/GlobalUserResource.php::App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource@getPages",
        "expected_test_path": "tests/Unit/GlobalUserResourceTest.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/GlobalUserResource.php::App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource@shouldRegisterNavigation",
        "expected_test_path": "tests/Unit/GlobalUserResourceTest.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/GlobalUserResource.php::App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource@table",
        "expected_test_path": "tests/Unit/GlobalUserResourceTest.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/GlobalUserResource/Pages/ListUsers.php::App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource\\Pages\\ListUsers::getTitle",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource\\Pages\\ListUsers@getTitle",
        "expected_test_path": "tests/Unit/ListUsersTest.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/LeadResource.php::App\\Domains\\SuperAdmin\\Resources\\LeadResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\LeadResource@form",
        "expected_test_path": "tests/Unit/LeadResourceTest.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/LeadResource.php::App\\Domains\\SuperAdmin\\Resources\\LeadResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\LeadResource@getPages",
        "expected_test_path": "tests/Unit/LeadResourceTest.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/LeadResource.php::App\\Domains\\SuperAdmin\\Resources\\LeadResource::getRelations",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\LeadResource@getRelations",
        "expected_test_path": "tests/Unit/LeadResourceTest.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/LeadResource.php::App\\Domains\\SuperAdmin\\Resources\\LeadResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\LeadResource@table",
        "expected_test_path": "tests/Unit/LeadResourceTest.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/MessagePackageResource.php::App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource@form",
        "expected_test_path": "tests/Unit/MessagePackageResourceTest.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/MessagePackageResource.php::App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource@getPages",
        "expected_test_path": "tests/Unit/MessagePackageResourceTest.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/MessagePackageResource.php::App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource::getRelations",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource@getRelations",
        "expected_test_path": "tests/Unit/MessagePackageResourceTest.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/MessagePackageResource.php::App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource@shouldRegisterNavigation",
        "expected_test_path": "tests/Unit/MessagePackageResourceTest.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/MessagePackageResource.php::App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource@table",
        "expected_test_path": "tests/Unit/MessagePackageResourceTest.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/NotificationInsightsResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource::canViewAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource@canViewAny",
        "expected_test_path": "tests/Unit/NotificationInsightsResourceTest.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/NotificationInsightsResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource@form",
        "expected_test_path": "tests/Unit/NotificationInsightsResourceTest.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/NotificationInsightsResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource::getEloquentQuery",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/NotificationInsightsResourceTest.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/NotificationInsightsResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource@getPages",
        "expected_test_path": "tests/Unit/NotificationInsightsResourceTest.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/NotificationInsightsResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource@shouldRegisterNavigation",
        "expected_test_path": "tests/Unit/NotificationInsightsResourceTest.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/NotificationInsightsResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource@table",
        "expected_test_path": "tests/Unit/NotificationInsightsResourceTest.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/OrganizationManagementResource.php::App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource@form",
        "expected_test_path": "tests/Unit/OrganizationManagementResourceTest.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/OrganizationManagementResource.php::App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource::getEloquentQuery",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/OrganizationManagementResourceTest.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/OrganizationManagementResource.php::App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource@getPages",
        "expected_test_path": "tests/Unit/OrganizationManagementResourceTest.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/OrganizationManagementResource.php::App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource@shouldRegisterNavigation",
        "expected_test_path": "tests/Unit/OrganizationManagementResourceTest.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/OrganizationManagementResource.php::App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource@table",
        "expected_test_path": "tests/Unit/OrganizationManagementResourceTest.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::canCreate",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@canCreate",
        "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::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::getEloquentQuery",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getEloquentQuery",
        "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::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/SubscriptionBillingTimelineResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource::canViewAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@canViewAny",
        "expected_test_path": "tests/Unit/SubscriptionBillingTimelineResourceTest.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/SubscriptionBillingTimelineResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource::getModelLabel",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@getModelLabel",
        "expected_test_path": "tests/Unit/SubscriptionBillingTimelineResourceTest.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/SubscriptionBillingTimelineResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@getPages",
        "expected_test_path": "tests/Unit/SubscriptionBillingTimelineResourceTest.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/SubscriptionBillingTimelineResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/SubscriptionBillingTimelineResourceTest.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/SubscriptionBillingTimelineResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource::getRelations",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@getRelations",
        "expected_test_path": "tests/Unit/SubscriptionBillingTimelineResourceTest.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/SubscriptionBillingTimelineResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@shouldRegisterNavigation",
        "expected_test_path": "tests/Unit/SubscriptionBillingTimelineResourceTest.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/SubscriptionBillingTimelineResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@table",
        "expected_test_path": "tests/Unit/SubscriptionBillingTimelineResourceTest.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/SubscriptionTierResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@form",
        "expected_test_path": "tests/Unit/SubscriptionTierResourceTest.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/SubscriptionTierResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource::getModelLabel",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@getModelLabel",
        "expected_test_path": "tests/Unit/SubscriptionTierResourceTest.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/SubscriptionTierResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@getPages",
        "expected_test_path": "tests/Unit/SubscriptionTierResourceTest.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/SubscriptionTierResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/SubscriptionTierResourceTest.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/SubscriptionTierResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource::getRelations",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@getRelations",
        "expected_test_path": "tests/Unit/SubscriptionTierResourceTest.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/SubscriptionTierResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@shouldRegisterNavigation",
        "expected_test_path": "tests/Unit/SubscriptionTierResourceTest.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/SubscriptionTierResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@table",
        "expected_test_path": "tests/Unit/SubscriptionTierResourceTest.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/SubscriptionTierResource/Pages/ManageTiers.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource\\Pages\\ManageTiers::getTitle",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource\\Pages\\ManageTiers@getTitle",
        "expected_test_path": "tests/Unit/ManageTiersTest.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/SupportTicketResource.php::App\\Domains\\SuperAdmin\\Resources\\SupportTicketResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SupportTicketResource@form",
        "expected_test_path": "tests/Unit/SupportTicketResourceTest.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/SupportTicketResource.php::App\\Domains\\SuperAdmin\\Resources\\SupportTicketResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SupportTicketResource@getPages",
        "expected_test_path": "tests/Unit/SupportTicketResourceTest.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/SupportTicketResource.php::App\\Domains\\SuperAdmin\\Resources\\SupportTicketResource::getRelations",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SupportTicketResource@getRelations",
        "expected_test_path": "tests/Unit/SupportTicketResourceTest.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/SupportTicketResource.php::App\\Domains\\SuperAdmin\\Resources\\SupportTicketResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SupportTicketResource@table",
        "expected_test_path": "tests/Unit/SupportTicketResourceTest.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/TrackingLinkResource/Pages/ViewTrackingLink.php::App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource\\Pages\\ViewTrackingLink::infolist",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource\\Pages\\ViewTrackingLink@infolist",
        "expected_test_path": "tests/Unit/ViewTrackingLinkTest.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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::canCreate",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@canCreate",
        "expected_test_path": "tests/Unit/TrackingResourceTest.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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::canDelete",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@canDelete",
        "expected_test_path": "tests/Unit/TrackingResourceTest.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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::canDeleteAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@canDeleteAny",
        "expected_test_path": "tests/Unit/TrackingResourceTest.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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::canEdit",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@canEdit",
        "expected_test_path": "tests/Unit/TrackingResourceTest.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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::canView",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@canView",
        "expected_test_path": "tests/Unit/TrackingResourceTest.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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::canViewAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@canViewAny",
        "expected_test_path": "tests/Unit/TrackingResourceTest.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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@form",
        "expected_test_path": "tests/Unit/TrackingResourceTest.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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@getPages",
        "expected_test_path": "tests/Unit/TrackingResourceTest.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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::getRelations",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@getRelations",
        "expected_test_path": "tests/Unit/TrackingResourceTest.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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@shouldRegisterNavigation",
        "expected_test_path": "tests/Unit/TrackingResourceTest.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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@table",
        "expected_test_path": "tests/Unit/TrackingResourceTest.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/WebhookEventAttemptResource.php::App\\Domains\\SuperAdmin\\Resources\\WebhookEventAttemptResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\WebhookEventAttemptResource@getPages",
        "expected_test_path": "tests/Unit/WebhookEventAttemptResourceTest.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/WebhookEventAttemptResource/Pages/ListWebhookEventAttempts.php::App\\Domains\\SuperAdmin\\Resources\\WebhookEventAttemptResource\\Pages\\ListWebhookEventAttempts::getTitle",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\WebhookEventAttemptResource\\Pages\\ListWebhookEventAttempts@getTitle",
        "expected_test_path": "tests/Unit/ListWebhookEventAttemptsTest.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/WebhookEventResource.php::App\\Domains\\SuperAdmin\\Resources\\WebhookEventResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\WebhookEventResource@getPages",
        "expected_test_path": "tests/Unit/WebhookEventResourceTest.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/WebhookEventResource/Pages/ListWebhookEvents.php::App\\Domains\\SuperAdmin\\Resources\\WebhookEventResource\\Pages\\ListWebhookEvents::getTitle",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\WebhookEventResource\\Pages\\ListWebhookEvents@getTitle",
        "expected_test_path": "tests/Unit/ListWebhookEventsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Helpers/CurrencyHelper.php::App\\Helpers\\CurrencyHelper::getCurrency",
        "fqmn": "App\\Helpers\\CurrencyHelper@getCurrency",
        "expected_test_path": "tests/Unit/CurrencyHelperTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Helpers/CurrencyHelper.php::App\\Helpers\\CurrencyHelper::getOrganizationCurrency",
        "fqmn": "App\\Helpers\\CurrencyHelper@getOrganizationCurrency",
        "expected_test_path": "tests/Unit/CurrencyHelperTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Admin/PlanVersionController.php::App\\Http\\Controllers\\Admin\\PlanVersionController::index",
        "fqmn": "App\\Http\\Controllers\\Admin\\PlanVersionController@index",
        "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/Admin/PlanVersionController.php::App\\Http\\Controllers\\Admin\\PlanVersionController::show",
        "fqmn": "App\\Http\\Controllers\\Admin\\PlanVersionController@show",
        "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/Admin/PlanVersionController.php::App\\Http\\Controllers\\Admin\\PlanVersionController::store",
        "fqmn": "App\\Http\\Controllers\\Admin\\PlanVersionController@store",
        "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/Admin/PlanVersionController.php::App\\Http\\Controllers\\Admin\\PlanVersionController::update",
        "fqmn": "App\\Http\\Controllers\\Admin\\PlanVersionController@update",
        "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/Admin/PlanVersionFeatureController.php::App\\Http\\Controllers\\Admin\\PlanVersionFeatureController::store",
        "fqmn": "App\\Http\\Controllers\\Admin\\PlanVersionFeatureController@store",
        "expected_test_path": "tests/Feature/PlanVersionFeatureControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Admin/PlanVersionFeatureController.php::App\\Http\\Controllers\\Admin\\PlanVersionFeatureController::update",
        "fqmn": "App\\Http\\Controllers\\Admin\\PlanVersionFeatureController@update",
        "expected_test_path": "tests/Feature/PlanVersionFeatureControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Admin/ZohoController.php::App\\Http\\Controllers\\Admin\\ZohoController::__construct",
        "fqmn": "App\\Http\\Controllers\\Admin\\ZohoController@__construct",
        "expected_test_path": "tests/Feature/ZohoControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Admin/ZohoController.php::App\\Http\\Controllers\\Admin\\ZohoController::callback",
        "fqmn": "App\\Http\\Controllers\\Admin\\ZohoController@callback",
        "expected_test_path": "tests/Feature/ZohoControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Admin/ZohoController.php::App\\Http\\Controllers\\Admin\\ZohoController::connect",
        "fqmn": "App\\Http\\Controllers\\Admin\\ZohoController@connect",
        "expected_test_path": "tests/Feature/ZohoControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Admin/ZohoController.php::App\\Http\\Controllers\\Admin\\ZohoController::index",
        "fqmn": "App\\Http\\Controllers\\Admin\\ZohoController@index",
        "expected_test_path": "tests/Feature/ZohoControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/AgencyWhatsAppProfileController.php::App\\Http\\Controllers\\AgencyWhatsAppProfileController::show",
        "fqmn": "App\\Http\\Controllers\\AgencyWhatsAppProfileController@show",
        "expected_test_path": "tests/Feature/AgencyWhatsAppProfileControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/AgencyWhatsAppProfileController.php::App\\Http\\Controllers\\AgencyWhatsAppProfileController::sync",
        "fqmn": "App\\Http\\Controllers\\AgencyWhatsAppProfileController@sync",
        "expected_test_path": "tests/Feature/AgencyWhatsAppProfileControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/AgencyWhatsAppProfileController.php::App\\Http\\Controllers\\AgencyWhatsAppProfileController::update",
        "fqmn": "App\\Http\\Controllers\\AgencyWhatsAppProfileController@update",
        "expected_test_path": "tests/Feature/AgencyWhatsAppProfileControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceDigestPreferencesController.php::App\\Http\\Controllers\\Api\\MaintenanceDigestPreferencesController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceDigestPreferencesController@show",
        "expected_test_path": "tests/Feature/MaintenanceDigestPreferencesControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceDigestPreferencesController.php::App\\Http\\Controllers\\Api\\MaintenanceDigestPreferencesController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceDigestPreferencesController@update",
        "expected_test_path": "tests/Feature/MaintenanceDigestPreferencesControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceMetricsController.php::App\\Http\\Controllers\\Api\\MaintenanceMetricsController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceMetricsController@index",
        "expected_test_path": "tests/Feature/MaintenanceMetricsControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceSlaController.php::App\\Http\\Controllers\\Api\\MaintenanceSlaController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceSlaController@destroy",
        "expected_test_path": "tests/Feature/MaintenanceSlaControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceSlaController.php::App\\Http\\Controllers\\Api\\MaintenanceSlaController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceSlaController@index",
        "expected_test_path": "tests/Feature/MaintenanceSlaControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceSlaController.php::App\\Http\\Controllers\\Api\\MaintenanceSlaController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceSlaController@show",
        "expected_test_path": "tests/Feature/MaintenanceSlaControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceSlaController.php::App\\Http\\Controllers\\Api\\MaintenanceSlaController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceSlaController@store",
        "expected_test_path": "tests/Feature/MaintenanceSlaControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceSlaController.php::App\\Http\\Controllers\\Api\\MaintenanceSlaController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceSlaController@update",
        "expected_test_path": "tests/Feature/MaintenanceSlaControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::addComment",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@addComment",
        "expected_test_path": "tests/Feature/MaintenanceTicketControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::approve",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@approve",
        "expected_test_path": "tests/Feature/MaintenanceTicketControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::assign",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@assign",
        "expected_test_path": "tests/Feature/MaintenanceTicketControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::complete",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@complete",
        "expected_test_path": "tests/Feature/MaintenanceTicketControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@index",
        "expected_test_path": "tests/Feature/MaintenanceTicketControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::reopen",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@reopen",
        "expected_test_path": "tests/Feature/MaintenanceTicketControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::reviewSuggestion",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@reviewSuggestion",
        "expected_test_path": "tests/Feature/MaintenanceTicketControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@show",
        "expected_test_path": "tests/Feature/MaintenanceTicketControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::slaLogs",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@slaLogs",
        "expected_test_path": "tests/Feature/MaintenanceTicketControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@store",
        "expected_test_path": "tests/Feature/MaintenanceTicketControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::suggestions",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@suggestions",
        "expected_test_path": "tests/Feature/MaintenanceTicketControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::updateStatus",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@updateStatus",
        "expected_test_path": "tests/Feature/MaintenanceTicketControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::uploadQuote",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@uploadQuote",
        "expected_test_path": "tests/Feature/MaintenanceTicketControllerTest.php",
        "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/MobileDashboardController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileDashboardController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileDashboardController@index",
        "expected_test_path": "tests/Feature/MobileDashboardControllerTest.php",
        "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/MobileForgotPasswordController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileForgotPasswordController::sendResetLink",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileForgotPasswordController@sendResetLink",
        "expected_test_path": "tests/Feature/MobileForgotPasswordControllerTest.php",
        "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/MobilePaymentController.php::App\\Http\\Controllers\\Api\\Mobile\\MobilePaymentController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobilePaymentController@index",
        "expected_test_path": "tests/Feature/MobilePaymentControllerTest.php",
        "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/MobilePeopleController.php::App\\Http\\Controllers\\Api\\Mobile\\MobilePeopleController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobilePeopleController@index",
        "expected_test_path": "tests/Feature/MobilePeopleControllerTest.php",
        "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/MobilePersonDetailController.php::App\\Http\\Controllers\\Api\\Mobile\\MobilePersonDetailController::properties",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobilePersonDetailController@properties",
        "expected_test_path": "tests/Feature/MobilePersonDetailControllerTest.php",
        "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/MobilePropertyController.php::App\\Http\\Controllers\\Api\\Mobile\\MobilePropertyController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobilePropertyController@index",
        "expected_test_path": "tests/Feature/MobilePropertyControllerTest.php",
        "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/MobileUnitController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileUnitController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileUnitController@index",
        "expected_test_path": "tests/Feature/MobileUnitControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/OutreachAI/PredictionController.php::App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController::getABTestStats",
        "fqmn": "App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController@getABTestStats",
        "expected_test_path": "tests/Feature/PredictionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/OutreachAI/PredictionController.php::App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController::getFeatureImportance",
        "fqmn": "App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController@getFeatureImportance",
        "expected_test_path": "tests/Feature/PredictionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/OutreachAI/PredictionController.php::App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController::getHistory",
        "fqmn": "App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController@getHistory",
        "expected_test_path": "tests/Feature/PredictionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/OutreachAI/PredictionController.php::App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController::getLatest",
        "fqmn": "App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController@getLatest",
        "expected_test_path": "tests/Feature/PredictionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/AppController.php::App\\Http\\Controllers\\AppController::index",
        "fqmn": "App\\Http\\Controllers\\AppController@index",
        "expected_test_path": "tests/Feature/AppControllerTest.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/AuthController.php::App\\Http\\Controllers\\Auth\\AuthController::login",
        "fqmn": "App\\Http\\Controllers\\Auth\\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/Auth/AuthController.php::App\\Http\\Controllers\\Auth\\AuthController::logout",
        "fqmn": "App\\Http\\Controllers\\Auth\\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/Auth/AuthController.php::App\\Http\\Controllers\\Auth\\AuthController::register",
        "fqmn": "App\\Http\\Controllers\\Auth\\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/Auth/AuthController.php::App\\Http\\Controllers\\Auth\\AuthController::showRegister",
        "fqmn": "App\\Http\\Controllers\\Auth\\AuthController@showRegister",
        "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/Auth/PasswordResetController.php::App\\Http\\Controllers\\Auth\\PasswordResetController::reset",
        "fqmn": "App\\Http\\Controllers\\Auth\\PasswordResetController@reset",
        "expected_test_path": "tests/Feature/PasswordResetControllerTest.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/PasswordResetController.php::App\\Http\\Controllers\\Auth\\PasswordResetController::sendResetLinkEmail",
        "fqmn": "App\\Http\\Controllers\\Auth\\PasswordResetController@sendResetLinkEmail",
        "expected_test_path": "tests/Feature/PasswordResetControllerTest.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/PasswordResetController.php::App\\Http\\Controllers\\Auth\\PasswordResetController::showForgotPassword",
        "fqmn": "App\\Http\\Controllers\\Auth\\PasswordResetController@showForgotPassword",
        "expected_test_path": "tests/Feature/PasswordResetControllerTest.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/PasswordResetController.php::App\\Http\\Controllers\\Auth\\PasswordResetController::showResetForm",
        "fqmn": "App\\Http\\Controllers\\Auth\\PasswordResetController@showResetForm",
        "expected_test_path": "tests/Feature/PasswordResetControllerTest.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/VerificationController.php::App\\Http\\Controllers\\Auth\\VerificationController::resend",
        "fqmn": "App\\Http\\Controllers\\Auth\\VerificationController@resend",
        "expected_test_path": "tests/Feature/VerificationControllerTest.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/VerificationController.php::App\\Http\\Controllers\\Auth\\VerificationController::showResendForm",
        "fqmn": "App\\Http\\Controllers\\Auth\\VerificationController@showResendForm",
        "expected_test_path": "tests/Feature/VerificationControllerTest.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/VerificationController.php::App\\Http\\Controllers\\Auth\\VerificationController::verify",
        "fqmn": "App\\Http\\Controllers\\Auth\\VerificationController@verify",
        "expected_test_path": "tests/Feature/VerificationControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/InvitationController.php::App\\Http\\Controllers\\InvitationController::accept",
        "fqmn": "App\\Http\\Controllers\\InvitationController@accept",
        "expected_test_path": "tests/Feature/InvitationControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/InvitationController.php::App\\Http\\Controllers\\InvitationController::destroy",
        "fqmn": "App\\Http\\Controllers\\InvitationController@destroy",
        "expected_test_path": "tests/Feature/InvitationControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/InvitationController.php::App\\Http\\Controllers\\InvitationController::index",
        "fqmn": "App\\Http\\Controllers\\InvitationController@index",
        "expected_test_path": "tests/Feature/InvitationControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/InvitationController.php::App\\Http\\Controllers\\InvitationController::show",
        "fqmn": "App\\Http\\Controllers\\InvitationController@show",
        "expected_test_path": "tests/Feature/InvitationControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/InvitationController.php::App\\Http\\Controllers\\InvitationController::store",
        "fqmn": "App\\Http\\Controllers\\InvitationController@store",
        "expected_test_path": "tests/Feature/InvitationControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Landing/PlansController.php::App\\Http\\Controllers\\Landing\\PlansController::index",
        "fqmn": "App\\Http\\Controllers\\Landing\\PlansController@index",
        "expected_test_path": "tests/Feature/PlansControllerTest.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/LeadController.php::App\\Http\\Controllers\\LeadController::store",
        "fqmn": "App\\Http\\Controllers\\LeadController@store",
        "expected_test_path": "tests/Feature/LeadControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/LocaleController.php::App\\Http\\Controllers\\LocaleController::post",
        "fqmn": "App\\Http\\Controllers\\LocaleController@post",
        "expected_test_path": "tests/Feature/LocaleControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/LocaleController.php::App\\Http\\Controllers\\LocaleController::switch",
        "fqmn": "App\\Http\\Controllers\\LocaleController@switch",
        "expected_test_path": "tests/Feature/LocaleControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/OrgWhatsAppOnboardingController.php::App\\Http\\Controllers\\OrgWhatsAppOnboardingController::selectNumber",
        "fqmn": "App\\Http\\Controllers\\OrgWhatsAppOnboardingController@selectNumber",
        "expected_test_path": "tests/Feature/OrgWhatsAppOnboardingControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/OrgWhatsAppOnboardingController.php::App\\Http\\Controllers\\OrgWhatsAppOnboardingController::start",
        "fqmn": "App\\Http\\Controllers\\OrgWhatsAppOnboardingController@start",
        "expected_test_path": "tests/Feature/OrgWhatsAppOnboardingControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Outreach/FollowUpMetricsController.php::App\\Http\\Controllers\\Outreach\\FollowUpMetricsController::index",
        "fqmn": "App\\Http\\Controllers\\Outreach\\FollowUpMetricsController@index",
        "expected_test_path": "tests/Feature/FollowUpMetricsControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Outreach/FollowUpMetricsController.php::App\\Http\\Controllers\\Outreach\\FollowUpMetricsController::priorities",
        "fqmn": "App\\Http\\Controllers\\Outreach\\FollowUpMetricsController@priorities",
        "expected_test_path": "tests/Feature/FollowUpMetricsControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Settings/WhatsAppSettingsController.php::App\\Http\\Controllers\\Settings\\WhatsAppSettingsController::provision",
        "fqmn": "App\\Http\\Controllers\\Settings\\WhatsAppSettingsController@provision",
        "expected_test_path": "tests/Feature/WhatsAppSettingsControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Settings/WhatsAppSettingsController.php::App\\Http\\Controllers\\Settings\\WhatsAppSettingsController::show",
        "fqmn": "App\\Http\\Controllers\\Settings\\WhatsAppSettingsController@show",
        "expected_test_path": "tests/Feature/WhatsAppSettingsControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Settings/WhatsAppSettingsController.php::App\\Http\\Controllers\\Settings\\WhatsAppSettingsController::test",
        "fqmn": "App\\Http\\Controllers\\Settings\\WhatsAppSettingsController@test",
        "expected_test_path": "tests/Feature/WhatsAppSettingsControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Settings/WhatsAppSettingsController.php::App\\Http\\Controllers\\Settings\\WhatsAppSettingsController::update",
        "fqmn": "App\\Http\\Controllers\\Settings\\WhatsAppSettingsController@update",
        "expected_test_path": "tests/Feature/WhatsAppSettingsControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/TenantPaymentController.php::App\\Http\\Controllers\\TenantPaymentController::initiate",
        "fqmn": "App\\Http\\Controllers\\TenantPaymentController@initiate",
        "expected_test_path": "tests/Feature/TenantPaymentControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/TenantPaymentController.php::App\\Http\\Controllers\\TenantPaymentController::success",
        "fqmn": "App\\Http\\Controllers\\TenantPaymentController@success",
        "expected_test_path": "tests/Feature/TenantPaymentControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Testing/DashboardPerformanceIndicatorsController.php::App\\Http\\Controllers\\Testing\\DashboardPerformanceIndicatorsController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\DashboardPerformanceIndicatorsController@__invoke",
        "expected_test_path": "tests/Feature/DashboardPerformanceIndicatorsControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Testing/DashboardQuickStatsController.php::App\\Http\\Controllers\\Testing\\DashboardQuickStatsController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\DashboardQuickStatsController@__invoke",
        "expected_test_path": "tests/Feature/DashboardQuickStatsControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Testing/LandlordOverviewStatsController.php::App\\Http\\Controllers\\Testing\\LandlordOverviewStatsController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\LandlordOverviewStatsController@__invoke",
        "expected_test_path": "tests/Feature/LandlordOverviewStatsControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Testing/OutreachConversationInboundController.php::App\\Http\\Controllers\\Testing\\OutreachConversationInboundController::store",
        "fqmn": "App\\Http\\Controllers\\Testing\\OutreachConversationInboundController@store",
        "expected_test_path": "tests/Feature/OutreachConversationInboundControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Testing/OutreachKnowledgeValidateController.php::App\\Http\\Controllers\\Testing\\OutreachKnowledgeValidateController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\OutreachKnowledgeValidateController@__invoke",
        "expected_test_path": "tests/Feature/OutreachKnowledgeValidateControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Testing/OutreachPricingSuggestController.php::App\\Http\\Controllers\\Testing\\OutreachPricingSuggestController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\OutreachPricingSuggestController@__invoke",
        "expected_test_path": "tests/Feature/OutreachPricingSuggestControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Testing/RecordAnonymousDiscountCodeUsageController.php::App\\Http\\Controllers\\Testing\\RecordAnonymousDiscountCodeUsageController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\RecordAnonymousDiscountCodeUsageController@__invoke",
        "expected_test_path": "tests/Feature/RecordAnonymousDiscountCodeUsageControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Testing/RecordSubscriptionDiscountCodeUsageController.php::App\\Http\\Controllers\\Testing\\RecordSubscriptionDiscountCodeUsageController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\RecordSubscriptionDiscountCodeUsageController@__invoke",
        "expected_test_path": "tests/Feature/RecordSubscriptionDiscountCodeUsageControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/TrackingController.php::App\\Http\\Controllers\\TrackingController::redirect",
        "fqmn": "App\\Http\\Controllers\\TrackingController@redirect",
        "expected_test_path": "tests/Feature/TrackingControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/VerificationController.php::App\\Http\\Controllers\\VerificationController::check",
        "fqmn": "App\\Http\\Controllers\\VerificationController@check",
        "expected_test_path": "tests/Feature/VerificationControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/VerificationController.php::App\\Http\\Controllers\\VerificationController::start",
        "fqmn": "App\\Http\\Controllers\\VerificationController@start",
        "expected_test_path": "tests/Feature/VerificationControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Web/FeaturePreviewController.php::App\\Http\\Controllers\\Web\\FeaturePreviewController::start",
        "fqmn": "App\\Http\\Controllers\\Web\\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/Web/GuestRenewalController.php::App\\Http\\Controllers\\Web\\GuestRenewalController::process",
        "fqmn": "App\\Http\\Controllers\\Web\\GuestRenewalController@process",
        "expected_test_path": "tests/Feature/GuestRenewalControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Web/GuestRenewalController.php::App\\Http\\Controllers\\Web\\GuestRenewalController::show",
        "fqmn": "App\\Http\\Controllers\\Web\\GuestRenewalController@show",
        "expected_test_path": "tests/Feature/GuestRenewalControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Web/LandlordStatementController.php::App\\Http\\Controllers\\Web\\LandlordStatementController::download",
        "fqmn": "App\\Http\\Controllers\\Web\\LandlordStatementController@download",
        "expected_test_path": "tests/Feature/LandlordStatementControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Web/ProspectShortlistController.php::App\\Http\\Controllers\\Web\\ProspectShortlistController::show",
        "fqmn": "App\\Http\\Controllers\\Web\\ProspectShortlistController@show",
        "expected_test_path": "tests/Feature/ProspectShortlistControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Web/SubscriptionController.php::App\\Http\\Controllers\\Web\\SubscriptionController::__construct",
        "fqmn": "App\\Http\\Controllers\\Web\\SubscriptionController@__construct",
        "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/Web/SubscriptionController.php::App\\Http\\Controllers\\Web\\SubscriptionController::failure",
        "fqmn": "App\\Http\\Controllers\\Web\\SubscriptionController@failure",
        "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/Web/SubscriptionController.php::App\\Http\\Controllers\\Web\\SubscriptionController::index",
        "fqmn": "App\\Http\\Controllers\\Web\\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/Web/SubscriptionController.php::App\\Http\\Controllers\\Web\\SubscriptionController::subscribe",
        "fqmn": "App\\Http\\Controllers\\Web\\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/Web/SubscriptionController.php::App\\Http\\Controllers\\Web\\SubscriptionController::success",
        "fqmn": "App\\Http\\Controllers\\Web\\SubscriptionController@success",
        "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/Webhooks/Dialog360StatusWebhookController.php::App\\Http\\Controllers\\Webhooks\\Dialog360StatusWebhookController::handle",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\Dialog360StatusWebhookController@handle",
        "expected_test_path": "tests/Feature/Dialog360StatusWebhookControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Webhooks/Dialog360WebhookController.php::App\\Http\\Controllers\\Webhooks\\Dialog360WebhookController::handle",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\Dialog360WebhookController@handle",
        "expected_test_path": "tests/Feature/Dialog360WebhookControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Webhooks/TapSettlementWebhookController.php::App\\Http\\Controllers\\Webhooks\\TapSettlementWebhookController::handle",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\TapSettlementWebhookController@handle",
        "expected_test_path": "tests/Feature/TapSettlementWebhookControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Webhooks/TwilioWebhookController.php::App\\Http\\Controllers\\Webhooks\\TwilioWebhookController::inbound",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\TwilioWebhookController@inbound",
        "expected_test_path": "tests/Feature/TwilioWebhookControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Webhooks/TwilioWebhookController.php::App\\Http\\Controllers\\Webhooks\\TwilioWebhookController::incomingMessage",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\TwilioWebhookController@incomingMessage",
        "expected_test_path": "tests/Feature/TwilioWebhookControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Webhooks/TwilioWebhookController.php::App\\Http\\Controllers\\Webhooks\\TwilioWebhookController::status",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\TwilioWebhookController@status",
        "expected_test_path": "tests/Feature/TwilioWebhookControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Webhooks/ZeptoWebhookController.php::App\\Http\\Controllers\\Webhooks\\ZeptoWebhookController::handleBounce",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\ZeptoWebhookController@handleBounce",
        "expected_test_path": "tests/Feature/ZeptoWebhookControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Webhooks/ZohoWebhookController.php::App\\Http\\Controllers\\Webhooks\\ZohoWebhookController::handleCustomer",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\ZohoWebhookController@handleCustomer",
        "expected_test_path": "tests/Feature/ZohoWebhookControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Webhooks/ZohoWebhookController.php::App\\Http\\Controllers\\Webhooks\\ZohoWebhookController::handleError",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\ZohoWebhookController@handleError",
        "expected_test_path": "tests/Feature/ZohoWebhookControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Webhooks/ZohoWebhookController.php::App\\Http\\Controllers\\Webhooks\\ZohoWebhookController::handleInvoice",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\ZohoWebhookController@handleInvoice",
        "expected_test_path": "tests/Feature/ZohoWebhookControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Admin/StorePlanVersionFeatureRequest.php::App\\Http\\Requests\\Admin\\StorePlanVersionFeatureRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Admin\\StorePlanVersionFeatureRequest@authorize",
        "expected_test_path": "tests/Feature/StorePlanVersionFeatureRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Admin/StorePlanVersionFeatureRequest.php::App\\Http\\Requests\\Admin\\StorePlanVersionFeatureRequest::rules",
        "fqmn": "App\\Http\\Requests\\Admin\\StorePlanVersionFeatureRequest@rules",
        "expected_test_path": "tests/Feature/StorePlanVersionFeatureRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Admin/UpdatePlanVersionFeatureRequest.php::App\\Http\\Requests\\Admin\\UpdatePlanVersionFeatureRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Admin\\UpdatePlanVersionFeatureRequest@authorize",
        "expected_test_path": "tests/Feature/UpdatePlanVersionFeatureRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Admin/UpdatePlanVersionFeatureRequest.php::App\\Http\\Requests\\Admin\\UpdatePlanVersionFeatureRequest::rules",
        "fqmn": "App\\Http\\Requests\\Admin\\UpdatePlanVersionFeatureRequest@rules",
        "expected_test_path": "tests/Feature/UpdatePlanVersionFeatureRequestTest.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::attributes",
        "fqmn": "App\\Http\\Requests\\Auth\\LoginRequest@attributes",
        "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::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::messages",
        "fqmn": "App\\Http\\Requests\\Auth\\LoginRequest@messages",
        "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/ResendVerificationRequest.php::App\\Http\\Requests\\Auth\\ResendVerificationRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Auth\\ResendVerificationRequest@authorize",
        "expected_test_path": "tests/Feature/ResendVerificationRequestTest.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/ResendVerificationRequest.php::App\\Http\\Requests\\Auth\\ResendVerificationRequest::rules",
        "fqmn": "App\\Http\\Requests\\Auth\\ResendVerificationRequest@rules",
        "expected_test_path": "tests/Feature/ResendVerificationRequestTest.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/ResetPasswordRequest.php::App\\Http\\Requests\\Auth\\ResetPasswordRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Auth\\ResetPasswordRequest@authorize",
        "expected_test_path": "tests/Feature/ResetPasswordRequestTest.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/ResetPasswordRequest.php::App\\Http\\Requests\\Auth\\ResetPasswordRequest::rules",
        "fqmn": "App\\Http\\Requests\\Auth\\ResetPasswordRequest@rules",
        "expected_test_path": "tests/Feature/ResetPasswordRequestTest.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/SendPasswordResetLinkRequest.php::App\\Http\\Requests\\Auth\\SendPasswordResetLinkRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Auth\\SendPasswordResetLinkRequest@authorize",
        "expected_test_path": "tests/Feature/SendPasswordResetLinkRequestTest.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/SendPasswordResetLinkRequest.php::App\\Http\\Requests\\Auth\\SendPasswordResetLinkRequest::rules",
        "fqmn": "App\\Http\\Requests\\Auth\\SendPasswordResetLinkRequest@rules",
        "expected_test_path": "tests/Feature/SendPasswordResetLinkRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Gateway/DeliveryStatusRequest.php::App\\Http\\Requests\\Gateway\\DeliveryStatusRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Gateway\\DeliveryStatusRequest@authorize",
        "expected_test_path": "tests/Feature/DeliveryStatusRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Gateway/DeliveryStatusRequest.php::App\\Http\\Requests\\Gateway\\DeliveryStatusRequest::rules",
        "fqmn": "App\\Http\\Requests\\Gateway\\DeliveryStatusRequest@rules",
        "expected_test_path": "tests/Feature/DeliveryStatusRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Gateway/HeartbeatRequest.php::App\\Http\\Requests\\Gateway\\HeartbeatRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Gateway\\HeartbeatRequest@authorize",
        "expected_test_path": "tests/Feature/HeartbeatRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Gateway/HeartbeatRequest.php::App\\Http\\Requests\\Gateway\\HeartbeatRequest::rules",
        "fqmn": "App\\Http\\Requests\\Gateway\\HeartbeatRequest@rules",
        "expected_test_path": "tests/Feature/HeartbeatRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Gateway/RegisterGatewayRequest.php::App\\Http\\Requests\\Gateway\\RegisterGatewayRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Gateway\\RegisterGatewayRequest@authorize",
        "expected_test_path": "tests/Feature/RegisterGatewayRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Gateway/RegisterGatewayRequest.php::App\\Http\\Requests\\Gateway\\RegisterGatewayRequest::rules",
        "fqmn": "App\\Http\\Requests\\Gateway\\RegisterGatewayRequest@rules",
        "expected_test_path": "tests/Feature/RegisterGatewayRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Leads/StoreLeadRequest.php::App\\Http\\Requests\\Leads\\StoreLeadRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Leads\\StoreLeadRequest@authorize",
        "expected_test_path": "tests/Feature/StoreLeadRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Leads/StoreLeadRequest.php::App\\Http\\Requests\\Leads\\StoreLeadRequest::rules",
        "fqmn": "App\\Http\\Requests\\Leads\\StoreLeadRequest@rules",
        "expected_test_path": "tests/Feature/StoreLeadRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Leases/TerminateLeaseRequest.php::App\\Http\\Requests\\Leases\\TerminateLeaseRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Leases\\TerminateLeaseRequest@authorize",
        "expected_test_path": "tests/Feature/TerminateLeaseRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Leases/TerminateLeaseRequest.php::App\\Http\\Requests\\Leases\\TerminateLeaseRequest::rules",
        "fqmn": "App\\Http\\Requests\\Leases\\TerminateLeaseRequest@rules",
        "expected_test_path": "tests/Feature/TerminateLeaseRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/OrgDeductionSettings/UpdateOrgDeductionSettingsRequest.php::App\\Http\\Requests\\OrgDeductionSettings\\UpdateOrgDeductionSettingsRequest::authorize",
        "fqmn": "App\\Http\\Requests\\OrgDeductionSettings\\UpdateOrgDeductionSettingsRequest@authorize",
        "expected_test_path": "tests/Feature/UpdateOrgDeductionSettingsRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/OrgDeductionSettings/UpdateOrgDeductionSettingsRequest.php::App\\Http\\Requests\\OrgDeductionSettings\\UpdateOrgDeductionSettingsRequest::rules",
        "fqmn": "App\\Http\\Requests\\OrgDeductionSettings\\UpdateOrgDeductionSettingsRequest@rules",
        "expected_test_path": "tests/Feature/UpdateOrgDeductionSettingsRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/OrgDeductionSettings/UpdateOrgDeductionSettingsRequest.php::App\\Http\\Requests\\OrgDeductionSettings\\UpdateOrgDeductionSettingsRequest::withValidator",
        "fqmn": "App\\Http\\Requests\\OrgDeductionSettings\\UpdateOrgDeductionSettingsRequest@withValidator",
        "expected_test_path": "tests/Feature/UpdateOrgDeductionSettingsRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/People/StoreLandlordRequest.php::App\\Http\\Requests\\People\\StoreLandlordRequest::authorize",
        "fqmn": "App\\Http\\Requests\\People\\StoreLandlordRequest@authorize",
        "expected_test_path": "tests/Feature/StoreLandlordRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/People/StoreLandlordRequest.php::App\\Http\\Requests\\People\\StoreLandlordRequest::rules",
        "fqmn": "App\\Http\\Requests\\People\\StoreLandlordRequest@rules",
        "expected_test_path": "tests/Feature/StoreLandlordRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/People/StoreTenantRequest.php::App\\Http\\Requests\\People\\StoreTenantRequest::authorize",
        "fqmn": "App\\Http\\Requests\\People\\StoreTenantRequest@authorize",
        "expected_test_path": "tests/Feature/StoreTenantRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/People/StoreTenantRequest.php::App\\Http\\Requests\\People\\StoreTenantRequest::rules",
        "fqmn": "App\\Http\\Requests\\People\\StoreTenantRequest@rules",
        "expected_test_path": "tests/Feature/StoreTenantRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Properties/GetPropertiesByTypeRequest.php::App\\Http\\Requests\\Properties\\GetPropertiesByTypeRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Properties\\GetPropertiesByTypeRequest@authorize",
        "expected_test_path": "tests/Feature/GetPropertiesByTypeRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Properties/GetPropertiesByTypeRequest.php::App\\Http\\Requests\\Properties\\GetPropertiesByTypeRequest::rules",
        "fqmn": "App\\Http\\Requests\\Properties\\GetPropertiesByTypeRequest@rules",
        "expected_test_path": "tests/Feature/GetPropertiesByTypeRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Properties/GetPropertiesForLandlordRequest.php::App\\Http\\Requests\\Properties\\GetPropertiesForLandlordRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Properties\\GetPropertiesForLandlordRequest@authorize",
        "expected_test_path": "tests/Feature/GetPropertiesForLandlordRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Properties/GetPropertiesForLandlordRequest.php::App\\Http\\Requests\\Properties\\GetPropertiesForLandlordRequest::rules",
        "fqmn": "App\\Http\\Requests\\Properties\\GetPropertiesForLandlordRequest@rules",
        "expected_test_path": "tests/Feature/GetPropertiesForLandlordRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Properties/UpdateUnitCompositionRequest.php::App\\Http\\Requests\\Properties\\UpdateUnitCompositionRequest::attributes",
        "fqmn": "App\\Http\\Requests\\Properties\\UpdateUnitCompositionRequest@attributes",
        "expected_test_path": "tests/Feature/UpdateUnitCompositionRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Properties/UpdateUnitCompositionRequest.php::App\\Http\\Requests\\Properties\\UpdateUnitCompositionRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Properties\\UpdateUnitCompositionRequest@authorize",
        "expected_test_path": "tests/Feature/UpdateUnitCompositionRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Properties/UpdateUnitCompositionRequest.php::App\\Http\\Requests\\Properties\\UpdateUnitCompositionRequest::messages",
        "fqmn": "App\\Http\\Requests\\Properties\\UpdateUnitCompositionRequest@messages",
        "expected_test_path": "tests/Feature/UpdateUnitCompositionRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Properties/UpdateUnitCompositionRequest.php::App\\Http\\Requests\\Properties\\UpdateUnitCompositionRequest::rules",
        "fqmn": "App\\Http\\Requests\\Properties\\UpdateUnitCompositionRequest@rules",
        "expected_test_path": "tests/Feature/UpdateUnitCompositionRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Reminders/GetRemindersByStatusRequest.php::App\\Http\\Requests\\Reminders\\GetRemindersByStatusRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Reminders\\GetRemindersByStatusRequest@authorize",
        "expected_test_path": "tests/Feature/GetRemindersByStatusRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Reminders/GetRemindersByStatusRequest.php::App\\Http\\Requests\\Reminders\\GetRemindersByStatusRequest::rules",
        "fqmn": "App\\Http\\Requests\\Reminders\\GetRemindersByStatusRequest@rules",
        "expected_test_path": "tests/Feature/GetRemindersByStatusRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/RentCycles/BulkUpdateRentCycleRequest.php::App\\Http\\Requests\\RentCycles\\BulkUpdateRentCycleRequest::authorize",
        "fqmn": "App\\Http\\Requests\\RentCycles\\BulkUpdateRentCycleRequest@authorize",
        "expected_test_path": "tests/Feature/BulkUpdateRentCycleRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/RentCycles/BulkUpdateRentCycleRequest.php::App\\Http\\Requests\\RentCycles\\BulkUpdateRentCycleRequest::rules",
        "fqmn": "App\\Http\\Requests\\RentCycles\\BulkUpdateRentCycleRequest@rules",
        "expected_test_path": "tests/Feature/BulkUpdateRentCycleRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/RentCycles/UpdateRentCycleRequest.php::App\\Http\\Requests\\RentCycles\\UpdateRentCycleRequest::authorize",
        "fqmn": "App\\Http\\Requests\\RentCycles\\UpdateRentCycleRequest@authorize",
        "expected_test_path": "tests/Feature/UpdateRentCycleRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/RentCycles/UpdateRentCycleRequest.php::App\\Http\\Requests\\RentCycles\\UpdateRentCycleRequest::rules",
        "fqmn": "App\\Http\\Requests\\RentCycles\\UpdateRentCycleRequest@rules",
        "expected_test_path": "tests/Feature/UpdateRentCycleRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Reports/ExportCollectionReportRequest.php::App\\Http\\Requests\\Reports\\ExportCollectionReportRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Reports\\ExportCollectionReportRequest@authorize",
        "expected_test_path": "tests/Feature/ExportCollectionReportRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Reports/ExportCollectionReportRequest.php::App\\Http\\Requests\\Reports\\ExportCollectionReportRequest::rules",
        "fqmn": "App\\Http\\Requests\\Reports\\ExportCollectionReportRequest@rules",
        "expected_test_path": "tests/Feature/ExportCollectionReportRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Reports/ExportOverdueReportRequest.php::App\\Http\\Requests\\Reports\\ExportOverdueReportRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Reports\\ExportOverdueReportRequest@authorize",
        "expected_test_path": "tests/Feature/ExportOverdueReportRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Reports/ExportOverdueReportRequest.php::App\\Http\\Requests\\Reports\\ExportOverdueReportRequest::rules",
        "fqmn": "App\\Http\\Requests\\Reports\\ExportOverdueReportRequest@rules",
        "expected_test_path": "tests/Feature/ExportOverdueReportRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Reports/ExportRentRollRequest.php::App\\Http\\Requests\\Reports\\ExportRentRollRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Reports\\ExportRentRollRequest@authorize",
        "expected_test_path": "tests/Feature/ExportRentRollRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Reports/ExportRentRollRequest.php::App\\Http\\Requests\\Reports\\ExportRentRollRequest::rules",
        "fqmn": "App\\Http\\Requests\\Reports\\ExportRentRollRequest@rules",
        "expected_test_path": "tests/Feature/ExportRentRollRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Subscriptions/TopUpRequest.php::App\\Http\\Requests\\Subscriptions\\TopUpRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Subscriptions\\TopUpRequest@authorize",
        "expected_test_path": "tests/Feature/TopUpRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Subscriptions/TopUpRequest.php::App\\Http\\Requests\\Subscriptions\\TopUpRequest::rules",
        "fqmn": "App\\Http\\Requests\\Subscriptions\\TopUpRequest@rules",
        "expected_test_path": "tests/Feature/TopUpRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Transfers/FailTransferRequest.php::App\\Http\\Requests\\Transfers\\FailTransferRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Transfers\\FailTransferRequest@authorize",
        "expected_test_path": "tests/Feature/FailTransferRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Transfers/FailTransferRequest.php::App\\Http\\Requests\\Transfers\\FailTransferRequest::rules",
        "fqmn": "App\\Http\\Requests\\Transfers\\FailTransferRequest@rules",
        "expected_test_path": "tests/Feature/FailTransferRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Verification/CheckVerificationRequest.php::App\\Http\\Requests\\Verification\\CheckVerificationRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Verification\\CheckVerificationRequest@authorize",
        "expected_test_path": "tests/Feature/CheckVerificationRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Verification/CheckVerificationRequest.php::App\\Http\\Requests\\Verification\\CheckVerificationRequest::rules",
        "fqmn": "App\\Http\\Requests\\Verification\\CheckVerificationRequest@rules",
        "expected_test_path": "tests/Feature/CheckVerificationRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Verification/StartVerificationRequest.php::App\\Http\\Requests\\Verification\\StartVerificationRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Verification\\StartVerificationRequest@authorize",
        "expected_test_path": "tests/Feature/StartVerificationRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Verification/StartVerificationRequest.php::App\\Http\\Requests\\Verification\\StartVerificationRequest::rules",
        "fqmn": "App\\Http\\Requests\\Verification\\StartVerificationRequest@rules",
        "expected_test_path": "tests/Feature/StartVerificationRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/WhatsApp/ProvisionWhatsAppRequest.php::App\\Http\\Requests\\WhatsApp\\ProvisionWhatsAppRequest::authorize",
        "fqmn": "App\\Http\\Requests\\WhatsApp\\ProvisionWhatsAppRequest@authorize",
        "expected_test_path": "tests/Feature/ProvisionWhatsAppRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/WhatsApp/ProvisionWhatsAppRequest.php::App\\Http\\Requests\\WhatsApp\\ProvisionWhatsAppRequest::rules",
        "fqmn": "App\\Http\\Requests\\WhatsApp\\ProvisionWhatsAppRequest@rules",
        "expected_test_path": "tests/Feature/ProvisionWhatsAppRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/WhatsApp/SelectPhoneNumberRequest.php::App\\Http\\Requests\\WhatsApp\\SelectPhoneNumberRequest::authorize",
        "fqmn": "App\\Http\\Requests\\WhatsApp\\SelectPhoneNumberRequest@authorize",
        "expected_test_path": "tests/Feature/SelectPhoneNumberRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/WhatsApp/SelectPhoneNumberRequest.php::App\\Http\\Requests\\WhatsApp\\SelectPhoneNumberRequest::rules",
        "fqmn": "App\\Http\\Requests\\WhatsApp\\SelectPhoneNumberRequest@rules",
        "expected_test_path": "tests/Feature/SelectPhoneNumberRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/WhatsApp/StartOnboardingRequest.php::App\\Http\\Requests\\WhatsApp\\StartOnboardingRequest::authorize",
        "fqmn": "App\\Http\\Requests\\WhatsApp\\StartOnboardingRequest@authorize",
        "expected_test_path": "tests/Feature/StartOnboardingRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/WhatsApp/StartOnboardingRequest.php::App\\Http\\Requests\\WhatsApp\\StartOnboardingRequest::rules",
        "fqmn": "App\\Http\\Requests\\WhatsApp\\StartOnboardingRequest@rules",
        "expected_test_path": "tests/Feature/StartOnboardingRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/WhatsApp/TestWhatsAppRequest.php::App\\Http\\Requests\\WhatsApp\\TestWhatsAppRequest::authorize",
        "fqmn": "App\\Http\\Requests\\WhatsApp\\TestWhatsAppRequest@authorize",
        "expected_test_path": "tests/Feature/TestWhatsAppRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/WhatsApp/TestWhatsAppRequest.php::App\\Http\\Requests\\WhatsApp\\TestWhatsAppRequest::rules",
        "fqmn": "App\\Http\\Requests\\WhatsApp\\TestWhatsAppRequest@rules",
        "expected_test_path": "tests/Feature/TestWhatsAppRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/WhatsApp/UpdateWhatsAppIntegrationRequest.php::App\\Http\\Requests\\WhatsApp\\UpdateWhatsAppIntegrationRequest::authorize",
        "fqmn": "App\\Http\\Requests\\WhatsApp\\UpdateWhatsAppIntegrationRequest@authorize",
        "expected_test_path": "tests/Feature/UpdateWhatsAppIntegrationRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/WhatsApp/UpdateWhatsAppIntegrationRequest.php::App\\Http\\Requests\\WhatsApp\\UpdateWhatsAppIntegrationRequest::rules",
        "fqmn": "App\\Http\\Requests\\WhatsApp\\UpdateWhatsAppIntegrationRequest@rules",
        "expected_test_path": "tests/Feature/UpdateWhatsAppIntegrationRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/WhatsApp/UpdateWhatsAppProfileRequest.php::App\\Http\\Requests\\WhatsApp\\UpdateWhatsAppProfileRequest::authorize",
        "fqmn": "App\\Http\\Requests\\WhatsApp\\UpdateWhatsAppProfileRequest@authorize",
        "expected_test_path": "tests/Feature/UpdateWhatsAppProfileRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/WhatsApp/UpdateWhatsAppProfileRequest.php::App\\Http\\Requests\\WhatsApp\\UpdateWhatsAppProfileRequest::rules",
        "fqmn": "App\\Http\\Requests\\WhatsApp\\UpdateWhatsAppProfileRequest@rules",
        "expected_test_path": "tests/Feature/UpdateWhatsAppProfileRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/WhatsApp/UpdateWhatsAppSettingsRequest.php::App\\Http\\Requests\\WhatsApp\\UpdateWhatsAppSettingsRequest::authorize",
        "fqmn": "App\\Http\\Requests\\WhatsApp\\UpdateWhatsAppSettingsRequest@authorize",
        "expected_test_path": "tests/Feature/UpdateWhatsAppSettingsRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/WhatsApp/UpdateWhatsAppSettingsRequest.php::App\\Http\\Requests\\WhatsApp\\UpdateWhatsAppSettingsRequest::rules",
        "fqmn": "App\\Http\\Requests\\WhatsApp\\UpdateWhatsAppSettingsRequest@rules",
        "expected_test_path": "tests/Feature/UpdateWhatsAppSettingsRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/ApproveReminderTemplateJob.php::App\\Jobs\\ApproveReminderTemplateJob::handle",
        "fqmn": "App\\Jobs\\ApproveReminderTemplateJob@handle",
        "expected_test_path": "tests/Feature/ApproveReminderTemplateJobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Billing/BuildMessagePackageInvoiceContextJob.php::App\\Jobs\\Billing\\BuildMessagePackageInvoiceContextJob::handle",
        "fqmn": "App\\Jobs\\Billing\\BuildMessagePackageInvoiceContextJob@handle",
        "expected_test_path": "tests/Feature/BuildMessagePackageInvoiceContextJobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Billing/CreateAuditLogJob.php::App\\Jobs\\Billing\\CreateAuditLogJob::handle",
        "fqmn": "App\\Jobs\\Billing\\CreateAuditLogJob@handle",
        "expected_test_path": "tests/Feature/CreateAuditLogJobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Billing/CreateMessagePackageAndBuildInvoiceContextJob.php::App\\Jobs\\Billing\\CreateMessagePackageAndBuildInvoiceContextJob::handle",
        "fqmn": "App\\Jobs\\Billing\\CreateMessagePackageAndBuildInvoiceContextJob@handle",
        "expected_test_path": "tests/Feature/CreateMessagePackageAndBuildInvoiceContextJobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Billing/CreateMessagePackageJob.php::App\\Jobs\\Billing\\CreateMessagePackageJob::handle",
        "fqmn": "App\\Jobs\\Billing\\CreateMessagePackageJob@handle",
        "expected_test_path": "tests/Feature/CreateMessagePackageJobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Billing/PushZohoSettlementPaymentJob.php::App\\Jobs\\Billing\\PushZohoSettlementPaymentJob::handle",
        "fqmn": "App\\Jobs\\Billing\\PushZohoSettlementPaymentJob@handle",
        "expected_test_path": "tests/Feature/PushZohoSettlementPaymentJobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Billing/RunMessageBillingWorkflowJob.php::App\\Jobs\\Billing\\RunMessageBillingWorkflowJob::handle",
        "fqmn": "App\\Jobs\\Billing\\RunMessageBillingWorkflowJob@handle",
        "expected_test_path": "tests/Feature/RunMessageBillingWorkflowJobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Chat/InboundMessageJob.php::App\\Jobs\\Chat\\InboundMessageJob::handle",
        "fqmn": "App\\Jobs\\Chat\\InboundMessageJob@handle",
        "expected_test_path": "tests/Feature/InboundMessageJobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Chat/ProcessAIMessageJob.php::App\\Jobs\\Chat\\ProcessAIMessageJob::handle",
        "fqmn": "App\\Jobs\\Chat\\ProcessAIMessageJob@handle",
        "expected_test_path": "tests/Feature/ProcessAIMessageJobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Chat/SendOutboundMessageJob.php::App\\Jobs\\Chat\\SendOutboundMessageJob::backoff",
        "fqmn": "App\\Jobs\\Chat\\SendOutboundMessageJob@backoff",
        "expected_test_path": "tests/Feature/SendOutboundMessageJobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Chat/SendOutboundMessageJob.php::App\\Jobs\\Chat\\SendOutboundMessageJob::handle",
        "fqmn": "App\\Jobs\\Chat\\SendOutboundMessageJob@handle",
        "expected_test_path": "tests/Feature/SendOutboundMessageJobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Outreach/CheckActivationStatusJob.php::App\\Jobs\\Outreach\\CheckActivationStatusJob::handle",
        "fqmn": "App\\Jobs\\Outreach\\CheckActivationStatusJob@handle",
        "expected_test_path": "tests/Feature/CheckActivationStatusJobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Outreach/ProcessRenewalOutreachJob.php::App\\Jobs\\Outreach\\ProcessRenewalOutreachJob::handle",
        "fqmn": "App\\Jobs\\Outreach\\ProcessRenewalOutreachJob@handle",
        "expected_test_path": "tests/Feature/ProcessRenewalOutreachJobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Outreach/SendCampaignMessageJob.php::App\\Jobs\\Outreach\\SendCampaignMessageJob::handle",
        "fqmn": "App\\Jobs\\Outreach\\SendCampaignMessageJob@handle",
        "expected_test_path": "tests/Feature/SendCampaignMessageJobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Outreach/SendCampaignMessageJob.php::App\\Jobs\\Outreach\\SendCampaignMessageJob::middleware",
        "fqmn": "App\\Jobs\\Outreach\\SendCampaignMessageJob@middleware",
        "expected_test_path": "tests/Feature/SendCampaignMessageJobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/OutreachAI/AutoSubscriptionNudgeJob.php::App\\Jobs\\OutreachAI\\AutoSubscriptionNudgeJob::handle",
        "fqmn": "App\\Jobs\\OutreachAI\\AutoSubscriptionNudgeJob@handle",
        "expected_test_path": "tests/Feature/AutoSubscriptionNudgeJobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/OutreachAI/EvaluateFollowUpJob.php::App\\Jobs\\OutreachAI\\EvaluateFollowUpJob::handle",
        "fqmn": "App\\Jobs\\OutreachAI\\EvaluateFollowUpJob@handle",
        "expected_test_path": "tests/Feature/EvaluateFollowUpJobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/OutreachAI/PostReplyPersistenceJob.php::App\\Jobs\\OutreachAI\\PostReplyPersistenceJob::handle",
        "fqmn": "App\\Jobs\\OutreachAI\\PostReplyPersistenceJob@handle",
        "expected_test_path": "tests/Feature/PostReplyPersistenceJobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/OutreachAI/ReactivatePortalUserJob.php::App\\Jobs\\OutreachAI\\ReactivatePortalUserJob::handle",
        "fqmn": "App\\Jobs\\OutreachAI\\ReactivatePortalUserJob@handle",
        "expected_test_path": "tests/Feature/ReactivatePortalUserJobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/OutreachAI/RunDeepReasoningJob.php::App\\Jobs\\OutreachAI\\RunDeepReasoningJob::handle",
        "fqmn": "App\\Jobs\\OutreachAI\\RunDeepReasoningJob@handle",
        "expected_test_path": "tests/Feature/RunDeepReasoningJobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/OutreachAI/RunQualificationOutcomeJob.php::App\\Jobs\\OutreachAI\\RunQualificationOutcomeJob::handle",
        "fqmn": "App\\Jobs\\OutreachAI\\RunQualificationOutcomeJob@handle",
        "expected_test_path": "tests/Feature/RunQualificationOutcomeJobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/OutreachAI/RunSalesAccelerationOutcomeJob.php::App\\Jobs\\OutreachAI\\RunSalesAccelerationOutcomeJob::handle",
        "fqmn": "App\\Jobs\\OutreachAI\\RunSalesAccelerationOutcomeJob@handle",
        "expected_test_path": "tests/Feature/RunSalesAccelerationOutcomeJobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/OutreachAI/RunSequenceStepJob.php::App\\Jobs\\OutreachAI\\RunSequenceStepJob::handle",
        "fqmn": "App\\Jobs\\OutreachAI\\RunSequenceStepJob@handle",
        "expected_test_path": "tests/Feature/RunSequenceStepJobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/OutreachAI/SendHumanHandoffNotificationJob.php::App\\Jobs\\OutreachAI\\SendHumanHandoffNotificationJob::handle",
        "fqmn": "App\\Jobs\\OutreachAI\\SendHumanHandoffNotificationJob@handle",
        "expected_test_path": "tests/Feature/SendHumanHandoffNotificationJobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/OutreachAI/SendHumanHandoffNotificationJob.php::App\\Jobs\\OutreachAI\\SendHumanHandoffNotificationJob::tags",
        "fqmn": "App\\Jobs\\OutreachAI\\SendHumanHandoffNotificationJob@tags",
        "expected_test_path": "tests/Feature/SendHumanHandoffNotificationJobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/OutreachAI/SendReengagementMessageJob.php::App\\Jobs\\OutreachAI\\SendReengagementMessageJob::backoff",
        "fqmn": "App\\Jobs\\OutreachAI\\SendReengagementMessageJob@backoff",
        "expected_test_path": "tests/Feature/SendReengagementMessageJobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/OutreachAI/SendReengagementMessageJob.php::App\\Jobs\\OutreachAI\\SendReengagementMessageJob::handle",
        "fqmn": "App\\Jobs\\OutreachAI\\SendReengagementMessageJob@handle",
        "expected_test_path": "tests/Feature/SendReengagementMessageJobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/OutreachAI/SendReengagementMessageJob.php::App\\Jobs\\OutreachAI\\SendReengagementMessageJob::tags",
        "fqmn": "App\\Jobs\\OutreachAI\\SendReengagementMessageJob@tags",
        "expected_test_path": "tests/Feature/SendReengagementMessageJobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/ProcessWhatsAppTemplateUpdateJob.php::App\\Jobs\\ProcessWhatsAppTemplateUpdateJob::handle",
        "fqmn": "App\\Jobs\\ProcessWhatsAppTemplateUpdateJob@handle",
        "expected_test_path": "tests/Feature/ProcessWhatsAppTemplateUpdateJobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/PushWhatsAppTemplateJob.php::App\\Jobs\\PushWhatsAppTemplateJob::handle",
        "fqmn": "App\\Jobs\\PushWhatsAppTemplateJob@handle",
        "expected_test_path": "tests/Feature/PushWhatsAppTemplateJobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/RejectReminderTemplateJob.php::App\\Jobs\\RejectReminderTemplateJob::handle",
        "fqmn": "App\\Jobs\\RejectReminderTemplateJob@handle",
        "expected_test_path": "tests/Feature/RejectReminderTemplateJobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/SendDailyNotificationDigest.php::App\\Jobs\\SendDailyNotificationDigest::handle",
        "fqmn": "App\\Jobs\\SendDailyNotificationDigest@handle",
        "expected_test_path": "tests/Feature/SendDailyNotificationDigestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/SendTrialNudgeJob.php::App\\Jobs\\SendTrialNudgeJob::handle",
        "fqmn": "App\\Jobs\\SendTrialNudgeJob@handle",
        "expected_test_path": "tests/Feature/SendTrialNudgeJobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/SyncWhatsAppTemplateStatusJob.php::App\\Jobs\\SyncWhatsAppTemplateStatusJob::handle",
        "fqmn": "App\\Jobs\\SyncWhatsAppTemplateStatusJob@handle",
        "expected_test_path": "tests/Feature/SyncWhatsAppTemplateStatusJobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Billing/OnSubscriptionSuspended.php::App\\Listeners\\Billing\\OnSubscriptionSuspended::handle",
        "fqmn": "App\\Listeners\\Billing\\OnSubscriptionSuspended@handle",
        "expected_test_path": "tests/Feature/OnSubscriptionSuspendedTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Billing/OnTrialExpired.php::App\\Listeners\\Billing\\OnTrialExpired::handle",
        "fqmn": "App\\Listeners\\Billing\\OnTrialExpired@handle",
        "expected_test_path": "tests/Feature/OnTrialExpiredTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/OnSubscriptionRefundedCreateCreditNote.php::App\\Listeners\\OnSubscriptionRefundedCreateCreditNote::handle",
        "fqmn": "App\\Listeners\\OnSubscriptionRefundedCreateCreditNote@handle",
        "expected_test_path": "tests/Feature/OnSubscriptionRefundedCreateCreditNoteTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/OutreachAI/ClearUpsellCacheOnSubscriptionChange.php::App\\Listeners\\OutreachAI\\ClearUpsellCacheOnSubscriptionChange::handle",
        "fqmn": "App\\Listeners\\OutreachAI\\ClearUpsellCacheOnSubscriptionChange@handle",
        "expected_test_path": "tests/Feature/ClearUpsellCacheOnSubscriptionChangeTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/TrackUserPortalActivity.php::App\\Listeners\\TrackUserPortalActivity::handle",
        "fqmn": "App\\Listeners\\TrackUserPortalActivity@handle",
        "expected_test_path": "tests/Feature/TrackUserPortalActivityTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Models/OutreachAI/HumanHandoffState.php::App\\Models\\OutreachAI\\HumanHandoffState::getActiveConversation",
        "fqmn": "App\\Models\\OutreachAI\\HumanHandoffState@getActiveConversation",
        "expected_test_path": "tests/Unit/HumanHandoffStateTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Models/OutreachAI/HumanHandoffState.php::App\\Models\\OutreachAI\\HumanHandoffState::instance",
        "fqmn": "App\\Models\\OutreachAI\\HumanHandoffState@instance",
        "expected_test_path": "tests/Unit/HumanHandoffStateTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Models/OutreachAI/HumanHandoffState.php::App\\Models\\OutreachAI\\HumanHandoffState::isAvailable",
        "fqmn": "App\\Models\\OutreachAI\\HumanHandoffState@isAvailable",
        "expected_test_path": "tests/Unit/HumanHandoffStateTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/AdaptiveWeightPolicy.php::App\\Policies\\AdaptiveWeightPolicy::create",
        "fqmn": "App\\Policies\\AdaptiveWeightPolicy@create",
        "expected_test_path": "tests/Unit/AdaptiveWeightPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/AdaptiveWeightPolicy.php::App\\Policies\\AdaptiveWeightPolicy::delete",
        "fqmn": "App\\Policies\\AdaptiveWeightPolicy@delete",
        "expected_test_path": "tests/Unit/AdaptiveWeightPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/AdaptiveWeightPolicy.php::App\\Policies\\AdaptiveWeightPolicy::forceDelete",
        "fqmn": "App\\Policies\\AdaptiveWeightPolicy@forceDelete",
        "expected_test_path": "tests/Unit/AdaptiveWeightPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/AdaptiveWeightPolicy.php::App\\Policies\\AdaptiveWeightPolicy::restore",
        "fqmn": "App\\Policies\\AdaptiveWeightPolicy@restore",
        "expected_test_path": "tests/Unit/AdaptiveWeightPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/AdaptiveWeightPolicy.php::App\\Policies\\AdaptiveWeightPolicy::update",
        "fqmn": "App\\Policies\\AdaptiveWeightPolicy@update",
        "expected_test_path": "tests/Unit/AdaptiveWeightPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/AdaptiveWeightPolicy.php::App\\Policies\\AdaptiveWeightPolicy::view",
        "fqmn": "App\\Policies\\AdaptiveWeightPolicy@view",
        "expected_test_path": "tests/Unit/AdaptiveWeightPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/AdaptiveWeightPolicy.php::App\\Policies\\AdaptiveWeightPolicy::viewAny",
        "fqmn": "App\\Policies\\AdaptiveWeightPolicy@viewAny",
        "expected_test_path": "tests/Unit/AdaptiveWeightPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/AuditLeakPolicy.php::App\\Policies\\AuditLeakPolicy::create",
        "fqmn": "App\\Policies\\AuditLeakPolicy@create",
        "expected_test_path": "tests/Unit/AuditLeakPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/AuditLeakPolicy.php::App\\Policies\\AuditLeakPolicy::delete",
        "fqmn": "App\\Policies\\AuditLeakPolicy@delete",
        "expected_test_path": "tests/Unit/AuditLeakPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/AuditLeakPolicy.php::App\\Policies\\AuditLeakPolicy::forceDelete",
        "fqmn": "App\\Policies\\AuditLeakPolicy@forceDelete",
        "expected_test_path": "tests/Unit/AuditLeakPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/AuditLeakPolicy.php::App\\Policies\\AuditLeakPolicy::restore",
        "fqmn": "App\\Policies\\AuditLeakPolicy@restore",
        "expected_test_path": "tests/Unit/AuditLeakPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/AuditLeakPolicy.php::App\\Policies\\AuditLeakPolicy::update",
        "fqmn": "App\\Policies\\AuditLeakPolicy@update",
        "expected_test_path": "tests/Unit/AuditLeakPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/AuditLeakPolicy.php::App\\Policies\\AuditLeakPolicy::view",
        "fqmn": "App\\Policies\\AuditLeakPolicy@view",
        "expected_test_path": "tests/Unit/AuditLeakPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/AuditLeakPolicy.php::App\\Policies\\AuditLeakPolicy::viewAny",
        "fqmn": "App\\Policies\\AuditLeakPolicy@viewAny",
        "expected_test_path": "tests/Unit/AuditLeakPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/ConversationPolicy.php::App\\Policies\\ConversationPolicy::create",
        "fqmn": "App\\Policies\\ConversationPolicy@create",
        "expected_test_path": "tests/Unit/ConversationPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/ConversationPolicy.php::App\\Policies\\ConversationPolicy::delete",
        "fqmn": "App\\Policies\\ConversationPolicy@delete",
        "expected_test_path": "tests/Unit/ConversationPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/ConversationPolicy.php::App\\Policies\\ConversationPolicy::forceDelete",
        "fqmn": "App\\Policies\\ConversationPolicy@forceDelete",
        "expected_test_path": "tests/Unit/ConversationPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/ConversationPolicy.php::App\\Policies\\ConversationPolicy::restore",
        "fqmn": "App\\Policies\\ConversationPolicy@restore",
        "expected_test_path": "tests/Unit/ConversationPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/ConversationPolicy.php::App\\Policies\\ConversationPolicy::update",
        "fqmn": "App\\Policies\\ConversationPolicy@update",
        "expected_test_path": "tests/Unit/ConversationPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/ConversationPolicy.php::App\\Policies\\ConversationPolicy::view",
        "fqmn": "App\\Policies\\ConversationPolicy@view",
        "expected_test_path": "tests/Unit/ConversationPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/ConversationPolicy.php::App\\Policies\\ConversationPolicy::viewAny",
        "fqmn": "App\\Policies\\ConversationPolicy@viewAny",
        "expected_test_path": "tests/Unit/ConversationPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/FilePolicy.php::App\\Policies\\FilePolicy::create",
        "fqmn": "App\\Policies\\FilePolicy@create",
        "expected_test_path": "tests/Unit/FilePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/FilePolicy.php::App\\Policies\\FilePolicy::delete",
        "fqmn": "App\\Policies\\FilePolicy@delete",
        "expected_test_path": "tests/Unit/FilePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/FilePolicy.php::App\\Policies\\FilePolicy::update",
        "fqmn": "App\\Policies\\FilePolicy@update",
        "expected_test_path": "tests/Unit/FilePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/FilePolicy.php::App\\Policies\\FilePolicy::view",
        "fqmn": "App\\Policies\\FilePolicy@view",
        "expected_test_path": "tests/Unit/FilePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/FilePolicy.php::App\\Policies\\FilePolicy::viewAny",
        "fqmn": "App\\Policies\\FilePolicy@viewAny",
        "expected_test_path": "tests/Unit/FilePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/FollowUpPolicy.php::App\\Policies\\FollowUpPolicy::cancel",
        "fqmn": "App\\Policies\\FollowUpPolicy@cancel",
        "expected_test_path": "tests/Unit/FollowUpPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/FollowUpPolicy.php::App\\Policies\\FollowUpPolicy::create",
        "fqmn": "App\\Policies\\FollowUpPolicy@create",
        "expected_test_path": "tests/Unit/FollowUpPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/FollowUpPolicy.php::App\\Policies\\FollowUpPolicy::delete",
        "fqmn": "App\\Policies\\FollowUpPolicy@delete",
        "expected_test_path": "tests/Unit/FollowUpPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/FollowUpPolicy.php::App\\Policies\\FollowUpPolicy::forceDelete",
        "fqmn": "App\\Policies\\FollowUpPolicy@forceDelete",
        "expected_test_path": "tests/Unit/FollowUpPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/FollowUpPolicy.php::App\\Policies\\FollowUpPolicy::restore",
        "fqmn": "App\\Policies\\FollowUpPolicy@restore",
        "expected_test_path": "tests/Unit/FollowUpPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/FollowUpPolicy.php::App\\Policies\\FollowUpPolicy::trigger",
        "fqmn": "App\\Policies\\FollowUpPolicy@trigger",
        "expected_test_path": "tests/Unit/FollowUpPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/FollowUpPolicy.php::App\\Policies\\FollowUpPolicy::update",
        "fqmn": "App\\Policies\\FollowUpPolicy@update",
        "expected_test_path": "tests/Unit/FollowUpPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/FollowUpPolicy.php::App\\Policies\\FollowUpPolicy::view",
        "fqmn": "App\\Policies\\FollowUpPolicy@view",
        "expected_test_path": "tests/Unit/FollowUpPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/FollowUpPolicy.php::App\\Policies\\FollowUpPolicy::viewAny",
        "fqmn": "App\\Policies\\FollowUpPolicy@viewAny",
        "expected_test_path": "tests/Unit/FollowUpPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/LearningSignalPolicy.php::App\\Policies\\LearningSignalPolicy::create",
        "fqmn": "App\\Policies\\LearningSignalPolicy@create",
        "expected_test_path": "tests/Unit/LearningSignalPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/LearningSignalPolicy.php::App\\Policies\\LearningSignalPolicy::delete",
        "fqmn": "App\\Policies\\LearningSignalPolicy@delete",
        "expected_test_path": "tests/Unit/LearningSignalPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/LearningSignalPolicy.php::App\\Policies\\LearningSignalPolicy::forceDelete",
        "fqmn": "App\\Policies\\LearningSignalPolicy@forceDelete",
        "expected_test_path": "tests/Unit/LearningSignalPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/LearningSignalPolicy.php::App\\Policies\\LearningSignalPolicy::restore",
        "fqmn": "App\\Policies\\LearningSignalPolicy@restore",
        "expected_test_path": "tests/Unit/LearningSignalPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/LearningSignalPolicy.php::App\\Policies\\LearningSignalPolicy::update",
        "fqmn": "App\\Policies\\LearningSignalPolicy@update",
        "expected_test_path": "tests/Unit/LearningSignalPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/LearningSignalPolicy.php::App\\Policies\\LearningSignalPolicy::view",
        "fqmn": "App\\Policies\\LearningSignalPolicy@view",
        "expected_test_path": "tests/Unit/LearningSignalPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/LearningSignalPolicy.php::App\\Policies\\LearningSignalPolicy::viewAny",
        "fqmn": "App\\Policies\\LearningSignalPolicy@viewAny",
        "expected_test_path": "tests/Unit/LearningSignalPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/LeasePolicy.php::App\\Policies\\LeasePolicy::create",
        "fqmn": "App\\Policies\\LeasePolicy@create",
        "expected_test_path": "tests/Unit/LeasePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/LeasePolicy.php::App\\Policies\\LeasePolicy::delete",
        "fqmn": "App\\Policies\\LeasePolicy@delete",
        "expected_test_path": "tests/Unit/LeasePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/LeasePolicy.php::App\\Policies\\LeasePolicy::forceDelete",
        "fqmn": "App\\Policies\\LeasePolicy@forceDelete",
        "expected_test_path": "tests/Unit/LeasePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/LeasePolicy.php::App\\Policies\\LeasePolicy::manageContracts",
        "fqmn": "App\\Policies\\LeasePolicy@manageContracts",
        "expected_test_path": "tests/Unit/LeasePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/LeasePolicy.php::App\\Policies\\LeasePolicy::restore",
        "fqmn": "App\\Policies\\LeasePolicy@restore",
        "expected_test_path": "tests/Unit/LeasePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/LeasePolicy.php::App\\Policies\\LeasePolicy::terminate",
        "fqmn": "App\\Policies\\LeasePolicy@terminate",
        "expected_test_path": "tests/Unit/LeasePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/LeasePolicy.php::App\\Policies\\LeasePolicy::update",
        "fqmn": "App\\Policies\\LeasePolicy@update",
        "expected_test_path": "tests/Unit/LeasePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/LeasePolicy.php::App\\Policies\\LeasePolicy::view",
        "fqmn": "App\\Policies\\LeasePolicy@view",
        "expected_test_path": "tests/Unit/LeasePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/LeasePolicy.php::App\\Policies\\LeasePolicy::viewAny",
        "fqmn": "App\\Policies\\LeasePolicy@viewAny",
        "expected_test_path": "tests/Unit/LeasePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/MaintenanceSlaPolicy.php::App\\Policies\\MaintenanceSlaPolicy::create",
        "fqmn": "App\\Policies\\MaintenanceSlaPolicy@create",
        "expected_test_path": "tests/Unit/MaintenanceSlaPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/MaintenanceSlaPolicy.php::App\\Policies\\MaintenanceSlaPolicy::delete",
        "fqmn": "App\\Policies\\MaintenanceSlaPolicy@delete",
        "expected_test_path": "tests/Unit/MaintenanceSlaPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/MaintenanceSlaPolicy.php::App\\Policies\\MaintenanceSlaPolicy::update",
        "fqmn": "App\\Policies\\MaintenanceSlaPolicy@update",
        "expected_test_path": "tests/Unit/MaintenanceSlaPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/MaintenanceSlaPolicy.php::App\\Policies\\MaintenanceSlaPolicy::view",
        "fqmn": "App\\Policies\\MaintenanceSlaPolicy@view",
        "expected_test_path": "tests/Unit/MaintenanceSlaPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/MaintenanceSlaPolicy.php::App\\Policies\\MaintenanceSlaPolicy::viewAny",
        "fqmn": "App\\Policies\\MaintenanceSlaPolicy@viewAny",
        "expected_test_path": "tests/Unit/MaintenanceSlaPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/OrganizationPolicy.php::App\\Policies\\OrganizationPolicy::view",
        "fqmn": "App\\Policies\\OrganizationPolicy@view",
        "expected_test_path": "tests/Unit/OrganizationPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/OrganizationPolicy.php::App\\Policies\\OrganizationPolicy::viewAny",
        "fqmn": "App\\Policies\\OrganizationPolicy@viewAny",
        "expected_test_path": "tests/Unit/OrganizationPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PaymentPolicy.php::App\\Policies\\PaymentPolicy::create",
        "fqmn": "App\\Policies\\PaymentPolicy@create",
        "expected_test_path": "tests/Unit/PaymentPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PaymentPolicy.php::App\\Policies\\PaymentPolicy::delete",
        "fqmn": "App\\Policies\\PaymentPolicy@delete",
        "expected_test_path": "tests/Unit/PaymentPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PaymentPolicy.php::App\\Policies\\PaymentPolicy::forceDelete",
        "fqmn": "App\\Policies\\PaymentPolicy@forceDelete",
        "expected_test_path": "tests/Unit/PaymentPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PaymentPolicy.php::App\\Policies\\PaymentPolicy::restore",
        "fqmn": "App\\Policies\\PaymentPolicy@restore",
        "expected_test_path": "tests/Unit/PaymentPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PaymentPolicy.php::App\\Policies\\PaymentPolicy::update",
        "fqmn": "App\\Policies\\PaymentPolicy@update",
        "expected_test_path": "tests/Unit/PaymentPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PaymentPolicy.php::App\\Policies\\PaymentPolicy::view",
        "fqmn": "App\\Policies\\PaymentPolicy@view",
        "expected_test_path": "tests/Unit/PaymentPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PaymentPolicy.php::App\\Policies\\PaymentPolicy::viewAny",
        "fqmn": "App\\Policies\\PaymentPolicy@viewAny",
        "expected_test_path": "tests/Unit/PaymentPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/SupportTicketPolicy.php::App\\Policies\\SupportTicketPolicy::create",
        "fqmn": "App\\Policies\\SupportTicketPolicy@create",
        "expected_test_path": "tests/Unit/SupportTicketPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/SupportTicketPolicy.php::App\\Policies\\SupportTicketPolicy::delete",
        "fqmn": "App\\Policies\\SupportTicketPolicy@delete",
        "expected_test_path": "tests/Unit/SupportTicketPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/SupportTicketPolicy.php::App\\Policies\\SupportTicketPolicy::update",
        "fqmn": "App\\Policies\\SupportTicketPolicy@update",
        "expected_test_path": "tests/Unit/SupportTicketPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/SupportTicketPolicy.php::App\\Policies\\SupportTicketPolicy::view",
        "fqmn": "App\\Policies\\SupportTicketPolicy@view",
        "expected_test_path": "tests/Unit/SupportTicketPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/SupportTicketPolicy.php::App\\Policies\\SupportTicketPolicy::viewAny",
        "fqmn": "App\\Policies\\SupportTicketPolicy@viewAny",
        "expected_test_path": "tests/Unit/SupportTicketPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/UnitPolicy.php::App\\Policies\\UnitPolicy::assignTenant",
        "fqmn": "App\\Policies\\UnitPolicy@assignTenant",
        "expected_test_path": "tests/Unit/UnitPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/UnitPolicy.php::App\\Policies\\UnitPolicy::create",
        "fqmn": "App\\Policies\\UnitPolicy@create",
        "expected_test_path": "tests/Unit/UnitPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/UnitPolicy.php::App\\Policies\\UnitPolicy::delete",
        "fqmn": "App\\Policies\\UnitPolicy@delete",
        "expected_test_path": "tests/Unit/UnitPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/UnitPolicy.php::App\\Policies\\UnitPolicy::forceDelete",
        "fqmn": "App\\Policies\\UnitPolicy@forceDelete",
        "expected_test_path": "tests/Unit/UnitPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/UnitPolicy.php::App\\Policies\\UnitPolicy::restore",
        "fqmn": "App\\Policies\\UnitPolicy@restore",
        "expected_test_path": "tests/Unit/UnitPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/UnitPolicy.php::App\\Policies\\UnitPolicy::update",
        "fqmn": "App\\Policies\\UnitPolicy@update",
        "expected_test_path": "tests/Unit/UnitPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/UnitPolicy.php::App\\Policies\\UnitPolicy::vacate",
        "fqmn": "App\\Policies\\UnitPolicy@vacate",
        "expected_test_path": "tests/Unit/UnitPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/UnitPolicy.php::App\\Policies\\UnitPolicy::view",
        "fqmn": "App\\Policies\\UnitPolicy@view",
        "expected_test_path": "tests/Unit/UnitPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/UnitPolicy.php::App\\Policies\\UnitPolicy::viewAny",
        "fqmn": "App\\Policies\\UnitPolicy@viewAny",
        "expected_test_path": "tests/Unit/UnitPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Repositories/OrganizationScopedRepository.php::App\\Repositories\\OrganizationScopedRepository::create",
        "fqmn": "App\\Repositories\\OrganizationScopedRepository@create",
        "expected_test_path": "tests/Unit/OrganizationScopedRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Repositories/OrganizationScopedRepository.php::App\\Repositories\\OrganizationScopedRepository::query",
        "fqmn": "App\\Repositories\\OrganizationScopedRepository@query",
        "expected_test_path": "tests/Unit/OrganizationScopedRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Repositories/OrganizationScopedRepository.php::App\\Repositories\\OrganizationScopedRepository::setOrganization",
        "fqmn": "App\\Repositories\\OrganizationScopedRepository@setOrganization",
        "expected_test_path": "tests/Unit/OrganizationScopedRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Repositories/OrganizationScopedRepository.php::App\\Repositories\\OrganizationScopedRepository::setOrganizationId",
        "fqmn": "App\\Repositories\\OrganizationScopedRepository@setOrganizationId",
        "expected_test_path": "tests/Unit/OrganizationScopedRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Repositories/Outreach/LeadRepository.php::App\\Repositories\\Outreach\\LeadRepository::getAttemptCount",
        "fqmn": "App\\Repositories\\Outreach\\LeadRepository@getAttemptCount",
        "expected_test_path": "tests/Unit/LeadRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Repositories/Outreach/LeadRepository.php::App\\Repositories\\Outreach\\LeadRepository::getFilteredLeads",
        "fqmn": "App\\Repositories\\Outreach\\LeadRepository@getFilteredLeads",
        "expected_test_path": "tests/Unit/LeadRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Repositories/Outreach/LeadRepository.php::App\\Repositories\\Outreach\\LeadRepository::paginate",
        "fqmn": "App\\Repositories\\Outreach\\LeadRepository@paginate",
        "expected_test_path": "tests/Unit/LeadRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Sandbox/Dialog360/Controllers/MessageController.php::App\\Sandbox\\Dialog360\\Controllers\\MessageController::store",
        "fqmn": "App\\Sandbox\\Dialog360\\Controllers\\MessageController@store",
        "expected_test_path": "tests/Unit/MessageControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Sandbox/Dialog360/Controllers/MetricsController.php::App\\Sandbox\\Dialog360\\Controllers\\MetricsController::connections",
        "fqmn": "App\\Sandbox\\Dialog360\\Controllers\\MetricsController@connections",
        "expected_test_path": "tests/Unit/MetricsControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Sandbox/Dialog360/Controllers/MetricsController.php::App\\Sandbox\\Dialog360\\Controllers\\MetricsController::messages",
        "fqmn": "App\\Sandbox\\Dialog360\\Controllers\\MetricsController@messages",
        "expected_test_path": "tests/Unit/MetricsControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Sandbox/Dialog360/Controllers/TemplateController.php::App\\Sandbox\\Dialog360\\Controllers\\TemplateController::show",
        "fqmn": "App\\Sandbox\\Dialog360\\Controllers\\TemplateController@show",
        "expected_test_path": "tests/Unit/TemplateControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Sandbox/Dialog360/Controllers/TemplateController.php::App\\Sandbox\\Dialog360\\Controllers\\TemplateController::store",
        "fqmn": "App\\Sandbox\\Dialog360\\Controllers\\TemplateController@store",
        "expected_test_path": "tests/Unit/TemplateControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Sandbox/Dialog360/Controllers/WebhookController.php::App\\Sandbox\\Dialog360\\Controllers\\WebhookController::test",
        "fqmn": "App\\Sandbox\\Dialog360\\Controllers\\WebhookController@test",
        "expected_test_path": "tests/Unit/WebhookControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Billing/BillingAlertService.php::App\\Services\\Billing\\BillingAlertService::checkAndNotifyLowBalance",
        "fqmn": "App\\Services\\Billing\\BillingAlertService@checkAndNotifyLowBalance",
        "expected_test_path": "tests/Feature/BillingAlertServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Billing/BillingAlertService.php::App\\Services\\Billing\\BillingAlertService::notifyCreditExhausted",
        "fqmn": "App\\Services\\Billing\\BillingAlertService@notifyCreditExhausted",
        "expected_test_path": "tests/Feature/BillingAlertServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Billing/BillingAlertService.php::App\\Services\\Billing\\BillingAlertService::notifyPaymentFailed",
        "fqmn": "App\\Services\\Billing\\BillingAlertService@notifyPaymentFailed",
        "expected_test_path": "tests/Feature/BillingAlertServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Billing/BillingAlertService.php::App\\Services\\Billing\\BillingAlertService::notifySuspension",
        "fqmn": "App\\Services\\Billing\\BillingAlertService@notifySuspension",
        "expected_test_path": "tests/Feature/BillingAlertServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Billing/DunningEngine.php::App\\Services\\Billing\\DunningEngine::attemptPayment",
        "fqmn": "App\\Services\\Billing\\DunningEngine@attemptPayment",
        "expected_test_path": "tests/Feature/DunningEngineTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Billing/RenewalContextBuilder.php::App\\Services\\Billing\\RenewalContextBuilder::build",
        "fqmn": "App\\Services\\Billing\\RenewalContextBuilder@build",
        "expected_test_path": "tests/Feature/RenewalContextBuilderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Billing/TapSettlementReviewQueueService.php::App\\Services\\Billing\\TapSettlementReviewQueueService::createTicket",
        "fqmn": "App\\Services\\Billing\\TapSettlementReviewQueueService@createTicket",
        "expected_test_path": "tests/Feature/TapSettlementReviewQueueServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Billing/TapSettlementSuggestionEngine.php::App\\Services\\Billing\\TapSettlementSuggestionEngine::analyze",
        "fqmn": "App\\Services\\Billing\\TapSettlementSuggestionEngine@analyze",
        "expected_test_path": "tests/Feature/TapSettlementSuggestionEngineTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Billing/VatService.php::App\\Services\\Billing\\VatService::determinePolicy",
        "fqmn": "App\\Services\\Billing\\VatService@determinePolicy",
        "expected_test_path": "tests/Feature/VatServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Email/ZeptoMailer.php::App\\Services\\Email\\ZeptoMailer::sendHtml",
        "fqmn": "App\\Services\\Email\\ZeptoMailer@sendHtml",
        "expected_test_path": "tests/Feature/ZeptoMailerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/GccCountryService.php::App\\Services\\GccCountryService::detectCountryFromPhone",
        "fqmn": "App\\Services\\GccCountryService@detectCountryFromPhone",
        "expected_test_path": "tests/Feature/GccCountryServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/GccCountryService.php::App\\Services\\GccCountryService::getCountries",
        "fqmn": "App\\Services\\GccCountryService@getCountries",
        "expected_test_path": "tests/Feature/GccCountryServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/GccCountryService.php::App\\Services\\GccCountryService::getCountryCodes",
        "fqmn": "App\\Services\\GccCountryService@getCountryCodes",
        "expected_test_path": "tests/Feature/GccCountryServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/GccCountryService.php::App\\Services\\GccCountryService::getCountryName",
        "fqmn": "App\\Services\\GccCountryService@getCountryName",
        "expected_test_path": "tests/Feature/GccCountryServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/GccCountryService.php::App\\Services\\GccCountryService::getCurrency",
        "fqmn": "App\\Services\\GccCountryService@getCurrency",
        "expected_test_path": "tests/Feature/GccCountryServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/GccCountryService.php::App\\Services\\GccCountryService::getCurrencyName",
        "fqmn": "App\\Services\\GccCountryService@getCurrencyName",
        "expected_test_path": "tests/Feature/GccCountryServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/GccCountryService.php::App\\Services\\GccCountryService::isGccCountry",
        "fqmn": "App\\Services\\GccCountryService@isGccCountry",
        "expected_test_path": "tests/Feature/GccCountryServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Imports/CsvImportExecutorV2.php::App\\Services\\Imports\\CsvImportExecutorV2::execute",
        "fqmn": "App\\Services\\Imports\\CsvImportExecutorV2@execute",
        "expected_test_path": "tests/Feature/CsvImportExecutorV2Test.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Imports/CsvImportExecutorV2.php::App\\Services\\Imports\\CsvImportExecutorV2::generateErrorReport",
        "fqmn": "App\\Services\\Imports\\CsvImportExecutorV2@generateErrorReport",
        "expected_test_path": "tests/Feature/CsvImportExecutorV2Test.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Imports/CsvImportSessionManager.php::App\\Services\\Imports\\CsvImportSessionManager::addFile",
        "fqmn": "App\\Services\\Imports\\CsvImportSessionManager@addFile",
        "expected_test_path": "tests/Feature/CsvImportSessionManagerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Imports/CsvImportSessionManager.php::App\\Services\\Imports\\CsvImportSessionManager::cleanupOldSessions",
        "fqmn": "App\\Services\\Imports\\CsvImportSessionManager@cleanupOldSessions",
        "expected_test_path": "tests/Feature/CsvImportSessionManagerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Imports/CsvImportSessionManager.php::App\\Services\\Imports\\CsvImportSessionManager::createSession",
        "fqmn": "App\\Services\\Imports\\CsvImportSessionManager@createSession",
        "expected_test_path": "tests/Feature/CsvImportSessionManagerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Imports/CsvImportSessionManager.php::App\\Services\\Imports\\CsvImportSessionManager::findExistingSession",
        "fqmn": "App\\Services\\Imports\\CsvImportSessionManager@findExistingSession",
        "expected_test_path": "tests/Feature/CsvImportSessionManagerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Imports/CsvImportSessionManager.php::App\\Services\\Imports\\CsvImportSessionManager::getFilePath",
        "fqmn": "App\\Services\\Imports\\CsvImportSessionManager@getFilePath",
        "expected_test_path": "tests/Feature/CsvImportSessionManagerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Imports/CsvImportSessionManager.php::App\\Services\\Imports\\CsvImportSessionManager::getSessionData",
        "fqmn": "App\\Services\\Imports\\CsvImportSessionManager@getSessionData",
        "expected_test_path": "tests/Feature/CsvImportSessionManagerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Imports/CsvRelationshipMapper.php::App\\Services\\Imports\\CsvRelationshipMapper::analyzeRelationships",
        "fqmn": "App\\Services\\Imports\\CsvRelationshipMapper@analyzeRelationships",
        "expected_test_path": "tests/Feature/CsvRelationshipMapperTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Messaging/MessageQuotaService.php::App\\Services\\Messaging\\MessageQuotaService::checkDailyLimit",
        "fqmn": "App\\Services\\Messaging\\MessageQuotaService@checkDailyLimit",
        "expected_test_path": "tests/Feature/MessageQuotaServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Messaging/MessageQuotaService.php::App\\Services\\Messaging\\MessageQuotaService::checkMonthlyLimit",
        "fqmn": "App\\Services\\Messaging\\MessageQuotaService@checkMonthlyLimit",
        "expected_test_path": "tests/Feature/MessageQuotaServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Messaging/MessageQuotaService.php::App\\Services\\Messaging\\MessageQuotaService::checkRecipientThrottle",
        "fqmn": "App\\Services\\Messaging\\MessageQuotaService@checkRecipientThrottle",
        "expected_test_path": "tests/Feature/MessageQuotaServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Messaging/MessagingResult.php::App\\Services\\Messaging\\MessagingResult::toArray",
        "fqmn": "App\\Services\\Messaging\\MessagingResult@toArray",
        "expected_test_path": "tests/Feature/MessagingResultTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Notifications/NotificationDispatcher.php::App\\Services\\Notifications\\NotificationDispatcher::send",
        "fqmn": "App\\Services\\Notifications\\NotificationDispatcher@send",
        "expected_test_path": "tests/Feature/NotificationDispatcherTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Notifications/NotificationSenderRunner.php::App\\Services\\Notifications\\NotificationSenderRunner::sendForSubscriptionEvent",
        "fqmn": "App\\Services\\Notifications\\NotificationSenderRunner@sendForSubscriptionEvent",
        "expected_test_path": "tests/Feature/NotificationSenderRunnerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OpenAI/Client.php::App\\Services\\OpenAI\\Client::chat",
        "fqmn": "App\\Services\\OpenAI\\Client@chat",
        "expected_test_path": "tests/Feature/ClientTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OpenAI/Client.php::App\\Services\\OpenAI\\Client::transcribe",
        "fqmn": "App\\Services\\OpenAI\\Client@transcribe",
        "expected_test_path": "tests/Feature/ClientTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::assistants",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@assistants",
        "expected_test_path": "tests/Feature/OpenAIClientProxyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::audio",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@audio",
        "expected_test_path": "tests/Feature/OpenAIClientProxyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::batches",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@batches",
        "expected_test_path": "tests/Feature/OpenAIClientProxyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::chat",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@chat",
        "expected_test_path": "tests/Feature/OpenAIClientProxyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::completions",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@completions",
        "expected_test_path": "tests/Feature/OpenAIClientProxyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::edits",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@edits",
        "expected_test_path": "tests/Feature/OpenAIClientProxyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::embeddings",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@embeddings",
        "expected_test_path": "tests/Feature/OpenAIClientProxyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::files",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@files",
        "expected_test_path": "tests/Feature/OpenAIClientProxyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::fineTunes",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@fineTunes",
        "expected_test_path": "tests/Feature/OpenAIClientProxyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::fineTuning",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@fineTuning",
        "expected_test_path": "tests/Feature/OpenAIClientProxyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::images",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@images",
        "expected_test_path": "tests/Feature/OpenAIClientProxyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::models",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@models",
        "expected_test_path": "tests/Feature/OpenAIClientProxyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::moderations",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@moderations",
        "expected_test_path": "tests/Feature/OpenAIClientProxyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::threads",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@threads",
        "expected_test_path": "tests/Feature/OpenAIClientProxyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::vectorStores",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@vectorStores",
        "expected_test_path": "tests/Feature/OpenAIClientProxyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::wrap",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@wrap",
        "expected_test_path": "tests/Feature/OpenAIClientProxyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OpenAI/OpenAIVisionService.php::App\\Services\\OpenAI\\OpenAIVisionService::analyzePaymentReceipt",
        "fqmn": "App\\Services\\OpenAI\\OpenAIVisionService@analyzePaymentReceipt",
        "expected_test_path": "tests/Feature/OpenAIVisionServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OrganizationRegistrationService.php::App\\Services\\OrganizationRegistrationService::generateUniqueSlug",
        "fqmn": "App\\Services\\OrganizationRegistrationService@generateUniqueSlug",
        "expected_test_path": "tests/Feature/OrganizationRegistrationServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OTPService.php::App\\Services\\OTPService::resendOTP",
        "fqmn": "App\\Services\\OTPService@resendOTP",
        "expected_test_path": "tests/Feature/OTPServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OTPService.php::App\\Services\\OTPService::sendRegistrationOTP",
        "fqmn": "App\\Services\\OTPService@sendRegistrationOTP",
        "expected_test_path": "tests/Feature/OTPServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OTPService.php::App\\Services\\OTPService::verifyRegistrationOTP",
        "fqmn": "App\\Services\\OTPService@verifyRegistrationOTP",
        "expected_test_path": "tests/Feature/OTPServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Outreach/FollowUpTemplateService.php::App\\Services\\Outreach\\FollowUpTemplateService::generateTemplate",
        "fqmn": "App\\Services\\Outreach\\FollowUpTemplateService@generateTemplate",
        "expected_test_path": "tests/Feature/FollowUpTemplateServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Outreach/InboundMessageNormalizer.php::App\\Services\\Outreach\\InboundMessageNormalizer::normalizeInbound",
        "fqmn": "App\\Services\\Outreach\\InboundMessageNormalizer@normalizeInbound",
        "expected_test_path": "tests/Feature/InboundMessageNormalizerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Outreach/SafetyEngine.php::App\\Services\\Outreach\\SafetyEngine::isAllowed",
        "fqmn": "App\\Services\\Outreach\\SafetyEngine@isAllowed",
        "expected_test_path": "tests/Feature/SafetyEngineTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AgenticActionService.php::App\\Services\\OutreachAI\\AgenticActionService::execute",
        "fqmn": "App\\Services\\OutreachAI\\AgenticActionService@execute",
        "expected_test_path": "tests/Feature/AgenticActionServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AIAutoReplyService.php::App\\Services\\OutreachAI\\AIAutoReplyService::handleInboundMessage",
        "fqmn": "App\\Services\\OutreachAI\\AIAutoReplyService@handleInboundMessage",
        "expected_test_path": "tests/Feature/AIAutoReplyServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AssetDetectionService.php::App\\Services\\OutreachAI\\AssetDetectionService::detect",
        "fqmn": "App\\Services\\OutreachAI\\AssetDetectionService@detect",
        "expected_test_path": "tests/Feature/AssetDetectionServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AudioConverter.php::App\\Services\\OutreachAI\\AudioConverter::cleanupOldFiles",
        "fqmn": "App\\Services\\OutreachAI\\AudioConverter@cleanupOldFiles",
        "expected_test_path": "tests/Feature/AudioConverterTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AudioConverter.php::App\\Services\\OutreachAI\\AudioConverter::convertToMp3",
        "fqmn": "App\\Services\\OutreachAI\\AudioConverter@convertToMp3",
        "expected_test_path": "tests/Feature/AudioConverterTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AudioConverter.php::App\\Services\\OutreachAI\\AudioConverter::getStorageStats",
        "fqmn": "App\\Services\\OutreachAI\\AudioConverter@getStorageStats",
        "expected_test_path": "tests/Feature/AudioConverterTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/AutoReplyDetectionService.php::App\\Services\\OutreachAI\\AutoReplyDetectionService::detect",
        "fqmn": "App\\Services\\OutreachAI\\AutoReplyDetectionService@detect",
        "expected_test_path": "tests/Feature/AutoReplyDetectionServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ContextBuilder.php::App\\Services\\OutreachAI\\ContextBuilder::build",
        "fqmn": "App\\Services\\OutreachAI\\ContextBuilder@build",
        "expected_test_path": "tests/Feature/ContextBuilderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ContractRenewal/RenewalCampaignService.php::App\\Services\\OutreachAI\\ContractRenewal\\RenewalCampaignService::shouldStartCampaign",
        "fqmn": "App\\Services\\OutreachAI\\ContractRenewal\\RenewalCampaignService@shouldStartCampaign",
        "expected_test_path": "tests/Feature/RenewalCampaignServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ContractRenewal/RenewalIncentiveEngine.php::App\\Services\\OutreachAI\\ContractRenewal\\RenewalIncentiveEngine::calculate",
        "fqmn": "App\\Services\\OutreachAI\\ContractRenewal\\RenewalIncentiveEngine@calculate",
        "expected_test_path": "tests/Feature/RenewalIncentiveEngineTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ContractRenewal/RenewalPredictionEngine.php::App\\Services\\OutreachAI\\ContractRenewal\\RenewalPredictionEngine::predict",
        "fqmn": "App\\Services\\OutreachAI\\ContractRenewal\\RenewalPredictionEngine@predict",
        "expected_test_path": "tests/Feature/RenewalPredictionEngineTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ContractRenewal/RenewalTimingOptimizer.php::App\\Services\\OutreachAI\\ContractRenewal\\RenewalTimingOptimizer::optimize",
        "fqmn": "App\\Services\\OutreachAI\\ContractRenewal\\RenewalTimingOptimizer@optimize",
        "expected_test_path": "tests/Feature/RenewalTimingOptimizerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ConversationGovernanceService.php::App\\Services\\OutreachAI\\ConversationGovernanceService::allowsFollowUps",
        "fqmn": "App\\Services\\OutreachAI\\ConversationGovernanceService@allowsFollowUps",
        "expected_test_path": "tests/Feature/ConversationGovernanceServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ConversationGovernanceService.php::App\\Services\\OutreachAI\\ConversationGovernanceService::canSendAutomatedMessage",
        "fqmn": "App\\Services\\OutreachAI\\ConversationGovernanceService@canSendAutomatedMessage",
        "expected_test_path": "tests/Feature/ConversationGovernanceServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ConversationGovernanceService.php::App\\Services\\OutreachAI\\ConversationGovernanceService::getCurrentState",
        "fqmn": "App\\Services\\OutreachAI\\ConversationGovernanceService@getCurrentState",
        "expected_test_path": "tests/Feature/ConversationGovernanceServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ConversationGovernanceService.php::App\\Services\\OutreachAI\\ConversationGovernanceService::getFollowUpTier",
        "fqmn": "App\\Services\\OutreachAI\\ConversationGovernanceService@getFollowUpTier",
        "expected_test_path": "tests/Feature/ConversationGovernanceServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ConversationGovernanceService.php::App\\Services\\OutreachAI\\ConversationGovernanceService::handleUserReply",
        "fqmn": "App\\Services\\OutreachAI\\ConversationGovernanceService@handleUserReply",
        "expected_test_path": "tests/Feature/ConversationGovernanceServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ConversationGovernanceService.php::App\\Services\\OutreachAI\\ConversationGovernanceService::handleUserSilence",
        "fqmn": "App\\Services\\OutreachAI\\ConversationGovernanceService@handleUserSilence",
        "expected_test_path": "tests/Feature/ConversationGovernanceServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/CustomerSuccess/MilestoneDetectionService.php::App\\Services\\OutreachAI\\CustomerSuccess\\MilestoneDetectionService::detect",
        "fqmn": "App\\Services\\OutreachAI\\CustomerSuccess\\MilestoneDetectionService@detect",
        "expected_test_path": "tests/Feature/MilestoneDetectionServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/DataExtractionEngine.php::App\\Services\\OutreachAI\\DataExtractionEngine::extract",
        "fqmn": "App\\Services\\OutreachAI\\DataExtractionEngine@extract",
        "expected_test_path": "tests/Feature/DataExtractionEngineTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/FailureLogger.php::App\\Services\\OutreachAI\\FailureLogger::getLeadFailures",
        "fqmn": "App\\Services\\OutreachAI\\FailureLogger@getLeadFailures",
        "expected_test_path": "tests/Feature/FailureLoggerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/FailureLogger.php::App\\Services\\OutreachAI\\FailureLogger::getRecentFailures",
        "fqmn": "App\\Services\\OutreachAI\\FailureLogger@getRecentFailures",
        "expected_test_path": "tests/Feature/FailureLoggerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/FailureLogger.php::App\\Services\\OutreachAI\\FailureLogger::getStats",
        "fqmn": "App\\Services\\OutreachAI\\FailureLogger@getStats",
        "expected_test_path": "tests/Feature/FailureLoggerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/HumanHandoffService.php::App\\Services\\OutreachAI\\HumanHandoffService::activateNextInQueue",
        "fqmn": "App\\Services\\OutreachAI\\HumanHandoffService@activateNextInQueue",
        "expected_test_path": "tests/Feature/HumanHandoffServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/HumanHandoffService.php::App\\Services\\OutreachAI\\HumanHandoffService::getActiveConversation",
        "fqmn": "App\\Services\\OutreachAI\\HumanHandoffService@getActiveConversation",
        "expected_test_path": "tests/Feature/HumanHandoffServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/HumanHandoffService.php::App\\Services\\OutreachAI\\HumanHandoffService::relayToCustomer",
        "fqmn": "App\\Services\\OutreachAI\\HumanHandoffService@relayToCustomer",
        "expected_test_path": "tests/Feature/HumanHandoffServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/HumanHandoffService.php::App\\Services\\OutreachAI\\HumanHandoffService::requestHandoff",
        "fqmn": "App\\Services\\OutreachAI\\HumanHandoffService@requestHandoff",
        "expected_test_path": "tests/Feature/HumanHandoffServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/KnowledgeService.php::App\\Services\\OutreachAI\\KnowledgeService::create",
        "fqmn": "App\\Services\\OutreachAI\\KnowledgeService@create",
        "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/OutreachAI/KnowledgeService.php::App\\Services\\OutreachAI\\KnowledgeService::search",
        "fqmn": "App\\Services\\OutreachAI\\KnowledgeService@search",
        "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/OutreachAI/MediaDownloadService.php::App\\Services\\OutreachAI\\MediaDownloadService::download",
        "fqmn": "App\\Services\\OutreachAI\\MediaDownloadService@download",
        "expected_test_path": "tests/Feature/MediaDownloadServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/NudgeService.php::App\\Services\\OutreachAI\\NudgeService::processDueNudges",
        "fqmn": "App\\Services\\OutreachAI\\NudgeService@processDueNudges",
        "expected_test_path": "tests/Feature/NudgeServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/NudgeService.php::App\\Services\\OutreachAI\\NudgeService::scheduleNudges",
        "fqmn": "App\\Services\\OutreachAI\\NudgeService@scheduleNudges",
        "expected_test_path": "tests/Feature/NudgeServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ObjectionDetectionService.php::App\\Services\\OutreachAI\\ObjectionDetectionService::detect",
        "fqmn": "App\\Services\\OutreachAI\\ObjectionDetectionService@detect",
        "expected_test_path": "tests/Feature/ObjectionDetectionServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Orchestration/ModelRouter.php::App\\Services\\OutreachAI\\Orchestration\\ModelRouter::creative",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\ModelRouter@creative",
        "expected_test_path": "tests/Feature/ModelRouterTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Orchestration/ModelRouter.php::App\\Services\\OutreachAI\\Orchestration\\ModelRouter::deepReasoning",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\ModelRouter@deepReasoning",
        "expected_test_path": "tests/Feature/ModelRouterTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Orchestration/ModelRouter.php::App\\Services\\OutreachAI\\Orchestration\\ModelRouter::fastReasoning",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\ModelRouter@fastReasoning",
        "expected_test_path": "tests/Feature/ModelRouterTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Orchestration/ModelRouter.php::App\\Services\\OutreachAI\\Orchestration\\ModelRouter::reasoning",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\ModelRouter@reasoning",
        "expected_test_path": "tests/Feature/ModelRouterTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Orchestration/ModelRouter.php::App\\Services\\OutreachAI\\Orchestration\\ModelRouter::vision",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\ModelRouter@vision",
        "expected_test_path": "tests/Feature/ModelRouterTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Orchestration/NextActionResolver.php::App\\Services\\OutreachAI\\Orchestration\\NextActionResolver::getPresentationConstraints",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\NextActionResolver@getPresentationConstraints",
        "expected_test_path": "tests/Feature/NextActionResolverTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Orchestration/NextActionResolver.php::App\\Services\\OutreachAI\\Orchestration\\NextActionResolver::isStopConditionMet",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\NextActionResolver@isStopConditionMet",
        "expected_test_path": "tests/Feature/NextActionResolverTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Orchestration/NextActionResolver.php::App\\Services\\OutreachAI\\Orchestration\\NextActionResolver::resolve",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\NextActionResolver@resolve",
        "expected_test_path": "tests/Feature/NextActionResolverTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Orchestration/ResponseComposerEngine.php::App\\Services\\OutreachAI\\Orchestration\\ResponseComposerEngine::compose",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\ResponseComposerEngine@compose",
        "expected_test_path": "tests/Feature/ResponseComposerEngineTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Orchestration/RollingSummaryService.php::App\\Services\\OutreachAI\\Orchestration\\RollingSummaryService::getRollingSummary",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\RollingSummaryService@getRollingSummary",
        "expected_test_path": "tests/Feature/RollingSummaryServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Orchestration/SalesStateDeriver.php::App\\Services\\OutreachAI\\Orchestration\\SalesStateDeriver::derive",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\SalesStateDeriver@derive",
        "expected_test_path": "tests/Feature/SalesStateDeriverTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Orchestration/SignalContext.php::App\\Services\\OutreachAI\\Orchestration\\SignalContext::fromModels",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\SignalContext@fromModels",
        "expected_test_path": "tests/Feature/SignalContextTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Orchestration/SignalDirector.php::App\\Services\\OutreachAI\\Orchestration\\SignalDirector::orchestrate",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\SignalDirector@orchestrate",
        "expected_test_path": "tests/Feature/SignalDirectorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Orchestration/SignalDirector.php::App\\Services\\OutreachAI\\Orchestration\\SignalDirector::orchestrateDeep",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\SignalDirector@orchestrateDeep",
        "expected_test_path": "tests/Feature/SignalDirectorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Orchestration/SignalDirector.php::App\\Services\\OutreachAI\\Orchestration\\SignalDirector::orchestrateFast",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\SignalDirector@orchestrateFast",
        "expected_test_path": "tests/Feature/SignalDirectorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Orchestration/StrategyAuthorityResolver.php::App\\Services\\OutreachAI\\Orchestration\\StrategyAuthorityResolver::isActionAllowed",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\StrategyAuthorityResolver@isActionAllowed",
        "expected_test_path": "tests/Feature/StrategyAuthorityResolverTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Orchestration/StrategyAuthorityResolver.php::App\\Services\\OutreachAI\\Orchestration\\StrategyAuthorityResolver::isFallbackAllowed",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\StrategyAuthorityResolver@isFallbackAllowed",
        "expected_test_path": "tests/Feature/StrategyAuthorityResolverTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Orchestration/StrategyAuthorityResolver.php::App\\Services\\OutreachAI\\Orchestration\\StrategyAuthorityResolver::resolve",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\StrategyAuthorityResolver@resolve",
        "expected_test_path": "tests/Feature/StrategyAuthorityResolverTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PaymentEngine/PaymentPatternAnalysisService.php::App\\Services\\OutreachAI\\PaymentEngine\\PaymentPatternAnalysisService::analyze",
        "fqmn": "App\\Services\\OutreachAI\\PaymentEngine\\PaymentPatternAnalysisService@analyze",
        "expected_test_path": "tests/Feature/PaymentPatternAnalysisServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PredictionExplanationGenerator.php::App\\Services\\OutreachAI\\PredictionExplanationGenerator::generateExplanation",
        "fqmn": "App\\Services\\OutreachAI\\PredictionExplanationGenerator@generateExplanation",
        "expected_test_path": "tests/Feature/PredictionExplanationGeneratorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PredictionPerformanceMonitor.php::App\\Services\\OutreachAI\\PredictionPerformanceMonitor::getPerformanceStats",
        "fqmn": "App\\Services\\OutreachAI\\PredictionPerformanceMonitor@getPerformanceStats",
        "expected_test_path": "tests/Feature/PredictionPerformanceMonitorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PromptExperimentService.php::App\\Services\\OutreachAI\\PromptExperimentService::getInstruction",
        "fqmn": "App\\Services\\OutreachAI\\PromptExperimentService@getInstruction",
        "expected_test_path": "tests/Feature/PromptExperimentServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PromptExperimentService.php::App\\Services\\OutreachAI\\PromptExperimentService::getVariant",
        "fqmn": "App\\Services\\OutreachAI\\PromptExperimentService@getVariant",
        "expected_test_path": "tests/Feature/PromptExperimentServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Prompts/GuardPromptBuilder.php::App\\Services\\OutreachAI\\Prompts\\GuardPromptBuilder::build",
        "fqmn": "App\\Services\\OutreachAI\\Prompts\\GuardPromptBuilder@build",
        "expected_test_path": "tests/Feature/GuardPromptBuilderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Prompts/GuardPromptBuilder.php::App\\Services\\OutreachAI\\Prompts\\GuardPromptBuilder::isGuardMode",
        "fqmn": "App\\Services\\OutreachAI\\Prompts\\GuardPromptBuilder@isGuardMode",
        "expected_test_path": "tests/Feature/GuardPromptBuilderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PropertyMatcher/LeadPropertyAffinityService.php::App\\Services\\OutreachAI\\PropertyMatcher\\LeadPropertyAffinityService::analyze",
        "fqmn": "App\\Services\\OutreachAI\\PropertyMatcher\\LeadPropertyAffinityService@analyze",
        "expected_test_path": "tests/Feature/LeadPropertyAffinityServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/PropertyMatcher/PropertyRecommendationEngine.php::App\\Services\\OutreachAI\\PropertyMatcher\\PropertyRecommendationEngine::recommend",
        "fqmn": "App\\Services\\OutreachAI\\PropertyMatcher\\PropertyRecommendationEngine@recommend",
        "expected_test_path": "tests/Feature/PropertyRecommendationEngineTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Qualification/QualificationFlowDirector.php::App\\Services\\OutreachAI\\Qualification\\QualificationFlowDirector::determineNextStep",
        "fqmn": "App\\Services\\OutreachAI\\Qualification\\QualificationFlowDirector@determineNextStep",
        "expected_test_path": "tests/Feature/QualificationFlowDirectorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ReengagementDetectionService.php::App\\Services\\OutreachAI\\ReengagementDetectionService::detectStaleConversations",
        "fqmn": "App\\Services\\OutreachAI\\ReengagementDetectionService@detectStaleConversations",
        "expected_test_path": "tests/Feature/ReengagementDetectionServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ReengagementDetectionService.php::App\\Services\\OutreachAI\\ReengagementDetectionService::detectStallNearClosing",
        "fqmn": "App\\Services\\OutreachAI\\ReengagementDetectionService@detectStallNearClosing",
        "expected_test_path": "tests/Feature/ReengagementDetectionServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ReengagementDetectionService.php::App\\Services\\OutreachAI\\ReengagementDetectionService::generateAggressiveWarmingStrategy",
        "fqmn": "App\\Services\\OutreachAI\\ReengagementDetectionService@generateAggressiveWarmingStrategy",
        "expected_test_path": "tests/Feature/ReengagementDetectionServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/ReferralEngine/ReferralDetectionService.php::App\\Services\\OutreachAI\\ReferralEngine\\ReferralDetectionService::detect",
        "fqmn": "App\\Services\\OutreachAI\\ReferralEngine\\ReferralDetectionService@detect",
        "expected_test_path": "tests/Feature/ReferralDetectionServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/RepetitionHandlingService.php::App\\Services\\OutreachAI\\RepetitionHandlingService::analyze",
        "fqmn": "App\\Services\\OutreachAI\\RepetitionHandlingService@analyze",
        "expected_test_path": "tests/Feature/RepetitionHandlingServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/RepetitionHandlingService.php::App\\Services\\OutreachAI\\RepetitionHandlingService::getElaborationInstruction",
        "fqmn": "App\\Services\\OutreachAI\\RepetitionHandlingService@getElaborationInstruction",
        "expected_test_path": "tests/Feature/RepetitionHandlingServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Sales/FeatureRenderer.php::App\\Services\\OutreachAI\\Sales\\FeatureRenderer::getFeatureFacts",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\FeatureRenderer@getFeatureFacts",
        "expected_test_path": "tests/Feature/FeatureRendererTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Sales/FeatureRenderer.php::App\\Services\\OutreachAI\\Sales\\FeatureRenderer::render",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\FeatureRenderer@render",
        "expected_test_path": "tests/Feature/FeatureRendererTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Sales/FeatureRenderer.php::App\\Services\\OutreachAI\\Sales\\FeatureRenderer::shouldHandle",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\FeatureRenderer@shouldHandle",
        "expected_test_path": "tests/Feature/FeatureRendererTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingAuthority.php::App\\Services\\OutreachAI\\Sales\\PricingAuthority::getLivePricingSummary",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingAuthority@getLivePricingSummary",
        "expected_test_path": "tests/Feature/PricingAuthorityTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingAuthority.php::App\\Services\\OutreachAI\\Sales\\PricingAuthority::getLlmPricingGuard",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingAuthority@getLlmPricingGuard",
        "expected_test_path": "tests/Feature/PricingAuthorityTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingAuthority.php::App\\Services\\OutreachAI\\Sales\\PricingAuthority::intercept",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingAuthority@intercept",
        "expected_test_path": "tests/Feature/PricingAuthorityTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingAuthority.php::App\\Services\\OutreachAI\\Sales\\PricingAuthority::isPricingIntent",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingAuthority@isPricingIntent",
        "expected_test_path": "tests/Feature/PricingAuthorityTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingAuthority.php::App\\Services\\OutreachAI\\Sales\\PricingAuthority::resolveTier",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingAuthority@resolveTier",
        "expected_test_path": "tests/Feature/PricingAuthorityTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingRenderer.php::App\\Services\\OutreachAI\\Sales\\PricingRenderer::getPricingFacts",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingRenderer@getPricingFacts",
        "expected_test_path": "tests/Feature/PricingRendererTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingRenderer.php::App\\Services\\OutreachAI\\Sales\\PricingRenderer::render",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingRenderer@render",
        "expected_test_path": "tests/Feature/PricingRendererTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingRenderer.php::App\\Services\\OutreachAI\\Sales\\PricingRenderer::shouldHandle",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingRenderer@shouldHandle",
        "expected_test_path": "tests/Feature/PricingRendererTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingResolver.php::App\\Services\\OutreachAI\\Sales\\PricingResolver::getAllPlans",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingResolver@getAllPlans",
        "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/OutreachAI/Sales/PricingResolver.php::App\\Services\\OutreachAI\\Sales\\PricingResolver::getCanonicalContract",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingResolver@getCanonicalContract",
        "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/OutreachAI/Sales/PricingResolver.php::App\\Services\\OutreachAI\\Sales\\PricingResolver::getPricingContext",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingResolver@getPricingContext",
        "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/OutreachAI/Sales/PricingResolver.php::App\\Services\\OutreachAI\\Sales\\PricingResolver::resolve",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingResolver@resolve",
        "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/OutreachAI/Sales/PricingResolver.php::App\\Services\\OutreachAI\\Sales\\PricingResolver::validateLimits",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingResolver@validateLimits",
        "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/OutreachAI/SalesAcceleration/SalesAccelerationEngine.php::App\\Services\\OutreachAI\\SalesAcceleration\\SalesAccelerationEngine::accelerate",
        "fqmn": "App\\Services\\OutreachAI\\SalesAcceleration\\SalesAccelerationEngine@accelerate",
        "expected_test_path": "tests/Feature/SalesAccelerationEngineTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/SalesAcceleration/SalesUrgencyEngine.php::App\\Services\\OutreachAI\\SalesAcceleration\\SalesUrgencyEngine::detect",
        "fqmn": "App\\Services\\OutreachAI\\SalesAcceleration\\SalesUrgencyEngine@detect",
        "expected_test_path": "tests/Feature/SalesUrgencyEngineTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/SignupLinkGenerator.php::App\\Services\\OutreachAI\\SignupLinkGenerator::generateForLead",
        "fqmn": "App\\Services\\OutreachAI\\SignupLinkGenerator@generateForLead",
        "expected_test_path": "tests/Feature/SignupLinkGeneratorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/SignupLinkGenerator.php::App\\Services\\OutreachAI\\SignupLinkGenerator::hasBeenClicked",
        "fqmn": "App\\Services\\OutreachAI\\SignupLinkGenerator@hasBeenClicked",
        "expected_test_path": "tests/Feature/SignupLinkGeneratorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/SocialFrictionAuditor.php::App\\Services\\OutreachAI\\SocialFrictionAuditor::audit",
        "fqmn": "App\\Services\\OutreachAI\\SocialFrictionAuditor@audit",
        "expected_test_path": "tests/Feature/SocialFrictionAuditorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/State/StateManager.php::App\\Services\\OutreachAI\\State\\StateManager::get",
        "fqmn": "App\\Services\\OutreachAI\\State\\StateManager@get",
        "expected_test_path": "tests/Feature/StateManagerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/StateAwareResponseService.php::App\\Services\\OutreachAI\\StateAwareResponseService::getFollowUp1",
        "fqmn": "App\\Services\\OutreachAI\\StateAwareResponseService@getFollowUp1",
        "expected_test_path": "tests/Feature/StateAwareResponseServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/StateAwareResponseService.php::App\\Services\\OutreachAI\\StateAwareResponseService::getFollowUp2",
        "fqmn": "App\\Services\\OutreachAI\\StateAwareResponseService@getFollowUp2",
        "expected_test_path": "tests/Feature/StateAwareResponseServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/StateAwareResponseService.php::App\\Services\\OutreachAI\\StateAwareResponseService::getFollowUpFinal",
        "fqmn": "App\\Services\\OutreachAI\\StateAwareResponseService@getFollowUpFinal",
        "expected_test_path": "tests/Feature/StateAwareResponseServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/StateAwareResponseService.php::App\\Services\\OutreachAI\\StateAwareResponseService::getResponse",
        "fqmn": "App\\Services\\OutreachAI\\StateAwareResponseService@getResponse",
        "expected_test_path": "tests/Feature/StateAwareResponseServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/StateAwareResponseService.php::App\\Services\\OutreachAI\\StateAwareResponseService::shouldUseTemplate",
        "fqmn": "App\\Services\\OutreachAI\\StateAwareResponseService@shouldUseTemplate",
        "expected_test_path": "tests/Feature/StateAwareResponseServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/TrialEngine/TrialActivationEngine.php::App\\Services\\OutreachAI\\TrialEngine\\TrialActivationEngine::activate",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\TrialActivationEngine@activate",
        "expected_test_path": "tests/Feature/TrialActivationEngineTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/TrialEngine/TrialNudgeEngine.php::App\\Services\\OutreachAI\\TrialEngine\\TrialNudgeEngine::generateNudgeMessage",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\TrialNudgeEngine@generateNudgeMessage",
        "expected_test_path": "tests/Feature/TrialNudgeEngineTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/TrialEngine/TrialNudgeEngine.php::App\\Services\\OutreachAI\\TrialEngine\\TrialNudgeEngine::scheduleNudges",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\TrialNudgeEngine@scheduleNudges",
        "expected_test_path": "tests/Feature/TrialNudgeEngineTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/UpsellProcessor.php::App\\Services\\OutreachAI\\UpsellProcessor::processAddOn",
        "fqmn": "App\\Services\\OutreachAI\\UpsellProcessor@processAddOn",
        "expected_test_path": "tests/Feature/UpsellProcessorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/UpsellProcessor.php::App\\Services\\OutreachAI\\UpsellProcessor::processUpgrade",
        "fqmn": "App\\Services\\OutreachAI\\UpsellProcessor@processUpgrade",
        "expected_test_path": "tests/Feature/UpsellProcessorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/UserActivityAnalyzer.php::App\\Services\\OutreachAI\\UserActivityAnalyzer::getInactiveConvertedLeads",
        "fqmn": "App\\Services\\OutreachAI\\UserActivityAnalyzer@getInactiveConvertedLeads",
        "expected_test_path": "tests/Feature/UserActivityAnalyzerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/UserActivityAnalyzer.php::App\\Services\\OutreachAI\\UserActivityAnalyzer::getSubscriptionStatus",
        "fqmn": "App\\Services\\OutreachAI\\UserActivityAnalyzer@getSubscriptionStatus",
        "expected_test_path": "tests/Feature/UserActivityAnalyzerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/UserActivityAnalyzer.php::App\\Services\\OutreachAI\\UserActivityAnalyzer::getUpsellOpportunities",
        "fqmn": "App\\Services\\OutreachAI\\UserActivityAnalyzer@getUpsellOpportunities",
        "expected_test_path": "tests/Feature/UserActivityAnalyzerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/UserActivityAnalyzer.php::App\\Services\\OutreachAI\\UserActivityAnalyzer::hasActiveSubscription",
        "fqmn": "App\\Services\\OutreachAI\\UserActivityAnalyzer@hasActiveSubscription",
        "expected_test_path": "tests/Feature/UserActivityAnalyzerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/UserActivityAnalyzer.php::App\\Services\\OutreachAI\\UserActivityAnalyzer::isActiveUser",
        "fqmn": "App\\Services\\OutreachAI\\UserActivityAnalyzer@isActiveUser",
        "expected_test_path": "tests/Feature/UserActivityAnalyzerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/UserActivityAnalyzer.php::App\\Services\\OutreachAI\\UserActivityAnalyzer::isFreeTier",
        "fqmn": "App\\Services\\OutreachAI\\UserActivityAnalyzer@isFreeTier",
        "expected_test_path": "tests/Feature/UserActivityAnalyzerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/UserActivityAnalyzer.php::App\\Services\\OutreachAI\\UserActivityAnalyzer::isInactiveUser",
        "fqmn": "App\\Services\\OutreachAI\\UserActivityAnalyzer@isInactiveUser",
        "expected_test_path": "tests/Feature/UserActivityAnalyzerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/UserActivityAnalyzer.php::App\\Services\\OutreachAI\\UserActivityAnalyzer::shouldReactivate",
        "fqmn": "App\\Services\\OutreachAI\\UserActivityAnalyzer@shouldReactivate",
        "expected_test_path": "tests/Feature/UserActivityAnalyzerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Utilities/DeterministicReplyBank.php::App\\Services\\OutreachAI\\Utilities\\DeterministicReplyBank::getReply",
        "fqmn": "App\\Services\\OutreachAI\\Utilities\\DeterministicReplyBank@getReply",
        "expected_test_path": "tests/Feature/DeterministicReplyBankTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/Utilities/FrequencyGuard.php::App\\Services\\OutreachAI\\Utilities\\FrequencyGuard::isAllowed",
        "fqmn": "App\\Services\\OutreachAI\\Utilities\\FrequencyGuard@isAllowed",
        "expected_test_path": "tests/Feature/FrequencyGuardTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/VisionService.php::App\\Services\\OutreachAI\\VisionService::analyzeReceipt",
        "fqmn": "App\\Services\\OutreachAI\\VisionService@analyzeReceipt",
        "expected_test_path": "tests/Feature/VisionServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/WarmthEvolutionEngine.php::App\\Services\\OutreachAI\\WarmthEvolutionEngine::evaluate",
        "fqmn": "App\\Services\\OutreachAI\\WarmthEvolutionEngine@evaluate",
        "expected_test_path": "tests/Feature/WarmthEvolutionEngineTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OutreachAI/WhisperTranscriptionService.php::App\\Services\\OutreachAI\\WhisperTranscriptionService::transcribe",
        "fqmn": "App\\Services\\OutreachAI\\WhisperTranscriptionService@transcribe",
        "expected_test_path": "tests/Feature/WhisperTranscriptionServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/PaymentGateway/TapGateway.php::App\\Services\\PaymentGateway\\TapGateway::createCharge",
        "fqmn": "App\\Services\\PaymentGateway\\TapGateway@createCharge",
        "expected_test_path": "tests/Feature/TapGatewayTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/PaymentGateway/TapGateway.php::App\\Services\\PaymentGateway\\TapGateway::execute",
        "fqmn": "App\\Services\\PaymentGateway\\TapGateway@execute",
        "expected_test_path": "tests/Feature/TapGatewayTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/PaymentProofService.php::App\\Services\\PaymentProofService::getPaymentProofStatistics",
        "fqmn": "App\\Services\\PaymentProofService@getPaymentProofStatistics",
        "expected_test_path": "tests/Feature/PaymentProofServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/PaymentProofService.php::App\\Services\\PaymentProofService::handleIncomingMessages",
        "fqmn": "App\\Services\\PaymentProofService@handleIncomingMessages",
        "expected_test_path": "tests/Feature/PaymentProofServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/RevenueRecognition/RevenueSnapshotGenerator.php::App\\Services\\RevenueRecognition\\RevenueSnapshotGenerator::generateForDate",
        "fqmn": "App\\Services\\RevenueRecognition\\RevenueSnapshotGenerator@generateForDate",
        "expected_test_path": "tests/Feature/RevenueSnapshotGeneratorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Security/HoneypotService.php::App\\Services\\Security\\HoneypotService::buildHttpContext",
        "fqmn": "App\\Services\\Security\\HoneypotService@buildHttpContext",
        "expected_test_path": "tests/Feature/HoneypotServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Security/HoneypotService.php::App\\Services\\Security\\HoneypotService::sanitizePayload",
        "fqmn": "App\\Services\\Security\\HoneypotService@sanitizePayload",
        "expected_test_path": "tests/Feature/HoneypotServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Settlement/SettlementMatchingEngine.php::App\\Services\\Settlement\\SettlementMatchingEngine::match",
        "fqmn": "App\\Services\\Settlement\\SettlementMatchingEngine@match",
        "expected_test_path": "tests/Feature/SettlementMatchingEngineTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/SubscriptionComputeCacheService.php::App\\Services\\SubscriptionComputeCacheService::get",
        "fqmn": "App\\Services\\SubscriptionComputeCacheService@get",
        "expected_test_path": "tests/Feature/SubscriptionComputeCacheServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/SubscriptionStateService.php::App\\Services\\SubscriptionStateService::lockSubscriptionForUpdate",
        "fqmn": "App\\Services\\SubscriptionStateService@lockSubscriptionForUpdate",
        "expected_test_path": "tests/Feature/SubscriptionStateServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/SubscriptionStateService.php::App\\Services\\SubscriptionStateService::markActiveAndClearDunning",
        "fqmn": "App\\Services\\SubscriptionStateService@markActiveAndClearDunning",
        "expected_test_path": "tests/Feature/SubscriptionStateServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/SubscriptionStateService.php::App\\Services\\SubscriptionStateService::markPastDue",
        "fqmn": "App\\Services\\SubscriptionStateService@markPastDue",
        "expected_test_path": "tests/Feature/SubscriptionStateServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/SubscriptionStateService.php::App\\Services\\SubscriptionStateService::markSuspended",
        "fqmn": "App\\Services\\SubscriptionStateService@markSuspended",
        "expected_test_path": "tests/Feature/SubscriptionStateServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Tax/TaxAmountCalculator.php::App\\Services\\Tax\\TaxAmountCalculator::calculateFromBase",
        "fqmn": "App\\Services\\Tax\\TaxAmountCalculator@calculateFromBase",
        "expected_test_path": "tests/Feature/TaxAmountCalculatorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/TwilioVerifyService.php::App\\Services\\TwilioVerifyService::checkVerification",
        "fqmn": "App\\Services\\TwilioVerifyService@checkVerification",
        "expected_test_path": "tests/Feature/TwilioVerifyServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/TwilioVerifyService.php::App\\Services\\TwilioVerifyService::startVerification",
        "fqmn": "App\\Services\\TwilioVerifyService@startVerification",
        "expected_test_path": "tests/Feature/TwilioVerifyServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Channels/WhatsAppChannel.php::App\\Services\\WhatsApp\\Channels\\WhatsAppChannel::send",
        "fqmn": "App\\Services\\WhatsApp\\Channels\\WhatsAppChannel@send",
        "expected_test_path": "tests/Feature/WhatsAppChannelTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Dialog360InboundService.php::App\\Services\\WhatsApp\\Dialog360InboundService::handle",
        "fqmn": "App\\Services\\WhatsApp\\Dialog360InboundService@handle",
        "expected_test_path": "tests/Feature/Dialog360InboundServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Handlers/ChatbotInboundHandler.php::App\\Services\\WhatsApp\\Handlers\\ChatbotInboundHandler::handle",
        "fqmn": "App\\Services\\WhatsApp\\Handlers\\ChatbotInboundHandler@handle",
        "expected_test_path": "tests/Feature/ChatbotInboundHandlerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Handlers/DefaultInboundHandler.php::App\\Services\\WhatsApp\\Handlers\\DefaultInboundHandler::handle",
        "fqmn": "App\\Services\\WhatsApp\\Handlers\\DefaultInboundHandler@handle",
        "expected_test_path": "tests/Feature/DefaultInboundHandlerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Handlers/HumanReplyHandler.php::App\\Services\\WhatsApp\\Handlers\\HumanReplyHandler::handle",
        "fqmn": "App\\Services\\WhatsApp\\Handlers\\HumanReplyHandler@handle",
        "expected_test_path": "tests/Feature/HumanReplyHandlerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Handlers/MaintenanceInboundHandler.php::App\\Services\\WhatsApp\\Handlers\\MaintenanceInboundHandler::handle",
        "fqmn": "App\\Services\\WhatsApp\\Handlers\\MaintenanceInboundHandler@handle",
        "expected_test_path": "tests/Feature/MaintenanceInboundHandlerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Handlers/PaymentProofInboundHandler.php::App\\Services\\WhatsApp\\Handlers\\PaymentProofInboundHandler::handle",
        "fqmn": "App\\Services\\WhatsApp\\Handlers\\PaymentProofInboundHandler@handle",
        "expected_test_path": "tests/Feature/PaymentProofInboundHandlerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Inbound/Adapters/Dialog360InboundAdapter.php::App\\Services\\WhatsApp\\Inbound\\Adapters\\Dialog360InboundAdapter::fromPayload",
        "fqmn": "App\\Services\\WhatsApp\\Inbound\\Adapters\\Dialog360InboundAdapter@fromPayload",
        "expected_test_path": "tests/Feature/Dialog360InboundAdapterTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Inbound/Adapters/TwilioInboundAdapter.php::App\\Services\\WhatsApp\\Inbound\\Adapters\\TwilioInboundAdapter::fromPayload",
        "fqmn": "App\\Services\\WhatsApp\\Inbound\\Adapters\\TwilioInboundAdapter@fromPayload",
        "expected_test_path": "tests/Feature/TwilioInboundAdapterTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Inbound/CanonicalInboundMessage.php::App\\Services\\WhatsApp\\Inbound\\CanonicalInboundMessage::fromArray",
        "fqmn": "App\\Services\\WhatsApp\\Inbound\\CanonicalInboundMessage@fromArray",
        "expected_test_path": "tests/Feature/CanonicalInboundMessageTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Inbound/CanonicalInboundMessage.php::App\\Services\\WhatsApp\\Inbound\\CanonicalInboundMessage::toArray",
        "fqmn": "App\\Services\\WhatsApp\\Inbound\\CanonicalInboundMessage@toArray",
        "expected_test_path": "tests/Feature/CanonicalInboundMessageTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/ProviderFactory.php::App\\Services\\WhatsApp\\ProviderFactory::make",
        "fqmn": "App\\Services\\WhatsApp\\ProviderFactory@make",
        "expected_test_path": "tests/Feature/ProviderFactoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/ProviderFactory.php::App\\Services\\WhatsApp\\ProviderFactory::makeTemplateProvider",
        "fqmn": "App\\Services\\WhatsApp\\ProviderFactory@makeTemplateProvider",
        "expected_test_path": "tests/Feature/ProviderFactoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Providers/Dialog360WhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider::getMediaUrl",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider@getMediaUrl",
        "expected_test_path": "tests/Feature/Dialog360WhatsAppProviderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Providers/Dialog360WhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider::pushTemplate",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider@pushTemplate",
        "expected_test_path": "tests/Feature/Dialog360WhatsAppProviderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Providers/Dialog360WhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider::sendMessage",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider@sendMessage",
        "expected_test_path": "tests/Feature/Dialog360WhatsAppProviderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Providers/Dialog360WhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider::sendSenderAction",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider@sendSenderAction",
        "expected_test_path": "tests/Feature/Dialog360WhatsAppProviderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Providers/Dialog360WhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider::sendTemplate",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider@sendTemplate",
        "expected_test_path": "tests/Feature/Dialog360WhatsAppProviderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Providers/TwilioWhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider::fetchTemplateStatus",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@fetchTemplateStatus",
        "expected_test_path": "tests/Feature/TwilioWhatsAppProviderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Providers/TwilioWhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider::provision",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@provision",
        "expected_test_path": "tests/Feature/TwilioWhatsAppProviderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Providers/TwilioWhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider::pushTemplate",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@pushTemplate",
        "expected_test_path": "tests/Feature/TwilioWhatsAppProviderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Providers/TwilioWhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider::resolveOrganizationIdByTo",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@resolveOrganizationIdByTo",
        "expected_test_path": "tests/Feature/TwilioWhatsAppProviderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Providers/TwilioWhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider::sendDocument",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@sendDocument",
        "expected_test_path": "tests/Feature/TwilioWhatsAppProviderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Providers/TwilioWhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider::sendImage",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@sendImage",
        "expected_test_path": "tests/Feature/TwilioWhatsAppProviderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Providers/TwilioWhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider::sendMessage",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@sendMessage",
        "expected_test_path": "tests/Feature/TwilioWhatsAppProviderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Providers/TwilioWhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider::sendSenderAction",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@sendSenderAction",
        "expected_test_path": "tests/Feature/TwilioWhatsAppProviderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Providers/TwilioWhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider::sendTemplate",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@sendTemplate",
        "expected_test_path": "tests/Feature/TwilioWhatsAppProviderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Routing/WhatsAppMessageRouter.php::App\\Services\\WhatsApp\\Routing\\WhatsAppMessageRouter::route",
        "fqmn": "App\\Services\\WhatsApp\\Routing\\WhatsAppMessageRouter@route",
        "expected_test_path": "tests/Feature/WhatsAppMessageRouterTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Templates/Dialog360TemplateProvider.php::App\\Services\\WhatsApp\\Templates\\Dialog360TemplateProvider::deleteTemplate",
        "fqmn": "App\\Services\\WhatsApp\\Templates\\Dialog360TemplateProvider@deleteTemplate",
        "expected_test_path": "tests/Feature/Dialog360TemplateProviderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Templates/Dialog360TemplateProvider.php::App\\Services\\WhatsApp\\Templates\\Dialog360TemplateProvider::pushTemplate",
        "fqmn": "App\\Services\\WhatsApp\\Templates\\Dialog360TemplateProvider@pushTemplate",
        "expected_test_path": "tests/Feature/Dialog360TemplateProviderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Templates/Dialog360TemplateProvider.php::App\\Services\\WhatsApp\\Templates\\Dialog360TemplateProvider::syncTemplate",
        "fqmn": "App\\Services\\WhatsApp\\Templates\\Dialog360TemplateProvider@syncTemplate",
        "expected_test_path": "tests/Feature/Dialog360TemplateProviderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Templates/Dialog360TemplateProvider.php::App\\Services\\WhatsApp\\Templates\\Dialog360TemplateProvider::templateCapabilities",
        "fqmn": "App\\Services\\WhatsApp\\Templates\\Dialog360TemplateProvider@templateCapabilities",
        "expected_test_path": "tests/Feature/Dialog360TemplateProviderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Templates/TwilioTemplateProvider.php::App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider::deleteTemplate",
        "fqmn": "App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider@deleteTemplate",
        "expected_test_path": "tests/Feature/TwilioTemplateProviderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Templates/TwilioTemplateProvider.php::App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider::pushTemplate",
        "fqmn": "App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider@pushTemplate",
        "expected_test_path": "tests/Feature/TwilioTemplateProviderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Templates/TwilioTemplateProvider.php::App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider::syncTemplate",
        "fqmn": "App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider@syncTemplate",
        "expected_test_path": "tests/Feature/TwilioTemplateProviderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/Templates/TwilioTemplateProvider.php::App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider::templateCapabilities",
        "fqmn": "App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider@templateCapabilities",
        "expected_test_path": "tests/Feature/TwilioTemplateProviderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/TenantSidebarService.php::App\\Services\\WhatsApp\\TenantSidebarService::getTenantInfo",
        "fqmn": "App\\Services\\WhatsApp\\TenantSidebarService@getTenantInfo",
        "expected_test_path": "tests/Feature/TenantSidebarServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/TwilioProvisioningService.php::App\\Services\\WhatsApp\\TwilioProvisioningService::ensureMessagingService",
        "fqmn": "App\\Services\\WhatsApp\\TwilioProvisioningService@ensureMessagingService",
        "expected_test_path": "tests/Feature/TwilioProvisioningServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/TwilioProvisioningService.php::App\\Services\\WhatsApp\\TwilioProvisioningService::requestWhatsAppSender",
        "fqmn": "App\\Services\\WhatsApp\\TwilioProvisioningService@requestWhatsAppSender",
        "expected_test_path": "tests/Feature/TwilioProvisioningServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/TwilioTemplatePushService.php::App\\Services\\WhatsApp\\TwilioTemplatePushService::push",
        "fqmn": "App\\Services\\WhatsApp\\TwilioTemplatePushService@push",
        "expected_test_path": "tests/Feature/TwilioTemplatePushServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/WalkInLeadService.php::App\\Services\\WhatsApp\\WalkInLeadService::handleWalkIn",
        "fqmn": "App\\Services\\WhatsApp\\WalkInLeadService@handleWalkIn",
        "expected_test_path": "tests/Feature/WalkInLeadServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/WhatsAppAISettingsService.php::App\\Services\\WhatsApp\\WhatsAppAISettingsService::forOrganization",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppAISettingsService@forOrganization",
        "expected_test_path": "tests/Feature/WhatsAppAISettingsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/WhatsAppChatbotService.php::App\\Services\\WhatsApp\\WhatsAppChatbotService::handleInbound",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppChatbotService@handleInbound",
        "expected_test_path": "tests/Feature/WhatsAppChatbotServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/WhatsAppConnectivityService.php::App\\Services\\WhatsApp\\WhatsAppConnectivityService::canCreateWhatsAppTemplate",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppConnectivityService@canCreateWhatsAppTemplate",
        "expected_test_path": "tests/Feature/WhatsAppConnectivityServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/WhatsAppConnectivityService.php::App\\Services\\WhatsApp\\WhatsAppConnectivityService::checkConnectivity",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppConnectivityService@checkConnectivity",
        "expected_test_path": "tests/Feature/WhatsAppConnectivityServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/WhatsAppConnectivityService.php::App\\Services\\WhatsApp\\WhatsAppConnectivityService::checkProviderConnectivity",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppConnectivityService@checkProviderConnectivity",
        "expected_test_path": "tests/Feature/WhatsAppConnectivityServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/WhatsAppConnectivityService.php::App\\Services\\WhatsApp\\WhatsAppConnectivityService::getActiveProvider",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppConnectivityService@getActiveProvider",
        "expected_test_path": "tests/Feature/WhatsAppConnectivityServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/WhatsAppConnectivityService.php::App\\Services\\WhatsApp\\WhatsAppConnectivityService::getConnectivityHelperText",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppConnectivityService@getConnectivityHelperText",
        "expected_test_path": "tests/Feature/WhatsAppConnectivityServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/WhatsAppConsentService.php::App\\Services\\WhatsApp\\WhatsAppConsentService::isOptedOut",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppConsentService@isOptedOut",
        "expected_test_path": "tests/Feature/WhatsAppConsentServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/WhatsAppInboundMessageWriter.php::App\\Services\\WhatsApp\\WhatsAppInboundMessageWriter::create",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppInboundMessageWriter@create",
        "expected_test_path": "tests/Feature/WhatsAppInboundMessageWriterTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/WhatsAppInboundMessageWriter.php::App\\Services\\WhatsApp\\WhatsAppInboundMessageWriter::delete",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppInboundMessageWriter@delete",
        "expected_test_path": "tests/Feature/WhatsAppInboundMessageWriterTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/WhatsAppInboundMessageWriter.php::App\\Services\\WhatsApp\\WhatsAppInboundMessageWriter::insert",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppInboundMessageWriter@insert",
        "expected_test_path": "tests/Feature/WhatsAppInboundMessageWriterTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WhatsApp/WhatsAppInboundMessageWriter.php::App\\Services\\WhatsApp\\WhatsAppInboundMessageWriter::update",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppInboundMessageWriter@update",
        "expected_test_path": "tests/Feature/WhatsAppInboundMessageWriterTest.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::send",
        "fqmn": "App\\Services\\ZeptoMailService@send",
        "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::sendBulk",
        "fqmn": "App\\Services\\ZeptoMailService@sendBulk",
        "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::sendTemplate",
        "fqmn": "App\\Services\\ZeptoMailService@sendTemplate",
        "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::verifyWebhook",
        "fqmn": "App\\Services\\ZeptoMailService@verifyWebhook",
        "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/Zoho/Normalizers/KuwaitAddressNormalizer.php::App\\Services\\Zoho\\Normalizers\\KuwaitAddressNormalizer::normalize",
        "fqmn": "App\\Services\\Zoho\\Normalizers\\KuwaitAddressNormalizer@normalize",
        "expected_test_path": "tests/Feature/KuwaitAddressNormalizerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Cache/CacheManagerProxy.php::App\\Support\\Cache\\CacheManagerProxy::add",
        "fqmn": "App\\Support\\Cache\\CacheManagerProxy@add",
        "expected_test_path": "tests/Unit/CacheManagerProxyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Cache/CacheManagerProxy.php::App\\Support\\Cache\\CacheManagerProxy::fake",
        "fqmn": "App\\Support\\Cache\\CacheManagerProxy@fake",
        "expected_test_path": "tests/Unit/CacheManagerProxyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Cache/CacheManagerProxy.php::App\\Support\\Cache\\CacheManagerProxy::flush",
        "fqmn": "App\\Support\\Cache\\CacheManagerProxy@flush",
        "expected_test_path": "tests/Unit/CacheManagerProxyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Cache/CacheManagerProxy.php::App\\Support\\Cache\\CacheManagerProxy::forget",
        "fqmn": "App\\Support\\Cache\\CacheManagerProxy@forget",
        "expected_test_path": "tests/Unit/CacheManagerProxyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Cache/CacheManagerProxy.php::App\\Support\\Cache\\CacheManagerProxy::get",
        "fqmn": "App\\Support\\Cache\\CacheManagerProxy@get",
        "expected_test_path": "tests/Unit/CacheManagerProxyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Cache/CacheManagerProxy.php::App\\Support\\Cache\\CacheManagerProxy::lock",
        "fqmn": "App\\Support\\Cache\\CacheManagerProxy@lock",
        "expected_test_path": "tests/Unit/CacheManagerProxyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Cache/CacheManagerProxy.php::App\\Support\\Cache\\CacheManagerProxy::put",
        "fqmn": "App\\Support\\Cache\\CacheManagerProxy@put",
        "expected_test_path": "tests/Unit/CacheManagerProxyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Cache/CacheManagerProxy.php::App\\Support\\Cache\\CacheManagerProxy::remember",
        "fqmn": "App\\Support\\Cache\\CacheManagerProxy@remember",
        "expected_test_path": "tests/Unit/CacheManagerProxyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Cache/CacheManagerProxy.php::App\\Support\\Cache\\CacheManagerProxy::store",
        "fqmn": "App\\Support\\Cache\\CacheManagerProxy@store",
        "expected_test_path": "tests/Unit/CacheManagerProxyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Chat/RateLimiter.php::App\\Support\\Chat\\RateLimiter::checkBurstLimit",
        "fqmn": "App\\Support\\Chat\\RateLimiter@checkBurstLimit",
        "expected_test_path": "tests/Unit/RateLimiterTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Chat/RateLimiter.php::App\\Support\\Chat\\RateLimiter::checkMultipleWindows",
        "fqmn": "App\\Support\\Chat\\RateLimiter@checkMultipleWindows",
        "expected_test_path": "tests/Unit/RateLimiterTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Chat/RateLimiter.php::App\\Support\\Chat\\RateLimiter::checkOpenAITokens",
        "fqmn": "App\\Support\\Chat\\RateLimiter@checkOpenAITokens",
        "expected_test_path": "tests/Unit/RateLimiterTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Chat/RateLimiter.php::App\\Support\\Chat\\RateLimiter::checkTwilioTierLimit",
        "fqmn": "App\\Support\\Chat\\RateLimiter@checkTwilioTierLimit",
        "expected_test_path": "tests/Unit/RateLimiterTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Chat/RateLimiter.php::App\\Support\\Chat\\RateLimiter::estimateTokens",
        "fqmn": "App\\Support\\Chat\\RateLimiter@estimateTokens",
        "expected_test_path": "tests/Unit/RateLimiterTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Chat/RateLimiter.php::App\\Support\\Chat\\RateLimiter::getRemaining",
        "fqmn": "App\\Support\\Chat\\RateLimiter@getRemaining",
        "expected_test_path": "tests/Unit/RateLimiterTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Chat/RateLimiter.php::App\\Support\\Chat\\RateLimiter::getResetTime",
        "fqmn": "App\\Support\\Chat\\RateLimiter@getResetTime",
        "expected_test_path": "tests/Unit/RateLimiterTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Chat/RateLimiter.php::App\\Support\\Chat\\RateLimiter::isAllowed",
        "fqmn": "App\\Support\\Chat\\RateLimiter@isAllowed",
        "expected_test_path": "tests/Unit/RateLimiterTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::acquireLock",
        "fqmn": "App\\Support\\Chat\\StateRepository@acquireLock",
        "expected_test_path": "tests/Unit/StateRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::getConversationHistory",
        "fqmn": "App\\Support\\Chat\\StateRepository@getConversationHistory",
        "expected_test_path": "tests/Unit/StateRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::getConversationId",
        "fqmn": "App\\Support\\Chat\\StateRepository@getConversationId",
        "expected_test_path": "tests/Unit/StateRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::getLastMessageAt",
        "fqmn": "App\\Support\\Chat\\StateRepository@getLastMessageAt",
        "expected_test_path": "tests/Unit/StateRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::getSessionState",
        "fqmn": "App\\Support\\Chat\\StateRepository@getSessionState",
        "expected_test_path": "tests/Unit/StateRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::loadConversation",
        "fqmn": "App\\Support\\Chat\\StateRepository@loadConversation",
        "expected_test_path": "tests/Unit/StateRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::loadSession",
        "fqmn": "App\\Support\\Chat\\StateRepository@loadSession",
        "expected_test_path": "tests/Unit/StateRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::trimHistory",
        "fqmn": "App\\Support\\Chat\\StateRepository@trimHistory",
        "expected_test_path": "tests/Unit/StateRepositoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/FactoryToolkit.php::App\\Support\\FactoryToolkit::factoryFullCycle",
        "fqmn": "App\\Support\\FactoryToolkit@factoryFullCycle",
        "expected_test_path": "tests/Unit/FactoryToolkitTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/FactoryToolkit.php::App\\Support\\FactoryToolkit::factoryLease",
        "fqmn": "App\\Support\\FactoryToolkit@factoryLease",
        "expected_test_path": "tests/Unit/FactoryToolkitTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/FactoryToolkit.php::App\\Support\\FactoryToolkit::factoryOrganization",
        "fqmn": "App\\Support\\FactoryToolkit@factoryOrganization",
        "expected_test_path": "tests/Unit/FactoryToolkitTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/FactoryToolkit.php::App\\Support\\FactoryToolkit::factoryPropertyChain",
        "fqmn": "App\\Support\\FactoryToolkit@factoryPropertyChain",
        "expected_test_path": "tests/Unit/FactoryToolkitTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/FactoryToolkit.php::App\\Support\\FactoryToolkit::factoryTenant",
        "fqmn": "App\\Support\\FactoryToolkit@factoryTenant",
        "expected_test_path": "tests/Unit/FactoryToolkitTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/FactoryToolkit.php::App\\Support\\FactoryToolkit::fullLeaseCycle",
        "fqmn": "App\\Support\\FactoryToolkit@fullLeaseCycle",
        "expected_test_path": "tests/Unit/FactoryToolkitTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/FactoryToolkit.php::App\\Support\\FactoryToolkit::organizationWithTenants",
        "fqmn": "App\\Support\\FactoryToolkit@organizationWithTenants",
        "expected_test_path": "tests/Unit/FactoryToolkitTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/FactoryToolkit.php::App\\Support\\FactoryToolkit::paymentScenario",
        "fqmn": "App\\Support\\FactoryToolkit@paymentScenario",
        "expected_test_path": "tests/Unit/FactoryToolkitTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/FactoryToolkit.php::App\\Support\\FactoryToolkit::propertyWithUnits",
        "fqmn": "App\\Support\\FactoryToolkit@propertyWithUnits",
        "expected_test_path": "tests/Unit/FactoryToolkitTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/FactoryToolkit.php::App\\Support\\FactoryToolkit::tenantWithLease",
        "fqmn": "App\\Support\\FactoryToolkit@tenantWithLease",
        "expected_test_path": "tests/Unit/FactoryToolkitTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Http/PreservingResponseFactory.php::App\\Support\\Http\\PreservingResponseFactory::json",
        "fqmn": "App\\Support\\Http\\PreservingResponseFactory@json",
        "expected_test_path": "tests/Feature/PreservingResponseFactoryTest.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/OutreachAI/AdaptiveWeightStore.php::App\\Support\\OutreachAI\\AdaptiveWeightStore::decreaseWeight",
        "fqmn": "App\\Support\\OutreachAI\\AdaptiveWeightStore@decreaseWeight",
        "expected_test_path": "tests/Unit/AdaptiveWeightStoreTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/OutreachAI/AdaptiveWeightStore.php::App\\Support\\OutreachAI\\AdaptiveWeightStore::get",
        "fqmn": "App\\Support\\OutreachAI\\AdaptiveWeightStore@get",
        "expected_test_path": "tests/Unit/AdaptiveWeightStoreTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/OutreachAI/AdaptiveWeightStore.php::App\\Support\\OutreachAI\\AdaptiveWeightStore::increaseWeight",
        "fqmn": "App\\Support\\OutreachAI\\AdaptiveWeightStore@increaseWeight",
        "expected_test_path": "tests/Unit/AdaptiveWeightStoreTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/OutreachAI/AdaptiveWeightStore.php::App\\Support\\OutreachAI\\AdaptiveWeightStore::rollbackToPrevious",
        "fqmn": "App\\Support\\OutreachAI\\AdaptiveWeightStore@rollbackToPrevious",
        "expected_test_path": "tests/Unit/AdaptiveWeightStoreTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/OutreachAI/AdaptiveWeightStore.php::App\\Support\\OutreachAI\\AdaptiveWeightStore::update",
        "fqmn": "App\\Support\\OutreachAI\\AdaptiveWeightStore@update",
        "expected_test_path": "tests/Unit/AdaptiveWeightStoreTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Budget/CurrencyNormalizer.php::App\\Support\\OutreachAI\\Budget\\CurrencyNormalizer::normalize",
        "fqmn": "App\\Support\\OutreachAI\\Budget\\CurrencyNormalizer@normalize",
        "expected_test_path": "tests/Unit/CurrencyNormalizerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/OutreachAI/ContradictionDetector.php::App\\Support\\OutreachAI\\ContradictionDetector::detectContradiction",
        "fqmn": "App\\Support\\OutreachAI\\ContradictionDetector@detectContradiction",
        "expected_test_path": "tests/Unit/ContradictionDetectorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/OutreachAI/GoalAlignmentScorer.php::App\\Support\\OutreachAI\\GoalAlignmentScorer::score",
        "fqmn": "App\\Support\\OutreachAI\\GoalAlignmentScorer@score",
        "expected_test_path": "tests/Unit/GoalAlignmentScorerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Knowledge/FAQTemplateRegistry.php::App\\Support\\OutreachAI\\Knowledge\\FAQTemplateRegistry::getTemplates",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\FAQTemplateRegistry@getTemplates",
        "expected_test_path": "tests/Unit/FAQTemplateRegistryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Knowledge/FAQTemplateRegistry.php::App\\Support\\OutreachAI\\Knowledge\\FAQTemplateRegistry::match",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\FAQTemplateRegistry@match",
        "expected_test_path": "tests/Unit/FAQTemplateRegistryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Persona/PersonaEnforcer.php::App\\Support\\OutreachAI\\Persona\\PersonaEnforcer::enforce",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\PersonaEnforcer@enforce",
        "expected_test_path": "tests/Unit/PersonaEnforcerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Persona/ToneSelector.php::App\\Support\\OutreachAI\\Persona\\ToneSelector::getToneConstraints",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\ToneSelector@getToneConstraints",
        "expected_test_path": "tests/Unit/ToneSelectorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Persona/ToneSelector.php::App\\Support\\OutreachAI\\Persona\\ToneSelector::getToneInstructions",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\ToneSelector@getToneInstructions",
        "expected_test_path": "tests/Unit/ToneSelectorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Persona/ToneSelector.php::App\\Support\\OutreachAI\\Persona\\ToneSelector::selectTone",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\ToneSelector@selectTone",
        "expected_test_path": "tests/Unit/ToneSelectorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/OutreachAI/Safety/GPTContentFilter.php::App\\Support\\OutreachAI\\Safety\\GPTContentFilter::validate",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\GPTContentFilter@validate",
        "expected_test_path": "tests/Unit/GPTContentFilterTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Scopes/OrganizationScope.php::App\\Support\\Scopes\\OrganizationScope::apply",
        "fqmn": "App\\Support\\Scopes\\OrganizationScope@apply",
        "expected_test_path": "tests/Unit/OrganizationScopeTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Services/UnifiedPhoneNormalizer.php::App\\Support\\Services\\UnifiedPhoneNormalizer::normalize",
        "fqmn": "App\\Support\\Services\\UnifiedPhoneNormalizer@normalize",
        "expected_test_path": "tests/Feature/UnifiedPhoneNormalizerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Services/UnifiedPhoneNormalizer.php::App\\Support\\Services\\UnifiedPhoneNormalizer::normalizeToE164",
        "fqmn": "App\\Support\\Services\\UnifiedPhoneNormalizer@normalizeToE164",
        "expected_test_path": "tests/Feature/UnifiedPhoneNormalizerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Subscription/Actions/StartFeaturePreviewAction.php::App\\Support\\Subscription\\Actions\\StartFeaturePreviewAction::execute",
        "fqmn": "App\\Support\\Subscription\\Actions\\StartFeaturePreviewAction@execute",
        "expected_test_path": "tests/Unit/StartFeaturePreviewActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Testing/LogFake.php::App\\Support\\Testing\\LogFake::__call",
        "fqmn": "App\\Support\\Testing\\LogFake@__call",
        "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/Testing/LogFake.php::App\\Support\\Testing\\LogFake::assertLogged",
        "fqmn": "App\\Support\\Testing\\LogFake@assertLogged",
        "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/Testing/LogFake.php::App\\Support\\Testing\\LogFake::channel",
        "fqmn": "App\\Support\\Testing\\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/Testing/LogFake.php::App\\Support\\Testing\\LogFake::driver",
        "fqmn": "App\\Support\\Testing\\LogFake@driver",
        "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/Testing/LogFake.php::App\\Support\\Testing\\LogFake::stack",
        "fqmn": "App\\Support\\Testing\\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/Testing/TestDetector.php::App\\Support\\Testing\\TestDetector::isTested",
        "fqmn": "App\\Support\\Testing\\TestDetector@isTested",
        "expected_test_path": "tests/Unit/TestDetectorTest.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::/__sate/outreach-ai/optout/confirmation::closure",
        "fqmn": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closureTest.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::/files/stats::App\\Api\\Controllers\\FileController::stats",
        "fqmn": "App\\Api\\Controllers\\FileController@stats",
        "expected_test_path": "tests/Unit/FileControllerTest.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::closure",
        "fqmn": "route::routes/api.php::get::/health::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::get::/health::closureTest.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::/invitations::App\\Http\\Controllers\\InvitationController::index",
        "fqmn": "App\\Http\\Controllers\\InvitationController@index",
        "expected_test_path": "tests/Feature/InvitationControllerTest.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::/landlord/dashboard::App\\Api\\Controllers\\LandlordDashboardController::dashboard",
        "fqmn": "App\\Api\\Controllers\\LandlordDashboardController@dashboard",
        "expected_test_path": "tests/Unit/LandlordDashboardControllerTest.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::/landlords::App\\Api\\Controllers\\LandlordController::index",
        "fqmn": "App\\Api\\Controllers\\LandlordController@index",
        "expected_test_path": "tests/Unit/LandlordControllerTest.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::/leases::App\\Api\\Controllers\\LeaseController::index",
        "fqmn": "App\\Api\\Controllers\\LeaseController@index",
        "expected_test_path": "tests/Unit/LeaseControllerTest.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::/maintenance/digest-preferences::App\\Http\\Controllers\\Api\\MaintenanceDigestPreferencesController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceDigestPreferencesController@show",
        "expected_test_path": "tests/Feature/MaintenanceDigestPreferencesControllerTest.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::/maintenance/metrics::App\\Http\\Controllers\\Api\\MaintenanceMetricsController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceMetricsController@index",
        "expected_test_path": "tests/Feature/MaintenanceMetricsControllerTest.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::/maintenance/slas::App\\Http\\Controllers\\Api\\MaintenanceSlaController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceSlaController@index",
        "expected_test_path": "tests/Feature/MaintenanceSlaControllerTest.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::/maintenance/tickets::App\\Http\\Controllers\\Api\\MaintenanceTicketController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@index",
        "expected_test_path": "tests/Feature/MaintenanceTicketControllerTest.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::/org/deductions::App\\Api\\Controllers\\OrgDeductionSettingsController::show",
        "fqmn": "App\\Api\\Controllers\\OrgDeductionSettingsController@show",
        "expected_test_path": "tests/Unit/OrgDeductionSettingsControllerTest.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::/payment-proofs::App\\Api\\Controllers\\PaymentProofController::index",
        "fqmn": "App\\Api\\Controllers\\PaymentProofController@index",
        "expected_test_path": "tests/Unit/PaymentProofControllerTest.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::/payments::App\\Api\\Controllers\\PaymentController::index",
        "fqmn": "App\\Api\\Controllers\\PaymentController@index",
        "expected_test_path": "tests/Unit/PaymentControllerTest.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::/predictions/conversation/{conversation}/latest::App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController::getLatest",
        "fqmn": "App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController@getLatest",
        "expected_test_path": "tests/Feature/PredictionControllerTest.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::/properties::App\\Api\\Controllers\\PropertyController::index",
        "fqmn": "App\\Api\\Controllers\\PropertyController@index",
        "expected_test_path": "tests/Unit/PropertyControllerTest.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::/reminders::App\\Api\\Controllers\\ReminderController::index",
        "fqmn": "App\\Api\\Controllers\\ReminderController@index",
        "expected_test_path": "tests/Unit/ReminderControllerTest.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::/rent-cycles::App\\Api\\Controllers\\RentCycleController::index",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@index",
        "expected_test_path": "tests/Unit/RentCycleControllerTest.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::/reports/organization-dashboard::App\\Api\\Controllers\\ReportController::organizationDashboard",
        "fqmn": "App\\Api\\Controllers\\ReportController@organizationDashboard",
        "expected_test_path": "tests/Unit/ReportControllerTest.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::/subscriptions/current::App\\Api\\Controllers\\SubscriptionController::current",
        "fqmn": "App\\Api\\Controllers\\SubscriptionController@current",
        "expected_test_path": "tests/Unit/SubscriptionControllerTest.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::/tenant-dashboard::App\\Api\\Controllers\\TenantDashboardController::dashboard",
        "fqmn": "App\\Api\\Controllers\\TenantDashboardController@dashboard",
        "expected_test_path": "tests/Unit/TenantDashboardControllerTest.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::/tenant/dashboard::App\\Api\\Controllers\\TenantDashboardController::dashboard",
        "fqmn": "App\\Api\\Controllers\\TenantDashboardController@dashboard",
        "expected_test_path": "tests/Unit/TenantDashboardControllerTest.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::/tenants::App\\Api\\Controllers\\TenantController::index",
        "fqmn": "App\\Api\\Controllers\\TenantController@index",
        "expected_test_path": "tests/Unit/TenantControllerTest.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::/testing/outreach-ai/pricing/suggest-plan::App\\Http\\Controllers\\Testing\\OutreachPricingSuggestController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\OutreachPricingSuggestController@__invoke",
        "expected_test_path": "tests/Feature/OutreachPricingSuggestControllerTest.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::/testing/sate/dashboard/performance-indicators::App\\Http\\Controllers\\Testing\\DashboardPerformanceIndicatorsController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\DashboardPerformanceIndicatorsController@__invoke",
        "expected_test_path": "tests/Feature/DashboardPerformanceIndicatorsControllerTest.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::/testing/sate/dashboard/quick-stats::App\\Http\\Controllers\\Testing\\DashboardQuickStatsController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\DashboardQuickStatsController@__invoke",
        "expected_test_path": "tests/Feature/DashboardQuickStatsControllerTest.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::/testing/sate/landlord/overview-stats::App\\Http\\Controllers\\Testing\\LandlordOverviewStatsController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\LandlordOverviewStatsController@__invoke",
        "expected_test_path": "tests/Feature/LandlordOverviewStatsControllerTest.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::/tickets/approve/{token}::closure",
        "fqmn": "route::routes/api.php::get::/tickets/approve/{token}::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::get::/tickets/approve/{token}::closureTest.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::/transfers/pending::App\\Api\\Controllers\\TransferController::pending",
        "fqmn": "App\\Api\\Controllers\\TransferController@pending",
        "expected_test_path": "tests/Unit/TransferControllerTest.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::/units::App\\Api\\Controllers\\UnitController::index",
        "fqmn": "App\\Api\\Controllers\\UnitController@index",
        "expected_test_path": "tests/Unit/UnitControllerTest.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::/whatsapp/agencies/profile::App\\Http\\Controllers\\AgencyWhatsAppProfileController::show",
        "fqmn": "App\\Http\\Controllers\\AgencyWhatsAppProfileController@show",
        "expected_test_path": "tests/Feature/AgencyWhatsAppProfileControllerTest.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::/whatsapp/profile::App\\Http\\Controllers\\AgencyWhatsAppProfileController::show",
        "fqmn": "App\\Http\\Controllers\\AgencyWhatsAppProfileController@show",
        "expected_test_path": "tests/Feature/AgencyWhatsAppProfileControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/__sate/outreach-ai/drift/analyze::closure",
        "fqmn": "route::routes/api.php::post::/__sate/outreach-ai/drift/analyze::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/__sate/outreach-ai/drift/analyze::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/__sate/outreach-ai/misunderstanding-detect::closure",
        "fqmn": "route::routes/api.php::post::/__sate/outreach-ai/misunderstanding-detect::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/__sate/outreach-ai/misunderstanding-detect::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/__sate/outreach-ai/optout/detect::closure",
        "fqmn": "route::routes/api.php::post::/__sate/outreach-ai/optout/detect::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/__sate/outreach-ai/optout/detect::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/__sate/outreach-ai/trajectory/adjust::closure",
        "fqmn": "route::routes/api.php::post::/__sate/outreach-ai/trajectory/adjust::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/__sate/outreach-ai/trajectory/adjust::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/__tests/outreach-ai/compliance/check::closure",
        "fqmn": "route::routes/api.php::post::/__tests/outreach-ai/compliance/check::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/__tests/outreach-ai/compliance/check::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/__tests/outreach-ai/knowledge/validate::closure",
        "fqmn": "route::routes/api.php::post::/__tests/outreach-ai/knowledge/validate::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/__tests/outreach-ai/knowledge/validate::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/bookings::App\\Api\\Controllers\\BookingController::store",
        "fqmn": "App\\Api\\Controllers\\BookingController@store",
        "expected_test_path": "tests/Unit/BookingControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/gateway/register::App\\Api\\Controllers\\GatewayController::register",
        "fqmn": "App\\Api\\Controllers\\GatewayController@register",
        "expected_test_path": "tests/Unit/GatewayControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/inbound::App\\Http\\Controllers\\Webhooks\\TwilioWebhookController::inbound",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\TwilioWebhookController@inbound",
        "expected_test_path": "tests/Feature/TwilioWebhookControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/login::App\\Http\\Controllers\\Auth\\AuthController::login",
        "fqmn": "App\\Http\\Controllers\\Auth\\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": "route::routes/api.php::post::/maintenance/tickets/{ticket}/approve::App\\Http\\Controllers\\Api\\MaintenanceTicketController::approve",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@approve",
        "expected_test_path": "tests/Feature/MaintenanceTicketControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/outreach-ai/conversations/{conversation}/inbound::App\\Http\\Controllers\\Testing\\OutreachConversationInboundController::store",
        "fqmn": "App\\Http\\Controllers\\Testing\\OutreachConversationInboundController@store",
        "expected_test_path": "tests/Feature/OutreachConversationInboundControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/outreach-ai/knowledge/validate-reply::App\\Http\\Controllers\\Testing\\OutreachKnowledgeValidateController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\OutreachKnowledgeValidateController@__invoke",
        "expected_test_path": "tests/Feature/OutreachKnowledgeValidateControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/auth/filament/agency-register-batch::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/auth/filament/agency-register-batch::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/auth/filament/agency-register-batch::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/auth/filament/agency-register::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/auth/filament/agency-register::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/auth/filament/agency-register::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/credit-transactions/create::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/credit-transactions/create::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/credit-transactions/create::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/dunning/evaluate::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/dunning/evaluate::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/dunning/evaluate::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/dunning/policy-resolve::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/dunning/policy-resolve::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/dunning/policy-resolve::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/dunning/run-attempt::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/dunning/run-attempt::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/dunning/run-attempt::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/dunning/start::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/dunning/start::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/dunning/start::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/invoices/generate-credit-topup::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/invoices/generate-credit-topup::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/invoices/generate-credit-topup::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/invoices/generate-message-package::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/invoices/generate-message-package::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/invoices/generate-message-package::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/invoices/generate-subscription::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/invoices/generate-subscription::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/invoices/generate-subscription::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/subscription-event::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscription-event::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/subscription-event::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/subscription/add-credits::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscription/add-credits::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/subscription/add-credits::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/subscription/create-soft-deleted::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscription/create-soft-deleted::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/subscription/create-soft-deleted::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/subscription/suspend::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscription/suspend::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/subscription/suspend::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/subscriptions/auto-charge/run::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscriptions/auto-charge/run::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/subscriptions/auto-charge/run::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/subscriptions/convert-trial-to-paid::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscriptions/convert-trial-to-paid::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/subscriptions/convert-trial-to-paid::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/subscriptions/evaluate-post-dunning-failure::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscriptions/evaluate-post-dunning-failure::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/subscriptions/evaluate-post-dunning-failure::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/subscriptions/move-to-active::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscriptions/move-to-active::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/subscriptions/move-to-active::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/subscriptions/transition::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscriptions/transition::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/subscriptions/transition::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/tap-settlements/auto-allocate::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/tap-settlements/auto-allocate::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/tap-settlements/auto-allocate::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/tap-settlements/match::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/tap-settlements/match::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/tap-settlements/match::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/tap-webhook/process-twice::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/tap-webhook/process-twice::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/tap-webhook/process-twice::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/tap-webhook/process::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/tap-webhook/process::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/tap-webhook/process::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/zoho/analytics/invoice-anomalies::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/zoho/analytics/invoice-anomalies::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/zoho/analytics/invoice-anomalies::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/zoho/analytics/monthly-invoice-stats::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/zoho/analytics/monthly-invoice-stats::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/zoho/analytics/monthly-invoice-stats::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/zoho/analytics/vat-exposure::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/zoho/analytics/vat-exposure::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/zoho/analytics/vat-exposure::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/zoho/sync-invoice::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/zoho/sync-invoice::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/zoho/sync-invoice::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/zoho/sync-tap-settlement::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/zoho/sync-tap-settlement::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/zoho/sync-tap-settlement::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/discount-code-usages/anonymous/record::App\\Http\\Controllers\\Testing\\RecordAnonymousDiscountCodeUsageController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\RecordAnonymousDiscountCodeUsageController@__invoke",
        "expected_test_path": "tests/Feature/RecordAnonymousDiscountCodeUsageControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/discount-code-usages/subscription/record::App\\Http\\Controllers\\Testing\\RecordSubscriptionDiscountCodeUsageController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\RecordSubscriptionDiscountCodeUsageController@__invoke",
        "expected_test_path": "tests/Feature/RecordSubscriptionDiscountCodeUsageControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/dunning/auto-charge/run::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/dunning/auto-charge/run::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/dunning/auto-charge/run::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/dunning/resolve-policy::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/dunning/resolve-policy::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/dunning/resolve-policy::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/dunning/run-attempt::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/dunning/run-attempt::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/dunning/run-attempt::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/dunning/start::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/dunning/start::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/dunning/start::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/dunning/transition-active::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/dunning/transition-active::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/dunning/transition-active::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/email-template/apply-placeholders::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/email-template/apply-placeholders::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/email-template/apply-placeholders::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/email-template/get-localized-content::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/email-template/get-localized-content::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/email-template/get-localized-content::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/email-template/get-template-for::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/email-template/get-template-for::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/email-template/get-template-for::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/email-template/is-enabled-for-organization::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/email-template/is-enabled-for-organization::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/email-template/is-enabled-for-organization::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/files/security/scan-for-virus::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/files/security/scan-for-virus::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/files/security/scan-for-virus::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/files/security/validate::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/files/security/validate::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/files/security/validate::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/maintenance/landlord-approval-request/notify::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/maintenance/landlord-approval-request/notify::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/maintenance/landlord-approval-request/notify::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/maintenance/landlord-approval-request/twilio::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/maintenance/landlord-approval-request/twilio::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/maintenance/landlord-approval-request/twilio::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/maintenance/tenant-ticket-confirmation/notify::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/maintenance/tenant-ticket-confirmation/notify::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/maintenance/tenant-ticket-confirmation/notify::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/maintenance/tenant-ticket-confirmation/twilio::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/maintenance/tenant-ticket-confirmation/twilio::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/maintenance/tenant-ticket-confirmation/twilio::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/maintenance/ticket-completed/notify::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/maintenance/ticket-completed/notify::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/maintenance/ticket-completed/notify::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/maintenance/worker-assigned/notify::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/maintenance/worker-assigned/notify::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/maintenance/worker-assigned/notify::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/notifications/over-limit::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/notifications/over-limit::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/notifications/over-limit::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/notifications/payment-failed::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/notifications/payment-failed::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/notifications/payment-failed::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/notifications/payment-proof-submitted::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/notifications/payment-proof-submitted::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/notifications/payment-proof-submitted::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/notifications/retry-scheduled::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/notifications/retry-scheduled::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/notifications/retry-scheduled::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/notifications/security-alert::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/notifications/security-alert::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/notifications/security-alert::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/ai/generate-reply::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/ai/generate-reply::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/ai/generate-reply::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/churn-prevention/run::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/churn-prevention/run::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/churn-prevention/run::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/emotion/adjust-goal::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/emotion/adjust-goal::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/emotion/adjust-goal::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/emotion/update::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/emotion/update::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/emotion/update::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/generate-reply-with-weights::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/generate-reply-with-weights::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/generate-reply-with-weights::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/generate-reply::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/generate-reply::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/generate-reply::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/goal/derive::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/goal/derive::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/goal/derive::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/knowledge/forbidden-phrases/check::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/knowledge/forbidden-phrases/check::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/knowledge/forbidden-phrases/check::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/knowledge/forbidden-phrases/sanitize::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/knowledge/forbidden-phrases/sanitize::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/knowledge/forbidden-phrases/sanitize::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/optimization/persist-adjustments::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/optimization/persist-adjustments::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/optimization/persist-adjustments::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/persona/enforce::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/persona/enforce::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/persona/enforce::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/persona/structure/restructure::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/persona/structure/restructure::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/persona/structure/restructure::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/persona/tone-select::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/persona/tone-select::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/persona/tone-select::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/persona/validate-transparency::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/persona/validate-transparency::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/persona/validate-transparency::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/prompt/sentiment-modifier::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/prompt/sentiment-modifier::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/prompt/sentiment-modifier::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/question/detect-all::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/question/detect-all::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/question/detect-all::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/question/detect::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/question/detect::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/question/detect::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/reengagement/build-message::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/reengagement/build-message::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/reengagement/build-message::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/reengagement/run::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/reengagement/run::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/reengagement/run::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/reply-evaluate::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/reply-evaluate::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/reply-evaluate::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/revenue/discount-decide::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/revenue/discount-decide::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/revenue/discount-decide::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/revenue/process-inbound::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/revenue/process-inbound::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/revenue/process-inbound::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/safety/abuse/check-inbound::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/safety/abuse/check-inbound::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/safety/abuse/check-inbound::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/safety/abuse/detect-spam-like::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/safety/abuse/detect-spam-like::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/safety/abuse/detect-spam-like::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/safety/process-outbound::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/safety/process-outbound::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/safety/process-outbound::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/safety/validate-inbound::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/safety/validate-inbound::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/safety/validate-inbound::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/sales-acceleration/accelerate::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sales-acceleration/accelerate::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/sales-acceleration/accelerate::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/generate-trial-sequence::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/generate-trial-sequence::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/generate-trial-sequence::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/maybe-inject-sales-prompt::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/maybe-inject-sales-prompt::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/maybe-inject-sales-prompt::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/update-stage::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/update-stage::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/update-stage::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/send-ai-whatsapp-reply/run::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/send-ai-whatsapp-reply/run::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/send-ai-whatsapp-reply/run::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/sentiment/analyze-and-audit::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sentiment/analyze-and-audit::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/sentiment/analyze-and-audit::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/sentiment/analyze::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sentiment/analyze::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/sentiment/analyze::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/sequence/process-command::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sequence/process-command::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/sequence/process-command::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/sequence/run-step::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sequence/run-step::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/sequence/run-step::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/sequence/run-steps::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sequence/run-steps::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/sequence/run-steps::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/subscription-nudge/run::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/subscription-nudge/run::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/subscription-nudge/run::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/trial/extend::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/trial/extend::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/trial/extend::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach/followups/adjust-timing-by-temperature::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach/followups/adjust-timing-by-temperature::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach/followups/adjust-timing-by-temperature::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach/followups/convert-interval-to-timestamp::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach/followups/convert-interval-to-timestamp::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach/followups/convert-interval-to-timestamp::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach/followups/schedule::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach/followups/schedule::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach/followups/schedule::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach/sync-conversation-costs/run::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach/sync-conversation-costs/run::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach/sync-conversation-costs/run::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/reminders/cancel-for-rent-cycle::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/reminders/cancel-for-rent-cycle::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/reminders/cancel-for-rent-cycle::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/reminders/templates/review::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/reminders/templates/review::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/reminders/templates/review::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/subscription/feature-access/determine-access::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/subscription/feature-access/determine-access::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/subscription/feature-access/determine-access::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/subscription/feature-access/enforce::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/subscription/feature-access/enforce::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/subscription/feature-access/enforce::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/subscription/feature-access/feature-display-name::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/subscription/feature-access/feature-display-name::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/subscription/feature-access/feature-display-name::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/subscription/feature-access/resolve-feature-key::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/subscription/feature-access/resolve-feature-key::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/subscription/feature-access/resolve-feature-key::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/tap/create-subscription-charge::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/tap/create-subscription-charge::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/tap/create-subscription-charge::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/tap/webhook/process-attempt::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/tap/webhook/process-attempt::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/tap/webhook/process-attempt::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/whatsapp/dialog360/inbound::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/whatsapp/dialog360/inbound::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/whatsapp/dialog360/inbound::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/whatsapp/session-notes/create::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/whatsapp/session-notes/create::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/whatsapp/session-notes/create::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/whatsapp/sessions/attempt-create::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/whatsapp/sessions/attempt-create::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/whatsapp/sessions/attempt-create::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/whatsapp/sessions/create::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/whatsapp/sessions/create::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/whatsapp/sessions/create::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/whatsapp/webhook/process-status::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/whatsapp/webhook/process-status::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/whatsapp/webhook/process-status::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/testing/sate/zoho/webhook/process::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/zoho/webhook/process::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/zoho/webhook/process::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/verify/start::App\\Http\\Controllers\\VerificationController::start",
        "fqmn": "App\\Http\\Controllers\\VerificationController@start",
        "expected_test_path": "tests/Feature/VerificationControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/webhooks/360dialog/inbound::App\\Http\\Controllers\\Webhooks\\Dialog360WebhookController::handle",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\Dialog360WebhookController@handle",
        "expected_test_path": "tests/Feature/Dialog360WebhookControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/webhooks/360dialog/status::App\\Http\\Controllers\\Webhooks\\Dialog360StatusWebhookController::handle",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\Dialog360StatusWebhookController@handle",
        "expected_test_path": "tests/Feature/Dialog360StatusWebhookControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/webhooks/zepto/bounce::App\\Http\\Controllers\\Webhooks\\ZeptoWebhookController::handleBounce",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\ZeptoWebhookController@handleBounce",
        "expected_test_path": "tests/Feature/ZeptoWebhookControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::post::/whatsapp/agencies/onboarding/start::App\\Http\\Controllers\\OrgWhatsAppOnboardingController::start",
        "fqmn": "App\\Http\\Controllers\\OrgWhatsAppOnboardingController@start",
        "expected_test_path": "tests/Feature/OrgWhatsAppOnboardingControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/mobile.php::post::/forgot-password::App\\Http\\Controllers\\Api\\Mobile\\MobileForgotPasswordController::sendResetLink",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileForgotPasswordController@sendResetLink",
        "expected_test_path": "tests/Feature/MobileForgotPasswordControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/mobile.php::post::/login::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": "route::routes/mobile.php::post::/logout::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": "route::routes/outreach.php::any::/testing/outreach-ai/{path}::closure",
        "fqmn": "route::routes/outreach.php::any::/testing/outreach-ai/{path}::closure",
        "expected_test_path": "tests/Unit/route::routes/outreach.php::any::/testing/outreach-ai/{path}::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/outreach.php::any::/testing/sate/{path}::closure",
        "fqmn": "route::routes/outreach.php::any::/testing/sate/{path}::closure",
        "expected_test_path": "tests/Unit/route::routes/outreach.php::any::/testing/sate/{path}::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/outreach.php::post::/outreach/webhook/whatsapp::App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController::handle",
        "fqmn": "App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController@handle",
        "expected_test_path": "tests/Unit/WhatsAppWebhookControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/outreach.php::post::/whatsapp::App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController::handle",
        "fqmn": "App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController@handle",
        "expected_test_path": "tests/Unit/WhatsAppWebhookControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/sandbox/360dialog.php::post::/messages::App\\Sandbox\\Dialog360\\Controllers\\MessageController::store",
        "fqmn": "App\\Sandbox\\Dialog360\\Controllers\\MessageController@store",
        "expected_test_path": "tests/Unit/MessageControllerTest.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::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": "route::routes/web.php::get::/agencies::closure",
        "fqmn": "route::routes/web.php::get::/agencies::closure",
        "expected_test_path": "tests/Unit/route::routes/web.php::get::/agencies::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::App\\Http\\Controllers\\AppController::index",
        "fqmn": "App\\Http\\Controllers\\AppController@index",
        "expected_test_path": "tests/Feature/AppControllerTest.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::/collection::closure",
        "fqmn": "route::routes/web.php::get::/collection::closure",
        "expected_test_path": "tests/Unit/route::routes/web.php::get::/collection::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::/email/verify/{id}/{hash}::App\\Http\\Controllers\\Auth\\VerificationController::verify",
        "fqmn": "App\\Http\\Controllers\\Auth\\VerificationController@verify",
        "expected_test_path": "tests/Feature/VerificationControllerTest.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::/email/verify/resend::App\\Http\\Controllers\\Auth\\VerificationController::showResendForm",
        "fqmn": "App\\Http\\Controllers\\Auth\\VerificationController@showResendForm",
        "expected_test_path": "tests/Feature/VerificationControllerTest.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::/favicon.ico::closure",
        "fqmn": "route::routes/web.php::get::/favicon.ico::closure",
        "expected_test_path": "tests/Unit/route::routes/web.php::get::/favicon.ico::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::/healthz::closure",
        "fqmn": "route::routes/web.php::get::/healthz::closure",
        "expected_test_path": "tests/Unit/route::routes/web.php::get::/healthz::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::/images/favicon.ico::closure",
        "fqmn": "route::routes/web.php::get::/images/favicon.ico::closure",
        "expected_test_path": "tests/Unit/route::routes/web.php::get::/images/favicon.ico::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::/invoicing::closure",
        "fqmn": "route::routes/web.php::get::/invoicing::closure",
        "expected_test_path": "tests/Unit/route::routes/web.php::get::/invoicing::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::/landlords::closure",
        "fqmn": "route::routes/web.php::get::/landlords::closure",
        "expected_test_path": "tests/Unit/route::routes/web.php::get::/landlords::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::/locale/{lang}::App\\Http\\Controllers\\LocaleController::switch",
        "fqmn": "App\\Http\\Controllers\\LocaleController@switch",
        "expected_test_path": "tests/Feature/LocaleControllerTest.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::/log::closure",
        "fqmn": "route::routes/web.php::get::/log::closure",
        "expected_test_path": "tests/Unit/route::routes/web.php::get::/log::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::/maintenance::closure",
        "fqmn": "route::routes/web.php::get::/maintenance::closure",
        "expected_test_path": "tests/Unit/route::routes/web.php::get::/maintenance::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::/manifest.json::closure",
        "fqmn": "route::routes/web.php::get::/manifest.json::closure",
        "expected_test_path": "tests/Unit/route::routes/web.php::get::/manifest.json::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::/payments::closure",
        "fqmn": "route::routes/web.php::get::/payments::closure",
        "expected_test_path": "tests/Unit/route::routes/web.php::get::/payments::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::/robots.txt::closure",
        "fqmn": "route::routes/web.php::get::/robots.txt::closure",
        "expected_test_path": "tests/Unit/route::routes/web.php::get::/robots.txt::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::/service-worker.js::closure",
        "fqmn": "route::routes/web.php::get::/service-worker.js::closure",
        "expected_test_path": "tests/Unit/route::routes/web.php::get::/service-worker.js::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::/test/ipinfo::closure",
        "fqmn": "route::routes/web.php::get::/test/ipinfo::closure",
        "expected_test_path": "tests/Unit/route::routes/web.php::get::/test/ipinfo::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::/whatsapp::closure",
        "fqmn": "route::routes/web.php::get::/whatsapp::closure",
        "expected_test_path": "tests/Unit/route::routes/web.php::get::/whatsapp::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::post::/email/verify/resend::App\\Http\\Controllers\\Auth\\VerificationController::resend",
        "fqmn": "App\\Http\\Controllers\\Auth\\VerificationController@resend",
        "expected_test_path": "tests/Feature/VerificationControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/web.php::post::/leads::App\\Http\\Controllers\\LeadController::store",
        "fqmn": "App\\Http\\Controllers\\LeadController@store",
        "expected_test_path": "tests/Feature/LeadControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/web.php::post::/locale::App\\Http\\Controllers\\LocaleController::post",
        "fqmn": "App\\Http\\Controllers\\LocaleController@post",
        "expected_test_path": "tests/Feature/LocaleControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      }
    ],
    "total_gaps": 1554,
    "coverage_rate": 0.448
  },
  "candidates": {
    "dead_code": [
      {
        "candidate_id": "c_method::app/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/Auth/FilamentAgencyRegisterAction.php::App\\Actions\\Auth\\FilamentAgencyRegisterAction::execute",
        "fqmn": "App\\Actions\\Auth\\FilamentAgencyRegisterAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/Billing/AddOrganizationSubscriptionCreditsAction.php::App\\Actions\\Billing\\AddOrganizationSubscriptionCreditsAction::execute",
        "fqmn": "App\\Actions\\Billing\\AddOrganizationSubscriptionCreditsAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/Billing/AddUnitsToSubscriptionAction.php::App\\Actions\\Billing\\AddUnitsToSubscriptionAction::__construct",
        "fqmn": "App\\Actions\\Billing\\AddUnitsToSubscriptionAction@__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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/Billing/AddUnitsToSubscriptionAction.php::App\\Actions\\Billing\\AddUnitsToSubscriptionAction::execute",
        "fqmn": "App\\Actions\\Billing\\AddUnitsToSubscriptionAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/Billing/CreateCreditTransactionAction.php::App\\Actions\\Billing\\CreateCreditTransactionAction::execute",
        "fqmn": "App\\Actions\\Billing\\CreateCreditTransactionAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/Billing/CreateProrationChargeAction.php::App\\Actions\\Billing\\CreateProrationChargeAction::execute",
        "fqmn": "App\\Actions\\Billing\\CreateProrationChargeAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/Billing/CreateSoftDeletedOrganizationSubscriptionAction.php::App\\Actions\\Billing\\CreateSoftDeletedOrganizationSubscriptionAction::execute",
        "fqmn": "App\\Actions\\Billing\\CreateSoftDeletedOrganizationSubscriptionAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/Billing/RecordSubscriptionDiscountCodeUsageAction.php::App\\Actions\\Billing\\RecordSubscriptionDiscountCodeUsageAction::__construct",
        "fqmn": "App\\Actions\\Billing\\RecordSubscriptionDiscountCodeUsageAction@__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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/Billing/RecordSubscriptionDiscountCodeUsageAction.php::App\\Actions\\Billing\\RecordSubscriptionDiscountCodeUsageAction::execute",
        "fqmn": "App\\Actions\\Billing\\RecordSubscriptionDiscountCodeUsageAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/Billing/SeedBillingNotificationDashboardDataAction.php::App\\Actions\\Billing\\SeedBillingNotificationDashboardDataAction::execute",
        "fqmn": "App\\Actions\\Billing\\SeedBillingNotificationDashboardDataAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/Billing/SendSubscriptionEventNotificationAction.php::App\\Actions\\Billing\\SendSubscriptionEventNotificationAction::__construct",
        "fqmn": "App\\Actions\\Billing\\SendSubscriptionEventNotificationAction@__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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/Billing/SendSubscriptionEventNotificationAction.php::App\\Actions\\Billing\\SendSubscriptionEventNotificationAction::execute",
        "fqmn": "App\\Actions\\Billing\\SendSubscriptionEventNotificationAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/Billing/SuspendOrganizationSubscriptionAction.php::App\\Actions\\Billing\\SuspendOrganizationSubscriptionAction::execute",
        "fqmn": "App\\Actions\\Billing\\SuspendOrganizationSubscriptionAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/DispatchRentCyclePaidTwiceAction.php::App\\Actions\\DispatchRentCyclePaidTwiceAction::execute",
        "fqmn": "App\\Actions\\DispatchRentCyclePaidTwiceAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/EmailTemplates/IsEmailTemplateEnabledForOrganizationAction.php::App\\Actions\\EmailTemplates\\IsEmailTemplateEnabledForOrganizationAction::__construct",
        "fqmn": "App\\Actions\\EmailTemplates\\IsEmailTemplateEnabledForOrganizationAction@__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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/EmailTemplates/IsEmailTemplateEnabledForOrganizationAction.php::App\\Actions\\EmailTemplates\\IsEmailTemplateEnabledForOrganizationAction::execute",
        "fqmn": "App\\Actions\\EmailTemplates\\IsEmailTemplateEnabledForOrganizationAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/EmailTemplates/RenderEmailTemplateAction.php::App\\Actions\\EmailTemplates\\RenderEmailTemplateAction::__construct",
        "fqmn": "App\\Actions\\EmailTemplates\\RenderEmailTemplateAction@__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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/EmailTemplates/RenderEmailTemplateAction.php::App\\Actions\\EmailTemplates\\RenderEmailTemplateAction::execute",
        "fqmn": "App\\Actions\\EmailTemplates\\RenderEmailTemplateAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/EmailTemplates/SendEmailTemplateAction.php::App\\Actions\\EmailTemplates\\SendEmailTemplateAction::__construct",
        "fqmn": "App\\Actions\\EmailTemplates\\SendEmailTemplateAction@__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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/EmailTemplates/SendEmailTemplateAction.php::App\\Actions\\EmailTemplates\\SendEmailTemplateAction::execute",
        "fqmn": "App\\Actions\\EmailTemplates\\SendEmailTemplateAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/EmailTemplates/SendEmailTemplateToManyRecipientsAction.php::App\\Actions\\EmailTemplates\\SendEmailTemplateToManyRecipientsAction::__construct",
        "fqmn": "App\\Actions\\EmailTemplates\\SendEmailTemplateToManyRecipientsAction@__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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/EmailTemplates/SendEmailTemplateToManyRecipientsAction.php::App\\Actions\\EmailTemplates\\SendEmailTemplateToManyRecipientsAction::execute",
        "fqmn": "App\\Actions\\EmailTemplates\\SendEmailTemplateToManyRecipientsAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/EmailTemplates/SendEmailTemplateToUsersUsingTheirLocaleAction.php::App\\Actions\\EmailTemplates\\SendEmailTemplateToUsersUsingTheirLocaleAction::__construct",
        "fqmn": "App\\Actions\\EmailTemplates\\SendEmailTemplateToUsersUsingTheirLocaleAction@__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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/EmailTemplates/SendEmailTemplateToUsersUsingTheirLocaleAction.php::App\\Actions\\EmailTemplates\\SendEmailTemplateToUsersUsingTheirLocaleAction::execute",
        "fqmn": "App\\Actions\\EmailTemplates\\SendEmailTemplateToUsersUsingTheirLocaleAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/NotificationPreferences/ClearNotificationPreferenceAction.php::App\\Actions\\NotificationPreferences\\ClearNotificationPreferenceAction::run",
        "fqmn": "App\\Actions\\NotificationPreferences\\ClearNotificationPreferenceAction@run",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/Outreach/CancelFollowUp.php::App\\Actions\\Outreach\\CancelFollowUp::__invoke",
        "fqmn": "App\\Actions\\Outreach\\CancelFollowUp@__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_method::app/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/Outreach/CheckFollowUpSafetyAction.php::App\\Actions\\Outreach\\CheckFollowUpSafetyAction::__construct",
        "fqmn": "App\\Actions\\Outreach\\CheckFollowUpSafetyAction@__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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/Outreach/CheckFollowUpSafetyAction.php::App\\Actions\\Outreach\\CheckFollowUpSafetyAction::execute",
        "fqmn": "App\\Actions\\Outreach\\CheckFollowUpSafetyAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/Outreach/CreateCountryAction.php::App\\Actions\\Outreach\\CreateCountryAction::execute",
        "fqmn": "App\\Actions\\Outreach\\CreateCountryAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/Outreach/CreateFollowUpAction.php::App\\Actions\\Outreach\\CreateFollowUpAction::execute",
        "fqmn": "App\\Actions\\Outreach\\CreateFollowUpAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/Outreach/CreateLeadAction.php::App\\Actions\\Outreach\\CreateLeadAction::execute",
        "fqmn": "App\\Actions\\Outreach\\CreateLeadAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/Outreach/ImportLeadsAction.php::App\\Actions\\Outreach\\ImportLeadsAction::__construct",
        "fqmn": "App\\Actions\\Outreach\\ImportLeadsAction@__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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/Outreach/ImportLeadsAction.php::App\\Actions\\Outreach\\ImportLeadsAction::execute",
        "fqmn": "App\\Actions\\Outreach\\ImportLeadsAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/Outreach/SaveTemplatesAction.php::App\\Actions\\Outreach\\SaveTemplatesAction::__construct",
        "fqmn": "App\\Actions\\Outreach\\SaveTemplatesAction@__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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/Outreach/SaveTemplatesAction.php::App\\Actions\\Outreach\\SaveTemplatesAction::execute",
        "fqmn": "App\\Actions\\Outreach\\SaveTemplatesAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/Outreach/TriggerFollowUpNow.php::App\\Actions\\Outreach\\TriggerFollowUpNow::__invoke",
        "fqmn": "App\\Actions\\Outreach\\TriggerFollowUpNow@__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_method::app/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/OutreachAI/AssignClusterAction.php::App\\Actions\\OutreachAI\\AssignClusterAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\AssignClusterAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/OutreachAI/ComputeAttributionAction.php::App\\Actions\\OutreachAI\\ComputeAttributionAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\ComputeAttributionAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/OutreachAI/DecideDiscountAction.php::App\\Actions\\OutreachAI\\DecideDiscountAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\DecideDiscountAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/OutreachAI/DeriveGoalAction.php::App\\Actions\\OutreachAI\\DeriveGoalAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\DeriveGoalAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/OutreachAI/DetectBudgetAction.php::App\\Actions\\OutreachAI\\DetectBudgetAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\DetectBudgetAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/OutreachAI/GenerateAIResponderReplyAction.php::App\\Actions\\OutreachAI\\GenerateAIResponderReplyAction::run",
        "fqmn": "App\\Actions\\OutreachAI\\GenerateAIResponderReplyAction@run",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/OutreachAI/GenerateReplyOutcomeAction.php::App\\Actions\\OutreachAI\\GenerateReplyOutcomeAction::__construct",
        "fqmn": "App\\Actions\\OutreachAI\\GenerateReplyOutcomeAction@__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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/OutreachAI/GenerateReplyOutcomeAction.php::App\\Actions\\OutreachAI\\GenerateReplyOutcomeAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\GenerateReplyOutcomeAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/OutreachAI/GetBudgetStrategyAction.php::App\\Actions\\OutreachAI\\GetBudgetStrategyAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\GetBudgetStrategyAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/OutreachAI/GetClosingActionNextStepAction.php::App\\Actions\\OutreachAI\\GetClosingActionNextStepAction::__construct",
        "fqmn": "App\\Actions\\OutreachAI\\GetClosingActionNextStepAction@__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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/OutreachAI/GetClosingActionNextStepAction.php::App\\Actions\\OutreachAI\\GetClosingActionNextStepAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\GetClosingActionNextStepAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/OutreachAI/GetClosingStepAction.php::App\\Actions\\OutreachAI\\GetClosingStepAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\GetClosingStepAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/OutreachAI/IssueAIDiscountAction.php::App\\Actions\\OutreachAI\\IssueAIDiscountAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\IssueAIDiscountAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/OutreachAI/OutputInsightsAction.php::App\\Actions\\OutreachAI\\OutputInsightsAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\OutputInsightsAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/OutreachAI/RecommendPlanAction.php::App\\Actions\\OutreachAI\\RecommendPlanAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\RecommendPlanAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/OutreachAI/RecordFunnelEventAction.php::App\\Actions\\OutreachAI\\RecordFunnelEventAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\RecordFunnelEventAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/OutreachAI/RecordStageChangeAction.php::App\\Actions\\OutreachAI\\RecordStageChangeAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\RecordStageChangeAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/OutreachAI/SalesAcceleration/AccelerateSalesAccelerationAction.php::App\\Actions\\OutreachAI\\SalesAcceleration\\AccelerateSalesAccelerationAction::run",
        "fqmn": "App\\Actions\\OutreachAI\\SalesAcceleration\\AccelerateSalesAccelerationAction@run",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/OutreachAI/SalesAcceleration/RunQualificationOutcomeAction.php::App\\Actions\\OutreachAI\\SalesAcceleration\\RunQualificationOutcomeAction::__construct",
        "fqmn": "App\\Actions\\OutreachAI\\SalesAcceleration\\RunQualificationOutcomeAction@__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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/OutreachAI/SalesAcceleration/RunQualificationOutcomeAction.php::App\\Actions\\OutreachAI\\SalesAcceleration\\RunQualificationOutcomeAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\SalesAcceleration\\RunQualificationOutcomeAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/OutreachAI/SalesAcceleration/RunSalesAccelerationOutcomeAction.php::App\\Actions\\OutreachAI\\SalesAcceleration\\RunSalesAccelerationOutcomeAction::__construct",
        "fqmn": "App\\Actions\\OutreachAI\\SalesAcceleration\\RunSalesAccelerationOutcomeAction@__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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/OutreachAI/SalesAcceleration/RunSalesAccelerationOutcomeAction.php::App\\Actions\\OutreachAI\\SalesAcceleration\\RunSalesAccelerationOutcomeAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\SalesAcceleration\\RunSalesAccelerationOutcomeAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/OutreachAI/ScoreAffordabilityAction.php::App\\Actions\\OutreachAI\\ScoreAffordabilityAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\ScoreAffordabilityAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/OutreachAI/StoreGoalAction.php::App\\Actions\\OutreachAI\\StoreGoalAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\StoreGoalAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/Payments/CreatePaymentDeductionAction.php::App\\Actions\\Payments\\CreatePaymentDeductionAction::__construct",
        "fqmn": "App\\Actions\\Payments\\CreatePaymentDeductionAction@__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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/Payments/CreatePaymentDeductionAction.php::App\\Actions\\Payments\\CreatePaymentDeductionAction::execute",
        "fqmn": "App\\Actions\\Payments\\CreatePaymentDeductionAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/Payments/FinalizeTransactionAction.php::App\\Actions\\Payments\\FinalizeTransactionAction::__construct",
        "fqmn": "App\\Actions\\Payments\\FinalizeTransactionAction@__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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/Payments/FinalizeTransactionAction.php::App\\Actions\\Payments\\FinalizeTransactionAction::execute",
        "fqmn": "App\\Actions\\Payments\\FinalizeTransactionAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/Payments/FinalizeTransactionsAction.php::App\\Actions\\Payments\\FinalizeTransactionsAction::__construct",
        "fqmn": "App\\Actions\\Payments\\FinalizeTransactionsAction@__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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/Payments/FinalizeTransactionsAction.php::App\\Actions\\Payments\\FinalizeTransactionsAction::execute",
        "fqmn": "App\\Actions\\Payments\\FinalizeTransactionsAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/Payments/RecordPaymentAction.php::App\\Actions\\Payments\\RecordPaymentAction::__construct",
        "fqmn": "App\\Actions\\Payments\\RecordPaymentAction@__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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/Payments/RecordPaymentAction.php::App\\Actions\\Payments\\RecordPaymentAction::execute",
        "fqmn": "App\\Actions\\Payments\\RecordPaymentAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/Properties/CreateProspectShortlistAction.php::App\\Actions\\Properties\\CreateProspectShortlistAction::execute",
        "fqmn": "App\\Actions\\Properties\\CreateProspectShortlistAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/Properties/CreateProspectShortlistUnitAction.php::App\\Actions\\Properties\\CreateProspectShortlistUnitAction::execute",
        "fqmn": "App\\Actions\\Properties\\CreateProspectShortlistUnitAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/Properties/IncrementProspectShortlistViewsAction.php::App\\Actions\\Properties\\IncrementProspectShortlistViewsAction::execute",
        "fqmn": "App\\Actions\\Properties\\IncrementProspectShortlistViewsAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/Properties/UpdateProspectShortlistAction.php::App\\Actions\\Properties\\UpdateProspectShortlistAction::execute",
        "fqmn": "App\\Actions\\Properties\\UpdateProspectShortlistAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/Properties/UpdateProspectShortlistUnitAction.php::App\\Actions\\Properties\\UpdateProspectShortlistUnitAction::execute",
        "fqmn": "App\\Actions\\Properties\\UpdateProspectShortlistUnitAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/PushSubscriptions/ManagePushSubscriptionAction.php::App\\Actions\\PushSubscriptions\\ManagePushSubscriptionAction::execute",
        "fqmn": "App\\Actions\\PushSubscriptions\\ManagePushSubscriptionAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/SendEmailTemplateAction.php::App\\Actions\\SendEmailTemplateAction::__construct",
        "fqmn": "App\\Actions\\SendEmailTemplateAction@__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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/SendEmailTemplateAction.php::App\\Actions\\SendEmailTemplateAction::execute",
        "fqmn": "App\\Actions\\SendEmailTemplateAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/Users/RestoreUserWithNewEmailAction.php::App\\Actions\\Users\\RestoreUserWithNewEmailAction::execute",
        "fqmn": "App\\Actions\\Users\\RestoreUserWithNewEmailAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/Zoho/SyncZohoCustomerAction.php::App\\Actions\\Zoho\\SyncZohoCustomerAction::__construct",
        "fqmn": "App\\Actions\\Zoho\\SyncZohoCustomerAction@__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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/Zoho/SyncZohoCustomerAction.php::App\\Actions\\Zoho\\SyncZohoCustomerAction::execute",
        "fqmn": "App\\Actions\\Zoho\\SyncZohoCustomerAction@execute",
        "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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/Zoho/SyncZohoInvoiceAction.php::App\\Actions\\Zoho\\SyncZohoInvoiceAction::__construct",
        "fqmn": "App\\Actions\\Zoho\\SyncZohoInvoiceAction@__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/Acti",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Actions/Zoho/SyncZohoInvoiceAction.php::App\\Actions\\Zoho\\SyncZohoInvoiceAction::execute",
        "fqmn": "App\\Actions\\Zoho\\SyncZohoInvoiceAction@execute",
        "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/AIBr",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/AIBr/Domain/Knowledge/RetrievalConstraintService.php::App\\AIBr\\Domain\\Knowledge\\RetrievalConstraintService::applyConstraints",
        "fqmn": "App\\AIBr\\Domain\\Knowledge\\RetrievalConstraintService@applyConstraints",
        "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/AIBr",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/AIBr/Domain/Planning/ConversationPlanService.php::App\\AIBr\\Domain\\Planning\\ConversationPlanService::generatePlan",
        "fqmn": "App\\AIBr\\Domain\\Planning\\ConversationPlanService@generatePlan",
        "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/AIBr",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/AIBr/Domain/Planning/ConversationPlanService.php::App\\AIBr\\Domain\\Planning\\ConversationPlanService::getActiveStep",
        "fqmn": "App\\AIBr\\Domain\\Planning\\ConversationPlanService@getActiveStep",
        "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/AIBr",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/AIBr/Domain/Scoring/LeadPriorityService.php::App\\AIBr\\Domain\\Scoring\\LeadPriorityService::calculateScore",
        "fqmn": "App\\AIBr\\Domain\\Scoring\\LeadPriorityService@calculateScore",
        "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/AIBr",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/AIBr/Kernel/AIBrain.php::App\\AIBr\\Kernel\\AIBrain::generateOutboundReply",
        "fqmn": "App\\AIBr\\Kernel\\AIBrain@generateOutboundReply",
        "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/AIBr",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/AIBr/Support/Helpers.php::App\\AIBr\\Support\\Helpers::normalizeText",
        "fqmn": "App\\AIBr\\Support\\Helpers@normalizeText",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/AIBr",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/AIBr/Support/TextFilters.php::App\\AIBr\\Support\\TextFilters::sanitize",
        "fqmn": "App\\AIBr\\Support\\TextFilters@sanitize",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/BookingController.php::App\\Api\\Controllers\\BookingController::__construct",
        "fqmn": "App\\Api\\Controllers\\BookingController@__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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/BookingController.php::App\\Api\\Controllers\\BookingController::cancel",
        "fqmn": "App\\Api\\Controllers\\BookingController@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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/BookingController.php::App\\Api\\Controllers\\BookingController::convert",
        "fqmn": "App\\Api\\Controllers\\BookingController@convert",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/BookingController.php::App\\Api\\Controllers\\BookingController::store",
        "fqmn": "App\\Api\\Controllers\\BookingController@store",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/FileController.php::App\\Api\\Controllers\\FileController::__construct",
        "fqmn": "App\\Api\\Controllers\\FileController@__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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/FileController.php::App\\Api\\Controllers\\FileController::bulkUpload",
        "fqmn": "App\\Api\\Controllers\\FileController@bulkUpload",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/FileController.php::App\\Api\\Controllers\\FileController::destroy",
        "fqmn": "App\\Api\\Controllers\\FileController@destroy",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/FileController.php::App\\Api\\Controllers\\FileController::download",
        "fqmn": "App\\Api\\Controllers\\FileController@download",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/FileController.php::App\\Api\\Controllers\\FileController::index",
        "fqmn": "App\\Api\\Controllers\\FileController@index",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/FileController.php::App\\Api\\Controllers\\FileController::show",
        "fqmn": "App\\Api\\Controllers\\FileController@show",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/FileController.php::App\\Api\\Controllers\\FileController::stats",
        "fqmn": "App\\Api\\Controllers\\FileController@stats",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/FileController.php::App\\Api\\Controllers\\FileController::upload",
        "fqmn": "App\\Api\\Controllers\\FileController@upload",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/GatewayController.php::App\\Api\\Controllers\\GatewayController::deliveryStatus",
        "fqmn": "App\\Api\\Controllers\\GatewayController@deliveryStatus",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/GatewayController.php::App\\Api\\Controllers\\GatewayController::heartbeat",
        "fqmn": "App\\Api\\Controllers\\GatewayController@heartbeat",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/GatewayController.php::App\\Api\\Controllers\\GatewayController::register",
        "fqmn": "App\\Api\\Controllers\\GatewayController@register",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/GatewayController.php::App\\Api\\Controllers\\GatewayController::whatsappConfig",
        "fqmn": "App\\Api\\Controllers\\GatewayController@whatsappConfig",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/LandlordController.php::App\\Api\\Controllers\\LandlordController::__construct",
        "fqmn": "App\\Api\\Controllers\\LandlordController@__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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/LandlordController.php::App\\Api\\Controllers\\LandlordController::destroy",
        "fqmn": "App\\Api\\Controllers\\LandlordController@destroy",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/LandlordController.php::App\\Api\\Controllers\\LandlordController::index",
        "fqmn": "App\\Api\\Controllers\\LandlordController@index",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/LandlordController.php::App\\Api\\Controllers\\LandlordController::resendInvitation",
        "fqmn": "App\\Api\\Controllers\\LandlordController@resendInvitation",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/LandlordController.php::App\\Api\\Controllers\\LandlordController::show",
        "fqmn": "App\\Api\\Controllers\\LandlordController@show",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/LandlordController.php::App\\Api\\Controllers\\LandlordController::stats",
        "fqmn": "App\\Api\\Controllers\\LandlordController@stats",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/LandlordController.php::App\\Api\\Controllers\\LandlordController::store",
        "fqmn": "App\\Api\\Controllers\\LandlordController@store",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/LandlordController.php::App\\Api\\Controllers\\LandlordController::update",
        "fqmn": "App\\Api\\Controllers\\LandlordController@update",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/LandlordDashboardController.php::App\\Api\\Controllers\\LandlordDashboardController::__construct",
        "fqmn": "App\\Api\\Controllers\\LandlordDashboardController@__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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/LandlordDashboardController.php::App\\Api\\Controllers\\LandlordDashboardController::dashboard",
        "fqmn": "App\\Api\\Controllers\\LandlordDashboardController@dashboard",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/LandlordDashboardController.php::App\\Api\\Controllers\\LandlordDashboardController::leases",
        "fqmn": "App\\Api\\Controllers\\LandlordDashboardController@leases",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/LandlordDashboardController.php::App\\Api\\Controllers\\LandlordDashboardController::properties",
        "fqmn": "App\\Api\\Controllers\\LandlordDashboardController@properties",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/LandlordDashboardController.php::App\\Api\\Controllers\\LandlordDashboardController::transfers",
        "fqmn": "App\\Api\\Controllers\\LandlordDashboardController@transfers",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::__construct",
        "fqmn": "App\\Api\\Controllers\\LeaseController@__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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::active",
        "fqmn": "App\\Api\\Controllers\\LeaseController@active",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::destroy",
        "fqmn": "App\\Api\\Controllers\\LeaseController@destroy",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::expired",
        "fqmn": "App\\Api\\Controllers\\LeaseController@expired",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::expiringSoon",
        "fqmn": "App\\Api\\Controllers\\LeaseController@expiringSoon",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::index",
        "fqmn": "App\\Api\\Controllers\\LeaseController@index",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::show",
        "fqmn": "App\\Api\\Controllers\\LeaseController@show",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::stats",
        "fqmn": "App\\Api\\Controllers\\LeaseController@stats",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::store",
        "fqmn": "App\\Api\\Controllers\\LeaseController@store",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::terminate",
        "fqmn": "App\\Api\\Controllers\\LeaseController@terminate",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::upcomingDueDates",
        "fqmn": "App\\Api\\Controllers\\LeaseController@upcomingDueDates",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::update",
        "fqmn": "App\\Api\\Controllers\\LeaseController@update",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/OrgDeductionSettingsController.php::App\\Api\\Controllers\\OrgDeductionSettingsController::__construct",
        "fqmn": "App\\Api\\Controllers\\OrgDeductionSettingsController@__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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/OrgDeductionSettingsController.php::App\\Api\\Controllers\\OrgDeductionSettingsController::show",
        "fqmn": "App\\Api\\Controllers\\OrgDeductionSettingsController@show",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/OrgDeductionSettingsController.php::App\\Api\\Controllers\\OrgDeductionSettingsController::update",
        "fqmn": "App\\Api\\Controllers\\OrgDeductionSettingsController@update",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/OrgWhatsAppIntegrationController.php::App\\Api\\Controllers\\OrgWhatsAppIntegrationController::show",
        "fqmn": "App\\Api\\Controllers\\OrgWhatsAppIntegrationController@show",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/OrgWhatsAppIntegrationController.php::App\\Api\\Controllers\\OrgWhatsAppIntegrationController::update",
        "fqmn": "App\\Api\\Controllers\\OrgWhatsAppIntegrationController@update",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/PaymentController.php::App\\Api\\Controllers\\PaymentController::__construct",
        "fqmn": "App\\Api\\Controllers\\PaymentController@__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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/PaymentController.php::App\\Api\\Controllers\\PaymentController::createTransfer",
        "fqmn": "App\\Api\\Controllers\\PaymentController@createTransfer",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/PaymentController.php::App\\Api\\Controllers\\PaymentController::destroy",
        "fqmn": "App\\Api\\Controllers\\PaymentController@destroy",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/PaymentController.php::App\\Api\\Controllers\\PaymentController::index",
        "fqmn": "App\\Api\\Controllers\\PaymentController@index",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/PaymentController.php::App\\Api\\Controllers\\PaymentController::needingTransfer",
        "fqmn": "App\\Api\\Controllers\\PaymentController@needingTransfer",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/PaymentController.php::App\\Api\\Controllers\\PaymentController::recent",
        "fqmn": "App\\Api\\Controllers\\PaymentController@recent",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/PaymentController.php::App\\Api\\Controllers\\PaymentController::show",
        "fqmn": "App\\Api\\Controllers\\PaymentController@show",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/PaymentController.php::App\\Api\\Controllers\\PaymentController::stats",
        "fqmn": "App\\Api\\Controllers\\PaymentController@stats",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/PaymentController.php::App\\Api\\Controllers\\PaymentController::store",
        "fqmn": "App\\Api\\Controllers\\PaymentController@store",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/PaymentController.php::App\\Api\\Controllers\\PaymentController::transfers",
        "fqmn": "App\\Api\\Controllers\\PaymentController@transfers",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/PaymentController.php::App\\Api\\Controllers\\PaymentController::update",
        "fqmn": "App\\Api\\Controllers\\PaymentController@update",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/PaymentProofController.php::App\\Api\\Controllers\\PaymentProofController::__construct",
        "fqmn": "App\\Api\\Controllers\\PaymentProofController@__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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/PaymentProofController.php::App\\Api\\Controllers\\PaymentProofController::approve",
        "fqmn": "App\\Api\\Controllers\\PaymentProofController@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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/PaymentProofController.php::App\\Api\\Controllers\\PaymentProofController::index",
        "fqmn": "App\\Api\\Controllers\\PaymentProofController@index",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/PaymentProofController.php::App\\Api\\Controllers\\PaymentProofController::pendingCount",
        "fqmn": "App\\Api\\Controllers\\PaymentProofController@pendingCount",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/PaymentProofController.php::App\\Api\\Controllers\\PaymentProofController::reject",
        "fqmn": "App\\Api\\Controllers\\PaymentProofController@reject",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/PaymentProofController.php::App\\Api\\Controllers\\PaymentProofController::requiresReview",
        "fqmn": "App\\Api\\Controllers\\PaymentProofController@requiresReview",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/PaymentProofController.php::App\\Api\\Controllers\\PaymentProofController::show",
        "fqmn": "App\\Api\\Controllers\\PaymentProofController@show",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/PaymentProofController.php::App\\Api\\Controllers\\PaymentProofController::store",
        "fqmn": "App\\Api\\Controllers\\PaymentProofController@store",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/PaymentProofController.php::App\\Api\\Controllers\\PaymentProofController::submit",
        "fqmn": "App\\Api\\Controllers\\PaymentProofController@submit",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/PropertyController.php::App\\Api\\Controllers\\PropertyController::__construct",
        "fqmn": "App\\Api\\Controllers\\PropertyController@__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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/PropertyController.php::App\\Api\\Controllers\\PropertyController::byType",
        "fqmn": "App\\Api\\Controllers\\PropertyController@byType",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/PropertyController.php::App\\Api\\Controllers\\PropertyController::destroy",
        "fqmn": "App\\Api\\Controllers\\PropertyController@destroy",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/PropertyController.php::App\\Api\\Controllers\\PropertyController::forLandlord",
        "fqmn": "App\\Api\\Controllers\\PropertyController@forLandlord",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/PropertyController.php::App\\Api\\Controllers\\PropertyController::index",
        "fqmn": "App\\Api\\Controllers\\PropertyController@index",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/PropertyController.php::App\\Api\\Controllers\\PropertyController::show",
        "fqmn": "App\\Api\\Controllers\\PropertyController@show",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/PropertyController.php::App\\Api\\Controllers\\PropertyController::stats",
        "fqmn": "App\\Api\\Controllers\\PropertyController@stats",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/PropertyController.php::App\\Api\\Controllers\\PropertyController::store",
        "fqmn": "App\\Api\\Controllers\\PropertyController@store",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/PropertyController.php::App\\Api\\Controllers\\PropertyController::update",
        "fqmn": "App\\Api\\Controllers\\PropertyController@update",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/ReminderController.php::App\\Api\\Controllers\\ReminderController::__construct",
        "fqmn": "App\\Api\\Controllers\\ReminderController@__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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/ReminderController.php::App\\Api\\Controllers\\ReminderController::byStatus",
        "fqmn": "App\\Api\\Controllers\\ReminderController@byStatus",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/ReminderController.php::App\\Api\\Controllers\\ReminderController::cancel",
        "fqmn": "App\\Api\\Controllers\\ReminderController@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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/ReminderController.php::App\\Api\\Controllers\\ReminderController::index",
        "fqmn": "App\\Api\\Controllers\\ReminderController@index",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/ReminderController.php::App\\Api\\Controllers\\ReminderController::recent",
        "fqmn": "App\\Api\\Controllers\\ReminderController@recent",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/ReminderController.php::App\\Api\\Controllers\\ReminderController::show",
        "fqmn": "App\\Api\\Controllers\\ReminderController@show",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/ReminderController.php::App\\Api\\Controllers\\ReminderController::stats",
        "fqmn": "App\\Api\\Controllers\\ReminderController@stats",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::__construct",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@__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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::bulkUpdate",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@bulkUpdate",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::dueSoon",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@dueSoon",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::dueToday",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@dueToday",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::index",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@index",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::markOverdue",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@markOverdue",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::markPaid",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@markPaid",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::monthlyCollections",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@monthlyCollections",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::overdue",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@overdue",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::pending",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@pending",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::show",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@show",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::stats",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@stats",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::update",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@update",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/ReportController.php::App\\Api\\Controllers\\ReportController::__construct",
        "fqmn": "App\\Api\\Controllers\\ReportController@__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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/ReportController.php::App\\Api\\Controllers\\ReportController::landlordDashboard",
        "fqmn": "App\\Api\\Controllers\\ReportController@landlordDashboard",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/ReportController.php::App\\Api\\Controllers\\ReportController::monthlyCollections",
        "fqmn": "App\\Api\\Controllers\\ReportController@monthlyCollections",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/ReportController.php::App\\Api\\Controllers\\ReportController::occupancyTrends",
        "fqmn": "App\\Api\\Controllers\\ReportController@occupancyTrends",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/ReportController.php::App\\Api\\Controllers\\ReportController::organizationDashboard",
        "fqmn": "App\\Api\\Controllers\\ReportController@organizationDashboard",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/ReportController.php::App\\Api\\Controllers\\ReportController::tenantDashboard",
        "fqmn": "App\\Api\\Controllers\\ReportController@tenantDashboard",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/ReportController.php::App\\Api\\Controllers\\ReportController::topProperties",
        "fqmn": "App\\Api\\Controllers\\ReportController@topProperties",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/ReportExportController.php::App\\Api\\Controllers\\ReportExportController::__construct",
        "fqmn": "App\\Api\\Controllers\\ReportExportController@__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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/ReportExportController.php::App\\Api\\Controllers\\ReportExportController::exportCollectionReport",
        "fqmn": "App\\Api\\Controllers\\ReportExportController@exportCollectionReport",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/ReportExportController.php::App\\Api\\Controllers\\ReportExportController::exportFinancialSummary",
        "fqmn": "App\\Api\\Controllers\\ReportExportController@exportFinancialSummary",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/ReportExportController.php::App\\Api\\Controllers\\ReportExportController::exportOverdueReport",
        "fqmn": "App\\Api\\Controllers\\ReportExportController@exportOverdueReport",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/ReportExportController.php::App\\Api\\Controllers\\ReportExportController::exportRentRoll",
        "fqmn": "App\\Api\\Controllers\\ReportExportController@exportRentRoll",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/SubscriptionController.php::App\\Api\\Controllers\\SubscriptionController::__construct",
        "fqmn": "App\\Api\\Controllers\\SubscriptionController@__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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/SubscriptionController.php::App\\Api\\Controllers\\SubscriptionController::current",
        "fqmn": "App\\Api\\Controllers\\SubscriptionController@current",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/SubscriptionController.php::App\\Api\\Controllers\\SubscriptionController::subscribe",
        "fqmn": "App\\Api\\Controllers\\SubscriptionController@subscribe",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/SubscriptionController.php::App\\Api\\Controllers\\SubscriptionController::tiers",
        "fqmn": "App\\Api\\Controllers\\SubscriptionController@tiers",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/SubscriptionController.php::App\\Api\\Controllers\\SubscriptionController::topUp",
        "fqmn": "App\\Api\\Controllers\\SubscriptionController@topUp",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/SubscriptionController.php::App\\Api\\Controllers\\SubscriptionController::transactions",
        "fqmn": "App\\Api\\Controllers\\SubscriptionController@transactions",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/SubscriptionController.php::App\\Api\\Controllers\\SubscriptionController::usage",
        "fqmn": "App\\Api\\Controllers\\SubscriptionController@usage",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/TenantController.php::App\\Api\\Controllers\\TenantController::__construct",
        "fqmn": "App\\Api\\Controllers\\TenantController@__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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/TenantController.php::App\\Api\\Controllers\\TenantController::destroy",
        "fqmn": "App\\Api\\Controllers\\TenantController@destroy",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/TenantController.php::App\\Api\\Controllers\\TenantController::index",
        "fqmn": "App\\Api\\Controllers\\TenantController@index",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/TenantController.php::App\\Api\\Controllers\\TenantController::resendInvitation",
        "fqmn": "App\\Api\\Controllers\\TenantController@resendInvitation",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/TenantController.php::App\\Api\\Controllers\\TenantController::show",
        "fqmn": "App\\Api\\Controllers\\TenantController@show",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/TenantController.php::App\\Api\\Controllers\\TenantController::stats",
        "fqmn": "App\\Api\\Controllers\\TenantController@stats",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/TenantController.php::App\\Api\\Controllers\\TenantController::store",
        "fqmn": "App\\Api\\Controllers\\TenantController@store",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/TenantController.php::App\\Api\\Controllers\\TenantController::update",
        "fqmn": "App\\Api\\Controllers\\TenantController@update",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/TenantDashboardController.php::App\\Api\\Controllers\\TenantDashboardController::__construct",
        "fqmn": "App\\Api\\Controllers\\TenantDashboardController@__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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/TenantDashboardController.php::App\\Api\\Controllers\\TenantDashboardController::dashboard",
        "fqmn": "App\\Api\\Controllers\\TenantDashboardController@dashboard",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/TenantDashboardController.php::App\\Api\\Controllers\\TenantDashboardController::payments",
        "fqmn": "App\\Api\\Controllers\\TenantDashboardController@payments",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/TenantDashboardController.php::App\\Api\\Controllers\\TenantDashboardController::reminders",
        "fqmn": "App\\Api\\Controllers\\TenantDashboardController@reminders",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/TenantDashboardController.php::App\\Api\\Controllers\\TenantDashboardController::rentCycles",
        "fqmn": "App\\Api\\Controllers\\TenantDashboardController@rentCycles",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/TransferController.php::App\\Api\\Controllers\\TransferController::__construct",
        "fqmn": "App\\Api\\Controllers\\TransferController@__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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/TransferController.php::App\\Api\\Controllers\\TransferController::bulkComplete",
        "fqmn": "App\\Api\\Controllers\\TransferController@bulkComplete",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/TransferController.php::App\\Api\\Controllers\\TransferController::complete",
        "fqmn": "App\\Api\\Controllers\\TransferController@complete",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/TransferController.php::App\\Api\\Controllers\\TransferController::fail",
        "fqmn": "App\\Api\\Controllers\\TransferController@fail",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/TransferController.php::App\\Api\\Controllers\\TransferController::index",
        "fqmn": "App\\Api\\Controllers\\TransferController@index",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/TransferController.php::App\\Api\\Controllers\\TransferController::pending",
        "fqmn": "App\\Api\\Controllers\\TransferController@pending",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/TransferController.php::App\\Api\\Controllers\\TransferController::show",
        "fqmn": "App\\Api\\Controllers\\TransferController@show",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/TransferController.php::App\\Api\\Controllers\\TransferController::stats",
        "fqmn": "App\\Api\\Controllers\\TransferController@stats",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::__construct",
        "fqmn": "App\\Api\\Controllers\\UnitController@__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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::assignTenant",
        "fqmn": "App\\Api\\Controllers\\UnitController@assignTenant",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::destroy",
        "fqmn": "App\\Api\\Controllers\\UnitController@destroy",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::index",
        "fqmn": "App\\Api\\Controllers\\UnitController@index",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::occupied",
        "fqmn": "App\\Api\\Controllers\\UnitController@occupied",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::show",
        "fqmn": "App\\Api\\Controllers\\UnitController@show",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::stats",
        "fqmn": "App\\Api\\Controllers\\UnitController@stats",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::store",
        "fqmn": "App\\Api\\Controllers\\UnitController@store",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::update",
        "fqmn": "App\\Api\\Controllers\\UnitController@update",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::updateComposition",
        "fqmn": "App\\Api\\Controllers\\UnitController@updateComposition",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::vacant",
        "fqmn": "App\\Api\\Controllers\\UnitController@vacant",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::vacate",
        "fqmn": "App\\Api\\Controllers\\UnitController@vacate",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::validateForSharing",
        "fqmn": "App\\Api\\Controllers\\UnitController@validateForSharing",
        "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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Resources/MaintenanceTicketResource.php::App\\Api\\Resources\\MaintenanceTicketResource::toArray",
        "fqmn": "App\\Api\\Resources\\MaintenanceTicketResource@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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Resources/PropertyResource.php::App\\Api\\Resources\\PropertyResource::toArray",
        "fqmn": "App\\Api\\Resources\\PropertyResource@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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Resources/RentCycleResource.php::App\\Api\\Resources\\RentCycleResource::toArray",
        "fqmn": "App\\Api\\Resources\\RentCycleResource@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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Resources/TenantResource.php::App\\Api\\Resources\\TenantResource::toArray",
        "fqmn": "App\\Api\\Resources\\TenantResource@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/Api/",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Api/Resources/UnitResource.php::App\\Api\\Resources\\UnitResource::toArray",
        "fqmn": "App\\Api\\Resources\\UnitResource@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/Bill",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Billing/Dunning/DunningPolicyResolver.php::App\\Billing\\Dunning\\DunningPolicyResolver::resolveForSubscription",
        "fqmn": "App\\Billing\\Dunning\\DunningPolicyResolver@resolveForSubscription",
        "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/Bill",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Billing/Dunning/ResolvedDunningPolicy.php::App\\Billing\\Dunning\\ResolvedDunningPolicy::__construct",
        "fqmn": "App\\Billing\\Dunning\\ResolvedDunningPolicy@__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/Bill",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Billing/Dunning/ResolvedDunningPolicy.php::App\\Billing\\Dunning\\ResolvedDunningPolicy::getDelaySecondsForAttempt",
        "fqmn": "App\\Billing\\Dunning\\ResolvedDunningPolicy@getDelaySecondsForAttempt",
        "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/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::afterCreate",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@afterCreate",
        "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/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::afterSave",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@afterSave",
        "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/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::canCreate",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@canCreate",
        "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/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::canView",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@canView",
        "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/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::canViewAny",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@canViewAny",
        "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/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::getHeading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "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/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::getLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getLabel",
        "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/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@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/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::getNavigationGroup",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getNavigationGroup",
        "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/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@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/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getTitle",
        "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/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::mutateFormDataBeforeCreate",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@mutateFormDataBeforeCreate",
        "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/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::organizationHasSeatCapacity",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@organizationHasSeatCapacity",
        "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/Agencies/Resources/AgencyUserResource/Pages/CreateAgencyUser.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\CreateAgencyUser::getHeading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\CreateAgencyUser@getHeading",
        "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/Agencies/Resources/AgencyUserResource/Pages/CreateAgencyUser.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\CreateAgencyUser::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\CreateAgencyUser@getTitle",
        "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/Agencies/Resources/AgencyUserResource/Pages/EditAgencyUser.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\EditAgencyUser::getHeading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\EditAgencyUser@getHeading",
        "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/Agencies/Resources/AgencyUserResource/Pages/EditAgencyUser.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\EditAgencyUser::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\EditAgencyUser@getTitle",
        "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/Agencies/Resources/AgencyUserResource/Pages/ViewAgencyUser.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\ViewAgencyUser::getHeading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\ViewAgencyUser@getHeading",
        "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/Agencies/Resources/AgencyUserResource/Pages/ViewAgencyUser.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\ViewAgencyUser::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\ViewAgencyUser@getTitle",
        "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/Agencies/Resources/FileResource.php::App\\Domains\\Agencies\\Resources\\FileResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\FileResource@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/Agencies/Resources/FileResource.php::App\\Domains\\Agencies\\Resources\\FileResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\FileResource@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/Agencies/Resources/FileResource.php::App\\Domains\\Agencies\\Resources\\FileResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\FileResource@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/Agencies/Resources/FileResource.php::App\\Domains\\Agencies\\Resources\\FileResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\FileResource@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/Agencies/Resources/FileResource.php::App\\Domains\\Agencies\\Resources\\FileResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\FileResource@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/Agencies/Resources/FileResource.php::App\\Domains\\Agencies\\Resources\\FileResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\FileResource@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/Agencies/Resources/FileResource.php::App\\Domains\\Agencies\\Resources\\FileResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\FileResource@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/Agencies/Resources/LabourResource.php::App\\Domains\\Agencies\\Resources\\LabourResource::mutateFormDataBeforeCreate",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LabourResource@mutateFormDataBeforeCreate",
        "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/Agencies/Resources/LabourResource/Pages/CreateLabour.php::App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\CreateLabour::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\CreateLabour@getTitle",
        "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/Agencies/Resources/LabourResource/Pages/EditLabour.php::App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\EditLabour::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\EditLabour@getTitle",
        "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/Agencies/Resources/LabourResource/Pages/ListLabours.php::App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ListLabours::getBreadcrumb",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ListLabours@getBreadcrumb",
        "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/Agencies/Resources/LabourResource/Pages/ListLabours.php::App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ListLabours::getHeading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ListLabours@getHeading",
        "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/Agencies/Resources/LabourResource/Pages/ListLabours.php::App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ListLabours::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ListLabours@getTitle",
        "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/Agencies/Resources/LabourResource/Pages/ViewLabour.php::App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ViewLabour::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ViewLabour@getTitle",
        "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/Agencies/Resources/LandlordResource.php::App\\Domains\\Agencies\\Resources\\LandlordResource::canCreate",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource@canCreate",
        "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/Agencies/Resources/LandlordResource.php::App\\Domains\\Agencies\\Resources\\LandlordResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource@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/Agencies/Resources/LandlordResource.php::App\\Domains\\Agencies\\Resources\\LandlordResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource@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/Agencies/Resources/LandlordResource.php::App\\Domains\\Agencies\\Resources\\LandlordResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource@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/Agencies/Resources/LandlordResource.php::App\\Domains\\Agencies\\Resources\\LandlordResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource@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/Agencies/Resources/LandlordResource.php::App\\Domains\\Agencies\\Resources\\LandlordResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource@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/Agencies/Resources/LandlordResource.php::App\\Domains\\Agencies\\Resources\\LandlordResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource@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/Agencies/Resources/LandlordResource.php::App\\Domains\\Agencies\\Resources\\LandlordResource::getRelations",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource@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/Agencies/Resources/LandlordResource/Pages/CreateLandlord.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\CreateLandlord::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\CreateLandlord@getTitle",
        "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/Agencies/Resources/LandlordResource/Pages/EditLandlord.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\EditLandlord::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\EditLandlord@getTitle",
        "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/Agencies/Resources/LandlordResource/Pages/ListLandlords.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ListLandlords::getBreadcrumb",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ListLandlords@getBreadcrumb",
        "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/Agencies/Resources/LandlordResource/Pages/ListLandlords.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ListLandlords::getHeading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ListLandlords@getHeading",
        "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/Agencies/Resources/LandlordResource/Pages/ListLandlords.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ListLandlords::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ListLandlords@getTitle",
        "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/Agencies/Resources/LandlordResource/Pages/ViewLandlord.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ViewLandlord::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ViewLandlord@getTitle",
        "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/Agencies/Resources/LandlordResource/RelationManagers/DocumentsRelationManager.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@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/Agencies/Resources/LandlordResource/RelationManagers/DocumentsRelationManager.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@getTitle",
        "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/Agencies/Resources/LandlordResource/RelationManagers/DocumentsRelationManager.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@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/Agencies/Resources/LandlordResource/RelationManagers/PropertiesRelationManager.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@getTitle",
        "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/Agencies/Resources/LandlordResource/RelationManagers/PropertiesRelationManager.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@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/Agencies/Resources/LeaseCycleResource.php::App\\Domains\\Agencies\\Resources\\LeaseCycleResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@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/Agencies/Resources/LeaseCycleResource.php::App\\Domains\\Agencies\\Resources\\LeaseCycleResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@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/Agencies/Resources/LeaseCycleResource.php::App\\Domains\\Agencies\\Resources\\LeaseCycleResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@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/Agencies/Resources/LeaseCycleResource.php::App\\Domains\\Agencies\\Resources\\LeaseCycleResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@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/Agencies/Resources/LeaseCycleResource.php::App\\Domains\\Agencies\\Resources\\LeaseCycleResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@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/Agencies/Resources/LeaseCycleResource.php::App\\Domains\\Agencies\\Resources\\LeaseCycleResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@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/Agencies/Resources/LeaseCycleResource.php::App\\Domains\\Agencies\\Resources\\LeaseCycleResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@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/Agencies/Resources/LeaseResource.php::App\\Domains\\Agencies\\Resources\\LeaseResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource@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/Agencies/Resources/LeaseResource.php::App\\Domains\\Agencies\\Resources\\LeaseResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource@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/Agencies/Resources/LeaseResource.php::App\\Domains\\Agencies\\Resources\\LeaseResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource@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/Agencies/Resources/LeaseResource.php::App\\Domains\\Agencies\\Resources\\LeaseResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource@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/Agencies/Resources/LeaseResource.php::App\\Domains\\Agencies\\Resources\\LeaseResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource@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/Agencies/Resources/LeaseResource.php::App\\Domains\\Agencies\\Resources\\LeaseResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource@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/Agencies/Resources/LeaseResource.php::App\\Domains\\Agencies\\Resources\\LeaseResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource@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/Agencies/Resources/LeaseResource/Pages/Bookings.php::App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings::canAccess",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings@canAccess",
        "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/Agencies/Resources/LeaseResource/Pages/Bookings.php::App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings@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/Agencies/Resources/LeaseResource/Pages/Bookings.php::App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings@getTitle",
        "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/Agencies/Resources/LeaseResource/Pages/Bookings.php::App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings@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/Agencies/Resources/LeaseResource/Pages/CreateLease.php::App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\CreateLease::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\CreateLease@getTitle",
        "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/Agencies/Resources/LeaseResource/Pages/EditLease.php::App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\EditLease::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\EditLease@getTitle",
        "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/Agencies/Resources/LeaseResource/Pages/ListLeases.php::App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ListLeases::getSubheading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ListLeases@getSubheading",
        "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/Agencies/Resources/LeaseResource/Pages/ListLeases.php::App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ListLeases::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ListLeases@getTitle",
        "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/Agencies/Resources/LeaseResource/Pages/ViewLease.php::App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ViewLease::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ViewLease@getTitle",
        "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/Agencies/Resources/LeaseResource/Pages/ViewLease.php::App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ViewLease::infolist",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ViewLease@infolist",
        "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/Agencies/Resources/MaintenanceSlaResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@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/Agencies/Resources/MaintenanceSlaResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@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/Agencies/Resources/MaintenanceSlaResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@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/Agencies/Resources/MaintenanceSlaResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@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/Agencies/Resources/MaintenanceSlaResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@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/Agencies/Resources/MaintenanceSlaResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@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/Agencies/Resources/MaintenanceSlaResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource::infolist",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@infolist",
        "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/Agencies/Resources/MaintenanceSlaResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@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/Agencies/Resources/MaintenanceSlaResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@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/Agencies/Resources/MaintenanceSlaResource/Pages/CreateMaintenanceSla.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource\\Pages\\CreateMaintenanceSla::getHeading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource\\Pages\\CreateMaintenanceSla@getHeading",
        "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/Agencies/Resources/MaintenanceSlaResource/Pages/CreateMaintenanceSla.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource\\Pages\\CreateMaintenanceSla::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource\\Pages\\CreateMaintenanceSla@getTitle",
        "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/Agencies/Resources/MaintenanceSuggestionResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@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/Agencies/Resources/MaintenanceSuggestionResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@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/Agencies/Resources/MaintenanceSuggestionResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@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/Agencies/Resources/MaintenanceSuggestionResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@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/Agencies/Resources/MaintenanceSuggestionResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@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/Agencies/Resources/MaintenanceSuggestionResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@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/Agencies/Resources/MaintenanceSuggestionResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@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/Agencies/Resources/MaintenanceSuggestionResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@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/Agencies/Resources/MaintenanceTicketResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource@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/Agencies/Resources/MaintenanceTicketResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource@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/Agencies/Resources/MaintenanceTicketResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource@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/Agencies/Resources/MaintenanceTicketResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource@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/Agencies/Resources/MaintenanceTicketResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource@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/Agencies/Resources/MaintenanceTicketResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource@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/Agencies/Resources/MaintenanceTicketResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource::getRelations",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource@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/Agencies/Resources/MaintenanceTicketResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource::infolist",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource@infolist",
        "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/Agencies/Resources/MaintenanceTicketResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource@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/Agencies/Resources/MaintenanceTicketResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource@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/Agencies/Resources/MaintenanceTicketResource/Actions/ExportTicketsAction.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\Actions\\ExportTicketsAction::getDefaultName",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\Actions\\ExportTicketsAction@getDefaultName",
        "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/Agencies/Resources/MaintenanceTicketResource/Pages/CreateMaintenanceTicket.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\Pages\\CreateMaintenanceTicket::getHeading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\Pages\\CreateMaintenanceTicket@getHeading",
        "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/Agencies/Resources/MaintenanceTicketResource/Pages/CreateMaintenanceTicket.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\Pages\\CreateMaintenanceTicket::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\Pages\\CreateMaintenanceTicket@getTitle",
        "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/Agencies/Resources/MaintenanceTicketResource/RelationManagers/CommentsRelationManager.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\CommentsRelationManager::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\CommentsRelationManager@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/Agencies/Resources/MaintenanceTicketResource/RelationManagers/CommentsRelationManager.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\CommentsRelationManager::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\CommentsRelationManager@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/Agencies/Resources/MaintenanceTicketResource/RelationManagers/MediaRelationManager.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\MediaRelationManager::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\MediaRelationManager@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/Agencies/Resources/MaintenanceTicketResource/RelationManagers/MediaRelationManager.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\MediaRelationManager::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\MediaRelationManager@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/Agencies/Resources/MaintenanceTicketResource/RelationManagers/SlaLogsRelationManager.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SlaLogsRelationManager::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SlaLogsRelationManager@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/Agencies/Resources/MaintenanceTicketResource/RelationManagers/SlaLogsRelationManager.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SlaLogsRelationManager::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SlaLogsRelationManager@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/Agencies/Resources/MaintenanceTicketResource/RelationManagers/SuggestionsRelationManager.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SuggestionsRelationManager::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SuggestionsRelationManager@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/Agencies/Resources/MaintenanceTicketResource/RelationManagers/SuggestionsRelationManager.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SuggestionsRelationManager::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SuggestionsRelationManager@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/Agencies/Resources/MaintenanceTicketSlaLogResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@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/Agencies/Resources/MaintenanceTicketSlaLogResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@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/Agencies/Resources/MaintenanceTicketSlaLogResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@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/Agencies/Resources/MaintenanceTicketSlaLogResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@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/Agencies/Resources/MaintenanceTicketSlaLogResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@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/Agencies/Resources/MaintenanceTicketSlaLogResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@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/Agencies/Resources/MaintenanceTicketSlaLogResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@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/Agencies/Resources/MaintenanceTicketSlaLogResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@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/Agencies/Resources/NotificationCenterResource.php::App\\Domains\\Agencies\\Resources\\NotificationCenterResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationCenterResource@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/Agencies/Resources/NotificationCenterResource.php::App\\Domains\\Agencies\\Resources\\NotificationCenterResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationCenterResource@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/Agencies/Resources/NotificationCenterResource.php::App\\Domains\\Agencies\\Resources\\NotificationCenterResource::getLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationCenterResource@getLabel",
        "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/Agencies/Resources/NotificationCenterResource.php::App\\Domains\\Agencies\\Resources\\NotificationCenterResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationCenterResource@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/Agencies/Resources/NotificationCenterResource.php::App\\Domains\\Agencies\\Resources\\NotificationCenterResource::getPluralLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationCenterResource@getPluralLabel",
        "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/Agencies/Resources/NotificationCenterResource.php::App\\Domains\\Agencies\\Resources\\NotificationCenterResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationCenterResource@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/Agencies/Resources/NotificationCenterResource.php::App\\Domains\\Agencies\\Resources\\NotificationCenterResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationCenterResource@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/Agencies/Resources/NotificationSettingsResource.php::App\\Domains\\Agencies\\Resources\\NotificationSettingsResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationSettingsResource@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/Agencies/Resources/NotificationSettingsResource.php::App\\Domains\\Agencies\\Resources\\NotificationSettingsResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationSettingsResource@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/Agencies/Resources/NotificationSettingsResource.php::App\\Domains\\Agencies\\Resources\\NotificationSettingsResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationSettingsResource@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/Agencies/Resources/NotificationSettingsResource.php::App\\Domains\\Agencies\\Resources\\NotificationSettingsResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationSettingsResource@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/Agencies/Resources/NotificationSettingsResource.php::App\\Domains\\Agencies\\Resources\\NotificationSettingsResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationSettingsResource@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/Agencies/Resources/Pages/ManageAgencyUsers.php::App\\Domains\\Agencies\\Resources\\Pages\\ManageAgencyUsers::getHeading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\Pages\\ManageAgencyUsers@getHeading",
        "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/Agencies/Resources/Pages/ManageAgencyUsers.php::App\\Domains\\Agencies\\Resources\\Pages\\ManageAgencyUsers::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\Pages\\ManageAgencyUsers@getTitle",
        "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/Agencies/Resources/PaymentProofResource.php::App\\Domains\\Agencies\\Resources\\PaymentProofResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentProofResource@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/Agencies/Resources/PaymentProofResource.php::App\\Domains\\Agencies\\Resources\\PaymentProofResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentProofResource@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/Agencies/Resources/PaymentProofResource.php::App\\Domains\\Agencies\\Resources\\PaymentProofResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentProofResource@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/Agencies/Resources/PaymentProofResource.php::App\\Domains\\Agencies\\Resources\\PaymentProofResource::getNavigationBadge",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentProofResource@getNavigationBadge",
        "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/Agencies/Resources/PaymentProofResource.php::App\\Domains\\Agencies\\Resources\\PaymentProofResource::getNavigationBadgeColor",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentProofResource@getNavigationBadgeColor",
        "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/Agencies/Resources/PaymentProofResource.php::App\\Domains\\Agencies\\Resources\\PaymentProofResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentProofResource@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/Agencies/Resources/PaymentProofResource.php::App\\Domains\\Agencies\\Resources\\PaymentProofResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentProofResource@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/Agencies/Resources/PaymentProofResource.php::App\\Domains\\Agencies\\Resources\\PaymentProofResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentProofResource@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/Agencies/Resources/PaymentProofResource.php::App\\Domains\\Agencies\\Resources\\PaymentProofResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentProofResource@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/Agencies/Resources/PaymentResource.php::App\\Domains\\Agencies\\Resources\\PaymentResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource@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/Agencies/Resources/PaymentResource.php::App\\Domains\\Agencies\\Resources\\PaymentResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource@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/Agencies/Resources/PaymentResource.php::App\\Domains\\Agencies\\Resources\\PaymentResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource@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/Agencies/Resources/PaymentResource.php::App\\Domains\\Agencies\\Resources\\PaymentResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource@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/Agencies/Resources/PaymentResource.php::App\\Domains\\Agencies\\Resources\\PaymentResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource@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/Agencies/Resources/PaymentResource.php::App\\Domains\\Agencies\\Resources\\PaymentResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource@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/Agencies/Resources/PaymentResource.php::App\\Domains\\Agencies\\Resources\\PaymentResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource@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/Agencies/Resources/PaymentResource/Pages/CreatePayment.php::App\\Domains\\Agencies\\Resources\\PaymentResource\\Pages\\CreatePayment::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource\\Pages\\CreatePayment@getTitle",
        "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/Agencies/Resources/PaymentResource/Pages/EditPayment.php::App\\Domains\\Agencies\\Resources\\PaymentResource\\Pages\\EditPayment::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource\\Pages\\EditPayment@getTitle",
        "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/Agencies/Resources/PaymentResource/Pages/ViewPayment.php::App\\Domains\\Agencies\\Resources\\PaymentResource\\Pages\\ViewPayment::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource\\Pages\\ViewPayment@getTitle",
        "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/Agencies/Resources/PaymentResource/RelationManagers/PaymentProofsRelationManager.php::App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager@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/Agencies/Resources/PaymentResource/RelationManagers/PaymentProofsRelationManager.php::App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager@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/Agencies/Resources/PaymentResource/RelationManagers/PaymentProofsRelationManager.php::App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager@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/Agencies/Resources/PaymentResource/RelationManagers/PaymentProofsRelationManager.php::App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager@getTitle",
        "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/Agencies/Resources/PaymentResource/RelationManagers/PaymentProofsRelationManager.php::App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager@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/Agencies/Resources/PropertyResource.php::App\\Domains\\Agencies\\Resources\\PropertyResource::canCreate",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@canCreate",
        "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/Agencies/Resources/PropertyResource.php::App\\Domains\\Agencies\\Resources\\PropertyResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@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/Agencies/Resources/PropertyResource.php::App\\Domains\\Agencies\\Resources\\PropertyResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@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/Agencies/Resources/PropertyResource.php::App\\Domains\\Agencies\\Resources\\PropertyResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@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/Agencies/Resources/PropertyResource.php::App\\Domains\\Agencies\\Resources\\PropertyResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@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/Agencies/Resources/PropertyResource.php::App\\Domains\\Agencies\\Resources\\PropertyResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@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/Agencies/Resources/PropertyResource.php::App\\Domains\\Agencies\\Resources\\PropertyResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@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/Agencies/Resources/PropertyResource.php::App\\Domains\\Agencies\\Resources\\PropertyResource::getRelations",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@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/Agencies/Resources/PropertyResource.php::App\\Domains\\Agencies\\Resources\\PropertyResource::infolist",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@infolist",
        "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/Agencies/Resources/PropertyResource.php::App\\Domains\\Agencies\\Resources\\PropertyResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@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/Agencies/Resources/PropertyResource/Pages/CreateProperty.php::App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\CreateProperty::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\CreateProperty@getTitle",
        "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/Agencies/Resources/PropertyResource/Pages/EditProperty.php::App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\EditProperty::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\EditProperty@getTitle",
        "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/Agencies/Resources/PropertyResource/Pages/ListProperties.php::App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\ListProperties::getSubheading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\ListProperties@getSubheading",
        "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/Agencies/Resources/PropertyResource/Pages/ListProperties.php::App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\ListProperties::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\ListProperties@getTitle",
        "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/Agencies/Resources/PropertyResource/RelationManagers/FilesRelationManager.php::App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\FilesRelationManager::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\FilesRelationManager@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/Agencies/Resources/PropertyResource/RelationManagers/FilesRelationManager.php::App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\FilesRelationManager::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\FilesRelationManager@getTitle",
        "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/Agencies/Resources/PropertyResource/RelationManagers/FilesRelationManager.php::App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\FilesRelationManager::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\FilesRelationManager@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/Agencies/Resources/PropertyResource/RelationManagers/UnitsRelationManager.php::App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\UnitsRelationManager::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\UnitsRelationManager@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/Agencies/Resources/PropertyResource/RelationManagers/UnitsRelationManager.php::App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\UnitsRelationManager::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\UnitsRelationManager@getTitle",
        "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/Agencies/Resources/PropertyResource/RelationManagers/UnitsRelationManager.php::App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\UnitsRelationManager::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\UnitsRelationManager@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/Agencies/Resources/ReminderLogResource.php::App\\Domains\\Agencies\\Resources\\ReminderLogResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderLogResource@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/Agencies/Resources/ReminderLogResource.php::App\\Domains\\Agencies\\Resources\\ReminderLogResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderLogResource@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/Agencies/Resources/ReminderLogResource.php::App\\Domains\\Agencies\\Resources\\ReminderLogResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderLogResource@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/Agencies/Resources/ReminderLogResource.php::App\\Domains\\Agencies\\Resources\\ReminderLogResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderLogResource@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/Agencies/Resources/ReminderLogResource.php::App\\Domains\\Agencies\\Resources\\ReminderLogResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderLogResource@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/Agencies/Resources/ReminderLogResource.php::App\\Domains\\Agencies\\Resources\\ReminderLogResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderLogResource@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/Agencies/Resources/ReminderLogResource/Pages/ListReminderLogs.php::App\\Domains\\Agencies\\Resources\\ReminderLogResource\\Pages\\ListReminderLogs::getBreadcrumb",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderLogResource\\Pages\\ListReminderLogs@getBreadcrumb",
        "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/Agencies/Resources/ReminderLogResource/Pages/ListReminderLogs.php::App\\Domains\\Agencies\\Resources\\ReminderLogResource\\Pages\\ListReminderLogs::getHeading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderLogResource\\Pages\\ListReminderLogs@getHeading",
        "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/Agencies/Resources/ReminderLogResource/Pages/ListReminderLogs.php::App\\Domains\\Agencies\\Resources\\ReminderLogResource\\Pages\\ListReminderLogs::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderLogResource\\Pages\\ListReminderLogs@getTitle",
        "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/Agencies/Resources/ReminderTemplateResource.php::App\\Domains\\Agencies\\Resources\\ReminderTemplateResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@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/Agencies/Resources/ReminderTemplateResource.php::App\\Domains\\Agencies\\Resources\\ReminderTemplateResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@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/Agencies/Resources/ReminderTemplateResource.php::App\\Domains\\Agencies\\Resources\\ReminderTemplateResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@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/Agencies/Resources/ReminderTemplateResource.php::App\\Domains\\Agencies\\Resources\\ReminderTemplateResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@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/Agencies/Resources/ReminderTemplateResource.php::App\\Domains\\Agencies\\Resources\\ReminderTemplateResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@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/Agencies/Resources/ReminderTemplateResource.php::App\\Domains\\Agencies\\Resources\\ReminderTemplateResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@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/Agencies/Resources/ReminderTemplateResource.php::App\\Domains\\Agencies\\Resources\\ReminderTemplateResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@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/Agencies/Resources/RentCycleResource.php::App\\Domains\\Agencies\\Resources\\RentCycleResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource@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/Agencies/Resources/RentCycleResource.php::App\\Domains\\Agencies\\Resources\\RentCycleResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource@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/Agencies/Resources/RentCycleResource.php::App\\Domains\\Agencies\\Resources\\RentCycleResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource@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/Agencies/Resources/RentCycleResource.php::App\\Domains\\Agencies\\Resources\\RentCycleResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource@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/Agencies/Resources/RentCycleResource.php::App\\Domains\\Agencies\\Resources\\RentCycleResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource@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/Agencies/Resources/RentCycleResource.php::App\\Domains\\Agencies\\Resources\\RentCycleResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource@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/Agencies/Resources/RentCycleResource.php::App\\Domains\\Agencies\\Resources\\RentCycleResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource@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/Agencies/Resources/RentCycleResource/Pages/ListRentCycles.php::App\\Domains\\Agencies\\Resources\\RentCycleResource\\Pages\\ListRentCycles::getDefaultActiveTab",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource\\Pages\\ListRentCycles@getDefaultActiveTab",
        "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/Agencies/Resources/RentCycleResource/Pages/ListRentCycles.php::App\\Domains\\Agencies\\Resources\\RentCycleResource\\Pages\\ListRentCycles::getTabs",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource\\Pages\\ListRentCycles@getTabs",
        "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/Agencies/Resources/RentCycleResource/Pages/ViewRentCycle.php::App\\Domains\\Agencies\\Resources\\RentCycleResource\\Pages\\ViewRentCycle::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource\\Pages\\ViewRentCycle@getTitle",
        "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/Agencies/Resources/SupportTicketResource.php::App\\Domains\\Agencies\\Resources\\SupportTicketResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource@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/Agencies/Resources/SupportTicketResource.php::App\\Domains\\Agencies\\Resources\\SupportTicketResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource@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/Agencies/Resources/SupportTicketResource.php::App\\Domains\\Agencies\\Resources\\SupportTicketResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource@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/Agencies/Resources/SupportTicketResource.php::App\\Domains\\Agencies\\Resources\\SupportTicketResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource@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/Agencies/Resources/SupportTicketResource.php::App\\Domains\\Agencies\\Resources\\SupportTicketResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource@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/Agencies/Resources/SupportTicketResource.php::App\\Domains\\Agencies\\Resources\\SupportTicketResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource@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/Agencies/Resources/SupportTicketResource.php::App\\Domains\\Agencies\\Resources\\SupportTicketResource::infolist",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource@infolist",
        "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/Agencies/Resources/SupportTicketResource.php::App\\Domains\\Agencies\\Resources\\SupportTicketResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource@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/Agencies/Resources/SupportTicketResource/Pages/ListSupportTickets.php::App\\Domains\\Agencies\\Resources\\SupportTicketResource\\Pages\\ListSupportTickets::getSubheading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource\\Pages\\ListSupportTickets@getSubheading",
        "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/Agencies/Resources/TenantResource.php::App\\Domains\\Agencies\\Resources\\TenantResource::canCreate",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource@canCreate",
        "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/Agencies/Resources/TenantResource.php::App\\Domains\\Agencies\\Resources\\TenantResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource@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/Agencies/Resources/TenantResource.php::App\\Domains\\Agencies\\Resources\\TenantResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource@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/Agencies/Resources/TenantResource.php::App\\Domains\\Agencies\\Resources\\TenantResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource@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/Agencies/Resources/TenantResource.php::App\\Domains\\Agencies\\Resources\\TenantResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource@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/Agencies/Resources/TenantResource.php::App\\Domains\\Agencies\\Resources\\TenantResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource@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/Agencies/Resources/TenantResource.php::App\\Domains\\Agencies\\Resources\\TenantResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource@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/Agencies/Resources/TenantResource.php::App\\Domains\\Agencies\\Resources\\TenantResource::getRelations",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource@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/Agencies/Resources/TenantResource.php::App\\Domains\\Agencies\\Resources\\TenantResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource@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/Agencies/Resources/TenantResource/Pages/CreateTenant.php::App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\CreateTenant::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\CreateTenant@getTitle",
        "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/Agencies/Resources/TenantResource/Pages/EditTenant.php::App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\EditTenant::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\EditTenant@getTitle",
        "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/Agencies/Resources/TenantResource/Pages/ListTenants.php::App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\ListTenants::getSubheading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\ListTenants@getSubheading",
        "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/Agencies/Resources/TenantResource/Pages/ListTenants.php::App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\ListTenants::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\ListTenants@getTitle",
        "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/Agencies/Resources/TenantResource/Pages/ViewTenant.php::App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\ViewTenant::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\ViewTenant@getTitle",
        "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/Agencies/Resources/TransferResource.php::App\\Domains\\Agencies\\Resources\\TransferResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource@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/Agencies/Resources/TransferResource.php::App\\Domains\\Agencies\\Resources\\TransferResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource@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/Agencies/Resources/TransferResource.php::App\\Domains\\Agencies\\Resources\\TransferResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource@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/Agencies/Resources/TransferResource.php::App\\Domains\\Agencies\\Resources\\TransferResource::getNavigationGroup",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource@getNavigationGroup",
        "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/Agencies/Resources/TransferResource.php::App\\Domains\\Agencies\\Resources\\TransferResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource@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/Agencies/Resources/TransferResource.php::App\\Domains\\Agencies\\Resources\\TransferResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource@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/Agencies/Resources/TransferResource.php::App\\Domains\\Agencies\\Resources\\TransferResource::getRelations",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource@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/Agencies/Resources/TransferResource.php::App\\Domains\\Agencies\\Resources\\TransferResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource@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/Agencies/Resources/TransferResource/Actions/ExportLandlordStatementAction.php::App\\Domains\\Agencies\\Resources\\TransferResource\\Actions\\ExportLandlordStatementAction::getDefaultName",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource\\Actions\\ExportLandlordStatementAction@getDefaultName",
        "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/Agencies/Resources/TransferResource/Pages/ListTransfers.php::App\\Domains\\Agencies\\Resources\\TransferResource\\Pages\\ListTransfers::getSubheading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource\\Pages\\ListTransfers@getSubheading",
        "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/Agencies/Resources/UnitResource.php::App\\Domains\\Agencies\\Resources\\UnitResource::canCreate",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@canCreate",
        "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/Agencies/Resources/UnitResource.php::App\\Domains\\Agencies\\Resources\\UnitResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@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/Agencies/Resources/UnitResource.php::App\\Domains\\Agencies\\Resources\\UnitResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@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/Agencies/Resources/UnitResource.php::App\\Domains\\Agencies\\Resources\\UnitResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@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/Agencies/Resources/UnitResource.php::App\\Domains\\Agencies\\Resources\\UnitResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@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/Agencies/Resources/UnitResource.php::App\\Domains\\Agencies\\Resources\\UnitResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@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/Agencies/Resources/UnitResource.php::App\\Domains\\Agencies\\Resources\\UnitResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@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/Agencies/Resources/UnitResource.php::App\\Domains\\Agencies\\Resources\\UnitResource::getRelations",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@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/Agencies/Resources/UnitResource.php::App\\Domains\\Agencies\\Resources\\UnitResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@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/Agencies/Resources/UnitResource/Pages/ListUnits.php::App\\Domains\\Agencies\\Resources\\UnitResource\\Pages\\ListUnits::getSubheading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource\\Pages\\ListUnits@getSubheading",
        "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/Agencies/Resources/UnitResource/Pages/ViewUnit.php::App\\Domains\\Agencies\\Resources\\UnitResource\\Pages\\ViewUnit::infolist",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource\\Pages\\ViewUnit@infolist",
        "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/Agencies/Resources/UnitResource/RelationManagers/FilesRelationManager.php::App\\Domains\\Agencies\\Resources\\UnitResource\\RelationManagers\\FilesRelationManager::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource\\RelationManagers\\FilesRelationManager@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/Agencies/Resources/UnitResource/RelationManagers/FilesRelationManager.php::App\\Domains\\Agencies\\Resources\\UnitResource\\RelationManagers\\FilesRelationManager::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource\\RelationManagers\\FilesRelationManager@getTitle",
        "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/Agencies/Resources/UnitResource/RelationManagers/FilesRelationManager.php::App\\Domains\\Agencies\\Resources\\UnitResource\\RelationManagers\\FilesRelationManager::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource\\RelationManagers\\FilesRelationManager@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/Billing/Actions/GenerateCreditTopUpInvoiceAction.php::App\\Domains\\Billing\\Actions\\GenerateCreditTopUpInvoiceAction::execute",
        "fqmn": "App\\Domains\\Billing\\Actions\\GenerateCreditTopUpInvoiceAction@execute",
        "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/Billing/Actions/GenerateMaintenanceInvoices.php::App\\Domains\\Billing\\Actions\\GenerateMaintenanceInvoices::__construct",
        "fqmn": "App\\Domains\\Billing\\Actions\\GenerateMaintenanceInvoices@__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/Billing/Actions/GenerateMaintenanceInvoices.php::App\\Domains\\Billing\\Actions\\GenerateMaintenanceInvoices::handle",
        "fqmn": "App\\Domains\\Billing\\Actions\\GenerateMaintenanceInvoices@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/Billing/Actions/GenerateMessagePackageInvoiceAction.php::App\\Domains\\Billing\\Actions\\GenerateMessagePackageInvoiceAction::execute",
        "fqmn": "App\\Domains\\Billing\\Actions\\GenerateMessagePackageInvoiceAction@execute",
        "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/Billing/Actions/GenerateRentInvoices.php::App\\Domains\\Billing\\Actions\\GenerateRentInvoices::__construct",
        "fqmn": "App\\Domains\\Billing\\Actions\\GenerateRentInvoices@__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/Billing/Actions/GenerateRentInvoices.php::App\\Domains\\Billing\\Actions\\GenerateRentInvoices::handle",
        "fqmn": "App\\Domains\\Billing\\Actions\\GenerateRentInvoices@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/Billing/Actions/GenerateSubscriptionInvoiceAction.php::App\\Domains\\Billing\\Actions\\GenerateSubscriptionInvoiceAction::execute",
        "fqmn": "App\\Domains\\Billing\\Actions\\GenerateSubscriptionInvoiceAction@execute",
        "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/Billing/Actions/SyncInvoiceToZoho.php::App\\Domains\\Billing\\Actions\\SyncInvoiceToZoho::__construct",
        "fqmn": "App\\Domains\\Billing\\Actions\\SyncInvoiceToZoho@__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/Billing/Actions/SyncInvoiceToZoho.php::App\\Domains\\Billing\\Actions\\SyncInvoiceToZoho::handle",
        "fqmn": "App\\Domains\\Billing\\Actions\\SyncInvoiceToZoho@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/Billing/DTO/TaxBreakdown.php::App\\Domains\\Billing\\DTO\\TaxBreakdown::zero",
        "fqmn": "App\\Domains\\Billing\\DTO\\TaxBreakdown@zero",
        "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/Billing/Services/CountryFormatterService.php::App\\Domains\\Billing\\Services\\CountryFormatterService::formatAddress",
        "fqmn": "App\\Domains\\Billing\\Services\\CountryFormatterService@formatAddress",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Billing/Services/CountryFormatterService.php::App\\Domains\\Billing\\Services\\CountryFormatterService::formatCurrency",
        "fqmn": "App\\Domains\\Billing\\Services\\CountryFormatterService@formatCurrency",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Billing/Services/CountryFormatterService.php::App\\Domains\\Billing\\Services\\CountryFormatterService::formatDate",
        "fqmn": "App\\Domains\\Billing\\Services\\CountryFormatterService@formatDate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Billing/Services/CountryFormatterService.php::App\\Domains\\Billing\\Services\\CountryFormatterService::formatNumber",
        "fqmn": "App\\Domains\\Billing\\Services\\CountryFormatterService@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/Doma",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Domains/Billing/Services/CurrencyService.php::App\\Domains\\Billing\\Services\\CurrencyService::formatWithSymbol",
        "fqmn": "App\\Domains\\Billing\\Services\\CurrencyService@formatWithSymbol",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Billing/Services/CurrencyService.php::App\\Domains\\Billing\\Services\\CurrencyService::getCurrencySymbol",
        "fqmn": "App\\Domains\\Billing\\Services\\CurrencyService@getCurrencySymbol",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Billing/Services/CurrencyService.php::App\\Domains\\Billing\\Services\\CurrencyService::getDefaultCurrency",
        "fqmn": "App\\Domains\\Billing\\Services\\CurrencyService@getDefaultCurrency",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Billing/Services/CurrencyService.php::App\\Domains\\Billing\\Services\\CurrencyService::isValidCurrency",
        "fqmn": "App\\Domains\\Billing\\Services\\CurrencyService@isValidCurrency",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Billing/Services/GlobalTaxRulesService.php::App\\Domains\\Billing\\Services\\GlobalTaxRulesService::getDefaultCurrencyForCountry",
        "fqmn": "App\\Domains\\Billing\\Services\\GlobalTaxRulesService@getDefaultCurrencyForCountry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Billing/Services/GlobalTaxRulesService.php::App\\Domains\\Billing\\Services\\GlobalTaxRulesService::getDefaultLocaleForCountry",
        "fqmn": "App\\Domains\\Billing\\Services\\GlobalTaxRulesService@getDefaultLocaleForCountry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Billing/Services/GlobalTaxRulesService.php::App\\Domains\\Billing\\Services\\GlobalTaxRulesService::getDefaultTaxRateForCountry",
        "fqmn": "App\\Domains\\Billing\\Services\\GlobalTaxRulesService@getDefaultTaxRateForCountry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Billing/Services/GlobalTaxRulesService.php::App\\Domains\\Billing\\Services\\GlobalTaxRulesService::getInvoiceFormatForCountry",
        "fqmn": "App\\Domains\\Billing\\Services\\GlobalTaxRulesService@getInvoiceFormatForCountry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Billing/Services/GlobalTaxRulesService.php::App\\Domains\\Billing\\Services\\GlobalTaxRulesService::getLineItemTaxRulesForCountry",
        "fqmn": "App\\Domains\\Billing\\Services\\GlobalTaxRulesService@getLineItemTaxRulesForCountry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Billing/Services/GlobalTaxRulesService.php::App\\Domains\\Billing\\Services\\GlobalTaxRulesService::getNumberFormatForCountry",
        "fqmn": "App\\Domains\\Billing\\Services\\GlobalTaxRulesService@getNumberFormatForCountry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Billing/Services/GlobalTaxRulesService.php::App\\Domains\\Billing\\Services\\GlobalTaxRulesService::getRulesForCountry",
        "fqmn": "App\\Domains\\Billing\\Services\\GlobalTaxRulesService@getRulesForCountry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Billing/Services/GlobalTaxRulesService.php::App\\Domains\\Billing\\Services\\GlobalTaxRulesService::getTaxRate",
        "fqmn": "App\\Domains\\Billing\\Services\\GlobalTaxRulesService@getTaxRate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Billing/Services/GlobalTaxRulesService.php::App\\Domains\\Billing\\Services\\GlobalTaxRulesService::getTaxTypeForCountry",
        "fqmn": "App\\Domains\\Billing\\Services\\GlobalTaxRulesService@getTaxTypeForCountry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Billing/Services/GlobalTaxRulesService.php::App\\Domains\\Billing\\Services\\GlobalTaxRulesService::isEInvoicingRequiredForCountry",
        "fqmn": "App\\Domains\\Billing\\Services\\GlobalTaxRulesService@isEInvoicingRequiredForCountry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Billing/Services/GlobalTaxRulesService.php::App\\Domains\\Billing\\Services\\GlobalTaxRulesService::isMultiLanguageRequiredForCountry",
        "fqmn": "App\\Domains\\Billing\\Services\\GlobalTaxRulesService@isMultiLanguageRequiredForCountry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Billing/Services/GlobalTaxRulesService.php::App\\Domains\\Billing\\Services\\GlobalTaxRulesService::isQrRequiredForCountry",
        "fqmn": "App\\Domains\\Billing\\Services\\GlobalTaxRulesService@isQrRequiredForCountry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Billing/Services/InvoiceGeneratorService.php::App\\Domains\\Billing\\Services\\InvoiceGeneratorService::__construct",
        "fqmn": "App\\Domains\\Billing\\Services\\InvoiceGeneratorService@__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/Billing/Services/InvoiceGeneratorService.php::App\\Domains\\Billing\\Services\\InvoiceGeneratorService::generateAndStore",
        "fqmn": "App\\Domains\\Billing\\Services\\InvoiceGeneratorService@generateAndStore",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Billing/Services/InvoiceGeneratorService.php::App\\Domains\\Billing\\Services\\InvoiceGeneratorService::handle",
        "fqmn": "App\\Domains\\Billing\\Services\\InvoiceGeneratorService@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/Doma",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Domains/Billing/Services/MaintenanceInvoiceService.php::App\\Domains\\Billing\\Services\\MaintenanceInvoiceService::generateInvoiceData",
        "fqmn": "App\\Domains\\Billing\\Services\\MaintenanceInvoiceService@generateInvoiceData",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Billing/Services/ReceiptService.php::App\\Domains\\Billing\\Services\\ReceiptService::generateReceipt",
        "fqmn": "App\\Domains\\Billing\\Services\\ReceiptService@generateReceipt",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Billing/Services/ReceiptService.php::App\\Domains\\Billing\\Services\\ReceiptService::storeReceipt",
        "fqmn": "App\\Domains\\Billing\\Services\\ReceiptService@storeReceipt",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Billing/Services/RentInvoiceService.php::App\\Domains\\Billing\\Services\\RentInvoiceService::generateInvoiceData",
        "fqmn": "App\\Domains\\Billing\\Services\\RentInvoiceService@generateInvoiceData",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::allForOrganization",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@allForOrganization",
        "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/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::countByTypeForOrganization",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@countByTypeForOrganization",
        "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/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::countForOrganization",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@countForOrganization",
        "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/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::findForOrganization",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@findForOrganization",
        "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/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::getByMimeTypeForOrganization",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@getByMimeTypeForOrganization",
        "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/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::getByTypeForOrganization",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@getByTypeForOrganization",
        "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/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::getByUploaderForOrganization",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@getByUploaderForOrganization",
        "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/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::getForEntity",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@getForEntity",
        "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/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::getLargeFiles",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@getLargeFiles",
        "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/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::getOrphanedFiles",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@getOrphanedFiles",
        "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/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::getRecentForOrganization",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@getRecentForOrganization",
        "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/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::getTotalStorageForOrganization",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@getTotalStorageForOrganization",
        "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/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::paginatedForOrganization",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@paginatedForOrganization",
        "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/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::search",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@search",
        "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/Files/Resources/FileResource.php::App\\Domains\\Files\\Resources\\FileResource::form",
        "fqmn": "App\\Domains\\Files\\Resources\\FileResource@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/Files/Resources/FileResource.php::App\\Domains\\Files\\Resources\\FileResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Files\\Resources\\FileResource@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/Files/Resources/FileResource.php::App\\Domains\\Files\\Resources\\FileResource::getModelLabel",
        "fqmn": "App\\Domains\\Files\\Resources\\FileResource@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/Files/Resources/FileResource.php::App\\Domains\\Files\\Resources\\FileResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Files\\Resources\\FileResource@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/Files/Resources/FileResource.php::App\\Domains\\Files\\Resources\\FileResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Files\\Resources\\FileResource@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/Files/Resources/FileResource.php::App\\Domains\\Files\\Resources\\FileResource::table",
        "fqmn": "App\\Domains\\Files\\Resources\\FileResource@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_DELETE",
        "surface_id": "method::app/Domains/Files/Services/FileSecurityService.php::App\\Domains\\Files\\Services\\FileSecurityService::scanForVirus",
        "fqmn": "App\\Domains\\Files\\Services\\FileSecurityService@scanForVirus",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Files/Services/FileSecurityService.php::App\\Domains\\Files\\Services\\FileSecurityService::validate",
        "fqmn": "App\\Domains\\Files\\Services\\FileSecurityService@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/Doma",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Domains/Files/Services/FileService.php::App\\Domains\\Files\\Services\\FileService::__construct",
        "fqmn": "App\\Domains\\Files\\Services\\FileService@__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/Files/Services/FileService.php::App\\Domains\\Files\\Services\\FileService::bulkStore",
        "fqmn": "App\\Domains\\Files\\Services\\FileService@bulkStore",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Files/Services/FileService.php::App\\Domains\\Files\\Services\\FileService::cleanupOrphanedFiles",
        "fqmn": "App\\Domains\\Files\\Services\\FileService@cleanupOrphanedFiles",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Files/Services/FileService.php::App\\Domains\\Files\\Services\\FileService::delete",
        "fqmn": "App\\Domains\\Files\\Services\\FileService@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/Doma",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Domains/Files/Services/FileService.php::App\\Domains\\Files\\Services\\FileService::getStorageStats",
        "fqmn": "App\\Domains\\Files\\Services\\FileService@getStorageStats",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Files/Services/FileService.php::App\\Domains\\Files\\Services\\FileService::store",
        "fqmn": "App\\Domains\\Files\\Services\\FileService@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/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/Imports/Constants/CsvImportSchema.php::App\\Domains\\Imports\\Constants\\CsvImportSchema::allSchemas",
        "fqmn": "App\\Domains\\Imports\\Constants\\CsvImportSchema@allSchemas",
        "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/Landlords/Actions/GetLandlordOverviewWidgetStatsAction.php::App\\Domains\\Landlords\\Actions\\GetLandlordOverviewWidgetStatsAction::execute",
        "fqmn": "App\\Domains\\Landlords\\Actions\\GetLandlordOverviewWidgetStatsAction@execute",
        "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/Landlords/Resources/LandlordDelegateResource.php::App\\Domains\\Landlords\\Resources\\LandlordDelegateResource::canViewAny",
        "fqmn": "App\\Domains\\Landlords\\Resources\\LandlordDelegateResource@canViewAny",
        "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/Landlords/Resources/LandlordDelegateResource.php::App\\Domains\\Landlords\\Resources\\LandlordDelegateResource::form",
        "fqmn": "App\\Domains\\Landlords\\Resources\\LandlordDelegateResource@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/Landlords/Resources/LandlordDelegateResource.php::App\\Domains\\Landlords\\Resources\\LandlordDelegateResource::getPages",
        "fqmn": "App\\Domains\\Landlords\\Resources\\LandlordDelegateResource@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/Landlords/Resources/LandlordDelegateResource.php::App\\Domains\\Landlords\\Resources\\LandlordDelegateResource::table",
        "fqmn": "App\\Domains\\Landlords\\Resources\\LandlordDelegateResource@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/Landlords/Resources/MyPropertiesResource.php::App\\Domains\\Landlords\\Resources\\MyPropertiesResource::canCreate",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@canCreate",
        "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/Landlords/Resources/MyPropertiesResource.php::App\\Domains\\Landlords\\Resources\\MyPropertiesResource::canDelete",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@canDelete",
        "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/Landlords/Resources/MyPropertiesResource.php::App\\Domains\\Landlords\\Resources\\MyPropertiesResource::canEdit",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@canEdit",
        "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/Landlords/Resources/MyPropertiesResource.php::App\\Domains\\Landlords\\Resources\\MyPropertiesResource::canView",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@canView",
        "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/Landlords/Resources/MyPropertiesResource.php::App\\Domains\\Landlords\\Resources\\MyPropertiesResource::canViewAny",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@canViewAny",
        "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/Landlords/Resources/MyPropertiesResource.php::App\\Domains\\Landlords\\Resources\\MyPropertiesResource::form",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@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/Landlords/Resources/MyPropertiesResource.php::App\\Domains\\Landlords\\Resources\\MyPropertiesResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@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/Landlords/Resources/MyPropertiesResource.php::App\\Domains\\Landlords\\Resources\\MyPropertiesResource::getModelLabel",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@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/Landlords/Resources/MyPropertiesResource.php::App\\Domains\\Landlords\\Resources\\MyPropertiesResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@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/Landlords/Resources/MyPropertiesResource.php::App\\Domains\\Landlords\\Resources\\MyPropertiesResource::getPages",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@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/Landlords/Resources/MyPropertiesResource.php::App\\Domains\\Landlords\\Resources\\MyPropertiesResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@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/Landlords/Resources/MyPropertiesResource.php::App\\Domains\\Landlords\\Resources\\MyPropertiesResource::table",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@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/Landlords/Resources/MyTenantsResource.php::App\\Domains\\Landlords\\Resources\\MyTenantsResource::canCreate",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTenantsResource@canCreate",
        "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/Landlords/Resources/MyTenantsResource.php::App\\Domains\\Landlords\\Resources\\MyTenantsResource::canDelete",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTenantsResource@canDelete",
        "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/Landlords/Resources/MyTenantsResource.php::App\\Domains\\Landlords\\Resources\\MyTenantsResource::canEdit",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTenantsResource@canEdit",
        "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/Landlords/Resources/MyTenantsResource.php::App\\Domains\\Landlords\\Resources\\MyTenantsResource::canView",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTenantsResource@canView",
        "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/Landlords/Resources/MyTenantsResource.php::App\\Domains\\Landlords\\Resources\\MyTenantsResource::canViewAny",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTenantsResource@canViewAny",
        "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/Landlords/Resources/MyTenantsResource.php::App\\Domains\\Landlords\\Resources\\MyTenantsResource::form",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTenantsResource@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/Landlords/Resources/MyTenantsResource.php::App\\Domains\\Landlords\\Resources\\MyTenantsResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTenantsResource@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/Landlords/Resources/MyTenantsResource.php::App\\Domains\\Landlords\\Resources\\MyTenantsResource::getModelLabel",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTenantsResource@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/Landlords/Resources/MyTenantsResource.php::App\\Domains\\Landlords\\Resources\\MyTenantsResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTenantsResource@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/Landlords/Resources/MyTenantsResource.php::App\\Domains\\Landlords\\Resources\\MyTenantsResource::getPages",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTenantsResource@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/Landlords/Resources/MyTenantsResource.php::App\\Domains\\Landlords\\Resources\\MyTenantsResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTenantsResource@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/Landlords/Resources/MyTenantsResource.php::App\\Domains\\Landlords\\Resources\\MyTenantsResource::table",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTenantsResource@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/Landlords/Resources/MyTransfersResource.php::App\\Domains\\Landlords\\Resources\\MyTransfersResource::canCreate",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTransfersResource@canCreate",
        "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/Landlords/Resources/MyTransfersResource.php::App\\Domains\\Landlords\\Resources\\MyTransfersResource::canDelete",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTransfersResource@canDelete",
        "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/Landlords/Resources/MyTransfersResource.php::App\\Domains\\Landlords\\Resources\\MyTransfersResource::canEdit",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTransfersResource@canEdit",
        "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/Landlords/Resources/MyTransfersResource.php::App\\Domains\\Landlords\\Resources\\MyTransfersResource::canView",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTransfersResource@canView",
        "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/Landlords/Resources/MyTransfersResource.php::App\\Domains\\Landlords\\Resources\\MyTransfersResource::canViewAny",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTransfersResource@canViewAny",
        "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/Landlords/Resources/MyTransfersResource.php::App\\Domains\\Landlords\\Resources\\MyTransfersResource::form",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTransfersResource@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/Landlords/Resources/MyTransfersResource.php::App\\Domains\\Landlords\\Resources\\MyTransfersResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTransfersResource@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/Landlords/Resources/MyTransfersResource.php::App\\Domains\\Landlords\\Resources\\MyTransfersResource::getModelLabel",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTransfersResource@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/Landlords/Resources/MyTransfersResource.php::App\\Domains\\Landlords\\Resources\\MyTransfersResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTransfersResource@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/Landlords/Resources/MyTransfersResource.php::App\\Domains\\Landlords\\Resources\\MyTransfersResource::getPages",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTransfersResource@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/Landlords/Resources/MyTransfersResource.php::App\\Domains\\Landlords\\Resources\\MyTransfersResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTransfersResource@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/Landlords/Resources/MyTransfersResource.php::App\\Domains\\Landlords\\Resources\\MyTransfersResource::table",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTransfersResource@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/Leases/Actions/CreateLeaseAction.php::App\\Domains\\Leases\\Actions\\CreateLeaseAction::__construct",
        "fqmn": "App\\Domains\\Leases\\Actions\\CreateLeaseAction@__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/Leases/Actions/CreateLeaseAction.php::App\\Domains\\Leases\\Actions\\CreateLeaseAction::execute",
        "fqmn": "App\\Domains\\Leases\\Actions\\CreateLeaseAction@execute",
        "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/Leases/Actions/GenerateRentCyclesAction.php::App\\Domains\\Leases\\Actions\\GenerateRentCyclesAction::__construct",
        "fqmn": "App\\Domains\\Leases\\Actions\\GenerateRentCyclesAction@__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/Leases/Actions/GenerateRentCyclesAction.php::App\\Domains\\Leases\\Actions\\GenerateRentCyclesAction::execute",
        "fqmn": "App\\Domains\\Leases\\Actions\\GenerateRentCyclesAction@execute",
        "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/Leases/Actions/UpdateLeaseAction.php::App\\Domains\\Leases\\Actions\\UpdateLeaseAction::__construct",
        "fqmn": "App\\Domains\\Leases\\Actions\\UpdateLeaseAction@__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/Leases/Actions/UpdateLeaseAction.php::App\\Domains\\Leases\\Actions\\UpdateLeaseAction::execute",
        "fqmn": "App\\Domains\\Leases\\Actions\\UpdateLeaseAction@execute",
        "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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::allForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@allForOrganization",
        "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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::countActiveForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@countActiveForOrganization",
        "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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::countForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@countForOrganization",
        "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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::findForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@findForOrganization",
        "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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::findOrFailForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@findOrFailForOrganization",
        "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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::getActiveForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@getActiveForOrganization",
        "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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::getCurrentLeaseForTenant",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@getCurrentLeaseForTenant",
        "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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::getCurrentLeaseForUnit",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@getCurrentLeaseForUnit",
        "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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::getExpiredForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@getExpiredForOrganization",
        "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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::getExpiringSoon",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@getExpiringSoon",
        "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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::getForLandlord",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@getForLandlord",
        "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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::getForTenant",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@getForTenant",
        "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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::getStartingSoon",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@getStartingSoon",
        "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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::paginatedForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@paginatedForOrganization",
        "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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::search",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@search",
        "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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::tenantHasActiveLease",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@tenantHasActiveLease",
        "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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::unitHasActiveLease",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@unitHasActiveLease",
        "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/Leases/Repositories/RentCycleRepository.php::App\\Domains\\Leases\\Repositories\\RentCycleRepository::allForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\RentCycleRepository@allForOrganization",
        "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/Leases/Repositories/RentCycleRepository.php::App\\Domains\\Leases\\Repositories\\RentCycleRepository::countByStatusForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\RentCycleRepository@countByStatusForOrganization",
        "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/Leases/Repositories/RentCycleRepository.php::App\\Domains\\Leases\\Repositories\\RentCycleRepository::findForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\RentCycleRepository@findForOrganization",
        "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/Leases/Repositories/RentCycleRepository.php::App\\Domains\\Leases\\Repositories\\RentCycleRepository::findOrFailForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\RentCycleRepository@findOrFailForOrganization",
        "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/Leases/Repositories/RentCycleRepository.php::App\\Domains\\Leases\\Repositories\\RentCycleRepository::getByStatusForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\RentCycleRepository@getByStatusForOrganization",
        "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/Leases/Repositories/RentCycleRepository.php::App\\Domains\\Leases\\Repositories\\RentCycleRepository::getDueInRange",
        "fqmn": "App\\Domains\\Leases\\Repositories\\RentCycleRepository@getDueInRange",
        "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/Leases/Repositories/RentCycleRepository.php::App\\Domains\\Leases\\Repositories\\RentCycleRepository::getDueSoon",
        "fqmn": "App\\Domains\\Leases\\Repositories\\RentCycleRepository@getDueSoon",
        "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/Leases/Repositories/RentCycleRepository.php::App\\Domains\\Leases\\Repositories\\RentCycleRepository::getDueToday",
        "fqmn": "App\\Domains\\Leases\\Repositories\\RentCycleRepository@getDueToday",
        "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/Leases/Repositories/RentCycleRepository.php::App\\Domains\\Leases\\Repositories\\RentCycleRepository::getForLandlord",
        "fqmn": "App\\Domains\\Leases\\Repositories\\RentCycleRepository@getForLandlord",
        "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/Leases/Repositories/RentCycleRepository.php::App\\Domains\\Leases\\Repositories\\RentCycleRepository::getForLease",
        "fqmn": "App\\Domains\\Leases\\Repositories\\RentCycleRepository@getForLease",
        "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/Leases/Repositories/RentCycleRepository.php::App\\Domains\\Leases\\Repositories\\RentCycleRepository::getForTenant",
        "fqmn": "App\\Domains\\Leases\\Repositories\\RentCycleRepository@getForTenant",
        "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/Leases/Repositories/RentCycleRepository.php::App\\Domains\\Leases\\Repositories\\RentCycleRepository::getMonthlyCollectionSummary",
        "fqmn": "App\\Domains\\Leases\\Repositories\\RentCycleRepository@getMonthlyCollectionSummary",
        "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/Leases/Repositories/RentCycleRepository.php::App\\Domains\\Leases\\Repositories\\RentCycleRepository::getOverdueForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\RentCycleRepository@getOverdueForOrganization",
        "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/Leases/Repositories/RentCycleRepository.php::App\\Domains\\Leases\\Repositories\\RentCycleRepository::getPendingForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\RentCycleRepository@getPendingForOrganization",
        "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/Leases/Repositories/RentCycleRepository.php::App\\Domains\\Leases\\Repositories\\RentCycleRepository::paginatedForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\RentCycleRepository@paginatedForOrganization",
        "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/Leases/Repositories/RentCycleRepository.php::App\\Domains\\Leases\\Repositories\\RentCycleRepository::updateStatus",
        "fqmn": "App\\Domains\\Leases\\Repositories\\RentCycleRepository@updateStatus",
        "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/Leases/Services/BookingService.php::App\\Domains\\Leases\\Services\\BookingService::__construct",
        "fqmn": "App\\Domains\\Leases\\Services\\BookingService@__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/Leases/Services/BookingService.php::App\\Domains\\Leases\\Services\\BookingService::cancelBooking",
        "fqmn": "App\\Domains\\Leases\\Services\\BookingService@cancelBooking",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Leases/Services/BookingService.php::App\\Domains\\Leases\\Services\\BookingService::convertToLease",
        "fqmn": "App\\Domains\\Leases\\Services\\BookingService@convertToLease",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Leases/Services/BookingService.php::App\\Domains\\Leases\\Services\\BookingService::createBooking",
        "fqmn": "App\\Domains\\Leases\\Services\\BookingService@createBooking",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Leases/Services/LeaseService.php::App\\Domains\\Leases\\Services\\LeaseService::__construct",
        "fqmn": "App\\Domains\\Leases\\Services\\LeaseService@__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/Leases/Services/LeaseService.php::App\\Domains\\Leases\\Services\\LeaseService::createLease",
        "fqmn": "App\\Domains\\Leases\\Services\\LeaseService@createLease",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Leases/Services/LeaseService.php::App\\Domains\\Leases\\Services\\LeaseService::generateRentCycles",
        "fqmn": "App\\Domains\\Leases\\Services\\LeaseService@generateRentCycles",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Leases/Services/LeaseService.php::App\\Domains\\Leases\\Services\\LeaseService::getLeaseStatistics",
        "fqmn": "App\\Domains\\Leases\\Services\\LeaseService@getLeaseStatistics",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Leases/Services/LeaseService.php::App\\Domains\\Leases\\Services\\LeaseService::getUpcomingDueDates",
        "fqmn": "App\\Domains\\Leases\\Services\\LeaseService@getUpcomingDueDates",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Leases/Services/LeaseService.php::App\\Domains\\Leases\\Services\\LeaseService::markOverdueRentCycles",
        "fqmn": "App\\Domains\\Leases\\Services\\LeaseService@markOverdueRentCycles",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Leases/Services/LeaseService.php::App\\Domains\\Leases\\Services\\LeaseService::regenerateRentCycles",
        "fqmn": "App\\Domains\\Leases\\Services\\LeaseService@regenerateRentCycles",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Leases/Services/LeaseService.php::App\\Domains\\Leases\\Services\\LeaseService::terminateLease",
        "fqmn": "App\\Domains\\Leases\\Services\\LeaseService@terminateLease",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Leases/Services/LeaseService.php::App\\Domains\\Leases\\Services\\LeaseService::updateLease",
        "fqmn": "App\\Domains\\Leases\\Services\\LeaseService@updateLease",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Maintenance/Actions/AssignSlaToTicketAction.php::App\\Domains\\Maintenance\\Actions\\AssignSlaToTicketAction::__construct",
        "fqmn": "App\\Domains\\Maintenance\\Actions\\AssignSlaToTicketAction@__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/Maintenance/Actions/AssignSlaToTicketAction.php::App\\Domains\\Maintenance\\Actions\\AssignSlaToTicketAction::execute",
        "fqmn": "App\\Domains\\Maintenance\\Actions\\AssignSlaToTicketAction@execute",
        "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/Maintenance/Actions/ExtendSlaAction.php::App\\Domains\\Maintenance\\Actions\\ExtendSlaAction::__construct",
        "fqmn": "App\\Domains\\Maintenance\\Actions\\ExtendSlaAction@__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/Maintenance/Actions/ExtendSlaAction.php::App\\Domains\\Maintenance\\Actions\\ExtendSlaAction::execute",
        "fqmn": "App\\Domains\\Maintenance\\Actions\\ExtendSlaAction@execute",
        "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/Maintenance/Actions/PauseSlaAction.php::App\\Domains\\Maintenance\\Actions\\PauseSlaAction::__construct",
        "fqmn": "App\\Domains\\Maintenance\\Actions\\PauseSlaAction@__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/Maintenance/Actions/PauseSlaAction.php::App\\Domains\\Maintenance\\Actions\\PauseSlaAction::execute",
        "fqmn": "App\\Domains\\Maintenance\\Actions\\PauseSlaAction@execute",
        "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/Maintenance/Actions/ResumeSlaAction.php::App\\Domains\\Maintenance\\Actions\\ResumeSlaAction::__construct",
        "fqmn": "App\\Domains\\Maintenance\\Actions\\ResumeSlaAction@__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/Maintenance/Actions/ResumeSlaAction.php::App\\Domains\\Maintenance\\Actions\\ResumeSlaAction::execute",
        "fqmn": "App\\Domains\\Maintenance\\Actions\\ResumeSlaAction@execute",
        "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/Maintenance/Jobs/AggregateMaintenanceMetricsJob.php::App\\Domains\\Maintenance\\Jobs\\AggregateMaintenanceMetricsJob::__construct",
        "fqmn": "App\\Domains\\Maintenance\\Jobs\\AggregateMaintenanceMetricsJob@__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/Maintenance/Jobs/AggregateMaintenanceMetricsJob.php::App\\Domains\\Maintenance\\Jobs\\AggregateMaintenanceMetricsJob::handle",
        "fqmn": "App\\Domains\\Maintenance\\Jobs\\AggregateMaintenanceMetricsJob@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/Maintenance/Jobs/CheckMaintenanceSLAsJob.php::App\\Domains\\Maintenance\\Jobs\\CheckMaintenanceSLAsJob::handle",
        "fqmn": "App\\Domains\\Maintenance\\Jobs\\CheckMaintenanceSLAsJob@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/Maintenance/Jobs/EscalateMaintenanceTicketJob.php::App\\Domains\\Maintenance\\Jobs\\EscalateMaintenanceTicketJob::__construct",
        "fqmn": "App\\Domains\\Maintenance\\Jobs\\EscalateMaintenanceTicketJob@__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/Maintenance/Jobs/EscalateMaintenanceTicketJob.php::App\\Domains\\Maintenance\\Jobs\\EscalateMaintenanceTicketJob::handle",
        "fqmn": "App\\Domains\\Maintenance\\Jobs\\EscalateMaintenanceTicketJob@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/Maintenance/Jobs/GenerateMaintenanceSuggestionJob.php::App\\Domains\\Maintenance\\Jobs\\GenerateMaintenanceSuggestionJob::__construct",
        "fqmn": "App\\Domains\\Maintenance\\Jobs\\GenerateMaintenanceSuggestionJob@__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/Maintenance/Jobs/GenerateMaintenanceSuggestionJob.php::App\\Domains\\Maintenance\\Jobs\\GenerateMaintenanceSuggestionJob::handle",
        "fqmn": "App\\Domains\\Maintenance\\Jobs\\GenerateMaintenanceSuggestionJob@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/Maintenance/Jobs/SendTwilioTemplateMessageJob.php::App\\Domains\\Maintenance\\Jobs\\SendTwilioTemplateMessageJob::__construct",
        "fqmn": "App\\Domains\\Maintenance\\Jobs\\SendTwilioTemplateMessageJob@__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/Maintenance/Jobs/SendTwilioTemplateMessageJob.php::App\\Domains\\Maintenance\\Jobs\\SendTwilioTemplateMessageJob::handle",
        "fqmn": "App\\Domains\\Maintenance\\Jobs\\SendTwilioTemplateMessageJob@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/Maintenance/Jobs/SendWeeklyDigestJob.php::App\\Domains\\Maintenance\\Jobs\\SendWeeklyDigestJob::__construct",
        "fqmn": "App\\Domains\\Maintenance\\Jobs\\SendWeeklyDigestJob@__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/Maintenance/Jobs/SendWeeklyDigestJob.php::App\\Domains\\Maintenance\\Jobs\\SendWeeklyDigestJob::handle",
        "fqmn": "App\\Domains\\Maintenance\\Jobs\\SendWeeklyDigestJob@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/Maintenance/Jobs/StoreTwilioMediaJob.php::App\\Domains\\Maintenance\\Jobs\\StoreTwilioMediaJob::__construct",
        "fqmn": "App\\Domains\\Maintenance\\Jobs\\StoreTwilioMediaJob@__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/Maintenance/Jobs/StoreTwilioMediaJob.php::App\\Domains\\Maintenance\\Jobs\\StoreTwilioMediaJob::handle",
        "fqmn": "App\\Domains\\Maintenance\\Jobs\\StoreTwilioMediaJob@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/Maintenance/Listeners/RouteTicketToResponsibleParty.php::App\\Domains\\Maintenance\\Listeners\\RouteTicketToResponsibleParty::handle",
        "fqmn": "App\\Domains\\Maintenance\\Listeners\\RouteTicketToResponsibleParty@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/Maintenance/Listeners/SendApprovalNotifications.php::App\\Domains\\Maintenance\\Listeners\\SendApprovalNotifications::handle",
        "fqmn": "App\\Domains\\Maintenance\\Listeners\\SendApprovalNotifications@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/Maintenance/Listeners/SendCompletionNotifications.php::App\\Domains\\Maintenance\\Listeners\\SendCompletionNotifications::handle",
        "fqmn": "App\\Domains\\Maintenance\\Listeners\\SendCompletionNotifications@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/Maintenance/Listeners/SendLandlordApprovalRequest.php::App\\Domains\\Maintenance\\Listeners\\SendLandlordApprovalRequest::handle",
        "fqmn": "App\\Domains\\Maintenance\\Listeners\\SendLandlordApprovalRequest@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/Maintenance/Listeners/SendTenantConfirmation.php::App\\Domains\\Maintenance\\Listeners\\SendTenantConfirmation::handle",
        "fqmn": "App\\Domains\\Maintenance\\Listeners\\SendTenantConfirmation@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/Maintenance/Listeners/SendWorkerAssignmentNotification.php::App\\Domains\\Maintenance\\Listeners\\SendWorkerAssignmentNotification::handle",
        "fqmn": "App\\Domains\\Maintenance\\Listeners\\SendWorkerAssignmentNotification@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/Maintenance/Notifications/LandlordApprovalRequestNotification.php::App\\Domains\\Maintenance\\Notifications\\LandlordApprovalRequestNotification::sendTwilioNotification",
        "fqmn": "App\\Domains\\Maintenance\\Notifications\\LandlordApprovalRequestNotification@sendTwilioNotification",
        "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/Maintenance/Notifications/TenantTicketConfirmationNotification.php::App\\Domains\\Maintenance\\Notifications\\TenantTicketConfirmationNotification::sendTwilioNotification",
        "fqmn": "App\\Domains\\Maintenance\\Notifications\\TenantTicketConfirmationNotification@sendTwilioNotification",
        "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/Maintenance/Notifications/TicketCompletedNotification.php::App\\Domains\\Maintenance\\Notifications\\TicketCompletedNotification::sendTwilioNotification",
        "fqmn": "App\\Domains\\Maintenance\\Notifications\\TicketCompletedNotification@sendTwilioNotification",
        "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/Maintenance/Services/MaintenanceSlaService.php::App\\Domains\\Maintenance\\Services\\MaintenanceSlaService::assignSlaToTicket",
        "fqmn": "App\\Domains\\Maintenance\\Services\\MaintenanceSlaService@assignSlaToTicket",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Maintenance/Services/MaintenanceSlaService.php::App\\Domains\\Maintenance\\Services\\MaintenanceSlaService::extendSla",
        "fqmn": "App\\Domains\\Maintenance\\Services\\MaintenanceSlaService@extendSla",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Maintenance/Services/MaintenanceSlaService.php::App\\Domains\\Maintenance\\Services\\MaintenanceSlaService::pauseSla",
        "fqmn": "App\\Domains\\Maintenance\\Services\\MaintenanceSlaService@pauseSla",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Maintenance/Services/MaintenanceSlaService.php::App\\Domains\\Maintenance\\Services\\MaintenanceSlaService::resumeSla",
        "fqmn": "App\\Domains\\Maintenance\\Services\\MaintenanceSlaService@resumeSla",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Outreach/Actions/LogDeliveryEvent.php::App\\Domains\\Outreach\\Actions\\LogDeliveryEvent::__construct",
        "fqmn": "App\\Domains\\Outreach\\Actions\\LogDeliveryEvent@__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/Outreach/Actions/LogDeliveryEvent.php::App\\Domains\\Outreach\\Actions\\LogDeliveryEvent::execute",
        "fqmn": "App\\Domains\\Outreach\\Actions\\LogDeliveryEvent@execute",
        "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/Outreach/Actions/LogReplyMessage.php::App\\Domains\\Outreach\\Actions\\LogReplyMessage::__construct",
        "fqmn": "App\\Domains\\Outreach\\Actions\\LogReplyMessage@__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/Outreach/Actions/LogReplyMessage.php::App\\Domains\\Outreach\\Actions\\LogReplyMessage::execute",
        "fqmn": "App\\Domains\\Outreach\\Actions\\LogReplyMessage@execute",
        "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/Outreach/Actions/ProcessIncomingWebhook.php::App\\Domains\\Outreach\\Actions\\ProcessIncomingWebhook::execute",
        "fqmn": "App\\Domains\\Outreach\\Actions\\ProcessIncomingWebhook@execute",
        "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/Outreach/Actions/SyncConversationCost.php::App\\Domains\\Outreach\\Actions\\SyncConversationCost::__construct",
        "fqmn": "App\\Domains\\Outreach\\Actions\\SyncConversationCost@__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/Outreach/Actions/SyncConversationCost.php::App\\Domains\\Outreach\\Actions\\SyncConversationCost::execute",
        "fqmn": "App\\Domains\\Outreach\\Actions\\SyncConversationCost@execute",
        "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/Outreach/Actions/UpdateCampaignStats.php::App\\Domains\\Outreach\\Actions\\UpdateCampaignStats::execute",
        "fqmn": "App\\Domains\\Outreach\\Actions\\UpdateCampaignStats@execute",
        "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/Outreach/Jobs/FetchDeliveryStatusJob.php::App\\Domains\\Outreach\\Jobs\\FetchDeliveryStatusJob::__construct",
        "fqmn": "App\\Domains\\Outreach\\Jobs\\FetchDeliveryStatusJob@__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/Outreach/Jobs/FetchDeliveryStatusJob.php::App\\Domains\\Outreach\\Jobs\\FetchDeliveryStatusJob::handle",
        "fqmn": "App\\Domains\\Outreach\\Jobs\\FetchDeliveryStatusJob@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/Outreach/Jobs/ProcessWebhookJob.php::App\\Domains\\Outreach\\Jobs\\ProcessWebhookJob::__construct",
        "fqmn": "App\\Domains\\Outreach\\Jobs\\ProcessWebhookJob@__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/Outreach/Jobs/ProcessWebhookJob.php::App\\Domains\\Outreach\\Jobs\\ProcessWebhookJob::handle",
        "fqmn": "App\\Domains\\Outreach\\Jobs\\ProcessWebhookJob@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/Outreach/Jobs/SendWhatsAppMessageJob.php::App\\Domains\\Outreach\\Jobs\\SendWhatsAppMessageJob::__construct",
        "fqmn": "App\\Domains\\Outreach\\Jobs\\SendWhatsAppMessageJob@__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/Outreach/Jobs/SendWhatsAppMessageJob.php::App\\Domains\\Outreach\\Jobs\\SendWhatsAppMessageJob::handle",
        "fqmn": "App\\Domains\\Outreach\\Jobs\\SendWhatsAppMessageJob@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/Outreach/Jobs/SyncConversationCostsJob.php::App\\Domains\\Outreach\\Jobs\\SyncConversationCostsJob::__construct",
        "fqmn": "App\\Domains\\Outreach\\Jobs\\SyncConversationCostsJob@__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/Outreach/Jobs/SyncConversationCostsJob.php::App\\Domains\\Outreach\\Jobs\\SyncConversationCostsJob::handle",
        "fqmn": "App\\Domains\\Outreach\\Jobs\\SyncConversationCostsJob@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/Outreach/Pipelines/DeliveryStatusPipeline.php::App\\Domains\\Outreach\\Pipelines\\DeliveryStatusPipeline::handle",
        "fqmn": "App\\Domains\\Outreach\\Pipelines\\DeliveryStatusPipeline@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/Outreach/Services/AudienceHealthService.php::App\\Domains\\Outreach\\Services\\AudienceHealthService::getBlockedOptOut",
        "fqmn": "App\\Domains\\Outreach\\Services\\AudienceHealthService@getBlockedOptOut",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Outreach/Services/AudienceHealthService.php::App\\Domains\\Outreach\\Services\\AudienceHealthService::getInvalidNumbers",
        "fqmn": "App\\Domains\\Outreach\\Services\\AudienceHealthService@getInvalidNumbers",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Outreach/Services/AudienceHealthService.php::App\\Domains\\Outreach\\Services\\AudienceHealthService::getValidNumbers",
        "fqmn": "App\\Domains\\Outreach\\Services\\AudienceHealthService@getValidNumbers",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Outreach/Services/AudienceHealthService.php::App\\Domains\\Outreach\\Services\\AudienceHealthService::getWANumberHealth",
        "fqmn": "App\\Domains\\Outreach\\Services\\AudienceHealthService@getWANumberHealth",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Outreach/Services/BillingService.php::App\\Domains\\Outreach\\Services\\BillingService::getCampaignCostBreakdown",
        "fqmn": "App\\Domains\\Outreach\\Services\\BillingService@getCampaignCostBreakdown",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Outreach/Services/BillingService.php::App\\Domains\\Outreach\\Services\\BillingService::getConversationCosts",
        "fqmn": "App\\Domains\\Outreach\\Services\\BillingService@getConversationCosts",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Outreach/Services/BillingService.php::App\\Domains\\Outreach\\Services\\BillingService::getConversationTypes",
        "fqmn": "App\\Domains\\Outreach\\Services\\BillingService@getConversationTypes",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Outreach/Services/BillingService.php::App\\Domains\\Outreach\\Services\\BillingService::getCostOptimization",
        "fqmn": "App\\Domains\\Outreach\\Services\\BillingService@getCostOptimization",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Outreach/Services/CampaignAnalyticsService.php::App\\Domains\\Outreach\\Services\\CampaignAnalyticsService::getABTestResults",
        "fqmn": "App\\Domains\\Outreach\\Services\\CampaignAnalyticsService@getABTestResults",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Outreach/Services/CampaignAnalyticsService.php::App\\Domains\\Outreach\\Services\\CampaignAnalyticsService::getAllCampaigns",
        "fqmn": "App\\Domains\\Outreach\\Services\\CampaignAnalyticsService@getAllCampaigns",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Outreach/Services/CampaignAnalyticsService.php::App\\Domains\\Outreach\\Services\\CampaignAnalyticsService::getCampaignPerformance",
        "fqmn": "App\\Domains\\Outreach\\Services\\CampaignAnalyticsService@getCampaignPerformance",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Outreach/Services/CampaignAnalyticsService.php::App\\Domains\\Outreach\\Services\\CampaignAnalyticsService::getFunnels",
        "fqmn": "App\\Domains\\Outreach\\Services\\CampaignAnalyticsService@getFunnels",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Outreach/Services/CampaignAnalyticsService.php::App\\Domains\\Outreach\\Services\\CampaignAnalyticsService::getQualityScore",
        "fqmn": "App\\Domains\\Outreach\\Services\\CampaignAnalyticsService@getQualityScore",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Outreach/Services/DeliveryStatusService.php::App\\Domains\\Outreach\\Services\\DeliveryStatusService::getDelivered",
        "fqmn": "App\\Domains\\Outreach\\Services\\DeliveryStatusService@getDelivered",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Outreach/Services/DeliveryStatusService.php::App\\Domains\\Outreach\\Services\\DeliveryStatusService::getDeliveryHeatmap",
        "fqmn": "App\\Domains\\Outreach\\Services\\DeliveryStatusService@getDeliveryHeatmap",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Outreach/Services/DeliveryStatusService.php::App\\Domains\\Outreach\\Services\\DeliveryStatusService::getFailed",
        "fqmn": "App\\Domains\\Outreach\\Services\\DeliveryStatusService@getFailed",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Outreach/Services/DeliveryStatusService.php::App\\Domains\\Outreach\\Services\\DeliveryStatusService::getRead",
        "fqmn": "App\\Domains\\Outreach\\Services\\DeliveryStatusService@getRead",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Outreach/Services/DeliveryStatusService.php::App\\Domains\\Outreach\\Services\\DeliveryStatusService::getSent",
        "fqmn": "App\\Domains\\Outreach\\Services\\DeliveryStatusService@getSent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Outreach/Services/DeliveryStatusService.php::App\\Domains\\Outreach\\Services\\DeliveryStatusService::getSummary",
        "fqmn": "App\\Domains\\Outreach\\Services\\DeliveryStatusService@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/Doma",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Domains/Outreach/Services/DeliveryStatusService.php::App\\Domains\\Outreach\\Services\\DeliveryStatusService::getTemplateErrors",
        "fqmn": "App\\Domains\\Outreach\\Services\\DeliveryStatusService@getTemplateErrors",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Outreach/Services/DeliveryStatusService.php::App\\Domains\\Outreach\\Services\\DeliveryStatusService::getUndelivered",
        "fqmn": "App\\Domains\\Outreach\\Services\\DeliveryStatusService@getUndelivered",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Outreach/Services/DeliverySyncService.php::App\\Domains\\Outreach\\Services\\DeliverySyncService::__construct",
        "fqmn": "App\\Domains\\Outreach\\Services\\DeliverySyncService@__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/Outreach/Services/DeliverySyncService.php::App\\Domains\\Outreach\\Services\\DeliverySyncService::syncStatus",
        "fqmn": "App\\Domains\\Outreach\\Services\\DeliverySyncService@syncStatus",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Outreach/Services/MessageSendService.php::App\\Domains\\Outreach\\Services\\MessageSendService::__construct",
        "fqmn": "App\\Domains\\Outreach\\Services\\MessageSendService@__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/Outreach/Services/MessageSendService.php::App\\Domains\\Outreach\\Services\\MessageSendService::send",
        "fqmn": "App\\Domains\\Outreach\\Services\\MessageSendService@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/Doma",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Domains/Outreach/Services/RepliesService.php::App\\Domains\\Outreach\\Services\\RepliesService::getAIClassifiedReplies",
        "fqmn": "App\\Domains\\Outreach\\Services\\RepliesService@getAIClassifiedReplies",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Outreach/Services/RepliesService.php::App\\Domains\\Outreach\\Services\\RepliesService::getAllReplies",
        "fqmn": "App\\Domains\\Outreach\\Services\\RepliesService@getAllReplies",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Outreach/Services/RepliesService.php::App\\Domains\\Outreach\\Services\\RepliesService::getFollowUpRequired",
        "fqmn": "App\\Domains\\Outreach\\Services\\RepliesService@getFollowUpRequired",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Outreach/Services/RepliesService.php::App\\Domains\\Outreach\\Services\\RepliesService::getInterested",
        "fqmn": "App\\Domains\\Outreach\\Services\\RepliesService@getInterested",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Outreach/Services/RepliesService.php::App\\Domains\\Outreach\\Services\\RepliesService::getNotInterested",
        "fqmn": "App\\Domains\\Outreach\\Services\\RepliesService@getNotInterested",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Outreach/Services/TemplateStatsService.php::App\\Domains\\Outreach\\Services\\TemplateStatsService::execute",
        "fqmn": "App\\Domains\\Outreach\\Services\\TemplateStatsService@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/Doma",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Domains/Outreach/Services/TemplateStatsService.php::App\\Domains\\Outreach\\Services\\TemplateStatsService::getTemplatePerformance",
        "fqmn": "App\\Domains\\Outreach\\Services\\TemplateStatsService@getTemplatePerformance",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Outreach/Services/TemplateStatsService.php::App\\Domains\\Outreach\\Services\\TemplateStatsService::getTemplateUsage",
        "fqmn": "App\\Domains\\Outreach\\Services\\TemplateStatsService@getTemplateUsage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Outreach/Services/WhatsAppApiService.php::App\\Domains\\Outreach\\Services\\WhatsAppApiService::__construct",
        "fqmn": "App\\Domains\\Outreach\\Services\\WhatsAppApiService@__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/Outreach/Services/WhatsAppApiService.php::App\\Domains\\Outreach\\Services\\WhatsAppApiService::checkPhoneQuality",
        "fqmn": "App\\Domains\\Outreach\\Services\\WhatsAppApiService@checkPhoneQuality",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Outreach/Services/WhatsAppApiService.php::App\\Domains\\Outreach\\Services\\WhatsAppApiService::getMessageStatus",
        "fqmn": "App\\Domains\\Outreach\\Services\\WhatsAppApiService@getMessageStatus",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Outreach/Services/WhatsAppApiService.php::App\\Domains\\Outreach\\Services\\WhatsAppApiService::getPhoneNumberInfo",
        "fqmn": "App\\Domains\\Outreach\\Services\\WhatsAppApiService@getPhoneNumberInfo",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Outreach/Services/WhatsAppApiService.php::App\\Domains\\Outreach\\Services\\WhatsAppApiService::listTemplates",
        "fqmn": "App\\Domains\\Outreach\\Services\\WhatsAppApiService@listTemplates",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Outreach/Services/WhatsAppApiService.php::App\\Domains\\Outreach\\Services\\WhatsAppApiService::sendMessage",
        "fqmn": "App\\Domains\\Outreach\\Services\\WhatsAppApiService@sendMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Outreach/Webhooks/WhatsAppWebhookController.php::App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController::__construct",
        "fqmn": "App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController@__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/Outreach/Webhooks/WhatsAppWebhookController.php::App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController::handle",
        "fqmn": "App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController@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/Payments/Actions/ApplyDeductionsAction.php::App\\Domains\\Payments\\Actions\\ApplyDeductionsAction::__construct",
        "fqmn": "App\\Domains\\Payments\\Actions\\ApplyDeductionsAction@__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/Payments/Actions/ApplyDeductionsAction.php::App\\Domains\\Payments\\Actions\\ApplyDeductionsAction::execute",
        "fqmn": "App\\Domains\\Payments\\Actions\\ApplyDeductionsAction@execute",
        "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/Payments/Actions/CreateTransactionAction.php::App\\Domains\\Payments\\Actions\\CreateTransactionAction::__construct",
        "fqmn": "App\\Domains\\Payments\\Actions\\CreateTransactionAction@__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/Payments/Actions/CreateTransactionAction.php::App\\Domains\\Payments\\Actions\\CreateTransactionAction::execute",
        "fqmn": "App\\Domains\\Payments\\Actions\\CreateTransactionAction@execute",
        "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/Payments/Actions/FinalizeTransactionAction.php::App\\Domains\\Payments\\Actions\\FinalizeTransactionAction::__construct",
        "fqmn": "App\\Domains\\Payments\\Actions\\FinalizeTransactionAction@__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/Payments/Actions/FinalizeTransactionAction.php::App\\Domains\\Payments\\Actions\\FinalizeTransactionAction::execute",
        "fqmn": "App\\Domains\\Payments\\Actions\\FinalizeTransactionAction@execute",
        "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/Payments/Actions/PersistDeductionsAction.php::App\\Domains\\Payments\\Actions\\PersistDeductionsAction::execute",
        "fqmn": "App\\Domains\\Payments\\Actions\\PersistDeductionsAction@execute",
        "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/Payments/Actions/RecordPaymentAction.php::App\\Domains\\Payments\\Actions\\RecordPaymentAction::__construct",
        "fqmn": "App\\Domains\\Payments\\Actions\\RecordPaymentAction@__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/Payments/Actions/RecordPaymentAction.php::App\\Domains\\Payments\\Actions\\RecordPaymentAction::execute",
        "fqmn": "App\\Domains\\Payments\\Actions\\RecordPaymentAction@execute",
        "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/Payments/Actions/VoidPaymentDeductionsAction.php::App\\Domains\\Payments\\Actions\\VoidPaymentDeductionsAction::execute",
        "fqmn": "App\\Domains\\Payments\\Actions\\VoidPaymentDeductionsAction@execute",
        "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/Payments/Listeners/RecordForfeitedBookingRevenue.php::App\\Domains\\Payments\\Listeners\\RecordForfeitedBookingRevenue::handle",
        "fqmn": "App\\Domains\\Payments\\Listeners\\RecordForfeitedBookingRevenue@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/Payments/Models/Deduction.php::App\\Domains\\Payments\\Models\\Deduction::calculateFromPercentage",
        "fqmn": "App\\Domains\\Payments\\Models\\Deduction@calculateFromPercentage",
        "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/Payments/Models/PaymentRequest.php::App\\Domains\\Payments\\Models\\PaymentRequest::landlord",
        "fqmn": "App\\Domains\\Payments\\Models\\PaymentRequest@landlord",
        "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/Payments/Models/PaymentRequest.php::App\\Domains\\Payments\\Models\\PaymentRequest::organization",
        "fqmn": "App\\Domains\\Payments\\Models\\PaymentRequest@organization",
        "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/Payments/Models/PaymentRequest.php::App\\Domains\\Payments\\Models\\PaymentRequest::tenant",
        "fqmn": "App\\Domains\\Payments\\Models\\PaymentRequest@tenant",
        "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/Payments/Models/PaymentRequest.php::App\\Domains\\Payments\\Models\\PaymentRequest::user",
        "fqmn": "App\\Domains\\Payments\\Models\\PaymentRequest@user",
        "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/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::allForOrganization",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@allForOrganization",
        "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/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::countForOrganization",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@countForOrganization",
        "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/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::findForOrganization",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@findForOrganization",
        "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/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::getByMethodForOrganization",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@getByMethodForOrganization",
        "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/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::getByStatusForOrganization",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@getByStatusForOrganization",
        "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/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::getForLandlord",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@getForLandlord",
        "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/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::getForTenant",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@getForTenant",
        "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/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::getInDateRangeForOrganization",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@getInDateRangeForOrganization",
        "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/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::getNeedingTransfer",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@getNeedingTransfer",
        "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/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::getRecentForOrganization",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@getRecentForOrganization",
        "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/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::paginatedForOrganization",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@paginatedForOrganization",
        "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/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::search",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@search",
        "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/Payments/Services/DeductionCalculator.php::App\\Domains\\Payments\\Services\\DeductionCalculator::calculate",
        "fqmn": "App\\Domains\\Payments\\Services\\DeductionCalculator@calculate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Payments/Services/DeductionCalculator.php::App\\Domains\\Payments\\Services\\DeductionCalculator::getDefaultTemplates",
        "fqmn": "App\\Domains\\Payments\\Services\\DeductionCalculator@getDefaultTemplates",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Payments/Services/PaymentProof/CachedPaymentProofAnalyzer.php::App\\Domains\\Payments\\Services\\PaymentProof\\CachedPaymentProofAnalyzer::__construct",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentProof\\CachedPaymentProofAnalyzer@__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/Payments/Services/PaymentProof/CachedPaymentProofAnalyzer.php::App\\Domains\\Payments\\Services\\PaymentProof\\CachedPaymentProofAnalyzer::analyze",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentProof\\CachedPaymentProofAnalyzer@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/Doma",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Domains/Payments/Services/PaymentProof/ChainPaymentProofAnalyzer.php::App\\Domains\\Payments\\Services\\PaymentProof\\ChainPaymentProofAnalyzer::__construct",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentProof\\ChainPaymentProofAnalyzer@__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/Payments/Services/PaymentProof/ChainPaymentProofAnalyzer.php::App\\Domains\\Payments\\Services\\PaymentProof\\ChainPaymentProofAnalyzer::analyze",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentProof\\ChainPaymentProofAnalyzer@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/Doma",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Domains/Payments/Services/PaymentProof/ManualReviewFallbackAnalyzer.php::App\\Domains\\Payments\\Services\\PaymentProof\\ManualReviewFallbackAnalyzer::analyze",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentProof\\ManualReviewFallbackAnalyzer@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/Doma",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Domains/Payments/Services/PaymentProof/OpenAIPaymentProofAnalyzer.php::App\\Domains\\Payments\\Services\\PaymentProof\\OpenAIPaymentProofAnalyzer::__construct",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentProof\\OpenAIPaymentProofAnalyzer@__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/Payments/Services/PaymentProof/OpenAIPaymentProofAnalyzer.php::App\\Domains\\Payments\\Services\\PaymentProof\\OpenAIPaymentProofAnalyzer::analyze",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentProof\\OpenAIPaymentProofAnalyzer@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/Doma",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Domains/Payments/Services/PaymentService.php::App\\Domains\\Payments\\Services\\PaymentService::__construct",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentService@__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/Payments/Services/PaymentService.php::App\\Domains\\Payments\\Services\\PaymentService::attachProof",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentService@attachProof",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Payments/Services/PaymentService.php::App\\Domains\\Payments\\Services\\PaymentService::createDeduction",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentService@createDeduction",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Payments/Services/PaymentService.php::App\\Domains\\Payments\\Services\\PaymentService::delete",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentService@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/Doma",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Domains/Payments/Services/PaymentService.php::App\\Domains\\Payments\\Services\\PaymentService::getPaymentStatistics",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentService@getPaymentStatistics",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Payments/Services/PaymentService.php::App\\Domains\\Payments\\Services\\PaymentService::recordPayment",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentService@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/Doma",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Domains/Payments/Services/PaymentService.php::App\\Domains\\Payments\\Services\\PaymentService::updateStatus",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentService@updateStatus",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Payments/Services/PaymentTransactionHandler.php::App\\Domains\\Payments\\Services\\PaymentTransactionHandler::executeWithRetry",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentTransactionHandler@executeWithRetry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Payments/Services/PaymentVerificationService.php::App\\Domains\\Payments\\Services\\PaymentVerificationService::__construct",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentVerificationService@__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/Payments/Services/PaymentVerificationService.php::App\\Domains\\Payments\\Services\\PaymentVerificationService::analyzeProof",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentVerificationService@analyzeProof",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Payments/Services/PaymentVerificationService.php::App\\Domains\\Payments\\Services\\PaymentVerificationService::approveProof",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentVerificationService@approveProof",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Payments/Services/PaymentVerificationService.php::App\\Domains\\Payments\\Services\\PaymentVerificationService::execute",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentVerificationService@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/Doma",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Domains/Payments/Services/PaymentVerificationService.php::App\\Domains\\Payments\\Services\\PaymentVerificationService::getPendingProofsCount",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentVerificationService@getPendingProofsCount",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Payments/Services/PaymentVerificationService.php::App\\Domains\\Payments\\Services\\PaymentVerificationService::getProofsRequiringReview",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentVerificationService@getProofsRequiringReview",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Payments/Services/PaymentVerificationService.php::App\\Domains\\Payments\\Services\\PaymentVerificationService::rejectProof",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentVerificationService@rejectProof",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Payments/Services/PaymentVerificationService.php::App\\Domains\\Payments\\Services\\PaymentVerificationService::submitProof",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentVerificationService@submitProof",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Payments/Services/TransactionService.php::App\\Domains\\Payments\\Services\\TransactionService::__construct",
        "fqmn": "App\\Domains\\Payments\\Services\\TransactionService@__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/Payments/Services/TransactionService.php::App\\Domains\\Payments\\Services\\TransactionService::createTransaction",
        "fqmn": "App\\Domains\\Payments\\Services\\TransactionService@createTransaction",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Payments/Services/TransactionService.php::App\\Domains\\Payments\\Services\\TransactionService::finalizeTransaction",
        "fqmn": "App\\Domains\\Payments\\Services\\TransactionService@finalizeTransaction",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Payments/Services/TransferService.php::App\\Domains\\Payments\\Services\\TransferService::bulkCompleteTransfers",
        "fqmn": "App\\Domains\\Payments\\Services\\TransferService@bulkCompleteTransfers",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Payments/Services/TransferService.php::App\\Domains\\Payments\\Services\\TransferService::completeTransfer",
        "fqmn": "App\\Domains\\Payments\\Services\\TransferService@completeTransfer",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Payments/Services/TransferService.php::App\\Domains\\Payments\\Services\\TransferService::createTransfer",
        "fqmn": "App\\Domains\\Payments\\Services\\TransferService@createTransfer",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Payments/Services/TransferService.php::App\\Domains\\Payments\\Services\\TransferService::failTransfer",
        "fqmn": "App\\Domains\\Payments\\Services\\TransferService@failTransfer",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Payments/Services/TransferService.php::App\\Domains\\Payments\\Services\\TransferService::getPendingTransfers",
        "fqmn": "App\\Domains\\Payments\\Services\\TransferService@getPendingTransfers",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Payments/Services/TransferService.php::App\\Domains\\Payments\\Services\\TransferService::getTransfersForLandlord",
        "fqmn": "App\\Domains\\Payments\\Services\\TransferService@getTransfersForLandlord",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Payments/Services/TransferService.php::App\\Domains\\Payments\\Services\\TransferService::getTransferStatistics",
        "fqmn": "App\\Domains\\Payments\\Services\\TransferService@getTransferStatistics",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Payments/Services/WalletService.php::App\\Domains\\Payments\\Services\\WalletService::applyEntry",
        "fqmn": "App\\Domains\\Payments\\Services\\WalletService@applyEntry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Payments/Services/WalletService.php::App\\Domains\\Payments\\Services\\WalletService::getOperatingWallet",
        "fqmn": "App\\Domains\\Payments\\Services\\WalletService@getOperatingWallet",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Payments/Services/WalletService.php::App\\Domains\\Payments\\Services\\WalletService::getTrustWallet",
        "fqmn": "App\\Domains\\Payments\\Services\\WalletService@getTrustWallet",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Payments/Services/WalletService.php::App\\Domains\\Payments\\Services\\WalletService::transfer",
        "fqmn": "App\\Domains\\Payments\\Services\\WalletService@transfer",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::allForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@allForOrganization",
        "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/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::countActiveForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@countActiveForOrganization",
        "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/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::countForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@countForOrganization",
        "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/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::delete",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@delete",
        "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/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::emailExistsInOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@emailExistsInOrganization",
        "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/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::findByEmailForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@findByEmailForOrganization",
        "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/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::findForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@findForOrganization",
        "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/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::findOrFailForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@findOrFailForOrganization",
        "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/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::getActiveForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@getActiveForOrganization",
        "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/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::paginatedForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@paginatedForOrganization",
        "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/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::search",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@search",
        "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/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::store",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@store",
        "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/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::update",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@update",
        "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/People/Repositories/TenantRepository.php::App\\Domains\\People\\Repositories\\TenantRepository::allForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\TenantRepository@allForOrganization",
        "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/People/Repositories/TenantRepository.php::App\\Domains\\People\\Repositories\\TenantRepository::countActiveForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\TenantRepository@countActiveForOrganization",
        "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/People/Repositories/TenantRepository.php::App\\Domains\\People\\Repositories\\TenantRepository::countForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\TenantRepository@countForOrganization",
        "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/People/Repositories/TenantRepository.php::App\\Domains\\People\\Repositories\\TenantRepository::delete",
        "fqmn": "App\\Domains\\People\\Repositories\\TenantRepository@delete",
        "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/People/Repositories/TenantRepository.php::App\\Domains\\People\\Repositories\\TenantRepository::emailExistsInOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\TenantRepository@emailExistsInOrganization",
        "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/People/Repositories/TenantRepository.php::App\\Domains\\People\\Repositories\\TenantRepository::findByEmailForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\TenantRepository@findByEmailForOrganization",
        "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/People/Repositories/TenantRepository.php::App\\Domains\\People\\Repositories\\TenantRepository::findForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\TenantRepository@findForOrganization",
        "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/People/Repositories/TenantRepository.php::App\\Domains\\People\\Repositories\\TenantRepository::findOrFailForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\TenantRepository@findOrFailForOrganization",
        "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/People/Repositories/TenantRepository.php::App\\Domains\\People\\Repositories\\TenantRepository::getActiveForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\TenantRepository@getActiveForOrganization",
        "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/People/Repositories/TenantRepository.php::App\\Domains\\People\\Repositories\\TenantRepository::paginatedForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\TenantRepository@paginatedForOrganization",
        "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/People/Repositories/TenantRepository.php::App\\Domains\\People\\Repositories\\TenantRepository::search",
        "fqmn": "App\\Domains\\People\\Repositories\\TenantRepository@search",
        "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/People/Repositories/TenantRepository.php::App\\Domains\\People\\Repositories\\TenantRepository::store",
        "fqmn": "App\\Domains\\People\\Repositories\\TenantRepository@store",
        "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/People/Repositories/TenantRepository.php::App\\Domains\\People\\Repositories\\TenantRepository::update",
        "fqmn": "App\\Domains\\People\\Repositories\\TenantRepository@update",
        "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/Properties/Repositories/PropertyRepository.php::App\\Domains\\Properties\\Repositories\\PropertyRepository::allForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\PropertyRepository@allForOrganization",
        "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/Properties/Repositories/PropertyRepository.php::App\\Domains\\Properties\\Repositories\\PropertyRepository::countActiveForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\PropertyRepository@countActiveForOrganization",
        "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/Properties/Repositories/PropertyRepository.php::App\\Domains\\Properties\\Repositories\\PropertyRepository::countForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\PropertyRepository@countForOrganization",
        "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/Properties/Repositories/PropertyRepository.php::App\\Domains\\Properties\\Repositories\\PropertyRepository::delete",
        "fqmn": "App\\Domains\\Properties\\Repositories\\PropertyRepository@delete",
        "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/Properties/Repositories/PropertyRepository.php::App\\Domains\\Properties\\Repositories\\PropertyRepository::findForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\PropertyRepository@findForOrganization",
        "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/Properties/Repositories/PropertyRepository.php::App\\Domains\\Properties\\Repositories\\PropertyRepository::findOrFailForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\PropertyRepository@findOrFailForOrganization",
        "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/Properties/Repositories/PropertyRepository.php::App\\Domains\\Properties\\Repositories\\PropertyRepository::getActiveForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\PropertyRepository@getActiveForOrganization",
        "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/Properties/Repositories/PropertyRepository.php::App\\Domains\\Properties\\Repositories\\PropertyRepository::getByTypeForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\PropertyRepository@getByTypeForOrganization",
        "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/Properties/Repositories/PropertyRepository.php::App\\Domains\\Properties\\Repositories\\PropertyRepository::getForLandlord",
        "fqmn": "App\\Domains\\Properties\\Repositories\\PropertyRepository@getForLandlord",
        "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/Properties/Repositories/PropertyRepository.php::App\\Domains\\Properties\\Repositories\\PropertyRepository::getStatisticsForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\PropertyRepository@getStatisticsForOrganization",
        "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/Properties/Repositories/PropertyRepository.php::App\\Domains\\Properties\\Repositories\\PropertyRepository::paginatedForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\PropertyRepository@paginatedForOrganization",
        "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/Properties/Repositories/PropertyRepository.php::App\\Domains\\Properties\\Repositories\\PropertyRepository::search",
        "fqmn": "App\\Domains\\Properties\\Repositories\\PropertyRepository@search",
        "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/Properties/Repositories/PropertyRepository.php::App\\Domains\\Properties\\Repositories\\PropertyRepository::store",
        "fqmn": "App\\Domains\\Properties\\Repositories\\PropertyRepository@store",
        "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/Properties/Repositories/PropertyRepository.php::App\\Domains\\Properties\\Repositories\\PropertyRepository::update",
        "fqmn": "App\\Domains\\Properties\\Repositories\\PropertyRepository@update",
        "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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::allForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@allForOrganization",
        "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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::assignTenant",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@assignTenant",
        "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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::codeExistsInProperty",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@codeExistsInProperty",
        "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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::countForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@countForOrganization",
        "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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::delete",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@delete",
        "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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::findForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@findForOrganization",
        "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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::findOrFailForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@findOrFailForOrganization",
        "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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::getByStatusForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@getByStatusForOrganization",
        "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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::getForProperty",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@getForProperty",
        "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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::getForTenant",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@getForTenant",
        "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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::getOccupiedForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@getOccupiedForOrganization",
        "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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::getStatisticsForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@getStatisticsForOrganization",
        "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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::getVacantForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@getVacantForOrganization",
        "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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::paginatedForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@paginatedForOrganization",
        "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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::search",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@search",
        "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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::store",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@store",
        "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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::update",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@update",
        "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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::vacateUnit",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@vacateUnit",
        "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/Properties/Services/UnitCompositionService.php::App\\Domains\\Properties\\Services\\UnitCompositionService::canBeShared",
        "fqmn": "App\\Domains\\Properties\\Services\\UnitCompositionService@canBeShared",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Properties/Services/UnitCompositionService.php::App\\Domains\\Properties\\Services\\UnitCompositionService::getCompositionText",
        "fqmn": "App\\Domains\\Properties\\Services\\UnitCompositionService@getCompositionText",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Properties/Services/UnitCompositionService.php::App\\Domains\\Properties\\Services\\UnitCompositionService::getMissingElements",
        "fqmn": "App\\Domains\\Properties\\Services\\UnitCompositionService@getMissingElements",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Properties/Services/UnitCompositionService.php::App\\Domains\\Properties\\Services\\UnitCompositionService::getVisualLayout",
        "fqmn": "App\\Domains\\Properties\\Services\\UnitCompositionService@getVisualLayout",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Properties/Services/UnitCompositionService.php::App\\Domains\\Properties\\Services\\UnitCompositionService::updateComposition",
        "fqmn": "App\\Domains\\Properties\\Services\\UnitCompositionService@updateComposition",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Properties/Services/UnitCompositionService.php::App\\Domains\\Properties\\Services\\UnitCompositionService::validateLayoutCompleteness",
        "fqmn": "App\\Domains\\Properties\\Services\\UnitCompositionService@validateLayoutCompleteness",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Reminders/Actions/CancelRemindersForRentCycleAction.php::App\\Domains\\Reminders\\Actions\\CancelRemindersForRentCycleAction::execute",
        "fqmn": "App\\Domains\\Reminders\\Actions\\CancelRemindersForRentCycleAction@execute",
        "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/Reminders/Actions/MapReminderTypeToTemplateTypeAction.php::App\\Domains\\Reminders\\Actions\\MapReminderTypeToTemplateTypeAction::__construct",
        "fqmn": "App\\Domains\\Reminders\\Actions\\MapReminderTypeToTemplateTypeAction@__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/Reminders/Actions/MapReminderTypeToTemplateTypeAction.php::App\\Domains\\Reminders\\Actions\\MapReminderTypeToTemplateTypeAction::execute",
        "fqmn": "App\\Domains\\Reminders\\Actions\\MapReminderTypeToTemplateTypeAction@execute",
        "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/Reminders/Actions/ProcessDueRemindersAction.php::App\\Domains\\Reminders\\Actions\\ProcessDueRemindersAction::__construct",
        "fqmn": "App\\Domains\\Reminders\\Actions\\ProcessDueRemindersAction@__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/Reminders/Actions/ProcessDueRemindersAction.php::App\\Domains\\Reminders\\Actions\\ProcessDueRemindersAction::run",
        "fqmn": "App\\Domains\\Reminders\\Actions\\ProcessDueRemindersAction@run",
        "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/Reminders/Actions/ScheduleRemindersForRentCycleAction.php::App\\Domains\\Reminders\\Actions\\ScheduleRemindersForRentCycleAction::__construct",
        "fqmn": "App\\Domains\\Reminders\\Actions\\ScheduleRemindersForRentCycleAction@__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/Reminders/Actions/ScheduleRemindersForRentCycleAction.php::App\\Domains\\Reminders\\Actions\\ScheduleRemindersForRentCycleAction::execute",
        "fqmn": "App\\Domains\\Reminders\\Actions\\ScheduleRemindersForRentCycleAction@execute",
        "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/Reminders/Jobs/BulkScheduleRemindersJob.php::App\\Domains\\Reminders\\Jobs\\BulkScheduleRemindersJob::__construct",
        "fqmn": "App\\Domains\\Reminders\\Jobs\\BulkScheduleRemindersJob@__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/Reminders/Jobs/BulkScheduleRemindersJob.php::App\\Domains\\Reminders\\Jobs\\BulkScheduleRemindersJob::handle",
        "fqmn": "App\\Domains\\Reminders\\Jobs\\BulkScheduleRemindersJob@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/Reminders/Jobs/DownloadInboundAttachmentJob.php::App\\Domains\\Reminders\\Jobs\\DownloadInboundAttachmentJob::__construct",
        "fqmn": "App\\Domains\\Reminders\\Jobs\\DownloadInboundAttachmentJob@__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/Reminders/Jobs/DownloadInboundAttachmentJob.php::App\\Domains\\Reminders\\Jobs\\DownloadInboundAttachmentJob::handle",
        "fqmn": "App\\Domains\\Reminders\\Jobs\\DownloadInboundAttachmentJob@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/Reminders/Jobs/ProcessRemindersJob.php::App\\Domains\\Reminders\\Jobs\\ProcessRemindersJob::handle",
        "fqmn": "App\\Domains\\Reminders\\Jobs\\ProcessRemindersJob@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/Reminders/Jobs/SendReminderJob.php::App\\Domains\\Reminders\\Jobs\\SendReminderJob::__construct",
        "fqmn": "App\\Domains\\Reminders\\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/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/Reminders/Jobs/SendReminderJob.php::App\\Domains\\Reminders\\Jobs\\SendReminderJob::handle",
        "fqmn": "App\\Domains\\Reminders\\Jobs\\SendReminderJob@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/Reminders/Jobs/SendReminderJob.php::App\\Domains\\Reminders\\Jobs\\SendReminderJob::tags",
        "fqmn": "App\\Domains\\Reminders\\Jobs\\SendReminderJob@tags",
        "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/Reminders/Repositories/ReminderRepository.php::App\\Domains\\Reminders\\Repositories\\ReminderRepository::countByChannelForOrganization",
        "fqmn": "App\\Domains\\Reminders\\Repositories\\ReminderRepository@countByChannelForOrganization",
        "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/Reminders/Repositories/ReminderRepository.php::App\\Domains\\Reminders\\Repositories\\ReminderRepository::countByStatusForOrganization",
        "fqmn": "App\\Domains\\Reminders\\Repositories\\ReminderRepository@countByStatusForOrganization",
        "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/Reminders/Repositories/ReminderRepository.php::App\\Domains\\Reminders\\Repositories\\ReminderRepository::deleteOldReminders",
        "fqmn": "App\\Domains\\Reminders\\Repositories\\ReminderRepository@deleteOldReminders",
        "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/Reminders/Repositories/ReminderRepository.php::App\\Domains\\Reminders\\Repositories\\ReminderRepository::findForOrganization",
        "fqmn": "App\\Domains\\Reminders\\Repositories\\ReminderRepository@findForOrganization",
        "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/Reminders/Repositories/ReminderRepository.php::App\\Domains\\Reminders\\Repositories\\ReminderRepository::getByChannelForOrganization",
        "fqmn": "App\\Domains\\Reminders\\Repositories\\ReminderRepository@getByChannelForOrganization",
        "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/Reminders/Repositories/ReminderRepository.php::App\\Domains\\Reminders\\Repositories\\ReminderRepository::getByStatusForOrganization",
        "fqmn": "App\\Domains\\Reminders\\Repositories\\ReminderRepository@getByStatusForOrganization",
        "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/Reminders/Repositories/ReminderRepository.php::App\\Domains\\Reminders\\Repositories\\ReminderRepository::getByTypeForOrganization",
        "fqmn": "App\\Domains\\Reminders\\Repositories\\ReminderRepository@getByTypeForOrganization",
        "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/Reminders/Repositories/ReminderRepository.php::App\\Domains\\Reminders\\Repositories\\ReminderRepository::getDue",
        "fqmn": "App\\Domains\\Reminders\\Repositories\\ReminderRepository@getDue",
        "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/Reminders/Repositories/ReminderRepository.php::App\\Domains\\Reminders\\Repositories\\ReminderRepository::getForTenant",
        "fqmn": "App\\Domains\\Reminders\\Repositories\\ReminderRepository@getForTenant",
        "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/Reminders/Repositories/ReminderRepository.php::App\\Domains\\Reminders\\Repositories\\ReminderRepository::getRecentForOrganization",
        "fqmn": "App\\Domains\\Reminders\\Repositories\\ReminderRepository@getRecentForOrganization",
        "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/Reminders/Repositories/ReminderRepository.php::App\\Domains\\Reminders\\Repositories\\ReminderRepository::paginatedForOrganization",
        "fqmn": "App\\Domains\\Reminders\\Repositories\\ReminderRepository@paginatedForOrganization",
        "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/Reminders/Services/CollectionInboxClassifier.php::App\\Domains\\Reminders\\Services\\CollectionInboxClassifier::classify",
        "fqmn": "App\\Domains\\Reminders\\Services\\CollectionInboxClassifier@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/Doma",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Domains/Reminders/Services/InboundMessageRouter.php::App\\Domains\\Reminders\\Services\\InboundMessageRouter::route",
        "fqmn": "App\\Domains\\Reminders\\Services\\InboundMessageRouter@route",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Reminders/Services/InboundMessageRouter.php::App\\Domains\\Reminders\\Services\\InboundMessageRouter::routeBatch",
        "fqmn": "App\\Domains\\Reminders\\Services\\InboundMessageRouter@routeBatch",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Reminders/Services/InboundMessageRouter.php::App\\Domains\\Reminders\\Services\\InboundMessageRouter::routeFromCanonical",
        "fqmn": "App\\Domains\\Reminders\\Services\\InboundMessageRouter@routeFromCanonical",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Reminders/Services/ReminderFailureHandler.php::App\\Domains\\Reminders\\Services\\ReminderFailureHandler::getDeadLetterQueue",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderFailureHandler@getDeadLetterQueue",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Reminders/Services/ReminderFailureHandler.php::App\\Domains\\Reminders\\Services\\ReminderFailureHandler::getFailureStatistics",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderFailureHandler@getFailureStatistics",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Reminders/Services/ReminderFailureHandler.php::App\\Domains\\Reminders\\Services\\ReminderFailureHandler::handleFailure",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderFailureHandler@handleFailure",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Reminders/Services/ReminderFailureHandler.php::App\\Domains\\Reminders\\Services\\ReminderFailureHandler::retry",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderFailureHandler@retry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Reminders/Services/ReminderMonitoringService.php::App\\Domains\\Reminders\\Services\\ReminderMonitoringService::getMetric",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderMonitoringService@getMetric",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Reminders/Services/ReminderMonitoringService.php::App\\Domains\\Reminders\\Services\\ReminderMonitoringService::getStatistics",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderMonitoringService@getStatistics",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Reminders/Services/ReminderMonitoringService.php::App\\Domains\\Reminders\\Services\\ReminderMonitoringService::logCancelled",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderMonitoringService@logCancelled",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Reminders/Services/ReminderMonitoringService.php::App\\Domains\\Reminders\\Services\\ReminderMonitoringService::logFailed",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderMonitoringService@logFailed",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Reminders/Services/ReminderMonitoringService.php::App\\Domains\\Reminders\\Services\\ReminderMonitoringService::logScheduled",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderMonitoringService@logScheduled",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Reminders/Services/ReminderMonitoringService.php::App\\Domains\\Reminders\\Services\\ReminderMonitoringService::logSent",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderMonitoringService@logSent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Reminders/Services/ReminderMonitoringService.php::App\\Domains\\Reminders\\Services\\ReminderMonitoringService::logTransition",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderMonitoringService@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/Doma",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Domains/Reminders/Services/ReminderScheduler.php::App\\Domains\\Reminders\\Services\\ReminderScheduler::__construct",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderScheduler@__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/Reminders/Services/ReminderScheduler.php::App\\Domains\\Reminders\\Services\\ReminderScheduler::scheduleBulk",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderScheduler@scheduleBulk",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Reminders/Services/ReminderScheduler.php::App\\Domains\\Reminders\\Services\\ReminderScheduler::scheduleForLease",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderScheduler@scheduleForLease",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Reminders/Services/ReminderScheduler.php::App\\Domains\\Reminders\\Services\\ReminderScheduler::scheduleForRentCycle",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderScheduler@scheduleForRentCycle",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Reminders/Services/ReminderService.php::App\\Domains\\Reminders\\Services\\ReminderService::__construct",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderService@__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/Reminders/Services/ReminderService.php::App\\Domains\\Reminders\\Services\\ReminderService::autoScheduleForRentCycle",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderService@autoScheduleForRentCycle",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Reminders/Services/ReminderService.php::App\\Domains\\Reminders\\Services\\ReminderService::cancelRemindersForRentCycle",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderService@cancelRemindersForRentCycle",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Reminders/Services/ReminderService.php::App\\Domains\\Reminders\\Services\\ReminderService::composeMessage",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderService@composeMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Reminders/Services/ReminderService.php::App\\Domains\\Reminders\\Services\\ReminderService::getReminderStatistics",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderService@getReminderStatistics",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Reminders/Services/ReminderService.php::App\\Domains\\Reminders\\Services\\ReminderService::mapReminderTypeToTemplateType",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderService@mapReminderTypeToTemplateType",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Reminders/Services/ReminderService.php::App\\Domains\\Reminders\\Services\\ReminderService::processDueReminders",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderService@processDueReminders",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Reminders/Services/ReminderService.php::App\\Domains\\Reminders\\Services\\ReminderService::scheduleReminder",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderService@scheduleReminder",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Reminders/Services/ReminderStateMachine.php::App\\Domains\\Reminders\\Services\\ReminderStateMachine::canTransition",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderStateMachine@canTransition",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Reminders/Services/ReminderStateMachine.php::App\\Domains\\Reminders\\Services\\ReminderStateMachine::getAllowedTransitions",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderStateMachine@getAllowedTransitions",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Reminders/Services/ReminderStateMachine.php::App\\Domains\\Reminders\\Services\\ReminderStateMachine::transition",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderStateMachine@transition",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Reminders/Services/ReminderTemplateRenderer.php::App\\Domains\\Reminders\\Services\\ReminderTemplateRenderer::render",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderTemplateRenderer@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/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/Reports/Repositories/AnalyticsRepository.php::App\\Domains\\Reports\\Repositories\\AnalyticsRepository::getCollectionEfficiencyByMonth",
        "fqmn": "App\\Domains\\Reports\\Repositories\\AnalyticsRepository@getCollectionEfficiencyByMonth",
        "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/Reports/Repositories/AnalyticsRepository.php::App\\Domains\\Reports\\Repositories\\AnalyticsRepository::getPaymentTotalsByStatus",
        "fqmn": "App\\Domains\\Reports\\Repositories\\AnalyticsRepository@getPaymentTotalsByStatus",
        "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/Reports/Repositories/AnalyticsRepository.php::App\\Domains\\Reports\\Repositories\\AnalyticsRepository::getPropertyPerformance",
        "fqmn": "App\\Domains\\Reports\\Repositories\\AnalyticsRepository@getPropertyPerformance",
        "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/Reports/Repositories/AnalyticsRepository.php::App\\Domains\\Reports\\Repositories\\AnalyticsRepository::getRentCycleCountsByStatus",
        "fqmn": "App\\Domains\\Reports\\Repositories\\AnalyticsRepository@getRentCycleCountsByStatus",
        "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/Reports/Repositories/AnalyticsRepository.php::App\\Domains\\Reports\\Repositories\\AnalyticsRepository::getTenantPaymentPatterns",
        "fqmn": "App\\Domains\\Reports\\Repositories\\AnalyticsRepository@getTenantPaymentPatterns",
        "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/Reports/Repositories/AnalyticsRepository.php::App\\Domains\\Reports\\Repositories\\AnalyticsRepository::getUnitUtilizationStats",
        "fqmn": "App\\Domains\\Reports\\Repositories\\AnalyticsRepository@getUnitUtilizationStats",
        "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/Reports/Resources/ReportResource.php::App\\Domains\\Reports\\Resources\\ReportResource::getModelLabel",
        "fqmn": "App\\Domains\\Reports\\Resources\\ReportResource@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/Reports/Resources/ReportResource.php::App\\Domains\\Reports\\Resources\\ReportResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Reports\\Resources\\ReportResource@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_DELETE",
        "surface_id": "method::app/Domains/Reports/Services/DashboardService.php::App\\Domains\\Reports\\Services\\DashboardService::getAgencyIncomeStats",
        "fqmn": "App\\Domains\\Reports\\Services\\DashboardService@getAgencyIncomeStats",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Reports/Services/DashboardService.php::App\\Domains\\Reports\\Services\\DashboardService::getCollectionTrend",
        "fqmn": "App\\Domains\\Reports\\Services\\DashboardService@getCollectionTrend",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Reports/Services/DashboardService.php::App\\Domains\\Reports\\Services\\DashboardService::getPerformanceIndicators",
        "fqmn": "App\\Domains\\Reports\\Services\\DashboardService@getPerformanceIndicators",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Reports/Services/DashboardService.php::App\\Domains\\Reports\\Services\\DashboardService::getQuickStats",
        "fqmn": "App\\Domains\\Reports\\Services\\DashboardService@getQuickStats",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Reports/Services/ReportExportService.php::App\\Domains\\Reports\\Services\\ReportExportService::exportCollectionReport",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportExportService@exportCollectionReport",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Reports/Services/ReportExportService.php::App\\Domains\\Reports\\Services\\ReportExportService::exportFinancialSummary",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportExportService@exportFinancialSummary",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Reports/Services/ReportExportService.php::App\\Domains\\Reports\\Services\\ReportExportService::exportOverdueReport",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportExportService@exportOverdueReport",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Reports/Services/ReportExportService.php::App\\Domains\\Reports\\Services\\ReportExportService::exportRentRoll",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportExportService@exportRentRoll",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Reports/Services/ReportExportService.php::App\\Domains\\Reports\\Services\\ReportExportService::getCollectionReportHeaders",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportExportService@getCollectionReportHeaders",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Reports/Services/ReportExportService.php::App\\Domains\\Reports\\Services\\ReportExportService::getOverdueReportHeaders",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportExportService@getOverdueReportHeaders",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Reports/Services/ReportExportService.php::App\\Domains\\Reports\\Services\\ReportExportService::getRentRollHeaders",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportExportService@getRentRollHeaders",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Reports/Services/ReportService.php::App\\Domains\\Reports\\Services\\ReportService::getLandlordSummary",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportService@getLandlordSummary",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Reports/Services/ReportService.php::App\\Domains\\Reports\\Services\\ReportService::getMonthlyCollections",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportService@getMonthlyCollections",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Reports/Services/ReportService.php::App\\Domains\\Reports\\Services\\ReportService::getOccupancyTrends",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportService@getOccupancyTrends",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Reports/Services/ReportService.php::App\\Domains\\Reports\\Services\\ReportService::getOrganizationSummary",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportService@getOrganizationSummary",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Reports/Services/ReportService.php::App\\Domains\\Reports\\Services\\ReportService::getTenantSummary",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportService@getTenantSummary",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Reports/Services/ReportService.php::App\\Domains\\Reports\\Services\\ReportService::getTopProperties",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportService@getTopProperties",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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::canCreate",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@canCreate",
        "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::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::getEloquentQuery",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@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/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::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/MyCommissionsResource/Pages/ViewCommission.php::App\\Domains\\Sales\\Resources\\MyCommissionsResource\\Pages\\ViewCommission::infolist",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource\\Pages\\ViewCommission@infolist",
        "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/MyInvoicesResource.php::App\\Domains\\Sales\\Resources\\MyInvoicesResource::canCreate",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyInvoicesResource@canCreate",
        "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/MyInvoicesResource.php::App\\Domains\\Sales\\Resources\\MyInvoicesResource::form",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyInvoicesResource@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/MyInvoicesResource.php::App\\Domains\\Sales\\Resources\\MyInvoicesResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyInvoicesResource@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/Sales/Resources/MyInvoicesResource.php::App\\Domains\\Sales\\Resources\\MyInvoicesResource::getModelLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyInvoicesResource@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/MyInvoicesResource.php::App\\Domains\\Sales\\Resources\\MyInvoicesResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyInvoicesResource@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/MyInvoicesResource.php::App\\Domains\\Sales\\Resources\\MyInvoicesResource::getPages",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyInvoicesResource@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/MyInvoicesResource.php::App\\Domains\\Sales\\Resources\\MyInvoicesResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyInvoicesResource@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/MyInvoicesResource.php::App\\Domains\\Sales\\Resources\\MyInvoicesResource::table",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyInvoicesResource@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/MyOrganizationsResource.php::App\\Domains\\Sales\\Resources\\MyOrganizationsResource::canCreate",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@canCreate",
        "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/MyOrganizationsResource.php::App\\Domains\\Sales\\Resources\\MyOrganizationsResource::form",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@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/MyOrganizationsResource.php::App\\Domains\\Sales\\Resources\\MyOrganizationsResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@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/Sales/Resources/MyOrganizationsResource.php::App\\Domains\\Sales\\Resources\\MyOrganizationsResource::getModelLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@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/MyOrganizationsResource.php::App\\Domains\\Sales\\Resources\\MyOrganizationsResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@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/MyOrganizationsResource.php::App\\Domains\\Sales\\Resources\\MyOrganizationsResource::getPages",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@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/MyOrganizationsResource.php::App\\Domains\\Sales\\Resources\\MyOrganizationsResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@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/MyOrganizationsResource.php::App\\Domains\\Sales\\Resources\\MyOrganizationsResource::table",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@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/AuditLogResource.php::App\\Domains\\SuperAdmin\\Resources\\AuditLogResource::canViewAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\AuditLogResource@canViewAny",
        "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/AuditLogResource.php::App\\Domains\\SuperAdmin\\Resources\\AuditLogResource::getEloquentQuery",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\AuditLogResource@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/AuditLogResource.php::App\\Domains\\SuperAdmin\\Resources\\AuditLogResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\AuditLogResource@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/AuditLogResource.php::App\\Domains\\SuperAdmin\\Resources\\AuditLogResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\AuditLogResource@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/AuditLogResource.php::App\\Domains\\SuperAdmin\\Resources\\AuditLogResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\AuditLogResource@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/AuditLogResource/Pages/ListAudit.php::App\\Domains\\SuperAdmin\\Resources\\AuditLogResource\\Pages\\ListAudit::getTitle",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\AuditLogResource\\Pages\\ListAudit@getTitle",
        "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/BillingAdminActionsResource.php::App\\Domains\\SuperAdmin\\Resources\\BillingAdminActionsResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingAdminActionsResource@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/BillingAdminActionsResource/Pages/ListBillingAdminActions.php::App\\Domains\\SuperAdmin\\Resources\\BillingAdminActionsResource\\Pages\\ListBillingAdminActions::getTitle",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingAdminActionsResource\\Pages\\ListBillingAdminActions@getTitle",
        "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::canViewAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@canViewAny",
        "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::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::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@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/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/BillingEventLogResource/Pages/ListBillingEventLogEntries.php::App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource\\Pages\\ListBillingEventLogEntries::getTitle",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource\\Pages\\ListBillingEventLogEntries@getTitle",
        "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/BillingReconciliationResource.php::App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource::canViewAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource@canViewAny",
        "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/BillingReconciliationResource.php::App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource@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/BillingReconciliationResource.php::App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource@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/BillingReconciliationResource.php::App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource@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/BillingReconciliationResource/Pages/BillingReconciliation.php::App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource\\Pages\\BillingReconciliation::mount",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource\\Pages\\BillingReconciliation@mount",
        "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/ClickLogResource.php::App\\Domains\\SuperAdmin\\Resources\\ClickLogResource::canView",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ClickLogResource@canView",
        "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/ClickLogResource.php::App\\Domains\\SuperAdmin\\Resources\\ClickLogResource::canViewAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ClickLogResource@canViewAny",
        "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/ClickLogResource.php::App\\Domains\\SuperAdmin\\Resources\\ClickLogResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ClickLogResource@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/ClickLogResource.php::App\\Domains\\SuperAdmin\\Resources\\ClickLogResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ClickLogResource@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/ClickLogResource.php::App\\Domains\\SuperAdmin\\Resources\\ClickLogResource::getRelations",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ClickLogResource@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/ClickLogResource.php::App\\Domains\\SuperAdmin\\Resources\\ClickLogResource::maskIp",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ClickLogResource@maskIp",
        "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/ClickLogResource.php::App\\Domains\\SuperAdmin\\Resources\\ClickLogResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ClickLogResource@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/ClickLogResource.php::App\\Domains\\SuperAdmin\\Resources\\ClickLogResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ClickLogResource@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/DiscountCodeResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource@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/DiscountCodeResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource@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/DiscountCodeResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource::getRelations",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource@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/DiscountCodeResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource@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/DiscountCodeResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource@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/DiscountCodeResource/RelationManagers/UsagesRelationManager.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource\\RelationManagers\\UsagesRelationManager::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource\\RelationManagers\\UsagesRelationManager@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/DiscountCodeResource/RelationManagers/UsagesRelationManager.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource\\RelationManagers\\UsagesRelationManager::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource\\RelationManagers\\UsagesRelationManager@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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::canCreate",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@canCreate",
        "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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::canDelete",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@canDelete",
        "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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::canDeleteAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@canDeleteAny",
        "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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::canEdit",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@canEdit",
        "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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::canView",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@canView",
        "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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::canViewAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@canViewAny",
        "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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::getEloquentQuery",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::getRelations",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@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/DiscountCodeUsageResource/Pages/ViewDiscountCodeUsage.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource\\Pages\\ViewDiscountCodeUsage::infolist",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource\\Pages\\ViewDiscountCodeUsage@infolist",
        "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/EmailTemplateResource.php::App\\Domains\\SuperAdmin\\Resources\\EmailTemplateResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\EmailTemplateResource@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/EmailTemplateResource.php::App\\Domains\\SuperAdmin\\Resources\\EmailTemplateResource::getModelLabel",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\EmailTemplateResource@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/EmailTemplateResource.php::App\\Domains\\SuperAdmin\\Resources\\EmailTemplateResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\EmailTemplateResource@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/EmailTemplateResource.php::App\\Domains\\SuperAdmin\\Resources\\EmailTemplateResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\EmailTemplateResource@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/EmailTemplateResource.php::App\\Domains\\SuperAdmin\\Resources\\EmailTemplateResource::getRelations",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\EmailTemplateResource@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/EmailTemplateResource.php::App\\Domains\\SuperAdmin\\Resources\\EmailTemplateResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\EmailTemplateResource@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/EmailTemplateResource.php::App\\Domains\\SuperAdmin\\Resources\\EmailTemplateResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\EmailTemplateResource@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/GlobalUserResource.php::App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource@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/GlobalUserResource.php::App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource@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/GlobalUserResource.php::App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource@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/GlobalUserResource.php::App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource@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/GlobalUserResource/Pages/ListUsers.php::App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource\\Pages\\ListUsers::getTitle",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource\\Pages\\ListUsers@getTitle",
        "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/LeadResource.php::App\\Domains\\SuperAdmin\\Resources\\LeadResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\LeadResource@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/LeadResource.php::App\\Domains\\SuperAdmin\\Resources\\LeadResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\LeadResource@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/LeadResource.php::App\\Domains\\SuperAdmin\\Resources\\LeadResource::getRelations",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\LeadResource@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/LeadResource.php::App\\Domains\\SuperAdmin\\Resources\\LeadResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\LeadResource@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/MessagePackageResource.php::App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource@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/MessagePackageResource.php::App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource@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/MessagePackageResource.php::App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource::getRelations",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource@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/MessagePackageResource.php::App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource@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/MessagePackageResource.php::App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource@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/NotificationInsightsResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource::canViewAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource@canViewAny",
        "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/NotificationInsightsResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource@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/NotificationInsightsResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource::getEloquentQuery",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource@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/NotificationInsightsResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource@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/NotificationInsightsResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource@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/NotificationInsightsResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource@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/OrganizationManagementResource.php::App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource@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/OrganizationManagementResource.php::App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource::getEloquentQuery",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource@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/OrganizationManagementResource.php::App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource@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/OrganizationManagementResource.php::App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource@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/OrganizationManagementResource.php::App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource@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/SalesCommissionResource.php::App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource::canCreate",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@canCreate",
        "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::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::getEloquentQuery",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@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/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::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/SubscriptionBillingTimelineResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource::canViewAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@canViewAny",
        "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/SubscriptionBillingTimelineResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource::getModelLabel",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@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/SubscriptionBillingTimelineResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@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/SubscriptionBillingTimelineResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@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/SubscriptionBillingTimelineResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource::getRelations",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@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/SubscriptionBillingTimelineResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@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/SubscriptionBillingTimelineResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@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/SubscriptionTierResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@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/SubscriptionTierResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource::getModelLabel",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@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/SubscriptionTierResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@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/SubscriptionTierResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@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/SubscriptionTierResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource::getRelations",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@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/SubscriptionTierResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@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/SubscriptionTierResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@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/SubscriptionTierResource/Pages/ManageTiers.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource\\Pages\\ManageTiers::getTitle",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource\\Pages\\ManageTiers@getTitle",
        "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/SupportTicketResource.php::App\\Domains\\SuperAdmin\\Resources\\SupportTicketResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SupportTicketResource@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/SupportTicketResource.php::App\\Domains\\SuperAdmin\\Resources\\SupportTicketResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SupportTicketResource@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/SupportTicketResource.php::App\\Domains\\SuperAdmin\\Resources\\SupportTicketResource::getRelations",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SupportTicketResource@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/SupportTicketResource.php::App\\Domains\\SuperAdmin\\Resources\\SupportTicketResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SupportTicketResource@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/TrackingLinkResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource::canCreate",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource@canCreate",
        "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/TrackingLinkResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource::canDelete",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource@canDelete",
        "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/TrackingLinkResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource::canDeleteAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource@canDeleteAny",
        "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/TrackingLinkResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource::canEdit",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource@canEdit",
        "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/TrackingLinkResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource::canView",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource@canView",
        "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/TrackingLinkResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource::canViewAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource@canViewAny",
        "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/TrackingLinkResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource@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/TrackingLinkResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource@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/TrackingLinkResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource::getRelations",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource@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/TrackingLinkResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource@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/TrackingLinkResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource@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/TrackingLinkResource/Pages/ViewTrackingLink.php::App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource\\Pages\\ViewTrackingLink::infolist",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource\\Pages\\ViewTrackingLink@infolist",
        "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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::canCreate",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@canCreate",
        "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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::canDelete",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@canDelete",
        "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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::canDeleteAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@canDeleteAny",
        "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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::canEdit",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@canEdit",
        "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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::canView",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@canView",
        "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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::canViewAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@canViewAny",
        "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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::getRelations",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@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/WebhookEventAttemptResource.php::App\\Domains\\SuperAdmin\\Resources\\WebhookEventAttemptResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\WebhookEventAttemptResource@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/WebhookEventAttemptResource/Pages/ListWebhookEventAttempts.php::App\\Domains\\SuperAdmin\\Resources\\WebhookEventAttemptResource\\Pages\\ListWebhookEventAttempts::getTitle",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\WebhookEventAttemptResource\\Pages\\ListWebhookEventAttempts@getTitle",
        "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/WebhookEventResource.php::App\\Domains\\SuperAdmin\\Resources\\WebhookEventResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\WebhookEventResource@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/WebhookEventResource/Pages/ListWebhookEvents.php::App\\Domains\\SuperAdmin\\Resources\\WebhookEventResource\\Pages\\ListWebhookEvents::getTitle",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\WebhookEventResource\\Pages\\ListWebhookEvents@getTitle",
        "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/Tenants/Resources/MyLeaseResource.php::App\\Domains\\Tenants\\Resources\\MyLeaseResource::canCreate",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyLeaseResource@canCreate",
        "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/Tenants/Resources/MyLeaseResource.php::App\\Domains\\Tenants\\Resources\\MyLeaseResource::canDelete",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyLeaseResource@canDelete",
        "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/Tenants/Resources/MyLeaseResource.php::App\\Domains\\Tenants\\Resources\\MyLeaseResource::canEdit",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyLeaseResource@canEdit",
        "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/Tenants/Resources/MyLeaseResource.php::App\\Domains\\Tenants\\Resources\\MyLeaseResource::canView",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyLeaseResource@canView",
        "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/Tenants/Resources/MyLeaseResource.php::App\\Domains\\Tenants\\Resources\\MyLeaseResource::canViewAny",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyLeaseResource@canViewAny",
        "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/Tenants/Resources/MyLeaseResource.php::App\\Domains\\Tenants\\Resources\\MyLeaseResource::form",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyLeaseResource@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/Tenants/Resources/MyLeaseResource.php::App\\Domains\\Tenants\\Resources\\MyLeaseResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyLeaseResource@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/Tenants/Resources/MyLeaseResource.php::App\\Domains\\Tenants\\Resources\\MyLeaseResource::getModelLabel",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyLeaseResource@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/Tenants/Resources/MyLeaseResource.php::App\\Domains\\Tenants\\Resources\\MyLeaseResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyLeaseResource@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/Tenants/Resources/MyLeaseResource.php::App\\Domains\\Tenants\\Resources\\MyLeaseResource::getPages",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyLeaseResource@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/Tenants/Resources/MyLeaseResource.php::App\\Domains\\Tenants\\Resources\\MyLeaseResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyLeaseResource@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/Tenants/Resources/MyLeaseResource.php::App\\Domains\\Tenants\\Resources\\MyLeaseResource::table",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyLeaseResource@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/Tenants/Resources/MyPaymentsResource.php::App\\Domains\\Tenants\\Resources\\MyPaymentsResource::canCreate",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@canCreate",
        "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/Tenants/Resources/MyPaymentsResource.php::App\\Domains\\Tenants\\Resources\\MyPaymentsResource::canDelete",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@canDelete",
        "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/Tenants/Resources/MyPaymentsResource.php::App\\Domains\\Tenants\\Resources\\MyPaymentsResource::canEdit",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@canEdit",
        "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/Tenants/Resources/MyPaymentsResource.php::App\\Domains\\Tenants\\Resources\\MyPaymentsResource::canView",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@canView",
        "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/Tenants/Resources/MyPaymentsResource.php::App\\Domains\\Tenants\\Resources\\MyPaymentsResource::canViewAny",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@canViewAny",
        "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/Tenants/Resources/MyPaymentsResource.php::App\\Domains\\Tenants\\Resources\\MyPaymentsResource::form",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@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/Tenants/Resources/MyPaymentsResource.php::App\\Domains\\Tenants\\Resources\\MyPaymentsResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@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/Tenants/Resources/MyPaymentsResource.php::App\\Domains\\Tenants\\Resources\\MyPaymentsResource::getModelLabel",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@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/Tenants/Resources/MyPaymentsResource.php::App\\Domains\\Tenants\\Resources\\MyPaymentsResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@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/Tenants/Resources/MyPaymentsResource.php::App\\Domains\\Tenants\\Resources\\MyPaymentsResource::getPages",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@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/Tenants/Resources/MyPaymentsResource.php::App\\Domains\\Tenants\\Resources\\MyPaymentsResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@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/Tenants/Resources/MyPaymentsResource.php::App\\Domains\\Tenants\\Resources\\MyPaymentsResource::table",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@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/Tenants/Resources/MyRentCyclesResource.php::App\\Domains\\Tenants\\Resources\\MyRentCyclesResource::canCreate",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyRentCyclesResource@canCreate",
        "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/Tenants/Resources/MyRentCyclesResource.php::App\\Domains\\Tenants\\Resources\\MyRentCyclesResource::canDelete",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyRentCyclesResource@canDelete",
        "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/Tenants/Resources/MyRentCyclesResource.php::App\\Domains\\Tenants\\Resources\\MyRentCyclesResource::canEdit",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyRentCyclesResource@canEdit",
        "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/Tenants/Resources/MyRentCyclesResource.php::App\\Domains\\Tenants\\Resources\\MyRentCyclesResource::form",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyRentCyclesResource@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/Tenants/Resources/MyRentCyclesResource.php::App\\Domains\\Tenants\\Resources\\MyRentCyclesResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyRentCyclesResource@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/Tenants/Resources/MyRentCyclesResource.php::App\\Domains\\Tenants\\Resources\\MyRentCyclesResource::getModelLabel",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyRentCyclesResource@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/Tenants/Resources/MyRentCyclesResource.php::App\\Domains\\Tenants\\Resources\\MyRentCyclesResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyRentCyclesResource@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/Tenants/Resources/MyRentCyclesResource.php::App\\Domains\\Tenants\\Resources\\MyRentCyclesResource::getPages",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyRentCyclesResource@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/Tenants/Resources/MyRentCyclesResource.php::App\\Domains\\Tenants\\Resources\\MyRentCyclesResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyRentCyclesResource@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/Tenants/Resources/MyRentCyclesResource.php::App\\Domains\\Tenants\\Resources\\MyRentCyclesResource::table",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyRentCyclesResource@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/Help",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Helpers/CurrencyHelper.php::App\\Helpers\\CurrencyHelper::getCurrency",
        "fqmn": "App\\Helpers\\CurrencyHelper@getCurrency",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Help",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Helpers/CurrencyHelper.php::App\\Helpers\\CurrencyHelper::getOrganizationCurrency",
        "fqmn": "App\\Helpers\\CurrencyHelper@getOrganizationCurrency",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Admin/PlanVersionController.php::App\\Http\\Controllers\\Admin\\PlanVersionController::index",
        "fqmn": "App\\Http\\Controllers\\Admin\\PlanVersionController@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/Admin/PlanVersionController.php::App\\Http\\Controllers\\Admin\\PlanVersionController::show",
        "fqmn": "App\\Http\\Controllers\\Admin\\PlanVersionController@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/Admin/PlanVersionController.php::App\\Http\\Controllers\\Admin\\PlanVersionController::store",
        "fqmn": "App\\Http\\Controllers\\Admin\\PlanVersionController@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/Admin/PlanVersionController.php::App\\Http\\Controllers\\Admin\\PlanVersionController::update",
        "fqmn": "App\\Http\\Controllers\\Admin\\PlanVersionController@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/Admin/PlanVersionFeatureController.php::App\\Http\\Controllers\\Admin\\PlanVersionFeatureController::store",
        "fqmn": "App\\Http\\Controllers\\Admin\\PlanVersionFeatureController@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/Admin/PlanVersionFeatureController.php::App\\Http\\Controllers\\Admin\\PlanVersionFeatureController::update",
        "fqmn": "App\\Http\\Controllers\\Admin\\PlanVersionFeatureController@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/Admin/ZohoController.php::App\\Http\\Controllers\\Admin\\ZohoController::__construct",
        "fqmn": "App\\Http\\Controllers\\Admin\\ZohoController@__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/Admin/ZohoController.php::App\\Http\\Controllers\\Admin\\ZohoController::callback",
        "fqmn": "App\\Http\\Controllers\\Admin\\ZohoController@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/Admin/ZohoController.php::App\\Http\\Controllers\\Admin\\ZohoController::connect",
        "fqmn": "App\\Http\\Controllers\\Admin\\ZohoController@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/Admin/ZohoController.php::App\\Http\\Controllers\\Admin\\ZohoController::index",
        "fqmn": "App\\Http\\Controllers\\Admin\\ZohoController@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/AgencyBackupController.php::App\\Http\\Controllers\\AgencyBackupController::download",
        "fqmn": "App\\Http\\Controllers\\AgencyBackupController@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/AgencyWhatsAppProfileController.php::App\\Http\\Controllers\\AgencyWhatsAppProfileController::show",
        "fqmn": "App\\Http\\Controllers\\AgencyWhatsAppProfileController@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/AgencyWhatsAppProfileController.php::App\\Http\\Controllers\\AgencyWhatsAppProfileController::sync",
        "fqmn": "App\\Http\\Controllers\\AgencyWhatsAppProfileController@sync",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/AgencyWhatsAppProfileController.php::App\\Http\\Controllers\\AgencyWhatsAppProfileController::update",
        "fqmn": "App\\Http\\Controllers\\AgencyWhatsAppProfileController@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/MaintenanceDigestPreferencesController.php::App\\Http\\Controllers\\Api\\MaintenanceDigestPreferencesController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceDigestPreferencesController@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/MaintenanceDigestPreferencesController.php::App\\Http\\Controllers\\Api\\MaintenanceDigestPreferencesController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceDigestPreferencesController@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/MaintenanceMetricsController.php::App\\Http\\Controllers\\Api\\MaintenanceMetricsController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceMetricsController@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/MaintenanceSlaController.php::App\\Http\\Controllers\\Api\\MaintenanceSlaController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceSlaController@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/MaintenanceSlaController.php::App\\Http\\Controllers\\Api\\MaintenanceSlaController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceSlaController@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/MaintenanceSlaController.php::App\\Http\\Controllers\\Api\\MaintenanceSlaController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceSlaController@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/MaintenanceSlaController.php::App\\Http\\Controllers\\Api\\MaintenanceSlaController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceSlaController@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/MaintenanceSlaController.php::App\\Http\\Controllers\\Api\\MaintenanceSlaController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceSlaController@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/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::addComment",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@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/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::approve",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@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/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::assign",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@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/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::complete",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@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/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@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/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::reopen",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@reopen",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::reviewSuggestion",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@reviewSuggestion",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@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/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::slaLogs",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@slaLogs",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@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/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::suggestions",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@suggestions",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::updateStatus",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@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/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::uploadQuote",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@uploadQuote",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review 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/MobileDashboardController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileDashboardController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileDashboardController@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/MobileForgotPasswordController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileForgotPasswordController::sendResetLink",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileForgotPasswordController@sendResetLink",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review 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/MobilePaymentController.php::App\\Http\\Controllers\\Api\\Mobile\\MobilePaymentController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobilePaymentController@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/MobilePeopleController.php::App\\Http\\Controllers\\Api\\Mobile\\MobilePeopleController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobilePeopleController@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/MobilePersonDetailController.php::App\\Http\\Controllers\\Api\\Mobile\\MobilePersonDetailController::properties",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobilePersonDetailController@properties",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review 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/MobilePropertyController.php::App\\Http\\Controllers\\Api\\Mobile\\MobilePropertyController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobilePropertyController@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/MobileUnitController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileUnitController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileUnitController@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/OutreachAI/PredictionController.php::App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController::getABTestStats",
        "fqmn": "App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController@getABTestStats",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/OutreachAI/PredictionController.php::App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController::getFeatureImportance",
        "fqmn": "App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController@getFeatureImportance",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/OutreachAI/PredictionController.php::App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController::getHistory",
        "fqmn": "App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController@getHistory",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/OutreachAI/PredictionController.php::App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController::getLatest",
        "fqmn": "App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController@getLatest",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/AppController.php::App\\Http\\Controllers\\AppController::index",
        "fqmn": "App\\Http\\Controllers\\AppController@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/Auth/AuthController.php::App\\Http\\Controllers\\Auth\\AuthController::__construct",
        "fqmn": "App\\Http\\Controllers\\Auth\\AuthController@__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/Auth/AuthController.php::App\\Http\\Controllers\\Auth\\AuthController::login",
        "fqmn": "App\\Http\\Controllers\\Auth\\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/Auth/AuthController.php::App\\Http\\Controllers\\Auth\\AuthController::logout",
        "fqmn": "App\\Http\\Controllers\\Auth\\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/Auth/AuthController.php::App\\Http\\Controllers\\Auth\\AuthController::register",
        "fqmn": "App\\Http\\Controllers\\Auth\\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/Auth/AuthController.php::App\\Http\\Controllers\\Auth\\AuthController::showRegister",
        "fqmn": "App\\Http\\Controllers\\Auth\\AuthController@showRegister",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual 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/PasswordResetController.php::App\\Http\\Controllers\\Auth\\PasswordResetController::reset",
        "fqmn": "App\\Http\\Controllers\\Auth\\PasswordResetController@reset",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual 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/PasswordResetController.php::App\\Http\\Controllers\\Auth\\PasswordResetController::sendResetLinkEmail",
        "fqmn": "App\\Http\\Controllers\\Auth\\PasswordResetController@sendResetLinkEmail",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual 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/PasswordResetController.php::App\\Http\\Controllers\\Auth\\PasswordResetController::showForgotPassword",
        "fqmn": "App\\Http\\Controllers\\Auth\\PasswordResetController@showForgotPassword",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual 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/PasswordResetController.php::App\\Http\\Controllers\\Auth\\PasswordResetController::showResetForm",
        "fqmn": "App\\Http\\Controllers\\Auth\\PasswordResetController@showResetForm",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual 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/VerificationController.php::App\\Http\\Controllers\\Auth\\VerificationController::resend",
        "fqmn": "App\\Http\\Controllers\\Auth\\VerificationController@resend",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual 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/VerificationController.php::App\\Http\\Controllers\\Auth\\VerificationController::showResendForm",
        "fqmn": "App\\Http\\Controllers\\Auth\\VerificationController@showResendForm",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual 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/VerificationController.php::App\\Http\\Controllers\\Auth\\VerificationController::verify",
        "fqmn": "App\\Http\\Controllers\\Auth\\VerificationController@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/InvitationController.php::App\\Http\\Controllers\\InvitationController::__construct",
        "fqmn": "App\\Http\\Controllers\\InvitationController@__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/InvitationController.php::App\\Http\\Controllers\\InvitationController::accept",
        "fqmn": "App\\Http\\Controllers\\InvitationController@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/InvitationController.php::App\\Http\\Controllers\\InvitationController::destroy",
        "fqmn": "App\\Http\\Controllers\\InvitationController@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/InvitationController.php::App\\Http\\Controllers\\InvitationController::index",
        "fqmn": "App\\Http\\Controllers\\InvitationController@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/InvitationController.php::App\\Http\\Controllers\\InvitationController::show",
        "fqmn": "App\\Http\\Controllers\\InvitationController@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/InvitationController.php::App\\Http\\Controllers\\InvitationController::store",
        "fqmn": "App\\Http\\Controllers\\InvitationController@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/Landing/PlansController.php::App\\Http\\Controllers\\Landing\\PlansController::index",
        "fqmn": "App\\Http\\Controllers\\Landing\\PlansController@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/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/LeadController.php::App\\Http\\Controllers\\LeadController::store",
        "fqmn": "App\\Http\\Controllers\\LeadController@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/LocaleController.php::App\\Http\\Controllers\\LocaleController::post",
        "fqmn": "App\\Http\\Controllers\\LocaleController@post",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/LocaleController.php::App\\Http\\Controllers\\LocaleController::switch",
        "fqmn": "App\\Http\\Controllers\\LocaleController@switch",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/OrgWhatsAppOnboardingController.php::App\\Http\\Controllers\\OrgWhatsAppOnboardingController::selectNumber",
        "fqmn": "App\\Http\\Controllers\\OrgWhatsAppOnboardingController@selectNumber",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/OrgWhatsAppOnboardingController.php::App\\Http\\Controllers\\OrgWhatsAppOnboardingController::start",
        "fqmn": "App\\Http\\Controllers\\OrgWhatsAppOnboardingController@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/Outreach/FollowUpMetricsController.php::App\\Http\\Controllers\\Outreach\\FollowUpMetricsController::index",
        "fqmn": "App\\Http\\Controllers\\Outreach\\FollowUpMetricsController@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/Outreach/FollowUpMetricsController.php::App\\Http\\Controllers\\Outreach\\FollowUpMetricsController::priorities",
        "fqmn": "App\\Http\\Controllers\\Outreach\\FollowUpMetricsController@priorities",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Payments/PaymentRequestController.php::App\\Http\\Controllers\\Payments\\PaymentRequestController::pay",
        "fqmn": "App\\Http\\Controllers\\Payments\\PaymentRequestController@pay",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Payments/PaymentRequestController.php::App\\Http\\Controllers\\Payments\\PaymentRequestController::show",
        "fqmn": "App\\Http\\Controllers\\Payments\\PaymentRequestController@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/Settings/WhatsAppSettingsController.php::App\\Http\\Controllers\\Settings\\WhatsAppSettingsController::provision",
        "fqmn": "App\\Http\\Controllers\\Settings\\WhatsAppSettingsController@provision",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Settings/WhatsAppSettingsController.php::App\\Http\\Controllers\\Settings\\WhatsAppSettingsController::show",
        "fqmn": "App\\Http\\Controllers\\Settings\\WhatsAppSettingsController@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/Settings/WhatsAppSettingsController.php::App\\Http\\Controllers\\Settings\\WhatsAppSettingsController::test",
        "fqmn": "App\\Http\\Controllers\\Settings\\WhatsAppSettingsController@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/Settings/WhatsAppSettingsController.php::App\\Http\\Controllers\\Settings\\WhatsAppSettingsController::update",
        "fqmn": "App\\Http\\Controllers\\Settings\\WhatsAppSettingsController@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/TenantPaymentController.php::App\\Http\\Controllers\\TenantPaymentController::__construct",
        "fqmn": "App\\Http\\Controllers\\TenantPaymentController@__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/TenantPaymentController.php::App\\Http\\Controllers\\TenantPaymentController::initiate",
        "fqmn": "App\\Http\\Controllers\\TenantPaymentController@initiate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/TenantPaymentController.php::App\\Http\\Controllers\\TenantPaymentController::success",
        "fqmn": "App\\Http\\Controllers\\TenantPaymentController@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/Testing/DashboardPerformanceIndicatorsController.php::App\\Http\\Controllers\\Testing\\DashboardPerformanceIndicatorsController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\DashboardPerformanceIndicatorsController@__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/Testing/DashboardQuickStatsController.php::App\\Http\\Controllers\\Testing\\DashboardQuickStatsController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\DashboardQuickStatsController@__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/Testing/LandlordOverviewStatsController.php::App\\Http\\Controllers\\Testing\\LandlordOverviewStatsController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\LandlordOverviewStatsController@__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/Testing/OutreachConversationInboundController.php::App\\Http\\Controllers\\Testing\\OutreachConversationInboundController::store",
        "fqmn": "App\\Http\\Controllers\\Testing\\OutreachConversationInboundController@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/Testing/OutreachKnowledgeValidateController.php::App\\Http\\Controllers\\Testing\\OutreachKnowledgeValidateController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\OutreachKnowledgeValidateController@__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/Testing/OutreachPricingSuggestController.php::App\\Http\\Controllers\\Testing\\OutreachPricingSuggestController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\OutreachPricingSuggestController@__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/Testing/RecordAnonymousDiscountCodeUsageController.php::App\\Http\\Controllers\\Testing\\RecordAnonymousDiscountCodeUsageController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\RecordAnonymousDiscountCodeUsageController@__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/Testing/RecordSubscriptionDiscountCodeUsageController.php::App\\Http\\Controllers\\Testing\\RecordSubscriptionDiscountCodeUsageController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\RecordSubscriptionDiscountCodeUsageController@__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/TrackingController.php::App\\Http\\Controllers\\TrackingController::redirect",
        "fqmn": "App\\Http\\Controllers\\TrackingController@redirect",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/VerificationController.php::App\\Http\\Controllers\\VerificationController::check",
        "fqmn": "App\\Http\\Controllers\\VerificationController@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/VerificationController.php::App\\Http\\Controllers\\VerificationController::start",
        "fqmn": "App\\Http\\Controllers\\VerificationController@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/Web/FeaturePreviewController.php::App\\Http\\Controllers\\Web\\FeaturePreviewController::start",
        "fqmn": "App\\Http\\Controllers\\Web\\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/Web/GuestRenewalController.php::App\\Http\\Controllers\\Web\\GuestRenewalController::__construct",
        "fqmn": "App\\Http\\Controllers\\Web\\GuestRenewalController@__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/Web/GuestRenewalController.php::App\\Http\\Controllers\\Web\\GuestRenewalController::process",
        "fqmn": "App\\Http\\Controllers\\Web\\GuestRenewalController@process",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Web/GuestRenewalController.php::App\\Http\\Controllers\\Web\\GuestRenewalController::show",
        "fqmn": "App\\Http\\Controllers\\Web\\GuestRenewalController@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/Web/LandlordStatementController.php::App\\Http\\Controllers\\Web\\LandlordStatementController::download",
        "fqmn": "App\\Http\\Controllers\\Web\\LandlordStatementController@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/Web/ProspectShortlistController.php::App\\Http\\Controllers\\Web\\ProspectShortlistController::show",
        "fqmn": "App\\Http\\Controllers\\Web\\ProspectShortlistController@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/Web/SubscriptionController.php::App\\Http\\Controllers\\Web\\SubscriptionController::__construct",
        "fqmn": "App\\Http\\Controllers\\Web\\SubscriptionController@__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/Web/SubscriptionController.php::App\\Http\\Controllers\\Web\\SubscriptionController::failure",
        "fqmn": "App\\Http\\Controllers\\Web\\SubscriptionController@failure",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Web/SubscriptionController.php::App\\Http\\Controllers\\Web\\SubscriptionController::index",
        "fqmn": "App\\Http\\Controllers\\Web\\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/Web/SubscriptionController.php::App\\Http\\Controllers\\Web\\SubscriptionController::subscribe",
        "fqmn": "App\\Http\\Controllers\\Web\\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/Web/SubscriptionController.php::App\\Http\\Controllers\\Web\\SubscriptionController::success",
        "fqmn": "App\\Http\\Controllers\\Web\\SubscriptionController@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/Webhooks/Dialog360StatusWebhookController.php::App\\Http\\Controllers\\Webhooks\\Dialog360StatusWebhookController::handle",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\Dialog360StatusWebhookController@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/Webhooks/Dialog360WebhookController.php::App\\Http\\Controllers\\Webhooks\\Dialog360WebhookController::handle",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\Dialog360WebhookController@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/Webhooks/TapSettlementWebhookController.php::App\\Http\\Controllers\\Webhooks\\TapSettlementWebhookController::handle",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\TapSettlementWebhookController@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/Webhooks/TapWebhookController.php::App\\Http\\Controllers\\Webhooks\\TapWebhookController::__construct",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\TapWebhookController@__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/Webhooks/TapWebhookController.php::App\\Http\\Controllers\\Webhooks\\TapWebhookController::handle",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\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/Webhooks/TapWebhookController.php::App\\Http\\Controllers\\Webhooks\\TapWebhookController::processCombinedSubscriptionPayment",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\TapWebhookController@processCombinedSubscriptionPayment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Webhooks/TapWebhookController.php::App\\Http\\Controllers\\Webhooks\\TapWebhookController::processCreditTopUp",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\TapWebhookController@processCreditTopUp",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Webhooks/TapWebhookController.php::App\\Http\\Controllers\\Webhooks\\TapWebhookController::processFeatureAddonPayment",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\TapWebhookController@processFeatureAddonPayment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Webhooks/TapWebhookController.php::App\\Http\\Controllers\\Webhooks\\TapWebhookController::processRentCyclePayment",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\TapWebhookController@processRentCyclePayment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Webhooks/TapWebhookController.php::App\\Http\\Controllers\\Webhooks\\TapWebhookController::processSubscriptionPayment",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\TapWebhookController@processSubscriptionPayment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Webhooks/TapWebhookController.php::App\\Http\\Controllers\\Webhooks\\TapWebhookController::processTapEventPayload",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\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/Webhooks/TwilioWebhookController.php::App\\Http\\Controllers\\Webhooks\\TwilioWebhookController::inbound",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\TwilioWebhookController@inbound",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Webhooks/TwilioWebhookController.php::App\\Http\\Controllers\\Webhooks\\TwilioWebhookController::incomingMessage",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\TwilioWebhookController@incomingMessage",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Webhooks/TwilioWebhookController.php::App\\Http\\Controllers\\Webhooks\\TwilioWebhookController::status",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\TwilioWebhookController@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/Webhooks/ZeptoWebhookController.php::App\\Http\\Controllers\\Webhooks\\ZeptoWebhookController::handleBounce",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\ZeptoWebhookController@handleBounce",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Webhooks/ZohoWebhookController.php::App\\Http\\Controllers\\Webhooks\\ZohoWebhookController::__construct",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\ZohoWebhookController@__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/Webhooks/ZohoWebhookController.php::App\\Http\\Controllers\\Webhooks\\ZohoWebhookController::handleCustomer",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\ZohoWebhookController@handleCustomer",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Webhooks/ZohoWebhookController.php::App\\Http\\Controllers\\Webhooks\\ZohoWebhookController::handleError",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\ZohoWebhookController@handleError",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Webhooks/ZohoWebhookController.php::App\\Http\\Controllers\\Webhooks\\ZohoWebhookController::handleInvoice",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\ZohoWebhookController@handleInvoice",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_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/AllocateDeferredRevenue.php::App\\Jobs\\AllocateDeferredRevenue::__construct",
        "fqmn": "App\\Jobs\\AllocateDeferredRevenue@__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/AnalyzePaymentProofJob.php::App\\Jobs\\AnalyzePaymentProofJob::__construct",
        "fqmn": "App\\Jobs\\AnalyzePaymentProofJob@__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/ApproveReminderTemplateJob.php::App\\Jobs\\ApproveReminderTemplateJob::__construct",
        "fqmn": "App\\Jobs\\ApproveReminderTemplateJob@__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/BuildMessagePackageInvoiceContextJob.php::App\\Jobs\\Billing\\BuildMessagePackageInvoiceContextJob::__construct",
        "fqmn": "App\\Jobs\\Billing\\BuildMessagePackageInvoiceContextJob@__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/CreateAuditLogJob.php::App\\Jobs\\Billing\\CreateAuditLogJob::__construct",
        "fqmn": "App\\Jobs\\Billing\\CreateAuditLogJob@__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/CreateMessagePackageAndBuildInvoiceContextJob.php::App\\Jobs\\Billing\\CreateMessagePackageAndBuildInvoiceContextJob::__construct",
        "fqmn": "App\\Jobs\\Billing\\CreateMessagePackageAndBuildInvoiceContextJob@__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/CreateMessagePackageJob.php::App\\Jobs\\Billing\\CreateMessagePackageJob::__construct",
        "fqmn": "App\\Jobs\\Billing\\CreateMessagePackageJob@__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/PushZohoSettlementPaymentJob.php::App\\Jobs\\Billing\\PushZohoSettlementPaymentJob::__construct",
        "fqmn": "App\\Jobs\\Billing\\PushZohoSettlementPaymentJob@__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/RunMessageBillingWorkflowJob.php::App\\Jobs\\Billing\\RunMessageBillingWorkflowJob::__construct",
        "fqmn": "App\\Jobs\\Billing\\RunMessageBillingWorkflowJob@__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/Chat/InboundMessageJob.php::App\\Jobs\\Chat\\InboundMessageJob::__construct",
        "fqmn": "App\\Jobs\\Chat\\InboundMessageJob@__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/Chat/ProcessAIMessageJob.php::App\\Jobs\\Chat\\ProcessAIMessageJob::__construct",
        "fqmn": "App\\Jobs\\Chat\\ProcessAIMessageJob@__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/Chat/SendOutboundMessageJob.php::App\\Jobs\\Chat\\SendOutboundMessageJob::__construct",
        "fqmn": "App\\Jobs\\Chat\\SendOutboundMessageJob@__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/Dunning/RunDunningAttemptJob.php::App\\Jobs\\Dunning\\RunDunningAttemptJob::__construct",
        "fqmn": "App\\Jobs\\Dunning\\RunDunningAttemptJob@__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/GenerateAgencyBackupJob.php::App\\Jobs\\GenerateAgencyBackupJob::__construct",
        "fqmn": "App\\Jobs\\GenerateAgencyBackupJob@__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/GenerateFunnelSnapshotJob.php::App\\Jobs\\GenerateFunnelSnapshotJob::__construct",
        "fqmn": "App\\Jobs\\GenerateFunnelSnapshotJob@__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/LogClickJob.php::App\\Jobs\\LogClickJob::__construct",
        "fqmn": "App\\Jobs\\LogClickJob@__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/Outreach/CheckActivationStatusJob.php::App\\Jobs\\Outreach\\CheckActivationStatusJob::__construct",
        "fqmn": "App\\Jobs\\Outreach\\CheckActivationStatusJob@__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/Outreach/ProcessOutreachInboundMessageJob.php::App\\Jobs\\Outreach\\ProcessOutreachInboundMessageJob::__construct",
        "fqmn": "App\\Jobs\\Outreach\\ProcessOutreachInboundMessageJob@__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/Outreach/ProcessRenewalOutreachJob.php::App\\Jobs\\Outreach\\ProcessRenewalOutreachJob::__construct",
        "fqmn": "App\\Jobs\\Outreach\\ProcessRenewalOutreachJob@__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/Outreach/SendCampaignMessageJob.php::App\\Jobs\\Outreach\\SendCampaignMessageJob::__construct",
        "fqmn": "App\\Jobs\\Outreach\\SendCampaignMessageJob@__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/Outreach/SendCampaignMessageJob.php::App\\Jobs\\Outreach\\SendCampaignMessageJob::dispatchSync",
        "fqmn": "App\\Jobs\\Outreach\\SendCampaignMessageJob@dispatchSync",
        "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/Outreach/SendFollowUpMessageJob.php::App\\Jobs\\Outreach\\SendFollowUpMessageJob::__construct",
        "fqmn": "App\\Jobs\\Outreach\\SendFollowUpMessageJob@__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/OutreachAI/AutoSubscriptionNudgeJob.php::App\\Jobs\\OutreachAI\\AutoSubscriptionNudgeJob::__construct",
        "fqmn": "App\\Jobs\\OutreachAI\\AutoSubscriptionNudgeJob@__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/OutreachAI/DetectUpsellSuccessJob.php::App\\Jobs\\OutreachAI\\DetectUpsellSuccessJob::__construct",
        "fqmn": "App\\Jobs\\OutreachAI\\DetectUpsellSuccessJob@__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/OutreachAI/EvaluateFollowUpJob.php::App\\Jobs\\OutreachAI\\EvaluateFollowUpJob::__construct",
        "fqmn": "App\\Jobs\\OutreachAI\\EvaluateFollowUpJob@__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/OutreachAI/ExecuteScheduledClosingAttemptJob.php::App\\Jobs\\OutreachAI\\ExecuteScheduledClosingAttemptJob::__construct",
        "fqmn": "App\\Jobs\\OutreachAI\\ExecuteScheduledClosingAttemptJob@__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/OutreachAI/HandleObjectionJob.php::App\\Jobs\\OutreachAI\\HandleObjectionJob::__construct",
        "fqmn": "App\\Jobs\\OutreachAI\\HandleObjectionJob@__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/OutreachAI/NotifySalesTeamJob.php::App\\Jobs\\OutreachAI\\NotifySalesTeamJob::__construct",
        "fqmn": "App\\Jobs\\OutreachAI\\NotifySalesTeamJob@__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/OutreachAI/PostReplyPersistenceJob.php::App\\Jobs\\OutreachAI\\PostReplyPersistenceJob::__construct",
        "fqmn": "App\\Jobs\\OutreachAI\\PostReplyPersistenceJob@__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/OutreachAI/ProcessConversationAnalyticsJob.php::App\\Jobs\\OutreachAI\\ProcessConversationAnalyticsJob::__construct",
        "fqmn": "App\\Jobs\\OutreachAI\\ProcessConversationAnalyticsJob@__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/OutreachAI/ReactivatePortalUserJob.php::App\\Jobs\\OutreachAI\\ReactivatePortalUserJob::__construct",
        "fqmn": "App\\Jobs\\OutreachAI\\ReactivatePortalUserJob@__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/OutreachAI/RunDailyPredictionSweepJob.php::App\\Jobs\\OutreachAI\\RunDailyPredictionSweepJob::__construct",
        "fqmn": "App\\Jobs\\OutreachAI\\RunDailyPredictionSweepJob@__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/OutreachAI/RunDeepReasoningJob.php::App\\Jobs\\OutreachAI\\RunDeepReasoningJob::__construct",
        "fqmn": "App\\Jobs\\OutreachAI\\RunDeepReasoningJob@__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/OutreachAI/RunOptimizationCycleJob.php::App\\Jobs\\OutreachAI\\RunOptimizationCycleJob::__construct",
        "fqmn": "App\\Jobs\\OutreachAI\\RunOptimizationCycleJob@__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/OutreachAI/RunSequenceStepJob.php::App\\Jobs\\OutreachAI\\RunSequenceStepJob::__construct",
        "fqmn": "App\\Jobs\\OutreachAI\\RunSequenceStepJob@__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/OutreachAI/RunShadowBrainJob.php::App\\Jobs\\OutreachAI\\RunShadowBrainJob::__construct",
        "fqmn": "App\\Jobs\\OutreachAI\\RunShadowBrainJob@__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/OutreachAI/SendAiWhatsappReplyJob.php::App\\Jobs\\OutreachAI\\SendAiWhatsappReplyJob::__construct",
        "fqmn": "App\\Jobs\\OutreachAI\\SendAiWhatsappReplyJob@__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/OutreachAI/SendHumanHandoffNotificationJob.php::App\\Jobs\\OutreachAI\\SendHumanHandoffNotificationJob::__construct",
        "fqmn": "App\\Jobs\\OutreachAI\\SendHumanHandoffNotificationJob@__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/OutreachAI/SendReengagementMessageJob.php::App\\Jobs\\OutreachAI\\SendReengagementMessageJob::__construct",
        "fqmn": "App\\Jobs\\OutreachAI\\SendReengagementMessageJob@__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/OutreachAI/SendScheduledAppointmentFollowupJob.php::App\\Jobs\\OutreachAI\\SendScheduledAppointmentFollowupJob::__construct",
        "fqmn": "App\\Jobs\\OutreachAI\\SendScheduledAppointmentFollowupJob@__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/OutreachAI/SendTypingIndicatorJob.php::App\\Jobs\\OutreachAI\\SendTypingIndicatorJob::__construct",
        "fqmn": "App\\Jobs\\OutreachAI\\SendTypingIndicatorJob@__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/ProcessInboundWhatsAppMessageJob.php::App\\Jobs\\ProcessInboundWhatsAppMessageJob::__construct",
        "fqmn": "App\\Jobs\\ProcessInboundWhatsAppMessageJob@__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/ProcessTapWebhookJob.php::App\\Jobs\\ProcessTapWebhookJob::__construct",
        "fqmn": "App\\Jobs\\ProcessTapWebhookJob@__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/ProcessWhatsAppTemplateUpdateJob.php::App\\Jobs\\ProcessWhatsAppTemplateUpdateJob::__construct",
        "fqmn": "App\\Jobs\\ProcessWhatsAppTemplateUpdateJob@__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/ProcessWhatsAppWebhookJob.php::App\\Jobs\\ProcessWhatsAppWebhookJob::__construct",
        "fqmn": "App\\Jobs\\ProcessWhatsAppWebhookJob@__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/ProcessZohoWebhook.php::App\\Jobs\\ProcessZohoWebhook::__construct",
        "fqmn": "App\\Jobs\\ProcessZohoWebhook@__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/PushWhatsAppTemplateJob.php::App\\Jobs\\PushWhatsAppTemplateJob::__construct",
        "fqmn": "App\\Jobs\\PushWhatsAppTemplateJob@__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/RejectReminderTemplateJob.php::App\\Jobs\\RejectReminderTemplateJob::__construct",
        "fqmn": "App\\Jobs\\RejectReminderTemplateJob@__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/RetryFailedZohoSync.php::App\\Jobs\\RetryFailedZohoSync::__construct",
        "fqmn": "App\\Jobs\\RetryFailedZohoSync@__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/SendInvitationEmail.php::App\\Jobs\\SendInvitationEmail::__construct",
        "fqmn": "App\\Jobs\\SendInvitationEmail@__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/SendReminderJob.php::App\\Jobs\\SendReminderJob::attempts",
        "fqmn": "App\\Jobs\\SendReminderJob@attempts",
        "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/SendTransferNotification.php::App\\Jobs\\SendTransferNotification::__construct",
        "fqmn": "App\\Jobs\\SendTransferNotification@__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/SendTrialNudgeJob.php::App\\Jobs\\SendTrialNudgeJob::__construct",
        "fqmn": "App\\Jobs\\SendTrialNudgeJob@__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/SyncOrganizationToZohoBooks.php::App\\Jobs\\SyncOrganizationToZohoBooks::__construct",
        "fqmn": "App\\Jobs\\SyncOrganizationToZohoBooks@__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/SyncTapFeeToZoho.php::App\\Jobs\\SyncTapFeeToZoho::__construct",
        "fqmn": "App\\Jobs\\SyncTapFeeToZoho@__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/SyncTapSettlementFeeToZoho.php::App\\Jobs\\SyncTapSettlementFeeToZoho::__construct",
        "fqmn": "App\\Jobs\\SyncTapSettlementFeeToZoho@__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/SyncTapSettlementPaymentToZoho.php::App\\Jobs\\SyncTapSettlementPaymentToZoho::__construct",
        "fqmn": "App\\Jobs\\SyncTapSettlementPaymentToZoho@__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/SyncTapSettlementToZoho.php::App\\Jobs\\SyncTapSettlementToZoho::__construct",
        "fqmn": "App\\Jobs\\SyncTapSettlementToZoho@__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/SyncWhatsAppTemplateStatusJob.php::App\\Jobs\\SyncWhatsAppTemplateStatusJob::__construct",
        "fqmn": "App\\Jobs\\SyncWhatsAppTemplateStatusJob@__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/SyncZohoInvoice.php::App\\Jobs\\SyncZohoInvoice::__construct",
        "fqmn": "App\\Jobs\\SyncZohoInvoice@__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/CancelRemindersOnPayment.php::App\\Listeners\\CancelRemindersOnPayment::__construct",
        "fqmn": "App\\Listeners\\CancelRemindersOnPayment@__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/CancelRemindersOnPayment.php::App\\Listeners\\CancelRemindersOnPayment::handleAndSnapshot",
        "fqmn": "App\\Listeners\\CancelRemindersOnPayment@handleAndSnapshot",
        "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/MarkLeadAsConverted.php::App\\Listeners\\MarkLeadAsConverted::__construct",
        "fqmn": "App\\Listeners\\MarkLeadAsConverted@__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/OnSubscriptionCapturedPostInvoice.php::App\\Listeners\\OnSubscriptionCapturedPostInvoice::__construct",
        "fqmn": "App\\Listeners\\OnSubscriptionCapturedPostInvoice@__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/OnSubscriptionRefundedCreateCreditNote.php::App\\Listeners\\OnSubscriptionRefundedCreateCreditNote::__construct",
        "fqmn": "App\\Listeners\\OnSubscriptionRefundedCreateCreditNote@__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/Mode",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Models/DunningPolicy.php::App\\Models\\DunningPolicy::attempts",
        "fqmn": "App\\Models\\DunningPolicy@attempts",
        "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/DunningPolicy.php::App\\Models\\DunningPolicy::getAttribute",
        "fqmn": "App\\Models\\DunningPolicy@getAttribute",
        "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/DunningPolicy.php::App\\Models\\DunningPolicy::resolveForOrganization",
        "fqmn": "App\\Models\\DunningPolicy@resolveForOrganization",
        "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/Invoice.php::App\\Models\\Invoice::generateInvoiceNumber",
        "fqmn": "App\\Models\\Invoice@generateInvoiceNumber",
        "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/MessageTemplate.php::App\\Models\\MessageTemplate::getAvailableVariables",
        "fqmn": "App\\Models\\MessageTemplate@getAvailableVariables",
        "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::forOrganization",
        "fqmn": "App\\Models\\NotificationSetting@forOrganization",
        "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/OutreachAI/HumanHandoffState.php::App\\Models\\OutreachAI\\HumanHandoffState::getActiveConversation",
        "fqmn": "App\\Models\\OutreachAI\\HumanHandoffState@getActiveConversation",
        "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/OutreachAI/HumanHandoffState.php::App\\Models\\OutreachAI\\HumanHandoffState::instance",
        "fqmn": "App\\Models\\OutreachAI\\HumanHandoffState@instance",
        "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/OutreachAI/HumanHandoffState.php::App\\Models\\OutreachAI\\HumanHandoffState::isAvailable",
        "fqmn": "App\\Models\\OutreachAI\\HumanHandoffState@isAvailable",
        "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/OutreachAI/HumanHandoffState.php::App\\Models\\OutreachAI\\HumanHandoffState::release",
        "fqmn": "App\\Models\\OutreachAI\\HumanHandoffState@release",
        "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/PhoneVerification.php::App\\Models\\PhoneVerification::isPhoneVerified",
        "fqmn": "App\\Models\\PhoneVerification@isPhoneVerified",
        "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/WebhookEvent.php::App\\Models\\WebhookEvent::getProcessedResult",
        "fqmn": "App\\Models\\WebhookEvent@getProcessedResult",
        "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/WebhookEvent.php::App\\Models\\WebhookEvent::isProcessed",
        "fqmn": "App\\Models\\WebhookEvent@isProcessed",
        "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/ZohoWebhookEvent.php::App\\Models\\ZohoWebhookEvent::isDuplicate",
        "fqmn": "App\\Models\\ZohoWebhookEvent@isDuplicate",
        "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/BookingPolicy.php::App\\Policies\\BookingPolicy::cancel",
        "fqmn": "App\\Policies\\BookingPolicy@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/BookingPolicy.php::App\\Policies\\BookingPolicy::convert",
        "fqmn": "App\\Policies\\BookingPolicy@convert",
        "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/FollowUpPolicy.php::App\\Policies\\FollowUpPolicy::cancel",
        "fqmn": "App\\Policies\\FollowUpPolicy@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/FollowUpPolicy.php::App\\Policies\\FollowUpPolicy::trigger",
        "fqmn": "App\\Policies\\FollowUpPolicy@trigger",
        "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/InvitationPolicy.php::App\\Policies\\InvitationPolicy::resend",
        "fqmn": "App\\Policies\\InvitationPolicy@resend",
        "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/LandlordPolicy.php::App\\Policies\\LandlordPolicy::invite",
        "fqmn": "App\\Policies\\LandlordPolicy@invite",
        "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/LeasePolicy.php::App\\Policies\\LeasePolicy::manageContracts",
        "fqmn": "App\\Policies\\LeasePolicy@manageContracts",
        "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/LeasePolicy.php::App\\Policies\\LeasePolicy::terminate",
        "fqmn": "App\\Policies\\LeasePolicy@terminate",
        "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/MaintenanceTicketPolicy.php::App\\Policies\\MaintenanceTicketPolicy::assignWorker",
        "fqmn": "App\\Policies\\MaintenanceTicketPolicy@assignWorker",
        "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/MaintenanceTicketPolicy.php::App\\Policies\\MaintenanceTicketPolicy::reopen",
        "fqmn": "App\\Policies\\MaintenanceTicketPolicy@reopen",
        "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/MaintenanceTicketPolicy.php::App\\Policies\\MaintenanceTicketPolicy::reviewSuggestion",
        "fqmn": "App\\Policies\\MaintenanceTicketPolicy@reviewSuggestion",
        "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/MaintenanceTicketPolicy.php::App\\Policies\\MaintenanceTicketPolicy::uploadQuote",
        "fqmn": "App\\Policies\\MaintenanceTicketPolicy@uploadQuote",
        "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/MaintenanceTicketPolicy.php::App\\Policies\\MaintenanceTicketPolicy::viewSlaLogs",
        "fqmn": "App\\Policies\\MaintenanceTicketPolicy@viewSlaLogs",
        "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/MaintenanceTicketPolicy.php::App\\Policies\\MaintenanceTicketPolicy::viewSuggestions",
        "fqmn": "App\\Policies\\MaintenanceTicketPolicy@viewSuggestions",
        "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/PaymentProofPolicy.php::App\\Policies\\PaymentProofPolicy::review",
        "fqmn": "App\\Policies\\PaymentProofPolicy@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/PropertyPolicy.php::App\\Policies\\PropertyPolicy::manageDocuments",
        "fqmn": "App\\Policies\\PropertyPolicy@manageDocuments",
        "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/ReminderPolicy.php::App\\Policies\\ReminderPolicy::cancel",
        "fqmn": "App\\Policies\\ReminderPolicy@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/ReminderPolicy.php::App\\Policies\\ReminderPolicy::manageSettings",
        "fqmn": "App\\Policies\\ReminderPolicy@manageSettings",
        "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/RentCyclePolicy.php::App\\Policies\\RentCyclePolicy::bulkUpdate",
        "fqmn": "App\\Policies\\RentCyclePolicy@bulkUpdate",
        "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/RentCyclePolicy.php::App\\Policies\\RentCyclePolicy::markOverdue",
        "fqmn": "App\\Policies\\RentCyclePolicy@markOverdue",
        "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/RentCyclePolicy.php::App\\Policies\\RentCyclePolicy::markPaid",
        "fqmn": "App\\Policies\\RentCyclePolicy@markPaid",
        "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/Security/CspPolicy.php::App\\Policies\\Security\\CspPolicy::configure",
        "fqmn": "App\\Policies\\Security\\CspPolicy@configure",
        "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/TenantPolicy.php::App\\Policies\\TenantPolicy::invite",
        "fqmn": "App\\Policies\\TenantPolicy@invite",
        "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/TransactionPolicy.php::App\\Policies\\TransactionPolicy::finalize",
        "fqmn": "App\\Policies\\TransactionPolicy@finalize",
        "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/TransferPolicy.php::App\\Policies\\TransferPolicy::bulkComplete",
        "fqmn": "App\\Policies\\TransferPolicy@bulkComplete",
        "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/TransferPolicy.php::App\\Policies\\TransferPolicy::complete",
        "fqmn": "App\\Policies\\TransferPolicy@complete",
        "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/UnitPolicy.php::App\\Policies\\UnitPolicy::assignTenant",
        "fqmn": "App\\Policies\\UnitPolicy@assignTenant",
        "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/UnitPolicy.php::App\\Policies\\UnitPolicy::vacate",
        "fqmn": "App\\Policies\\UnitPolicy@vacate",
        "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/Repo",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Repositories/OrganizationScopedRepository.php::App\\Repositories\\OrganizationScopedRepository::create",
        "fqmn": "App\\Repositories\\OrganizationScopedRepository@create",
        "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/Repo",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Repositories/OrganizationScopedRepository.php::App\\Repositories\\OrganizationScopedRepository::query",
        "fqmn": "App\\Repositories\\OrganizationScopedRepository@query",
        "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/Repo",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Repositories/OrganizationScopedRepository.php::App\\Repositories\\OrganizationScopedRepository::setOrganization",
        "fqmn": "App\\Repositories\\OrganizationScopedRepository@setOrganization",
        "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/Repo",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Repositories/OrganizationScopedRepository.php::App\\Repositories\\OrganizationScopedRepository::setOrganizationId",
        "fqmn": "App\\Repositories\\OrganizationScopedRepository@setOrganizationId",
        "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/Repo",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Repositories/Outreach/CampaignAttemptRepository.php::App\\Repositories\\Outreach\\CampaignAttemptRepository::getFilteredAttempts",
        "fqmn": "App\\Repositories\\Outreach\\CampaignAttemptRepository@getFilteredAttempts",
        "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/Repo",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Repositories/Outreach/LeadRepository.php::App\\Repositories\\Outreach\\LeadRepository::getAttemptCount",
        "fqmn": "App\\Repositories\\Outreach\\LeadRepository@getAttemptCount",
        "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/Repo",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Repositories/Outreach/LeadRepository.php::App\\Repositories\\Outreach\\LeadRepository::getFilteredLeads",
        "fqmn": "App\\Repositories\\Outreach\\LeadRepository@getFilteredLeads",
        "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/Repo",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Repositories/Outreach/LeadRepository.php::App\\Repositories\\Outreach\\LeadRepository::paginate",
        "fqmn": "App\\Repositories\\Outreach\\LeadRepository@paginate",
        "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/Repo",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Repositories/OutreachAI/QualificationRepository.php::App\\Repositories\\OutreachAI\\QualificationRepository::getOrCreate",
        "fqmn": "App\\Repositories\\OutreachAI\\QualificationRepository@getOrCreate",
        "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/Repo",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Repositories/OutreachAI/QualificationRepository.php::App\\Repositories\\OutreachAI\\QualificationRepository::updateFromExtraction",
        "fqmn": "App\\Repositories\\OutreachAI\\QualificationRepository@updateFromExtraction",
        "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/Repo",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Repositories/WhatsAppMessageRepository.php::App\\Repositories\\WhatsAppMessageRepository::getLatestForSidebar",
        "fqmn": "App\\Repositories\\WhatsAppMessageRepository@getLatestForSidebar",
        "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/Repo",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Repositories/WhatsAppMessageRepository.php::App\\Repositories\\WhatsAppMessageRepository::getMessagesForSession",
        "fqmn": "App\\Repositories\\WhatsAppMessageRepository@getMessagesForSession",
        "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/Sand",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Sandbox/Dialog360/Controllers/MessageController.php::App\\Sandbox\\Dialog360\\Controllers\\MessageController::__construct",
        "fqmn": "App\\Sandbox\\Dialog360\\Controllers\\MessageController@__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/Sand",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Sandbox/Dialog360/Controllers/MessageController.php::App\\Sandbox\\Dialog360\\Controllers\\MessageController::store",
        "fqmn": "App\\Sandbox\\Dialog360\\Controllers\\MessageController@store",
        "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/Sand",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Sandbox/Dialog360/Controllers/MetricsController.php::App\\Sandbox\\Dialog360\\Controllers\\MetricsController::__construct",
        "fqmn": "App\\Sandbox\\Dialog360\\Controllers\\MetricsController@__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/Sand",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Sandbox/Dialog360/Controllers/MetricsController.php::App\\Sandbox\\Dialog360\\Controllers\\MetricsController::connections",
        "fqmn": "App\\Sandbox\\Dialog360\\Controllers\\MetricsController@connections",
        "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/Sand",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Sandbox/Dialog360/Controllers/MetricsController.php::App\\Sandbox\\Dialog360\\Controllers\\MetricsController::messages",
        "fqmn": "App\\Sandbox\\Dialog360\\Controllers\\MetricsController@messages",
        "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/Sand",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Sandbox/Dialog360/Controllers/TemplateController.php::App\\Sandbox\\Dialog360\\Controllers\\TemplateController::__construct",
        "fqmn": "App\\Sandbox\\Dialog360\\Controllers\\TemplateController@__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/Sand",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Sandbox/Dialog360/Controllers/TemplateController.php::App\\Sandbox\\Dialog360\\Controllers\\TemplateController::show",
        "fqmn": "App\\Sandbox\\Dialog360\\Controllers\\TemplateController@show",
        "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/Sand",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Sandbox/Dialog360/Controllers/TemplateController.php::App\\Sandbox\\Dialog360\\Controllers\\TemplateController::store",
        "fqmn": "App\\Sandbox\\Dialog360\\Controllers\\TemplateController@store",
        "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/Sand",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Sandbox/Dialog360/Controllers/WebhookController.php::App\\Sandbox\\Dialog360\\Controllers\\WebhookController::test",
        "fqmn": "App\\Sandbox\\Dialog360\\Controllers\\WebhookController@test",
        "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/Secu",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Security/AllowedUrlValidator.php::App\\Security\\AllowedUrlValidator::isAllowed",
        "fqmn": "App\\Security\\AllowedUrlValidator@isAllowed",
        "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/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/BackupService.php::App\\Services\\BackupService::execute",
        "fqmn": "App\\Services\\BackupService@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/BackupService.php::App\\Services\\BackupService::generateBackup",
        "fqmn": "App\\Services\\BackupService@generateBackup",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/BackupService.php::App\\Services\\BackupService::run",
        "fqmn": "App\\Services\\BackupService@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/BackupService.php::App\\Services\\BackupService::sendBackup",
        "fqmn": "App\\Services\\BackupService@sendBackup",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/BackupService.php::App\\Services\\BackupService::store",
        "fqmn": "App\\Services\\BackupService@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_DELETE",
        "surface_id": "method::app/Services/Billing/BillingAlertService.php::App\\Services\\Billing\\BillingAlertService::__construct",
        "fqmn": "App\\Services\\Billing\\BillingAlertService@__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/Billing/BillingAlertService.php::App\\Services\\Billing\\BillingAlertService::checkAndNotifyLowBalance",
        "fqmn": "App\\Services\\Billing\\BillingAlertService@checkAndNotifyLowBalance",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/BillingAlertService.php::App\\Services\\Billing\\BillingAlertService::notifyCreditExhausted",
        "fqmn": "App\\Services\\Billing\\BillingAlertService@notifyCreditExhausted",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/BillingAlertService.php::App\\Services\\Billing\\BillingAlertService::notifyPaymentFailed",
        "fqmn": "App\\Services\\Billing\\BillingAlertService@notifyPaymentFailed",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/BillingAlertService.php::App\\Services\\Billing\\BillingAlertService::notifySuspension",
        "fqmn": "App\\Services\\Billing\\BillingAlertService@notifySuspension",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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::__construct",
        "fqmn": "App\\Services\\Billing\\BillingAmountCalculator@__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/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/BillingEngine.php::App\\Services\\Billing\\BillingEngine::addUnits",
        "fqmn": "App\\Services\\Billing\\BillingEngine@addUnits",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/BillingEngine.php::App\\Services\\Billing\\BillingEngine::changeBillingPeriod",
        "fqmn": "App\\Services\\Billing\\BillingEngine@changeBillingPeriod",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/BillingEngine.php::App\\Services\\Billing\\BillingEngine::removeUnits",
        "fqmn": "App\\Services\\Billing\\BillingEngine@removeUnits",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/DunningEngine.php::App\\Services\\Billing\\DunningEngine::attemptPayment",
        "fqmn": "App\\Services\\Billing\\DunningEngine@attemptPayment",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/DunningEngine.php::App\\Services\\Billing\\DunningEngine::runDunningCycle",
        "fqmn": "App\\Services\\Billing\\DunningEngine@runDunningCycle",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/InvoiceBuilder.php::App\\Services\\Billing\\InvoiceBuilder::__construct",
        "fqmn": "App\\Services\\Billing\\InvoiceBuilder@__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/Billing/InvoiceBuilder.php::App\\Services\\Billing\\InvoiceBuilder::buildCreditTopUpContext",
        "fqmn": "App\\Services\\Billing\\InvoiceBuilder@buildCreditTopUpContext",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/InvoiceBuilder.php::App\\Services\\Billing\\InvoiceBuilder::buildMessagePackageContext",
        "fqmn": "App\\Services\\Billing\\InvoiceBuilder@buildMessagePackageContext",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/InvoiceBuilder.php::App\\Services\\Billing\\InvoiceBuilder::buildMonthlyMessageContext",
        "fqmn": "App\\Services\\Billing\\InvoiceBuilder@buildMonthlyMessageContext",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/InvoiceBuilder.php::App\\Services\\Billing\\InvoiceBuilder::buildSubscriptionContext",
        "fqmn": "App\\Services\\Billing\\InvoiceBuilder@buildSubscriptionContext",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/ProrationService.php::App\\Services\\Billing\\ProrationService::__construct",
        "fqmn": "App\\Services\\Billing\\ProrationService@__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/Billing/ProrationService.php::App\\Services\\Billing\\ProrationService::prorateChange",
        "fqmn": "App\\Services\\Billing\\ProrationService@prorateChange",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/ProrationService.php::App\\Services\\Billing\\ProrationService::prorateSeatChange",
        "fqmn": "App\\Services\\Billing\\ProrationService@prorateSeatChange",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/ProrationService.php::App\\Services\\Billing\\ProrationService::prorateTierChange",
        "fqmn": "App\\Services\\Billing\\ProrationService@prorateTierChange",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/RenewalContextBuilder.php::App\\Services\\Billing\\RenewalContextBuilder::build",
        "fqmn": "App\\Services\\Billing\\RenewalContextBuilder@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/Billing/SeatCountService.php::App\\Services\\Billing\\SeatCountService::countSeats",
        "fqmn": "App\\Services\\Billing\\SeatCountService@countSeats",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/SeatCountService.php::App\\Services\\Billing\\SeatCountService::countSeatsForOrganization",
        "fqmn": "App\\Services\\Billing\\SeatCountService@countSeatsForOrganization",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/SubscriptionPaymentProcessor.php::App\\Services\\Billing\\SubscriptionPaymentProcessor::calculateLedgerCycleStart",
        "fqmn": "App\\Services\\Billing\\SubscriptionPaymentProcessor@calculateLedgerCycleStart",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/SubscriptionPaymentProcessor.php::App\\Services\\Billing\\SubscriptionPaymentProcessor::findExistingRenewalLedger",
        "fqmn": "App\\Services\\Billing\\SubscriptionPaymentProcessor@findExistingRenewalLedger",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/SubscriptionPaymentProcessor.php::App\\Services\\Billing\\SubscriptionPaymentProcessor::processPaymentMetadata",
        "fqmn": "App\\Services\\Billing\\SubscriptionPaymentProcessor@processPaymentMetadata",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/SubscriptionPaymentProcessor.php::App\\Services\\Billing\\SubscriptionPaymentProcessor::updateSubscriptionWithPayment",
        "fqmn": "App\\Services\\Billing\\SubscriptionPaymentProcessor@updateSubscriptionWithPayment",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/SubscriptionRenewalService.php::App\\Services\\Billing\\SubscriptionRenewalService::createCreditTransaction",
        "fqmn": "App\\Services\\Billing\\SubscriptionRenewalService@createCreditTransaction",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/SubscriptionRenewalService.php::App\\Services\\Billing\\SubscriptionRenewalService::createRenewalLedger",
        "fqmn": "App\\Services\\Billing\\SubscriptionRenewalService@createRenewalLedger",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/SubscriptionRenewalService.php::App\\Services\\Billing\\SubscriptionRenewalService::recordDiscountCodeUsage",
        "fqmn": "App\\Services\\Billing\\SubscriptionRenewalService@recordDiscountCodeUsage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/TapSettlementAllocator.php::App\\Services\\Billing\\TapSettlementAllocator::autoAllocate",
        "fqmn": "App\\Services\\Billing\\TapSettlementAllocator@autoAllocate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/TapSettlementMatcher.php::App\\Services\\Billing\\TapSettlementMatcher::matchSettlement",
        "fqmn": "App\\Services\\Billing\\TapSettlementMatcher@matchSettlement",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/TapSettlementReviewQueueService.php::App\\Services\\Billing\\TapSettlementReviewQueueService::createTicket",
        "fqmn": "App\\Services\\Billing\\TapSettlementReviewQueueService@createTicket",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/TapSettlementSuggestionEngine.php::App\\Services\\Billing\\TapSettlementSuggestionEngine::analyze",
        "fqmn": "App\\Services\\Billing\\TapSettlementSuggestionEngine@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/Billing/VatService.php::App\\Services\\Billing\\VatService::__construct",
        "fqmn": "App\\Services\\Billing\\VatService@__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/Billing/VatService.php::App\\Services\\Billing\\VatService::determinePolicy",
        "fqmn": "App\\Services\\Billing\\VatService@determinePolicy",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/ZohoBillingAnalyticsService.php::App\\Services\\Billing\\ZohoBillingAnalyticsService::detectInvoiceAnomalies",
        "fqmn": "App\\Services\\Billing\\ZohoBillingAnalyticsService@detectInvoiceAnomalies",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/ZohoBillingAnalyticsService.php::App\\Services\\Billing\\ZohoBillingAnalyticsService::getClearanceStatusStats",
        "fqmn": "App\\Services\\Billing\\ZohoBillingAnalyticsService@getClearanceStatusStats",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/ZohoBillingAnalyticsService.php::App\\Services\\Billing\\ZohoBillingAnalyticsService::getMonthlyInvoiceStats",
        "fqmn": "App\\Services\\Billing\\ZohoBillingAnalyticsService@getMonthlyInvoiceStats",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/ZohoBillingAnalyticsService.php::App\\Services\\Billing\\ZohoBillingAnalyticsService::getVatExposure",
        "fqmn": "App\\Services\\Billing\\ZohoBillingAnalyticsService@getVatExposure",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/ZohoExpenseSyncService.php::App\\Services\\Billing\\ZohoExpenseSyncService::__construct",
        "fqmn": "App\\Services\\Billing\\ZohoExpenseSyncService@__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/Billing/ZohoExpenseSyncService.php::App\\Services\\Billing\\ZohoExpenseSyncService::pushExpense",
        "fqmn": "App\\Services\\Billing\\ZohoExpenseSyncService@pushExpense",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/ZohoInvoiceReconciler.php::App\\Services\\Billing\\ZohoInvoiceReconciler::reconcile",
        "fqmn": "App\\Services\\Billing\\ZohoInvoiceReconciler@reconcile",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/ZohoPaymentSyncService.php::App\\Services\\Billing\\ZohoPaymentSyncService::__construct",
        "fqmn": "App\\Services\\Billing\\ZohoPaymentSyncService@__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/Billing/ZohoPaymentSyncService.php::App\\Services\\Billing\\ZohoPaymentSyncService::pushMultiInvoicePayment",
        "fqmn": "App\\Services\\Billing\\ZohoPaymentSyncService@pushMultiInvoicePayment",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/ZohoPaymentSyncService.php::App\\Services\\Billing\\ZohoPaymentSyncService::pushSettlementPayment",
        "fqmn": "App\\Services\\Billing\\ZohoPaymentSyncService@pushSettlementPayment",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/BillingStateService.php::App\\Services\\BillingStateService::__construct",
        "fqmn": "App\\Services\\BillingStateService@__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/BillingStateService.php::App\\Services\\BillingStateService::applyZohoPaid",
        "fqmn": "App\\Services\\BillingStateService@applyZohoPaid",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/BillingStateService.php::App\\Services\\BillingStateService::applyZohoVoidedOrCancelled",
        "fqmn": "App\\Services\\BillingStateService@applyZohoVoidedOrCancelled",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/BillingStateService.php::App\\Services\\BillingStateService::evaluatePostDunningFailure",
        "fqmn": "App\\Services\\BillingStateService@evaluatePostDunningFailure",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/BillingStateService.php::App\\Services\\BillingStateService::handle",
        "fqmn": "App\\Services\\BillingStateService@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_DELETE",
        "surface_id": "method::app/Services/BillingStateService.php::App\\Services\\BillingStateService::moveToActive",
        "fqmn": "App\\Services\\BillingStateService@moveToActive",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/BillingStateService.php::App\\Services\\BillingStateService::moveToCanceled",
        "fqmn": "App\\Services\\BillingStateService@moveToCanceled",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/BillingStateService.php::App\\Services\\BillingStateService::moveToExpired",
        "fqmn": "App\\Services\\BillingStateService@moveToExpired",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/BillingStateService.php::App\\Services\\BillingStateService::moveToGrace",
        "fqmn": "App\\Services\\BillingStateService@moveToGrace",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/BillingStateService.php::App\\Services\\BillingStateService::moveToPastDue",
        "fqmn": "App\\Services\\BillingStateService@moveToPastDue",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/BillingStateService.php::App\\Services\\BillingStateService::moveToPendingPayment",
        "fqmn": "App\\Services\\BillingStateService@moveToPendingPayment",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/BillingStateService.php::App\\Services\\BillingStateService::moveToSuspended",
        "fqmn": "App\\Services\\BillingStateService@moveToSuspended",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/BillingStateService.php::App\\Services\\BillingStateService::moveToTrialing",
        "fqmn": "App\\Services\\BillingStateService@moveToTrialing",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/BillingStateService.php::App\\Services\\BillingStateService::processSuccessfulSubscriptionPayment",
        "fqmn": "App\\Services\\BillingStateService@processSuccessfulSubscriptionPayment",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/BillingStateService.php::App\\Services\\BillingStateService::transition",
        "fqmn": "App\\Services\\BillingStateService@transition",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/DiscountService.php::App\\Services\\DiscountService::applyCodeToSubscription",
        "fqmn": "App\\Services\\DiscountService@applyCodeToSubscription",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/DiscountService.php::App\\Services\\DiscountService::applyToAmount",
        "fqmn": "App\\Services\\DiscountService@applyToAmount",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/DiscountService.php::App\\Services\\DiscountService::hasActiveCode",
        "fqmn": "App\\Services\\DiscountService@hasActiveCode",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/DiscountService.php::App\\Services\\DiscountService::issueOneTimeAI",
        "fqmn": "App\\Services\\DiscountService@issueOneTimeAI",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/DiscountService.php::App\\Services\\DiscountService::shouldOfferUpsellInsteadOfDiscount",
        "fqmn": "App\\Services\\DiscountService@shouldOfferUpsellInsteadOfDiscount",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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::__construct",
        "fqmn": "App\\Services\\DunningService@__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/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::scheduleNext",
        "fqmn": "App\\Services\\DunningService@scheduleNext",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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::startDunning",
        "fqmn": "App\\Services\\DunningService@startDunning",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Email/ZeptoMailer.php::App\\Services\\Email\\ZeptoMailer::sendHtml",
        "fqmn": "App\\Services\\Email\\ZeptoMailer@sendHtml",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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::applyPlaceholders",
        "fqmn": "App\\Services\\EmailTemplateService@applyPlaceholders",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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::getLocalizedContent",
        "fqmn": "App\\Services\\EmailTemplateService@getLocalizedContent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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::getTemplateFor",
        "fqmn": "App\\Services\\EmailTemplateService@getTemplateFor",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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::isEnabledForOrganization",
        "fqmn": "App\\Services\\EmailTemplateService@isEnabledForOrganization",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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::render",
        "fqmn": "App\\Services\\EmailTemplateService@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/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/EmailTemplateService.php::App\\Services\\EmailTemplateService::resolve",
        "fqmn": "App\\Services\\EmailTemplateService@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/EmailTemplateService.php::App\\Services\\EmailTemplateService::send",
        "fqmn": "App\\Services\\EmailTemplateService@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/GccCountryService.php::App\\Services\\GccCountryService::detectCountryFromPhone",
        "fqmn": "App\\Services\\GccCountryService@detectCountryFromPhone",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/GccCountryService.php::App\\Services\\GccCountryService::getCountries",
        "fqmn": "App\\Services\\GccCountryService@getCountries",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/GccCountryService.php::App\\Services\\GccCountryService::getCountryCodes",
        "fqmn": "App\\Services\\GccCountryService@getCountryCodes",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/GccCountryService.php::App\\Services\\GccCountryService::getCountryName",
        "fqmn": "App\\Services\\GccCountryService@getCountryName",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/GccCountryService.php::App\\Services\\GccCountryService::getCurrency",
        "fqmn": "App\\Services\\GccCountryService@getCurrency",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/GccCountryService.php::App\\Services\\GccCountryService::getCurrencyName",
        "fqmn": "App\\Services\\GccCountryService@getCurrencyName",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/GccCountryService.php::App\\Services\\GccCountryService::isGccCountry",
        "fqmn": "App\\Services\\GccCountryService@isGccCountry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Imports/CsvImportExecutor.php::App\\Services\\Imports\\CsvImportExecutor::execute",
        "fqmn": "App\\Services\\Imports\\CsvImportExecutor@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/Imports/CsvImportExecutor.php::App\\Services\\Imports\\CsvImportExecutor::generateErrorReport",
        "fqmn": "App\\Services\\Imports\\CsvImportExecutor@generateErrorReport",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Imports/CsvImportExecutorV2.php::App\\Services\\Imports\\CsvImportExecutorV2::execute",
        "fqmn": "App\\Services\\Imports\\CsvImportExecutorV2@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/Imports/CsvImportExecutorV2.php::App\\Services\\Imports\\CsvImportExecutorV2::generateErrorReport",
        "fqmn": "App\\Services\\Imports\\CsvImportExecutorV2@generateErrorReport",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Imports/CsvImportSessionManager.php::App\\Services\\Imports\\CsvImportSessionManager::addFile",
        "fqmn": "App\\Services\\Imports\\CsvImportSessionManager@addFile",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Imports/CsvImportSessionManager.php::App\\Services\\Imports\\CsvImportSessionManager::cleanupOldSessions",
        "fqmn": "App\\Services\\Imports\\CsvImportSessionManager@cleanupOldSessions",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Imports/CsvImportSessionManager.php::App\\Services\\Imports\\CsvImportSessionManager::createSession",
        "fqmn": "App\\Services\\Imports\\CsvImportSessionManager@createSession",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Imports/CsvImportSessionManager.php::App\\Services\\Imports\\CsvImportSessionManager::deleteSession",
        "fqmn": "App\\Services\\Imports\\CsvImportSessionManager@deleteSession",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Imports/CsvImportSessionManager.php::App\\Services\\Imports\\CsvImportSessionManager::findExistingSession",
        "fqmn": "App\\Services\\Imports\\CsvImportSessionManager@findExistingSession",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Imports/CsvImportSessionManager.php::App\\Services\\Imports\\CsvImportSessionManager::getFilePath",
        "fqmn": "App\\Services\\Imports\\CsvImportSessionManager@getFilePath",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Imports/CsvImportSessionManager.php::App\\Services\\Imports\\CsvImportSessionManager::getSessionData",
        "fqmn": "App\\Services\\Imports\\CsvImportSessionManager@getSessionData",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Imports/CsvImportSessionManager.php::App\\Services\\Imports\\CsvImportSessionManager::markComplete",
        "fqmn": "App\\Services\\Imports\\CsvImportSessionManager@markComplete",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Imports/CsvImportSessionManager.php::App\\Services\\Imports\\CsvImportSessionManager::saveSessionData",
        "fqmn": "App\\Services\\Imports\\CsvImportSessionManager@saveSessionData",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Imports/CsvImportSessionManager.php::App\\Services\\Imports\\CsvImportSessionManager::saveValidationResults",
        "fqmn": "App\\Services\\Imports\\CsvImportSessionManager@saveValidationResults",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Imports/CsvParserService.php::App\\Services\\Imports\\CsvParserService::detectDuplicates",
        "fqmn": "App\\Services\\Imports\\CsvParserService@detectDuplicates",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Imports/CsvParserService.php::App\\Services\\Imports\\CsvParserService::detectEntityType",
        "fqmn": "App\\Services\\Imports\\CsvParserService@detectEntityType",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Imports/CsvParserService.php::App\\Services\\Imports\\CsvParserService::normalizeMobile",
        "fqmn": "App\\Services\\Imports\\CsvParserService@normalizeMobile",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Imports/CsvParserService.php::App\\Services\\Imports\\CsvParserService::parseCsv",
        "fqmn": "App\\Services\\Imports\\CsvParserService@parseCsv",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Imports/CsvParserService.php::App\\Services\\Imports\\CsvParserService::validate",
        "fqmn": "App\\Services\\Imports\\CsvParserService@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/Imports/CsvRelationshipMapper.php::App\\Services\\Imports\\CsvRelationshipMapper::analyzeRelationships",
        "fqmn": "App\\Services\\Imports\\CsvRelationshipMapper@analyzeRelationships",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, 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/Integrations/BrotionsSalesService.php::App\\Services\\Integrations\\BrotionsSalesService::__construct",
        "fqmn": "App\\Services\\Integrations\\BrotionsSalesService@__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/Integrations/BrotionsSalesService.php::App\\Services\\Integrations\\BrotionsSalesService::reportDealWon",
        "fqmn": "App\\Services\\Integrations\\BrotionsSalesService@reportDealWon",
        "bucket": "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/Integrations/BrotionsSalesService.php::App\\Services\\Integrations\\BrotionsSalesService::reportSubscriptionCancelled",
        "fqmn": "App\\Services\\Integrations\\BrotionsSalesService@reportSubscriptionCancelled",
        "bucket": "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/Integrations/BrotionsSalesService.php::App\\Services\\Integrations\\BrotionsSalesService::reportTrialStarted",
        "fqmn": "App\\Services\\Integrations\\BrotionsSalesService@reportTrialStarted",
        "bucket": "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/InvitationService.php::App\\Services\\InvitationService::accept",
        "fqmn": "App\\Services\\InvitationService@accept",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/InvitationService.php::App\\Services\\InvitationService::cancel",
        "fqmn": "App\\Services\\InvitationService@cancel",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/InvitationService.php::App\\Services\\InvitationService::cleanupExpired",
        "fqmn": "App\\Services\\InvitationService@cleanupExpired",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/InvitationService.php::App\\Services\\InvitationService::create",
        "fqmn": "App\\Services\\InvitationService@create",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/InvitationService.php::App\\Services\\InvitationService::getPendingInvitations",
        "fqmn": "App\\Services\\InvitationService@getPendingInvitations",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/InvitationService.php::App\\Services\\InvitationService::resend",
        "fqmn": "App\\Services\\InvitationService@resend",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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::__construct",
        "fqmn": "App\\Services\\InvoiceService@__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/InvoiceService.php::App\\Services\\InvoiceService::generateCreditTopUpInvoice",
        "fqmn": "App\\Services\\InvoiceService@generateCreditTopUpInvoice",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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::generateMessagePackageInvoice",
        "fqmn": "App\\Services\\InvoiceService@generateMessagePackageInvoice",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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::generateMonthlyMessageInvoice",
        "fqmn": "App\\Services\\InvoiceService@generateMonthlyMessageInvoice",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/InvoiceService.php::App\\Services\\InvoiceService::mirrorZohoInvoice",
        "fqmn": "App\\Services\\InvoiceService@mirrorZohoInvoice",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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::prepareForZatca",
        "fqmn": "App\\Services\\InvoiceService@prepareForZatca",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Messaging/MessageQuotaService.php::App\\Services\\Messaging\\MessageQuotaService::checkDailyLimit",
        "fqmn": "App\\Services\\Messaging\\MessageQuotaService@checkDailyLimit",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Messaging/MessageQuotaService.php::App\\Services\\Messaging\\MessageQuotaService::checkMonthlyLimit",
        "fqmn": "App\\Services\\Messaging\\MessageQuotaService@checkMonthlyLimit",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Messaging/MessageQuotaService.php::App\\Services\\Messaging\\MessageQuotaService::checkRecipientThrottle",
        "fqmn": "App\\Services\\Messaging\\MessageQuotaService@checkRecipientThrottle",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Messaging/MessageQuotaService.php::App\\Services\\Messaging\\MessageQuotaService::incrementUsage",
        "fqmn": "App\\Services\\Messaging\\MessageQuotaService@incrementUsage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Messaging/MessagingGateway.php::App\\Services\\Messaging\\MessagingGateway::__construct",
        "fqmn": "App\\Services\\Messaging\\MessagingGateway@__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/Messaging/MessagingGateway.php::App\\Services\\Messaging\\MessagingGateway::resolveProvider",
        "fqmn": "App\\Services\\Messaging\\MessagingGateway@resolveProvider",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Messaging/MessagingGateway.php::App\\Services\\Messaging\\MessagingGateway::sendWhatsApp",
        "fqmn": "App\\Services\\Messaging\\MessagingGateway@sendWhatsApp",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Messaging/MessagingResult.php::App\\Services\\Messaging\\MessagingResult::__construct",
        "fqmn": "App\\Services\\Messaging\\MessagingResult@__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/Messaging/MessagingResult.php::App\\Services\\Messaging\\MessagingResult::toArray",
        "fqmn": "App\\Services\\Messaging\\MessagingResult@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/Notifications/NotificationDispatcher.php::App\\Services\\Notifications\\NotificationDispatcher::send",
        "fqmn": "App\\Services\\Notifications\\NotificationDispatcher@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/Notifications/NotificationSenderRunner.php::App\\Services\\Notifications\\NotificationSenderRunner::sendForSubscriptionEvent",
        "fqmn": "App\\Services\\Notifications\\NotificationSenderRunner@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/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OpenAI/Client.php::App\\Services\\OpenAI\\Client::chat",
        "fqmn": "App\\Services\\OpenAI\\Client@chat",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OpenAI/Client.php::App\\Services\\OpenAI\\Client::transcribe",
        "fqmn": "App\\Services\\OpenAI\\Client@transcribe",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::__construct",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@__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/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::assertNothingSent",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@assertNothingSent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::assistants",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@assistants",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::audio",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@audio",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::batches",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@batches",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::chat",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@chat",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::completions",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@completions",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::edits",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@edits",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::embeddings",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@embeddings",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::files",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@files",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::fineTunes",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@fineTunes",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::fineTuning",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@fineTuning",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::images",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@images",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::models",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@models",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::moderations",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@moderations",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::threads",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@threads",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::vectorStores",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@vectorStores",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::wrap",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@wrap",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OpenAI/OpenAIVisionService.php::App\\Services\\OpenAI\\OpenAIVisionService::__construct",
        "fqmn": "App\\Services\\OpenAI\\OpenAIVisionService@__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/OpenAI/OpenAIVisionService.php::App\\Services\\OpenAI\\OpenAIVisionService::analyzePaymentReceipt",
        "fqmn": "App\\Services\\OpenAI\\OpenAIVisionService@analyzePaymentReceipt",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OrganizationMetadataService.php::App\\Services\\OrganizationMetadataService::getMetadata",
        "fqmn": "App\\Services\\OrganizationMetadataService@getMetadata",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OrganizationRegistrationService.php::App\\Services\\OrganizationRegistrationService::__construct",
        "fqmn": "App\\Services\\OrganizationRegistrationService@__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/OrganizationRegistrationService.php::App\\Services\\OrganizationRegistrationService::generateUniqueSlug",
        "fqmn": "App\\Services\\OrganizationRegistrationService@generateUniqueSlug",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OrganizationRegistrationService.php::App\\Services\\OrganizationRegistrationService::grantTrialOnRegistration",
        "fqmn": "App\\Services\\OrganizationRegistrationService@grantTrialOnRegistration",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OTPService.php::App\\Services\\OTPService::__construct",
        "fqmn": "App\\Services\\OTPService@__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/OTPService.php::App\\Services\\OTPService::resendOTP",
        "fqmn": "App\\Services\\OTPService@resendOTP",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OTPService.php::App\\Services\\OTPService::sendRegistrationOTP",
        "fqmn": "App\\Services\\OTPService@sendRegistrationOTP",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OTPService.php::App\\Services\\OTPService::verifyRegistrationOTP",
        "fqmn": "App\\Services\\OTPService@verifyRegistrationOTP",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Outreach/AnalyticsService.php::App\\Services\\Outreach\\AnalyticsService::getAttemptsPerCountry",
        "fqmn": "App\\Services\\Outreach\\AnalyticsService@getAttemptsPerCountry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Outreach/AnalyticsService.php::App\\Services\\Outreach\\AnalyticsService::getDeliveryRatePerCountry",
        "fqmn": "App\\Services\\Outreach\\AnalyticsService@getDeliveryRatePerCountry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Outreach/AnalyticsService.php::App\\Services\\Outreach\\AnalyticsService::getDeliveryRatePerTemplate",
        "fqmn": "App\\Services\\Outreach\\AnalyticsService@getDeliveryRatePerTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Outreach/AnalyticsService.php::App\\Services\\Outreach\\AnalyticsService::getOptInsOverTime",
        "fqmn": "App\\Services\\Outreach\\AnalyticsService@getOptInsOverTime",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Outreach/AnalyticsService.php::App\\Services\\Outreach\\AnalyticsService::getOverviewStats",
        "fqmn": "App\\Services\\Outreach\\AnalyticsService@getOverviewStats",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Outreach/CampaignService.php::App\\Services\\Outreach\\CampaignService::__construct",
        "fqmn": "App\\Services\\Outreach\\CampaignService@__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/Outreach/CampaignService.php::App\\Services\\Outreach\\CampaignService::getLeadsReadyForNextRound",
        "fqmn": "App\\Services\\Outreach\\CampaignService@getLeadsReadyForNextRound",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Outreach/CampaignService.php::App\\Services\\Outreach\\CampaignService::getTemplateForLead",
        "fqmn": "App\\Services\\Outreach\\CampaignService@getTemplateForLead",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Outreach/CampaignService.php::App\\Services\\Outreach\\CampaignService::queueSendAttempt",
        "fqmn": "App\\Services\\Outreach\\CampaignService@queueSendAttempt",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Outreach/CampaignService.php::App\\Services\\Outreach\\CampaignService::retryFailedAttempts",
        "fqmn": "App\\Services\\Outreach\\CampaignService@retryFailedAttempts",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Outreach/FollowUpDecisionEngine.php::App\\Services\\Outreach\\FollowUpDecisionEngine::checkThrottle",
        "fqmn": "App\\Services\\Outreach\\FollowUpDecisionEngine@checkThrottle",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Outreach/FollowUpDecisionEngine.php::App\\Services\\Outreach\\FollowUpDecisionEngine::convertIntervalToTimestamp",
        "fqmn": "App\\Services\\Outreach\\FollowUpDecisionEngine@convertIntervalToTimestamp",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Outreach/FollowUpDecisionEngine.php::App\\Services\\Outreach\\FollowUpDecisionEngine::evaluate",
        "fqmn": "App\\Services\\Outreach\\FollowUpDecisionEngine@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/Outreach/FollowUpDecisionEngine.php::App\\Services\\Outreach\\FollowUpDecisionEngine::execute",
        "fqmn": "App\\Services\\Outreach\\FollowUpDecisionEngine@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/Outreach/FollowUpMetricsService.php::App\\Services\\Outreach\\FollowUpMetricsService::dailyStats",
        "fqmn": "App\\Services\\Outreach\\FollowUpMetricsService@dailyStats",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Outreach/FollowUpMetricsService.php::App\\Services\\Outreach\\FollowUpMetricsService::priorityBreakdown",
        "fqmn": "App\\Services\\Outreach\\FollowUpMetricsService@priorityBreakdown",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Outreach/FollowUpSchedulerService.php::App\\Services\\Outreach\\FollowUpSchedulerService::cancelPendingForConversation",
        "fqmn": "App\\Services\\Outreach\\FollowUpSchedulerService@cancelPendingForConversation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Outreach/FollowUpSchedulerService.php::App\\Services\\Outreach\\FollowUpSchedulerService::cancelPendingForLead",
        "fqmn": "App\\Services\\Outreach\\FollowUpSchedulerService@cancelPendingForLead",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Outreach/FollowUpSchedulerService.php::App\\Services\\Outreach\\FollowUpSchedulerService::create",
        "fqmn": "App\\Services\\Outreach\\FollowUpSchedulerService@create",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Outreach/FollowUpSchedulerService.php::App\\Services\\Outreach\\FollowUpSchedulerService::reschedule",
        "fqmn": "App\\Services\\Outreach\\FollowUpSchedulerService@reschedule",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Outreach/FollowUpTemplateService.php::App\\Services\\Outreach\\FollowUpTemplateService::generateTemplate",
        "fqmn": "App\\Services\\Outreach\\FollowUpTemplateService@generateTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Outreach/InboundMessageNormalizer.php::App\\Services\\Outreach\\InboundMessageNormalizer::normalizeInbound",
        "fqmn": "App\\Services\\Outreach\\InboundMessageNormalizer@normalizeInbound",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Outreach/LeadImporter.php::App\\Services\\Outreach\\LeadImporter::__construct",
        "fqmn": "App\\Services\\Outreach\\LeadImporter@__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/Outreach/LeadImporter.php::App\\Services\\Outreach\\LeadImporter::import",
        "fqmn": "App\\Services\\Outreach\\LeadImporter@import",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Outreach/PhoneNumberNormalizer.php::App\\Services\\Outreach\\PhoneNumberNormalizer::normalize",
        "fqmn": "App\\Services\\Outreach\\PhoneNumberNormalizer@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/Outreach/SafetyEngine.php::App\\Services\\Outreach\\SafetyEngine::isAllowed",
        "fqmn": "App\\Services\\Outreach\\SafetyEngine@isAllowed",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Outreach/TemplateService.php::App\\Services\\Outreach\\TemplateService::getTemplatesForCountry",
        "fqmn": "App\\Services\\Outreach\\TemplateService@getTemplatesForCountry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Outreach/TemplateService.php::App\\Services\\Outreach\\TemplateService::saveTemplates",
        "fqmn": "App\\Services\\Outreach\\TemplateService@saveTemplates",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Outreach/TemplateService.php::App\\Services\\Outreach\\TemplateService::syncTemplateStatus",
        "fqmn": "App\\Services\\Outreach\\TemplateService@syncTemplateStatus",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ABTestingService.php::App\\Services\\OutreachAI\\ABTestingService::getExperimentalWeights",
        "fqmn": "App\\Services\\OutreachAI\\ABTestingService@getExperimentalWeights",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ABTestingService.php::App\\Services\\OutreachAI\\ABTestingService::getWeightsForConversation",
        "fqmn": "App\\Services\\OutreachAI\\ABTestingService@getWeightsForConversation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ABTestingService.php::App\\Services\\OutreachAI\\ABTestingService::shouldUseExperimentalWeights",
        "fqmn": "App\\Services\\OutreachAI\\ABTestingService@shouldUseExperimentalWeights",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AdaptiveLearningEngine.php::App\\Services\\OutreachAI\\AdaptiveLearningEngine::boostHighPerformingPatterns",
        "fqmn": "App\\Services\\OutreachAI\\AdaptiveLearningEngine@boostHighPerformingPatterns",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AdaptiveLearningEngine.php::App\\Services\\OutreachAI\\AdaptiveLearningEngine::computeOutcomeWeights",
        "fqmn": "App\\Services\\OutreachAI\\AdaptiveLearningEngine@computeOutcomeWeights",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AdaptiveLearningEngine.php::App\\Services\\OutreachAI\\AdaptiveLearningEngine::detectCluster",
        "fqmn": "App\\Services\\OutreachAI\\AdaptiveLearningEngine@detectCluster",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AdaptiveLearningEngine.php::App\\Services\\OutreachAI\\AdaptiveLearningEngine::evolveStrategiesDaily",
        "fqmn": "App\\Services\\OutreachAI\\AdaptiveLearningEngine@evolveStrategiesDaily",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AdaptiveLearningEngine.php::App\\Services\\OutreachAI\\AdaptiveLearningEngine::outputLearningDirectives",
        "fqmn": "App\\Services\\OutreachAI\\AdaptiveLearningEngine@outputLearningDirectives",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AdaptiveLearningEngine.php::App\\Services\\OutreachAI\\AdaptiveLearningEngine::pruneWeakStrategies",
        "fqmn": "App\\Services\\OutreachAI\\AdaptiveLearningEngine@pruneWeakStrategies",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AdaptiveLearningEngine.php::App\\Services\\OutreachAI\\AdaptiveLearningEngine::recordSignal",
        "fqmn": "App\\Services\\OutreachAI\\AdaptiveLearningEngine@recordSignal",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AdaptiveLearningEngine.php::App\\Services\\OutreachAI\\AdaptiveLearningEngine::updateStrategyWeights",
        "fqmn": "App\\Services\\OutreachAI\\AdaptiveLearningEngine@updateStrategyWeights",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AdaptiveStrategyEngine.php::App\\Services\\OutreachAI\\AdaptiveStrategyEngine::adaptStrategy",
        "fqmn": "App\\Services\\OutreachAI\\AdaptiveStrategyEngine@adaptStrategy",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AdaptiveStrategyEngine.php::App\\Services\\OutreachAI\\AdaptiveStrategyEngine::applyStrategy",
        "fqmn": "App\\Services\\OutreachAI\\AdaptiveStrategyEngine@applyStrategy",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AdaptiveStrategyEngine.php::App\\Services\\OutreachAI\\AdaptiveStrategyEngine::getLatestPrediction",
        "fqmn": "App\\Services\\OutreachAI\\AdaptiveStrategyEngine@getLatestPrediction",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AffordabilityScoringService.php::App\\Services\\OutreachAI\\AffordabilityScoringService::emit",
        "fqmn": "App\\Services\\OutreachAI\\AffordabilityScoringService@emit",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AffordabilityScoringService.php::App\\Services\\OutreachAI\\AffordabilityScoringService::score",
        "fqmn": "App\\Services\\OutreachAI\\AffordabilityScoringService@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/OutreachAI/AgencyConversion/AgencyCompetitiveService.php::App\\Services\\OutreachAI\\AgencyConversion\\AgencyCompetitiveService::detectCompetitor",
        "fqmn": "App\\Services\\OutreachAI\\AgencyConversion\\AgencyCompetitiveService@detectCompetitor",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AgencyConversion/AgencyCompetitiveService.php::App\\Services\\OutreachAI\\AgencyConversion\\AgencyCompetitiveService::generateComparison",
        "fqmn": "App\\Services\\OutreachAI\\AgencyConversion\\AgencyCompetitiveService@generateComparison",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AgencyConversion/AgencyConversionDecisionService.php::App\\Services\\OutreachAI\\AgencyConversion\\AgencyConversionDecisionService::detectConversionMoment",
        "fqmn": "App\\Services\\OutreachAI\\AgencyConversion\\AgencyConversionDecisionService@detectConversionMoment",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AgencyConversion/AgencyConversionDecisionService.php::App\\Services\\OutreachAI\\AgencyConversion\\AgencyConversionDecisionService::generateConversionPrompt",
        "fqmn": "App\\Services\\OutreachAI\\AgencyConversion\\AgencyConversionDecisionService@generateConversionPrompt",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AgencyConversion/AgencyConversionFollowUpService.php::App\\Services\\OutreachAI\\AgencyConversion\\AgencyConversionFollowUpService::generateFollowUp",
        "fqmn": "App\\Services\\OutreachAI\\AgencyConversion\\AgencyConversionFollowUpService@generateFollowUp",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AgencyConversion/AgencyConversionFollowUpService.php::App\\Services\\OutreachAI\\AgencyConversion\\AgencyConversionFollowUpService::shouldFollowUp",
        "fqmn": "App\\Services\\OutreachAI\\AgencyConversion\\AgencyConversionFollowUpService@shouldFollowUp",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AgencyConversion/AgencyDemoScheduler.php::App\\Services\\OutreachAI\\AgencyConversion\\AgencyDemoScheduler::detectDemoInterest",
        "fqmn": "App\\Services\\OutreachAI\\AgencyConversion\\AgencyDemoScheduler@detectDemoInterest",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AgencyConversion/AgencyDemoScheduler.php::App\\Services\\OutreachAI\\AgencyConversion\\AgencyDemoScheduler::scheduleDemo",
        "fqmn": "App\\Services\\OutreachAI\\AgencyConversion\\AgencyDemoScheduler@scheduleDemo",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AgencyConversion/AgencyEducationService.php::App\\Services\\OutreachAI\\AgencyConversion\\AgencyEducationService::generateEducationBlock",
        "fqmn": "App\\Services\\OutreachAI\\AgencyConversion\\AgencyEducationService@generateEducationBlock",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AgencyConversion/AgencyEducationService.php::App\\Services\\OutreachAI\\AgencyConversion\\AgencyEducationService::respondToQuestion",
        "fqmn": "App\\Services\\OutreachAI\\AgencyConversion\\AgencyEducationService@respondToQuestion",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AgencyConversion/AgencyObjectionService.php::App\\Services\\OutreachAI\\AgencyConversion\\AgencyObjectionService::detectObjection",
        "fqmn": "App\\Services\\OutreachAI\\AgencyConversion\\AgencyObjectionService@detectObjection",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AgencyConversion/AgencyObjectionService.php::App\\Services\\OutreachAI\\AgencyConversion\\AgencyObjectionService::generateRebuttal",
        "fqmn": "App\\Services\\OutreachAI\\AgencyConversion\\AgencyObjectionService@generateRebuttal",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AgencyConversion/AgencyPricingExplainService.php::App\\Services\\OutreachAI\\AgencyConversion\\AgencyPricingExplainService::detectPricingIntent",
        "fqmn": "App\\Services\\OutreachAI\\AgencyConversion\\AgencyPricingExplainService@detectPricingIntent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AgencyConversion/AgencyPricingExplainService.php::App\\Services\\OutreachAI\\AgencyConversion\\AgencyPricingExplainService::explainPricing",
        "fqmn": "App\\Services\\OutreachAI\\AgencyConversion\\AgencyPricingExplainService@explainPricing",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AgencyConversion/AgencyQualificationService.php::App\\Services\\OutreachAI\\AgencyConversion\\AgencyQualificationService::qualify",
        "fqmn": "App\\Services\\OutreachAI\\AgencyConversion\\AgencyQualificationService@qualify",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AgenticActionService.php::App\\Services\\OutreachAI\\AgenticActionService::execute",
        "fqmn": "App\\Services\\OutreachAI\\AgenticActionService@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/OutreachAI/AIAutoReplyService.php::App\\Services\\OutreachAI\\AIAutoReplyService::__construct",
        "fqmn": "App\\Services\\OutreachAI\\AIAutoReplyService@__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/OutreachAI/AIAutoReplyService.php::App\\Services\\OutreachAI\\AIAutoReplyService::handleInboundMessage",
        "fqmn": "App\\Services\\OutreachAI\\AIAutoReplyService@handleInboundMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AIResponderService.php::App\\Services\\OutreachAI\\AIResponderService::__construct",
        "fqmn": "App\\Services\\OutreachAI\\AIResponderService@__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/OutreachAI/AIResponderService.php::App\\Services\\OutreachAI\\AIResponderService::generateReply",
        "fqmn": "App\\Services\\OutreachAI\\AIResponderService@generateReply",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AIResponderService.php::App\\Services\\OutreachAI\\AIResponderService::getDirector",
        "fqmn": "App\\Services\\OutreachAI\\AIResponderService@getDirector",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AIResponderService.php::App\\Services\\OutreachAI\\AIResponderService::initiateOutboundConversation",
        "fqmn": "App\\Services\\OutreachAI\\AIResponderService@initiateOutboundConversation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AppointmentDetectionService.php::App\\Services\\OutreachAI\\AppointmentDetectionService::detect",
        "fqmn": "App\\Services\\OutreachAI\\AppointmentDetectionService@detect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AppointmentSchedulingService.php::App\\Services\\OutreachAI\\AppointmentSchedulingService::evaluateAppointmentClosingStrategy",
        "fqmn": "App\\Services\\OutreachAI\\AppointmentSchedulingService@evaluateAppointmentClosingStrategy",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AppointmentSchedulingService.php::App\\Services\\OutreachAI\\AppointmentSchedulingService::schedule",
        "fqmn": "App\\Services\\OutreachAI\\AppointmentSchedulingService@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/OutreachAI/AppointmentSchedulingService.php::App\\Services\\OutreachAI\\AppointmentSchedulingService::suggestAppointmentForClosing",
        "fqmn": "App\\Services\\OutreachAI\\AppointmentSchedulingService@suggestAppointmentForClosing",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AssetDetectionService.php::App\\Services\\OutreachAI\\AssetDetectionService::detect",
        "fqmn": "App\\Services\\OutreachAI\\AssetDetectionService@detect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AudioConverter.php::App\\Services\\OutreachAI\\AudioConverter::cleanupOldFiles",
        "fqmn": "App\\Services\\OutreachAI\\AudioConverter@cleanupOldFiles",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AudioConverter.php::App\\Services\\OutreachAI\\AudioConverter::convertToMp3",
        "fqmn": "App\\Services\\OutreachAI\\AudioConverter@convertToMp3",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AudioConverter.php::App\\Services\\OutreachAI\\AudioConverter::getStorageStats",
        "fqmn": "App\\Services\\OutreachAI\\AudioConverter@getStorageStats",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AudioDownloadService.php::App\\Services\\OutreachAI\\AudioDownloadService::download",
        "fqmn": "App\\Services\\OutreachAI\\AudioDownloadService@download",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AudioDownloadService.php::App\\Services\\OutreachAI\\AudioDownloadService::downloadFromTwilio",
        "fqmn": "App\\Services\\OutreachAI\\AudioDownloadService@downloadFromTwilio",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AutoCorrectionService.php::App\\Services\\OutreachAI\\AutoCorrectionService::applyCorrectionDirectives",
        "fqmn": "App\\Services\\OutreachAI\\AutoCorrectionService@applyCorrectionDirectives",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AutoCorrectionService.php::App\\Services\\OutreachAI\\AutoCorrectionService::clearDirectives",
        "fqmn": "App\\Services\\OutreachAI\\AutoCorrectionService@clearDirectives",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AutoCorrectionService.php::App\\Services\\OutreachAI\\AutoCorrectionService::correct",
        "fqmn": "App\\Services\\OutreachAI\\AutoCorrectionService@correct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AutoCorrectionService.php::App\\Services\\OutreachAI\\AutoCorrectionService::generateCorrectionDirectives",
        "fqmn": "App\\Services\\OutreachAI\\AutoCorrectionService@generateCorrectionDirectives",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/AutoReplyDetectionService.php::App\\Services\\OutreachAI\\AutoReplyDetectionService::detect",
        "fqmn": "App\\Services\\OutreachAI\\AutoReplyDetectionService@detect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/BudgetDetectionService.php::App\\Services\\OutreachAI\\BudgetDetectionService::detect",
        "fqmn": "App\\Services\\OutreachAI\\BudgetDetectionService@detect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/BudgetNegotiationStrategyService.php::App\\Services\\OutreachAI\\BudgetNegotiationStrategyService::getStrategy",
        "fqmn": "App\\Services\\OutreachAI\\BudgetNegotiationStrategyService@getStrategy",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/CalibrationEngine.php::App\\Services\\OutreachAI\\CalibrationEngine::computeTimingAdjustment",
        "fqmn": "App\\Services\\OutreachAI\\CalibrationEngine@computeTimingAdjustment",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/CalibrationEngine.php::App\\Services\\OutreachAI\\CalibrationEngine::record",
        "fqmn": "App\\Services\\OutreachAI\\CalibrationEngine@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/OutreachAI/ChurnPredictionEngine.php::App\\Services\\OutreachAI\\ChurnPredictionEngine::emit",
        "fqmn": "App\\Services\\OutreachAI\\ChurnPredictionEngine@emit",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ChurnPredictionEngine.php::App\\Services\\OutreachAI\\ChurnPredictionEngine::predict",
        "fqmn": "App\\Services\\OutreachAI\\ChurnPredictionEngine@predict",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ChurnPreventionOrchestrator.php::App\\Services\\OutreachAI\\ChurnPreventionOrchestrator::__construct",
        "fqmn": "App\\Services\\OutreachAI\\ChurnPreventionOrchestrator@__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/OutreachAI/ChurnPreventionOrchestrator.php::App\\Services\\OutreachAI\\ChurnPreventionOrchestrator::preventChurn",
        "fqmn": "App\\Services\\OutreachAI\\ChurnPreventionOrchestrator@preventChurn",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ClosingSuccessDetector.php::App\\Services\\OutreachAI\\ClosingSuccessDetector::checkForFailure",
        "fqmn": "App\\Services\\OutreachAI\\ClosingSuccessDetector@checkForFailure",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ClosingSuccessDetector.php::App\\Services\\OutreachAI\\ClosingSuccessDetector::detectSuccess",
        "fqmn": "App\\Services\\OutreachAI\\ClosingSuccessDetector@detectSuccess",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ClosingTimingEngine.php::App\\Services\\OutreachAI\\ClosingTimingEngine::calculateNextAllowedTime",
        "fqmn": "App\\Services\\OutreachAI\\ClosingTimingEngine@calculateNextAllowedTime",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ClosingTimingEngine.php::App\\Services\\OutreachAI\\ClosingTimingEngine::determineTiming",
        "fqmn": "App\\Services\\OutreachAI\\ClosingTimingEngine@determineTiming",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ClosingTimingEngine.php::App\\Services\\OutreachAI\\ClosingTimingEngine::getUserLocalTime",
        "fqmn": "App\\Services\\OutreachAI\\ClosingTimingEngine@getUserLocalTime",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ClosingTimingEngine.php::App\\Services\\OutreachAI\\ClosingTimingEngine::isWithinAllowedHours",
        "fqmn": "App\\Services\\OutreachAI\\ClosingTimingEngine@isWithinAllowedHours",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ClosingTimingEngine.php::App\\Services\\OutreachAI\\ClosingTimingEngine::isWithinBusinessHours",
        "fqmn": "App\\Services\\OutreachAI\\ClosingTimingEngine@isWithinBusinessHours",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ContextBuilder.php::App\\Services\\OutreachAI\\ContextBuilder::build",
        "fqmn": "App\\Services\\OutreachAI\\ContextBuilder@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/OutreachAI/ContractRenewal/RenewalCampaignService.php::App\\Services\\OutreachAI\\ContractRenewal\\RenewalCampaignService::shouldStartCampaign",
        "fqmn": "App\\Services\\OutreachAI\\ContractRenewal\\RenewalCampaignService@shouldStartCampaign",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ContractRenewal/RenewalIncentiveEngine.php::App\\Services\\OutreachAI\\ContractRenewal\\RenewalIncentiveEngine::calculate",
        "fqmn": "App\\Services\\OutreachAI\\ContractRenewal\\RenewalIncentiveEngine@calculate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ContractRenewal/RenewalPredictionEngine.php::App\\Services\\OutreachAI\\ContractRenewal\\RenewalPredictionEngine::predict",
        "fqmn": "App\\Services\\OutreachAI\\ContractRenewal\\RenewalPredictionEngine@predict",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ContractRenewal/RenewalTimingOptimizer.php::App\\Services\\OutreachAI\\ContractRenewal\\RenewalTimingOptimizer::optimize",
        "fqmn": "App\\Services\\OutreachAI\\ContractRenewal\\RenewalTimingOptimizer@optimize",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ConversationAttributionEngine.php::App\\Services\\OutreachAI\\ConversationAttributionEngine::computeAttribution",
        "fqmn": "App\\Services\\OutreachAI\\ConversationAttributionEngine@computeAttribution",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ConversationAttributionEngine.php::App\\Services\\OutreachAI\\ConversationAttributionEngine::getConversationSummaryAttribution",
        "fqmn": "App\\Services\\OutreachAI\\ConversationAttributionEngine@getConversationSummaryAttribution",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ConversationClusterService.php::App\\Services\\OutreachAI\\ConversationClusterService::assignCluster",
        "fqmn": "App\\Services\\OutreachAI\\ConversationClusterService@assignCluster",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ConversationClusterService.php::App\\Services\\OutreachAI\\ConversationClusterService::findSimilarLeads",
        "fqmn": "App\\Services\\OutreachAI\\ConversationClusterService@findSimilarLeads",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ConversationClusterService.php::App\\Services\\OutreachAI\\ConversationClusterService::getClusterBehavior",
        "fqmn": "App\\Services\\OutreachAI\\ConversationClusterService@getClusterBehavior",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ConversationClusterService.php::App\\Services\\OutreachAI\\ConversationClusterService::getClusterConversionRate",
        "fqmn": "App\\Services\\OutreachAI\\ConversationClusterService@getClusterConversionRate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ConversationClusterService.php::App\\Services\\OutreachAI\\ConversationClusterService::getClusterData",
        "fqmn": "App\\Services\\OutreachAI\\ConversationClusterService@getClusterData",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ConversationClusterService.php::App\\Services\\OutreachAI\\ConversationClusterService::getRecommendedStrategy",
        "fqmn": "App\\Services\\OutreachAI\\ConversationClusterService@getRecommendedStrategy",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ConversationFactMemoryService.php::App\\Services\\OutreachAI\\ConversationFactMemoryService::detectContradiction",
        "fqmn": "App\\Services\\OutreachAI\\ConversationFactMemoryService@detectContradiction",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ConversationFactMemoryService.php::App\\Services\\OutreachAI\\ConversationFactMemoryService::getFactContext",
        "fqmn": "App\\Services\\OutreachAI\\ConversationFactMemoryService@getFactContext",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ConversationFactMemoryService.php::App\\Services\\OutreachAI\\ConversationFactMemoryService::updateFactualMemory",
        "fqmn": "App\\Services\\OutreachAI\\ConversationFactMemoryService@updateFactualMemory",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ConversationGoalService.php::App\\Services\\OutreachAI\\ConversationGoalService::__construct",
        "fqmn": "App\\Services\\OutreachAI\\ConversationGoalService@__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/OutreachAI/ConversationGoalService.php::App\\Services\\OutreachAI\\ConversationGoalService::deriveGoal",
        "fqmn": "App\\Services\\OutreachAI\\ConversationGoalService@deriveGoal",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ConversationGoalService.php::App\\Services\\OutreachAI\\ConversationGoalService::storeGoal",
        "fqmn": "App\\Services\\OutreachAI\\ConversationGoalService@storeGoal",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ConversationGovernanceService.php::App\\Services\\OutreachAI\\ConversationGovernanceService::allowsFollowUps",
        "fqmn": "App\\Services\\OutreachAI\\ConversationGovernanceService@allowsFollowUps",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ConversationGovernanceService.php::App\\Services\\OutreachAI\\ConversationGovernanceService::canSendAutomatedMessage",
        "fqmn": "App\\Services\\OutreachAI\\ConversationGovernanceService@canSendAutomatedMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ConversationGovernanceService.php::App\\Services\\OutreachAI\\ConversationGovernanceService::getCurrentState",
        "fqmn": "App\\Services\\OutreachAI\\ConversationGovernanceService@getCurrentState",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ConversationGovernanceService.php::App\\Services\\OutreachAI\\ConversationGovernanceService::getFollowUpTier",
        "fqmn": "App\\Services\\OutreachAI\\ConversationGovernanceService@getFollowUpTier",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ConversationGovernanceService.php::App\\Services\\OutreachAI\\ConversationGovernanceService::handleUserReply",
        "fqmn": "App\\Services\\OutreachAI\\ConversationGovernanceService@handleUserReply",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ConversationGovernanceService.php::App\\Services\\OutreachAI\\ConversationGovernanceService::handleUserSilence",
        "fqmn": "App\\Services\\OutreachAI\\ConversationGovernanceService@handleUserSilence",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ConversationGovernanceService.php::App\\Services\\OutreachAI\\ConversationGovernanceService::transitionTo",
        "fqmn": "App\\Services\\OutreachAI\\ConversationGovernanceService@transitionTo",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ConversationPlanService.php::App\\Services\\OutreachAI\\ConversationPlanService::__construct",
        "fqmn": "App\\Services\\OutreachAI\\ConversationPlanService@__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/OutreachAI/ConversationPlanService.php::App\\Services\\OutreachAI\\ConversationPlanService::addAddOnOfferStep",
        "fqmn": "App\\Services\\OutreachAI\\ConversationPlanService@addAddOnOfferStep",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ConversationPlanService.php::App\\Services\\OutreachAI\\ConversationPlanService::addPriceAlignmentExplainerStep",
        "fqmn": "App\\Services\\OutreachAI\\ConversationPlanService@addPriceAlignmentExplainerStep",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ConversationPlanService.php::App\\Services\\OutreachAI\\ConversationPlanService::addUpsellSequenceStep",
        "fqmn": "App\\Services\\OutreachAI\\ConversationPlanService@addUpsellSequenceStep",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ConversationPlanService.php::App\\Services\\OutreachAI\\ConversationPlanService::generatePlan",
        "fqmn": "App\\Services\\OutreachAI\\ConversationPlanService@generatePlan",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ConversationPlanService.php::App\\Services\\OutreachAI\\ConversationPlanService::getActiveStep",
        "fqmn": "App\\Services\\OutreachAI\\ConversationPlanService@getActiveStep",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ConversationPlanService.php::App\\Services\\OutreachAI\\ConversationPlanService::storePlan",
        "fqmn": "App\\Services\\OutreachAI\\ConversationPlanService@storePlan",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ConversationService.php::App\\Services\\OutreachAI\\ConversationService::closeConversation",
        "fqmn": "App\\Services\\OutreachAI\\ConversationService@closeConversation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ConversationService.php::App\\Services\\OutreachAI\\ConversationService::execute",
        "fqmn": "App\\Services\\OutreachAI\\ConversationService@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/OutreachAI/ConversationService.php::App\\Services\\OutreachAI\\ConversationService::getOrCreateConversation",
        "fqmn": "App\\Services\\OutreachAI\\ConversationService@getOrCreateConversation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ConversationService.php::App\\Services\\OutreachAI\\ConversationService::getRecentMessageHistory",
        "fqmn": "App\\Services\\OutreachAI\\ConversationService@getRecentMessageHistory",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ConversationService.php::App\\Services\\OutreachAI\\ConversationService::handle",
        "fqmn": "App\\Services\\OutreachAI\\ConversationService@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_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ConversationService.php::App\\Services\\OutreachAI\\ConversationService::recordInboundMessage",
        "fqmn": "App\\Services\\OutreachAI\\ConversationService@recordInboundMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ConversationService.php::App\\Services\\OutreachAI\\ConversationService::recordOutboundMessage",
        "fqmn": "App\\Services\\OutreachAI\\ConversationService@recordOutboundMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ConversationService.php::App\\Services\\OutreachAI\\ConversationService::resetMemory",
        "fqmn": "App\\Services\\OutreachAI\\ConversationService@resetMemory",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ConversationSummaryService.php::App\\Services\\OutreachAI\\ConversationSummaryService::detectChanges",
        "fqmn": "App\\Services\\OutreachAI\\ConversationSummaryService@detectChanges",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ConversationSummaryService.php::App\\Services\\OutreachAI\\ConversationSummaryService::summarize",
        "fqmn": "App\\Services\\OutreachAI\\ConversationSummaryService@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/OutreachAI/ConversionDetectionService.php::App\\Services\\OutreachAI\\ConversionDetectionService::__construct",
        "fqmn": "App\\Services\\OutreachAI\\ConversionDetectionService@__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/OutreachAI/ConversionDetectionService.php::App\\Services\\OutreachAI\\ConversionDetectionService::detectConversionIntent",
        "fqmn": "App\\Services\\OutreachAI\\ConversionDetectionService@detectConversionIntent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ConversionService.php::App\\Services\\OutreachAI\\ConversionService::markAsConverted",
        "fqmn": "App\\Services\\OutreachAI\\ConversionService@markAsConverted",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ConversionService.php::App\\Services\\OutreachAI\\ConversionService::markAsReadyToConvert",
        "fqmn": "App\\Services\\OutreachAI\\ConversionService@markAsReadyToConvert",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/CrossSellEngine.php::App\\Services\\OutreachAI\\CrossSellEngine::__construct",
        "fqmn": "App\\Services\\OutreachAI\\CrossSellEngine@__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/OutreachAI/CrossSellEngine.php::App\\Services\\OutreachAI\\CrossSellEngine::detectOpportunities",
        "fqmn": "App\\Services\\OutreachAI\\CrossSellEngine@detectOpportunities",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/CrossSellEngine.php::App\\Services\\OutreachAI\\CrossSellEngine::detectOpportunity",
        "fqmn": "App\\Services\\OutreachAI\\CrossSellEngine@detectOpportunity",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/CustomerSuccess/MilestoneDetectionService.php::App\\Services\\OutreachAI\\CustomerSuccess\\MilestoneDetectionService::detect",
        "fqmn": "App\\Services\\OutreachAI\\CustomerSuccess\\MilestoneDetectionService@detect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/DataExtractionEngine.php::App\\Services\\OutreachAI\\DataExtractionEngine::extract",
        "fqmn": "App\\Services\\OutreachAI\\DataExtractionEngine@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/OutreachAI/DealClosingEngine.php::App\\Services\\OutreachAI\\DealClosingEngine::calculateBackoffDelay",
        "fqmn": "App\\Services\\OutreachAI\\DealClosingEngine@calculateBackoffDelay",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/DealClosingEngine.php::App\\Services\\OutreachAI\\DealClosingEngine::chooseStrategy",
        "fqmn": "App\\Services\\OutreachAI\\DealClosingEngine@chooseStrategy",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/DealClosingEngine.php::App\\Services\\OutreachAI\\DealClosingEngine::detectClosingMoment",
        "fqmn": "App\\Services\\OutreachAI\\DealClosingEngine@detectClosingMoment",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/DealClosingEngine.php::App\\Services\\OutreachAI\\DealClosingEngine::executeClosingAttempt",
        "fqmn": "App\\Services\\OutreachAI\\DealClosingEngine@executeClosingAttempt",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/DealClosingEngine.php::App\\Services\\OutreachAI\\DealClosingEngine::generateClosingPlan",
        "fqmn": "App\\Services\\OutreachAI\\DealClosingEngine@generateClosingPlan",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/DealClosingEngine.php::App\\Services\\OutreachAI\\DealClosingEngine::getAdaptiveDiscountPercentage",
        "fqmn": "App\\Services\\OutreachAI\\DealClosingEngine@getAdaptiveDiscountPercentage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/DealClosingEngine.php::App\\Services\\OutreachAI\\DealClosingEngine::getNextAllowedClosingTime",
        "fqmn": "App\\Services\\OutreachAI\\DealClosingEngine@getNextAllowedClosingTime",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/DealClosingEngine.php::App\\Services\\OutreachAI\\DealClosingEngine::getNextStep",
        "fqmn": "App\\Services\\OutreachAI\\DealClosingEngine@getNextStep",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/DealClosingEngine.php::App\\Services\\OutreachAI\\DealClosingEngine::shouldResolveObjectionsBeforeClosing",
        "fqmn": "App\\Services\\OutreachAI\\DealClosingEngine@shouldResolveObjectionsBeforeClosing",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/DeduplicationService.php::App\\Services\\OutreachAI\\DeduplicationService::ensureUnique",
        "fqmn": "App\\Services\\OutreachAI\\DeduplicationService@ensureUnique",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/EmotionalStateService.php::App\\Services\\OutreachAI\\EmotionalStateService::adjustGoalForEmotion",
        "fqmn": "App\\Services\\OutreachAI\\EmotionalStateService@adjustGoalForEmotion",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/EmotionalStateService.php::App\\Services\\OutreachAI\\EmotionalStateService::deriveEmotionalState",
        "fqmn": "App\\Services\\OutreachAI\\EmotionalStateService@deriveEmotionalState",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/EmotionalStateService.php::App\\Services\\OutreachAI\\EmotionalStateService::getTrajectoryModifier",
        "fqmn": "App\\Services\\OutreachAI\\EmotionalStateService@getTrajectoryModifier",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/EscalationIntelligenceEngine.php::App\\Services\\OutreachAI\\EscalationIntelligenceEngine::analyzeEscalationNeed",
        "fqmn": "App\\Services\\OutreachAI\\EscalationIntelligenceEngine@analyzeEscalationNeed",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/EscalationIntelligenceEngine.php::App\\Services\\OutreachAI\\EscalationIntelligenceEngine::routeToAgent",
        "fqmn": "App\\Services\\OutreachAI\\EscalationIntelligenceEngine@routeToAgent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/EscalationIntelligenceEngine.php::App\\Services\\OutreachAI\\EscalationIntelligenceEngine::shouldDelayEscalation",
        "fqmn": "App\\Services\\OutreachAI\\EscalationIntelligenceEngine@shouldDelayEscalation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/FailureLogger.php::App\\Services\\OutreachAI\\FailureLogger::aiFailed",
        "fqmn": "App\\Services\\OutreachAI\\FailureLogger@aiFailed",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/FailureLogger.php::App\\Services\\OutreachAI\\FailureLogger::appointmentFailed",
        "fqmn": "App\\Services\\OutreachAI\\FailureLogger@appointmentFailed",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/FailureLogger.php::App\\Services\\OutreachAI\\FailureLogger::followUpFailed",
        "fqmn": "App\\Services\\OutreachAI\\FailureLogger@followUpFailed",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/FailureLogger.php::App\\Services\\OutreachAI\\FailureLogger::getLeadFailures",
        "fqmn": "App\\Services\\OutreachAI\\FailureLogger@getLeadFailures",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/FailureLogger.php::App\\Services\\OutreachAI\\FailureLogger::getRecentFailures",
        "fqmn": "App\\Services\\OutreachAI\\FailureLogger@getRecentFailures",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/FailureLogger.php::App\\Services\\OutreachAI\\FailureLogger::getStats",
        "fqmn": "App\\Services\\OutreachAI\\FailureLogger@getStats",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/FailureLogger.php::App\\Services\\OutreachAI\\FailureLogger::messageFailed",
        "fqmn": "App\\Services\\OutreachAI\\FailureLogger@messageFailed",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/FallbackRecoveryEngine.php::App\\Services\\OutreachAI\\FallbackRecoveryEngine::canRecover",
        "fqmn": "App\\Services\\OutreachAI\\FallbackRecoveryEngine@canRecover",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/FallbackRecoveryEngine.php::App\\Services\\OutreachAI\\FallbackRecoveryEngine::executeWithFallback",
        "fqmn": "App\\Services\\OutreachAI\\FallbackRecoveryEngine@executeWithFallback",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/FallbackRecoveryEngine.php::App\\Services\\OutreachAI\\FallbackRecoveryEngine::generateSafeFallbackReply",
        "fqmn": "App\\Services\\OutreachAI\\FallbackRecoveryEngine@generateSafeFallbackReply",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/FallbackRecoveryEngine.php::App\\Services\\OutreachAI\\FallbackRecoveryEngine::getEngineHealth",
        "fqmn": "App\\Services\\OutreachAI\\FallbackRecoveryEngine@getEngineHealth",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/FallbackRecoveryEngine.php::App\\Services\\OutreachAI\\FallbackRecoveryEngine::getFallbackResponse",
        "fqmn": "App\\Services\\OutreachAI\\FallbackRecoveryEngine@getFallbackResponse",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/FeatureImportanceAnalyzer.php::App\\Services\\OutreachAI\\FeatureImportanceAnalyzer::analyzeImportance",
        "fqmn": "App\\Services\\OutreachAI\\FeatureImportanceAnalyzer@analyzeImportance",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/FeatureImportanceAnalyzer.php::App\\Services\\OutreachAI\\FeatureImportanceAnalyzer::getGlobalFeatureImportance",
        "fqmn": "App\\Services\\OutreachAI\\FeatureImportanceAnalyzer@getGlobalFeatureImportance",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/FunnelBehaviorEngine.php::App\\Services\\OutreachAI\\FunnelBehaviorEngine::analyzeAppointmentImpact",
        "fqmn": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@analyzeAppointmentImpact",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/FunnelBehaviorEngine.php::App\\Services\\OutreachAI\\FunnelBehaviorEngine::analyzeBudgetImpact",
        "fqmn": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@analyzeBudgetImpact",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/FunnelBehaviorEngine.php::App\\Services\\OutreachAI\\FunnelBehaviorEngine::analyzeClosingStrategyPerformance",
        "fqmn": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@analyzeClosingStrategyPerformance",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/FunnelBehaviorEngine.php::App\\Services\\OutreachAI\\FunnelBehaviorEngine::analyzeClosingTiming",
        "fqmn": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@analyzeClosingTiming",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/FunnelBehaviorEngine.php::App\\Services\\OutreachAI\\FunnelBehaviorEngine::analyzeConversationDNA",
        "fqmn": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@analyzeConversationDNA",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/FunnelBehaviorEngine.php::App\\Services\\OutreachAI\\FunnelBehaviorEngine::analyzeDiscountImpact",
        "fqmn": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@analyzeDiscountImpact",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/FunnelBehaviorEngine.php::App\\Services\\OutreachAI\\FunnelBehaviorEngine::analyzeObjectionImpact",
        "fqmn": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@analyzeObjectionImpact",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/FunnelBehaviorEngine.php::App\\Services\\OutreachAI\\FunnelBehaviorEngine::analyzeObjectionInfluenceOnClosing",
        "fqmn": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@analyzeObjectionInfluenceOnClosing",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/FunnelBehaviorEngine.php::App\\Services\\OutreachAI\\FunnelBehaviorEngine::analyzeTrialImpact",
        "fqmn": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@analyzeTrialImpact",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/FunnelBehaviorEngine.php::App\\Services\\OutreachAI\\FunnelBehaviorEngine::computeStageDifficultyScores",
        "fqmn": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@computeStageDifficultyScores",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/FunnelBehaviorEngine.php::App\\Services\\OutreachAI\\FunnelBehaviorEngine::computeTransitionProbabilities",
        "fqmn": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@computeTransitionProbabilities",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/FunnelBehaviorEngine.php::App\\Services\\OutreachAI\\FunnelBehaviorEngine::emit",
        "fqmn": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@emit",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/FunnelBehaviorEngine.php::App\\Services\\OutreachAI\\FunnelBehaviorEngine::outputInsights",
        "fqmn": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@outputInsights",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/FunnelBehaviorEngine.php::App\\Services\\OutreachAI\\FunnelBehaviorEngine::recordEvent",
        "fqmn": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@recordEvent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/FunnelBehaviorEngine.php::App\\Services\\OutreachAI\\FunnelBehaviorEngine::recordStageChange",
        "fqmn": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@recordStageChange",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/GrowthConversionStrategyService.php::App\\Services\\OutreachAI\\GrowthConversionStrategyService::nextAction",
        "fqmn": "App\\Services\\OutreachAI\\GrowthConversionStrategyService@nextAction",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/GrowthPredictionService.php::App\\Services\\OutreachAI\\GrowthPredictionService::analyze",
        "fqmn": "App\\Services\\OutreachAI\\GrowthPredictionService@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/OutreachAI/HandoffService.php::App\\Services\\OutreachAI\\HandoffService::determineHandoffNeeded",
        "fqmn": "App\\Services\\OutreachAI\\HandoffService@determineHandoffNeeded",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/HandoffService.php::App\\Services\\OutreachAI\\HandoffService::handleEmergencyEscalation",
        "fqmn": "App\\Services\\OutreachAI\\HandoffService@handleEmergencyEscalation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/HandoffService.php::App\\Services\\OutreachAI\\HandoffService::handleEscalation",
        "fqmn": "App\\Services\\OutreachAI\\HandoffService@handleEscalation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/HandoffService.php::App\\Services\\OutreachAI\\HandoffService::handleHandoffRequest",
        "fqmn": "App\\Services\\OutreachAI\\HandoffService@handleHandoffRequest",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/HandoffService.php::App\\Services\\OutreachAI\\HandoffService::handleHandoffToSpecificAgent",
        "fqmn": "App\\Services\\OutreachAI\\HandoffService@handleHandoffToSpecificAgent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/HandoffService.php::App\\Services\\OutreachAI\\HandoffService::initiateHandoff",
        "fqmn": "App\\Services\\OutreachAI\\HandoffService@initiateHandoff",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/HandoffService.php::App\\Services\\OutreachAI\\HandoffService::isDuplicateHandoffRequest",
        "fqmn": "App\\Services\\OutreachAI\\HandoffService@isDuplicateHandoffRequest",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/HandoffService.php::App\\Services\\OutreachAI\\HandoffService::notifyHumanAgent",
        "fqmn": "App\\Services\\OutreachAI\\HandoffService@notifyHumanAgent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/HandoffService.php::App\\Services\\OutreachAI\\HandoffService::prepareHandoffContext",
        "fqmn": "App\\Services\\OutreachAI\\HandoffService@prepareHandoffContext",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/HandoffService.php::App\\Services\\OutreachAI\\HandoffService::shouldPreventRepeatedEscalation",
        "fqmn": "App\\Services\\OutreachAI\\HandoffService@shouldPreventRepeatedEscalation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/HandoffService.php::App\\Services\\OutreachAI\\HandoffService::trackHandoffStatus",
        "fqmn": "App\\Services\\OutreachAI\\HandoffService@trackHandoffStatus",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/HumanHandoffService.php::App\\Services\\OutreachAI\\HumanHandoffService::__construct",
        "fqmn": "App\\Services\\OutreachAI\\HumanHandoffService@__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/OutreachAI/HumanHandoffService.php::App\\Services\\OutreachAI\\HumanHandoffService::activateNextInQueue",
        "fqmn": "App\\Services\\OutreachAI\\HumanHandoffService@activateNextInQueue",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/HumanHandoffService.php::App\\Services\\OutreachAI\\HumanHandoffService::getActiveConversation",
        "fqmn": "App\\Services\\OutreachAI\\HumanHandoffService@getActiveConversation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/HumanHandoffService.php::App\\Services\\OutreachAI\\HumanHandoffService::relayToCustomer",
        "fqmn": "App\\Services\\OutreachAI\\HumanHandoffService@relayToCustomer",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/HumanHandoffService.php::App\\Services\\OutreachAI\\HumanHandoffService::releaseHandoff",
        "fqmn": "App\\Services\\OutreachAI\\HumanHandoffService@releaseHandoff",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/HumanHandoffService.php::App\\Services\\OutreachAI\\HumanHandoffService::requestHandoff",
        "fqmn": "App\\Services\\OutreachAI\\HumanHandoffService@requestHandoff",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/IntentRouterService.php::App\\Services\\OutreachAI\\IntentRouterService::route",
        "fqmn": "App\\Services\\OutreachAI\\IntentRouterService@route",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/IntentTrajectoryService.php::App\\Services\\OutreachAI\\IntentTrajectoryService::determineTrajectory",
        "fqmn": "App\\Services\\OutreachAI\\IntentTrajectoryService@determineTrajectory",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/IntentTrajectoryService.php::App\\Services\\OutreachAI\\IntentTrajectoryService::shouldEscalateTrajectory",
        "fqmn": "App\\Services\\OutreachAI\\IntentTrajectoryService@shouldEscalateTrajectory",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/IntentTrajectoryService.php::App\\Services\\OutreachAI\\IntentTrajectoryService::shouldPauseTrajectory",
        "fqmn": "App\\Services\\OutreachAI\\IntentTrajectoryService@shouldPauseTrajectory",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/IntentTrajectoryService.php::App\\Services\\OutreachAI\\IntentTrajectoryService::shouldReturnToQualification",
        "fqmn": "App\\Services\\OutreachAI\\IntentTrajectoryService@shouldReturnToQualification",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/InterestScoringEngine.php::App\\Services\\OutreachAI\\InterestScoringEngine::score",
        "fqmn": "App\\Services\\OutreachAI\\InterestScoringEngine@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/OutreachAI/KnowledgeService.php::App\\Services\\OutreachAI\\KnowledgeService::create",
        "fqmn": "App\\Services\\OutreachAI\\KnowledgeService@create",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/KnowledgeService.php::App\\Services\\OutreachAI\\KnowledgeService::search",
        "fqmn": "App\\Services\\OutreachAI\\KnowledgeService@search",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/LanguageDetectionService.php::App\\Services\\OutreachAI\\LanguageDetectionService::detect",
        "fqmn": "App\\Services\\OutreachAI\\LanguageDetectionService@detect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/LanguageDetectionService.php::App\\Services\\OutreachAI\\LanguageDetectionService::detectDialect",
        "fqmn": "App\\Services\\OutreachAI\\LanguageDetectionService@detectDialect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/LeadPriorityService.php::App\\Services\\OutreachAI\\LeadPriorityService::calculateScore",
        "fqmn": "App\\Services\\OutreachAI\\LeadPriorityService@calculateScore",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/LeadPriorityService.php::App\\Services\\OutreachAI\\LeadPriorityService::categorize",
        "fqmn": "App\\Services\\OutreachAI\\LeadPriorityService@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/OutreachAI/LeadPriorityService.php::App\\Services\\OutreachAI\\LeadPriorityService::computePriority",
        "fqmn": "App\\Services\\OutreachAI\\LeadPriorityService@computePriority",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/LeadPriorityService.php::App\\Services\\OutreachAI\\LeadPriorityService::detectHandoffNeeds",
        "fqmn": "App\\Services\\OutreachAI\\LeadPriorityService@detectHandoffNeeds",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/LeadStageEngine.php::App\\Services\\OutreachAI\\LeadStageEngine::updateStage",
        "fqmn": "App\\Services\\OutreachAI\\LeadStageEngine@updateStage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/LeadWarmthEngine.php::App\\Services\\OutreachAI\\LeadWarmthEngine::analyze",
        "fqmn": "App\\Services\\OutreachAI\\LeadWarmthEngine@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/OutreachAI/LeadWarmthEngine.php::App\\Services\\OutreachAI\\LeadWarmthEngine::detectSimilarConverters",
        "fqmn": "App\\Services\\OutreachAI\\LeadWarmthEngine@detectSimilarConverters",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/LeadWarmthEngine.php::App\\Services\\OutreachAI\\LeadWarmthEngine::emit",
        "fqmn": "App\\Services\\OutreachAI\\LeadWarmthEngine@emit",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/MediaDownloadService.php::App\\Services\\OutreachAI\\MediaDownloadService::download",
        "fqmn": "App\\Services\\OutreachAI\\MediaDownloadService@download",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/MemorySummarizer.php::App\\Services\\OutreachAI\\MemorySummarizer::refresh",
        "fqmn": "App\\Services\\OutreachAI\\MemorySummarizer@refresh",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/MultiIntentDetectorService.php::App\\Services\\OutreachAI\\MultiIntentDetectorService::detect",
        "fqmn": "App\\Services\\OutreachAI\\MultiIntentDetectorService@detect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/NextActionEngine.php::App\\Services\\OutreachAI\\NextActionEngine::determineNextAction",
        "fqmn": "App\\Services\\OutreachAI\\NextActionEngine@determineNextAction",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/NudgeService.php::App\\Services\\OutreachAI\\NudgeService::__construct",
        "fqmn": "App\\Services\\OutreachAI\\NudgeService@__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/OutreachAI/NudgeService.php::App\\Services\\OutreachAI\\NudgeService::cancelPendingNudges",
        "fqmn": "App\\Services\\OutreachAI\\NudgeService@cancelPendingNudges",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/NudgeService.php::App\\Services\\OutreachAI\\NudgeService::processDueNudges",
        "fqmn": "App\\Services\\OutreachAI\\NudgeService@processDueNudges",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/NudgeService.php::App\\Services\\OutreachAI\\NudgeService::scheduleNudges",
        "fqmn": "App\\Services\\OutreachAI\\NudgeService@scheduleNudges",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ObjectionDetectionService.php::App\\Services\\OutreachAI\\ObjectionDetectionService::detect",
        "fqmn": "App\\Services\\OutreachAI\\ObjectionDetectionService@detect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ObjectionPriceMatrixService.php::App\\Services\\OutreachAI\\ObjectionPriceMatrixService::analyze",
        "fqmn": "App\\Services\\OutreachAI\\ObjectionPriceMatrixService@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/OutreachAI/ObjectionPriceMatrixService.php::App\\Services\\OutreachAI\\ObjectionPriceMatrixService::prepareAnalysis",
        "fqmn": "App\\Services\\OutreachAI\\ObjectionPriceMatrixService@prepareAnalysis",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ObjectionPriceMatrixService.php::App\\Services\\OutreachAI\\ObjectionPriceMatrixService::run",
        "fqmn": "App\\Services\\OutreachAI\\ObjectionPriceMatrixService@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/OutreachAI/ObjectionResponseService.php::App\\Services\\OutreachAI\\ObjectionResponseService::applyClosingLayerRebuttal",
        "fqmn": "App\\Services\\OutreachAI\\ObjectionResponseService@applyClosingLayerRebuttal",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ObjectionResponseService.php::App\\Services\\OutreachAI\\ObjectionResponseService::checkResolution",
        "fqmn": "App\\Services\\OutreachAI\\ObjectionResponseService@checkResolution",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ObjectionResponseService.php::App\\Services\\OutreachAI\\ObjectionResponseService::detectFinalObjectionMoments",
        "fqmn": "App\\Services\\OutreachAI\\ObjectionResponseService@detectFinalObjectionMoments",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ObjectionResponseService.php::App\\Services\\OutreachAI\\ObjectionResponseService::generateRebuttalStrategy",
        "fqmn": "App\\Services\\OutreachAI\\ObjectionResponseService@generateRebuttalStrategy",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/OnboardingEngine.php::App\\Services\\OutreachAI\\OnboardingEngine::advance",
        "fqmn": "App\\Services\\OutreachAI\\OnboardingEngine@advance",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/OnboardingEngine.php::App\\Services\\OutreachAI\\OnboardingEngine::getNextStep",
        "fqmn": "App\\Services\\OutreachAI\\OnboardingEngine@getNextStep",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/OptimizationWebhookService.php::App\\Services\\OutreachAI\\OptimizationWebhookService::notifyRollback",
        "fqmn": "App\\Services\\OutreachAI\\OptimizationWebhookService@notifyRollback",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/OptimizationWebhookService.php::App\\Services\\OutreachAI\\OptimizationWebhookService::notifySignificantAdjustment",
        "fqmn": "App\\Services\\OutreachAI\\OptimizationWebhookService@notifySignificantAdjustment",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Orchestration/DecisionMatrix.php::App\\Services\\OutreachAI\\Orchestration\\DecisionMatrix::evaluate",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\DecisionMatrix@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/OutreachAI/Orchestration/GuardedDecisionMatrix.php::App\\Services\\OutreachAI\\Orchestration\\GuardedDecisionMatrix::assertHardCloseAllowed",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\GuardedDecisionMatrix@assertHardCloseAllowed",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Orchestration/ModelRouter.php::App\\Services\\OutreachAI\\Orchestration\\ModelRouter::creative",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\ModelRouter@creative",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Orchestration/ModelRouter.php::App\\Services\\OutreachAI\\Orchestration\\ModelRouter::deepReasoning",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\ModelRouter@deepReasoning",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Orchestration/ModelRouter.php::App\\Services\\OutreachAI\\Orchestration\\ModelRouter::fastReasoning",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\ModelRouter@fastReasoning",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Orchestration/ModelRouter.php::App\\Services\\OutreachAI\\Orchestration\\ModelRouter::reasoning",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\ModelRouter@reasoning",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Orchestration/ModelRouter.php::App\\Services\\OutreachAI\\Orchestration\\ModelRouter::vision",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\ModelRouter@vision",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Orchestration/NextActionResolver.php::App\\Services\\OutreachAI\\Orchestration\\NextActionResolver::getPresentationConstraints",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\NextActionResolver@getPresentationConstraints",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Orchestration/NextActionResolver.php::App\\Services\\OutreachAI\\Orchestration\\NextActionResolver::isStopConditionMet",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\NextActionResolver@isStopConditionMet",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Orchestration/NextActionResolver.php::App\\Services\\OutreachAI\\Orchestration\\NextActionResolver::resolve",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\NextActionResolver@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/OutreachAI/Orchestration/ResponseComposerEngine.php::App\\Services\\OutreachAI\\Orchestration\\ResponseComposerEngine::__construct",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\ResponseComposerEngine@__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/OutreachAI/Orchestration/ResponseComposerEngine.php::App\\Services\\OutreachAI\\Orchestration\\ResponseComposerEngine::compose",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\ResponseComposerEngine@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/OutreachAI/Orchestration/RollingSummaryService.php::App\\Services\\OutreachAI\\Orchestration\\RollingSummaryService::__construct",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\RollingSummaryService@__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/OutreachAI/Orchestration/RollingSummaryService.php::App\\Services\\OutreachAI\\Orchestration\\RollingSummaryService::getRollingSummary",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\RollingSummaryService@getRollingSummary",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Orchestration/SalesStateDeriver.php::App\\Services\\OutreachAI\\Orchestration\\SalesStateDeriver::derive",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\SalesStateDeriver@derive",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Orchestration/SignalContext.php::App\\Services\\OutreachAI\\Orchestration\\SignalContext::__construct",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\SignalContext@__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/OutreachAI/Orchestration/SignalContext.php::App\\Services\\OutreachAI\\Orchestration\\SignalContext::fromModels",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\SignalContext@fromModels",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Orchestration/SignalDirector.php::App\\Services\\OutreachAI\\Orchestration\\SignalDirector::__construct",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\SignalDirector@__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/OutreachAI/Orchestration/SignalDirector.php::App\\Services\\OutreachAI\\Orchestration\\SignalDirector::orchestrate",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\SignalDirector@orchestrate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Orchestration/SignalDirector.php::App\\Services\\OutreachAI\\Orchestration\\SignalDirector::orchestrateDeep",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\SignalDirector@orchestrateDeep",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Orchestration/SignalDirector.php::App\\Services\\OutreachAI\\Orchestration\\SignalDirector::orchestrateFast",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\SignalDirector@orchestrateFast",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Orchestration/SignalDirector.php::App\\Services\\OutreachAI\\Orchestration\\SignalDirector::warmupContext",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\SignalDirector@warmupContext",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Orchestration/StrategyAuthorityResolver.php::App\\Services\\OutreachAI\\Orchestration\\StrategyAuthorityResolver::isActionAllowed",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\StrategyAuthorityResolver@isActionAllowed",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Orchestration/StrategyAuthorityResolver.php::App\\Services\\OutreachAI\\Orchestration\\StrategyAuthorityResolver::isFallbackAllowed",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\StrategyAuthorityResolver@isFallbackAllowed",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Orchestration/StrategyAuthorityResolver.php::App\\Services\\OutreachAI\\Orchestration\\StrategyAuthorityResolver::resolve",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\StrategyAuthorityResolver@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/OutreachAI/OutreachIntentClassifier.php::App\\Services\\OutreachAI\\OutreachIntentClassifier::classify",
        "fqmn": "App\\Services\\OutreachAI\\OutreachIntentClassifier@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/OutreachAI/PaymentEngine/PaymentPatternAnalysisService.php::App\\Services\\OutreachAI\\PaymentEngine\\PaymentPatternAnalysisService::analyze",
        "fqmn": "App\\Services\\OutreachAI\\PaymentEngine\\PaymentPatternAnalysisService@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/OutreachAI/PersonaConversionStrategyService.php::App\\Services\\OutreachAI\\PersonaConversionStrategyService::getStrategy",
        "fqmn": "App\\Services\\OutreachAI\\PersonaConversionStrategyService@getStrategy",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PersonaDetectionService.php::App\\Services\\OutreachAI\\PersonaDetectionService::detect",
        "fqmn": "App\\Services\\OutreachAI\\PersonaDetectionService@detect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PlanRecommendationService.php::App\\Services\\OutreachAI\\PlanRecommendationService::emit",
        "fqmn": "App\\Services\\OutreachAI\\PlanRecommendationService@emit",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PlanRecommendationService.php::App\\Services\\OutreachAI\\PlanRecommendationService::recommend",
        "fqmn": "App\\Services\\OutreachAI\\PlanRecommendationService@recommend",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PredictionABTesting.php::App\\Services\\OutreachAI\\PredictionABTesting::applyVariantWeights",
        "fqmn": "App\\Services\\OutreachAI\\PredictionABTesting@applyVariantWeights",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PredictionABTesting.php::App\\Services\\OutreachAI\\PredictionABTesting::assignVariant",
        "fqmn": "App\\Services\\OutreachAI\\PredictionABTesting@assignVariant",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PredictionABTesting.php::App\\Services\\OutreachAI\\PredictionABTesting::getVariantStats",
        "fqmn": "App\\Services\\OutreachAI\\PredictionABTesting@getVariantStats",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PredictionABTesting.php::App\\Services\\OutreachAI\\PredictionABTesting::getVariantWeights",
        "fqmn": "App\\Services\\OutreachAI\\PredictionABTesting@getVariantWeights",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PredictionABTesting.php::App\\Services\\OutreachAI\\PredictionABTesting::trackVariantOutcome",
        "fqmn": "App\\Services\\OutreachAI\\PredictionABTesting@trackVariantOutcome",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PredictionAccuracyTracker.php::App\\Services\\OutreachAI\\PredictionAccuracyTracker::getAccuracyStats",
        "fqmn": "App\\Services\\OutreachAI\\PredictionAccuracyTracker@getAccuracyStats",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PredictionAccuracyTracker.php::App\\Services\\OutreachAI\\PredictionAccuracyTracker::trackOutcome",
        "fqmn": "App\\Services\\OutreachAI\\PredictionAccuracyTracker@trackOutcome",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PredictionConfidenceIntervals.php::App\\Services\\OutreachAI\\PredictionConfidenceIntervals::calculateIntervals",
        "fqmn": "App\\Services\\OutreachAI\\PredictionConfidenceIntervals@calculateIntervals",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PredictionEngine.php::App\\Services\\OutreachAI\\PredictionEngine::buildFeatureVector",
        "fqmn": "App\\Services\\OutreachAI\\PredictionEngine@buildFeatureVector",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PredictionEngine.php::App\\Services\\OutreachAI\\PredictionEngine::calculateClosingReadinessScore",
        "fqmn": "App\\Services\\OutreachAI\\PredictionEngine@calculateClosingReadinessScore",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PredictionEngine.php::App\\Services\\OutreachAI\\PredictionEngine::computeNextAction",
        "fqmn": "App\\Services\\OutreachAI\\PredictionEngine@computeNextAction",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PredictionEngine.php::App\\Services\\OutreachAI\\PredictionEngine::computeProbabilities",
        "fqmn": "App\\Services\\OutreachAI\\PredictionEngine@computeProbabilities",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PredictionEngine.php::App\\Services\\OutreachAI\\PredictionEngine::detectProbabilitySpike",
        "fqmn": "App\\Services\\OutreachAI\\PredictionEngine@detectProbabilitySpike",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PredictionEngine.php::App\\Services\\OutreachAI\\PredictionEngine::emit",
        "fqmn": "App\\Services\\OutreachAI\\PredictionEngine@emit",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PredictionEngine.php::App\\Services\\OutreachAI\\PredictionEngine::predict",
        "fqmn": "App\\Services\\OutreachAI\\PredictionEngine@predict",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PredictionEngine.php::App\\Services\\OutreachAI\\PredictionEngine::predictClosingWindow",
        "fqmn": "App\\Services\\OutreachAI\\PredictionEngine@predictClosingWindow",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PredictionExplanationGenerator.php::App\\Services\\OutreachAI\\PredictionExplanationGenerator::generateExplanation",
        "fqmn": "App\\Services\\OutreachAI\\PredictionExplanationGenerator@generateExplanation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PredictionPerformanceMonitor.php::App\\Services\\OutreachAI\\PredictionPerformanceMonitor::getPerformanceStats",
        "fqmn": "App\\Services\\OutreachAI\\PredictionPerformanceMonitor@getPerformanceStats",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PredictionPerformanceMonitor.php::App\\Services\\OutreachAI\\PredictionPerformanceMonitor::recordPredictionTime",
        "fqmn": "App\\Services\\OutreachAI\\PredictionPerformanceMonitor@recordPredictionTime",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PredictionRecalculationService.php::App\\Services\\OutreachAI\\PredictionRecalculationService::recalculateOnAppointmentScheduled",
        "fqmn": "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnAppointmentScheduled",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PredictionRecalculationService.php::App\\Services\\OutreachAI\\PredictionRecalculationService::recalculateOnDiscountInteraction",
        "fqmn": "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnDiscountInteraction",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PredictionRecalculationService.php::App\\Services\\OutreachAI\\PredictionRecalculationService::recalculateOnFunnelStageChange",
        "fqmn": "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnFunnelStageChange",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PredictionRecalculationService.php::App\\Services\\OutreachAI\\PredictionRecalculationService::recalculateOnInboundMessage",
        "fqmn": "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnInboundMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PredictionRecalculationService.php::App\\Services\\OutreachAI\\PredictionRecalculationService::recalculateOnObjectionDetected",
        "fqmn": "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnObjectionDetected",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PredictionRecalculationService.php::App\\Services\\OutreachAI\\PredictionRecalculationService::recalculateOnOutboundMessage",
        "fqmn": "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnOutboundMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PredictionRecalculationService.php::App\\Services\\OutreachAI\\PredictionRecalculationService::recalculateOnPricingInteraction",
        "fqmn": "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnPricingInteraction",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PredictionRecalculationService.php::App\\Services\\OutreachAI\\PredictionRecalculationService::recalculateOnReengagementFired",
        "fqmn": "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnReengagementFired",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PredictionRecalculationService.php::App\\Services\\OutreachAI\\PredictionRecalculationService::recalculateOnTrialExtended",
        "fqmn": "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnTrialExtended",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PredictionRecalculationService.php::App\\Services\\OutreachAI\\PredictionRecalculationService::recalculateOnWarmthStageChange",
        "fqmn": "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnWarmthStageChange",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PriceMatchService.php::App\\Services\\OutreachAI\\PriceMatchService::suggestBestPlan",
        "fqmn": "App\\Services\\OutreachAI\\PriceMatchService@suggestBestPlan",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PricingPrimitives.php::App\\Services\\OutreachAI\\PricingPrimitives::buildResponse",
        "fqmn": "App\\Services\\OutreachAI\\PricingPrimitives@buildResponse",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PricingPrimitives.php::App\\Services\\OutreachAI\\PricingPrimitives::get",
        "fqmn": "App\\Services\\OutreachAI\\PricingPrimitives@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/OutreachAI/PricingPrimitives.php::App\\Services\\OutreachAI\\PricingPrimitives::getAvailablePrimitives",
        "fqmn": "App\\Services\\OutreachAI\\PricingPrimitives@getAvailablePrimitives",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PricingPrimitives.php::App\\Services\\OutreachAI\\PricingPrimitives::getScenarioResponse",
        "fqmn": "App\\Services\\OutreachAI\\PricingPrimitives@getScenarioResponse",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PricingPrimitives.php::App\\Services\\OutreachAI\\PricingPrimitives::isAvailable",
        "fqmn": "App\\Services\\OutreachAI\\PricingPrimitives@isAvailable",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PromptExperimentService.php::App\\Services\\OutreachAI\\PromptExperimentService::attachMetadata",
        "fqmn": "App\\Services\\OutreachAI\\PromptExperimentService@attachMetadata",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PromptExperimentService.php::App\\Services\\OutreachAI\\PromptExperimentService::getInstruction",
        "fqmn": "App\\Services\\OutreachAI\\PromptExperimentService@getInstruction",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PromptExperimentService.php::App\\Services\\OutreachAI\\PromptExperimentService::getVariant",
        "fqmn": "App\\Services\\OutreachAI\\PromptExperimentService@getVariant",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getAgencyCompetitiveComparison",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getAgencyCompetitiveComparison",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getAgencyEducationBlock",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getAgencyEducationBlock",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getAgencyFollowUpTemplate",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getAgencyFollowUpTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getAgencyPricingExplanation",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getAgencyPricingExplanation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getAgencyRebuttal",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getAgencyRebuttal",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getAppointmentConfirmation",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getAppointmentConfirmation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getAppointmentFollowup",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getAppointmentFollowup",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getClosingGoalPrompt",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getClosingGoalPrompt",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getCorrectionInstructions",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getCorrectionInstructions",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getCounterProposalTemplate",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getCounterProposalTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getGoalInstructions",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getGoalInstructions",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getMissedAppointmentRecovery",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getMissedAppointmentRecovery",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getObjectionRebuttal",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getObjectionRebuttal",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getPromptForLanguageAndDialect",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getPromptForLanguageAndDialect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getReengagementTemplate",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getReengagementTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getSentimentModifier",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getSentimentModifier",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getSubscriptionAgencyGrowth",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getSubscriptionAgencyGrowth",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getSubscriptionAutomation",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getSubscriptionAutomation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getSubscriptionFeaturePitch",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getSubscriptionFeaturePitch",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getSubscriptionFunnelProfessionalism",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getSubscriptionFunnelProfessionalism",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getSubscriptionFunnelRevenueGrowth",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getSubscriptionFunnelRevenueGrowth",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getSubscriptionFunnelTimeSaver",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getSubscriptionFunnelTimeSaver",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getSubscriptionProblemSolution",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getSubscriptionProblemSolution",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getSubscriptionRiskReversal",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getSubscriptionRiskReversal",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getSubscriptionROI",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getSubscriptionROI",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getSubscriptionRoleCTA",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getSubscriptionRoleCTA",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getSubscriptionTimeSaver",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getSubscriptionTimeSaver",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getSubscriptionTrialInvite",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getSubscriptionTrialInvite",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getSubscriptionValuePitch",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getSubscriptionValuePitch",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getSystemPromptForLanguage",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getSystemPromptForLanguage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getTrajectoryStageInstructions",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getTrajectoryStageInstructions",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getTrajectoryTemplate",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getTrajectoryTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getTrialDirectCTA",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getTrialDirectCTA",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getTrialSoftCTA",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getTrialSoftCTA",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::getTrialValuePitch",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getTrialValuePitch",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PromptLibrary.php::App\\Services\\OutreachAI\\PromptLibrary::matchUserStyle",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@matchUserStyle",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Prompts/GuardPromptBuilder.php::App\\Services\\OutreachAI\\Prompts\\GuardPromptBuilder::build",
        "fqmn": "App\\Services\\OutreachAI\\Prompts\\GuardPromptBuilder@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/OutreachAI/Prompts/GuardPromptBuilder.php::App\\Services\\OutreachAI\\Prompts\\GuardPromptBuilder::isGuardMode",
        "fqmn": "App\\Services\\OutreachAI\\Prompts\\GuardPromptBuilder@isGuardMode",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/PropertyMatcher/LeadPropertyAffinityService.php::App\\Services\\OutreachAI\\PropertyMatcher\\LeadPropertyAffinityService::analyze",
        "fqmn": "App\\Services\\OutreachAI\\PropertyMatcher\\LeadPropertyAffinityService@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/OutreachAI/PropertyMatcher/PropertyRecommendationEngine.php::App\\Services\\OutreachAI\\PropertyMatcher\\PropertyRecommendationEngine::recommend",
        "fqmn": "App\\Services\\OutreachAI\\PropertyMatcher\\PropertyRecommendationEngine@recommend",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Qualification/IndustrySegmentationEngine.php::App\\Services\\OutreachAI\\Qualification\\IndustrySegmentationEngine::segment",
        "fqmn": "App\\Services\\OutreachAI\\Qualification\\IndustrySegmentationEngine@segment",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Qualification/QualificationFieldExtractor.php::App\\Services\\OutreachAI\\Qualification\\QualificationFieldExtractor::extract",
        "fqmn": "App\\Services\\OutreachAI\\Qualification\\QualificationFieldExtractor@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/OutreachAI/Qualification/QualificationFlowDirector.php::App\\Services\\OutreachAI\\Qualification\\QualificationFlowDirector::determineNextStep",
        "fqmn": "App\\Services\\OutreachAI\\Qualification\\QualificationFlowDirector@determineNextStep",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Qualification/QualificationFlowDirector.php::App\\Services\\OutreachAI\\Qualification\\QualificationFlowDirector::updateQualificationState",
        "fqmn": "App\\Services\\OutreachAI\\Qualification\\QualificationFlowDirector@updateQualificationState",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Qualification/QualificationGapDetector.php::App\\Services\\OutreachAI\\Qualification\\QualificationGapDetector::detectGaps",
        "fqmn": "App\\Services\\OutreachAI\\Qualification\\QualificationGapDetector@detectGaps",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Qualification/QualificationPipeline.php::App\\Services\\OutreachAI\\Qualification\\QualificationPipeline::__construct",
        "fqmn": "App\\Services\\OutreachAI\\Qualification\\QualificationPipeline@__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/OutreachAI/Qualification/QualificationPipeline.php::App\\Services\\OutreachAI\\Qualification\\QualificationPipeline::process",
        "fqmn": "App\\Services\\OutreachAI\\Qualification\\QualificationPipeline@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/OutreachAI/Qualification/RealTimeQualificationEngine.php::App\\Services\\OutreachAI\\Qualification\\RealTimeQualificationEngine::__construct",
        "fqmn": "App\\Services\\OutreachAI\\Qualification\\RealTimeQualificationEngine@__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/OutreachAI/Qualification/RealTimeQualificationEngine.php::App\\Services\\OutreachAI\\Qualification\\RealTimeQualificationEngine::emit",
        "fqmn": "App\\Services\\OutreachAI\\Qualification\\RealTimeQualificationEngine@emit",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Qualification/RealTimeQualificationEngine.php::App\\Services\\OutreachAI\\Qualification\\RealTimeQualificationEngine::qualify",
        "fqmn": "App\\Services\\OutreachAI\\Qualification\\RealTimeQualificationEngine@qualify",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Qualification/SmartQuestionGenerator.php::App\\Services\\OutreachAI\\Qualification\\SmartQuestionGenerator::generate",
        "fqmn": "App\\Services\\OutreachAI\\Qualification\\SmartQuestionGenerator@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/OutreachAI/Qualification/SmartQuestionGenerator.php::App\\Services\\OutreachAI\\Qualification\\SmartQuestionGenerator::generateContextual",
        "fqmn": "App\\Services\\OutreachAI\\Qualification\\SmartQuestionGenerator@generateContextual",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/QualificationExtractionService.php::App\\Services\\OutreachAI\\QualificationExtractionService::__construct",
        "fqmn": "App\\Services\\OutreachAI\\QualificationExtractionService@__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/OutreachAI/QualificationExtractionService.php::App\\Services\\OutreachAI\\QualificationExtractionService::extract",
        "fqmn": "App\\Services\\OutreachAI\\QualificationExtractionService@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/OutreachAI/Quality/PersonaAdaptationAgent.php::App\\Services\\OutreachAI\\Quality\\PersonaAdaptationAgent::__construct",
        "fqmn": "App\\Services\\OutreachAI\\Quality\\PersonaAdaptationAgent@__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/OutreachAI/Quality/PersonaAdaptationAgent.php::App\\Services\\OutreachAI\\Quality\\PersonaAdaptationAgent::adaptResponse",
        "fqmn": "App\\Services\\OutreachAI\\Quality\\PersonaAdaptationAgent@adaptResponse",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Quality/VerificationAgent.php::App\\Services\\OutreachAI\\Quality\\VerificationAgent::__construct",
        "fqmn": "App\\Services\\OutreachAI\\Quality\\VerificationAgent@__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/OutreachAI/Quality/VerificationAgent.php::App\\Services\\OutreachAI\\Quality\\VerificationAgent::verifyAndCorrect",
        "fqmn": "App\\Services\\OutreachAI\\Quality\\VerificationAgent@verifyAndCorrect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/RealTimeOptimizationEngine.php::App\\Services\\OutreachAI\\RealTimeOptimizationEngine::__construct",
        "fqmn": "App\\Services\\OutreachAI\\RealTimeOptimizationEngine@__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/OutreachAI/RealTimeOptimizationEngine.php::App\\Services\\OutreachAI\\RealTimeOptimizationEngine::buildFeedbackVector",
        "fqmn": "App\\Services\\OutreachAI\\RealTimeOptimizationEngine@buildFeedbackVector",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/RealTimeOptimizationEngine.php::App\\Services\\OutreachAI\\RealTimeOptimizationEngine::computeAdjustments",
        "fqmn": "App\\Services\\OutreachAI\\RealTimeOptimizationEngine@computeAdjustments",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/RealTimeOptimizationEngine.php::App\\Services\\OutreachAI\\RealTimeOptimizationEngine::emitOptimizationDirectives",
        "fqmn": "App\\Services\\OutreachAI\\RealTimeOptimizationEngine@emitOptimizationDirectives",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/RealTimeOptimizationEngine.php::App\\Services\\OutreachAI\\RealTimeOptimizationEngine::persistAdjustments",
        "fqmn": "App\\Services\\OutreachAI\\RealTimeOptimizationEngine@persistAdjustments",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/RealTimeOptimizationEngine.php::App\\Services\\OutreachAI\\RealTimeOptimizationEngine::recordSignal",
        "fqmn": "App\\Services\\OutreachAI\\RealTimeOptimizationEngine@recordSignal",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ReengagementDetectionService.php::App\\Services\\OutreachAI\\ReengagementDetectionService::detectStaleConversations",
        "fqmn": "App\\Services\\OutreachAI\\ReengagementDetectionService@detectStaleConversations",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ReengagementDetectionService.php::App\\Services\\OutreachAI\\ReengagementDetectionService::detectStallNearClosing",
        "fqmn": "App\\Services\\OutreachAI\\ReengagementDetectionService@detectStallNearClosing",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ReengagementDetectionService.php::App\\Services\\OutreachAI\\ReengagementDetectionService::generateAggressiveWarmingStrategy",
        "fqmn": "App\\Services\\OutreachAI\\ReengagementDetectionService@generateAggressiveWarmingStrategy",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ReferralEngine/ReferralDetectionService.php::App\\Services\\OutreachAI\\ReferralEngine\\ReferralDetectionService::detect",
        "fqmn": "App\\Services\\OutreachAI\\ReferralEngine\\ReferralDetectionService@detect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/RepetitionHandlingService.php::App\\Services\\OutreachAI\\RepetitionHandlingService::analyze",
        "fqmn": "App\\Services\\OutreachAI\\RepetitionHandlingService@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/OutreachAI/RepetitionHandlingService.php::App\\Services\\OutreachAI\\RepetitionHandlingService::getElaborationInstruction",
        "fqmn": "App\\Services\\OutreachAI\\RepetitionHandlingService@getElaborationInstruction",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/RepetitionHandlingService.php::App\\Services\\OutreachAI\\RepetitionHandlingService::recordAnswer",
        "fqmn": "App\\Services\\OutreachAI\\RepetitionHandlingService@recordAnswer",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ReplyEvaluationService.php::App\\Services\\OutreachAI\\ReplyEvaluationService::evaluate",
        "fqmn": "App\\Services\\OutreachAI\\ReplyEvaluationService@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/OutreachAI/RetrievalConstraintService.php::App\\Services\\OutreachAI\\RetrievalConstraintService::filterContext",
        "fqmn": "App\\Services\\OutreachAI\\RetrievalConstraintService@filterContext",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/RetrievalConstraintService.php::App\\Services\\OutreachAI\\RetrievalConstraintService::getConstrainedContext",
        "fqmn": "App\\Services\\OutreachAI\\RetrievalConstraintService@getConstrainedContext",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/RevenueEngine/ARMEOrchestrator.php::App\\Services\\OutreachAI\\RevenueEngine\\ARMEOrchestrator::__construct",
        "fqmn": "App\\Services\\OutreachAI\\RevenueEngine\\ARMEOrchestrator@__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/OutreachAI/RevenueEngine/ARMEOrchestrator.php::App\\Services\\OutreachAI\\RevenueEngine\\ARMEOrchestrator::processInbound",
        "fqmn": "App\\Services\\OutreachAI\\RevenueEngine\\ARMEOrchestrator@processInbound",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/RevenueEngine/DiscountDecisionEngine.php::App\\Services\\OutreachAI\\RevenueEngine\\DiscountDecisionEngine::decide",
        "fqmn": "App\\Services\\OutreachAI\\RevenueEngine\\DiscountDecisionEngine@decide",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/RevenueEngine/RevenueRiskScorer.php::App\\Services\\OutreachAI\\RevenueEngine\\RevenueRiskScorer::calculate",
        "fqmn": "App\\Services\\OutreachAI\\RevenueEngine\\RevenueRiskScorer@calculate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/RevenueEngine/RevenueRiskScorer.php::App\\Services\\OutreachAI\\RevenueEngine\\RevenueRiskScorer::score",
        "fqmn": "App\\Services\\OutreachAI\\RevenueEngine\\RevenueRiskScorer@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/OutreachAI/RevenueEngine/RevenueUpgradePredictor.php::App\\Services\\OutreachAI\\RevenueEngine\\RevenueUpgradePredictor::predict",
        "fqmn": "App\\Services\\OutreachAI\\RevenueEngine\\RevenueUpgradePredictor@predict",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/RevenueEngine/RevenueUrgencyModel.php::App\\Services\\OutreachAI\\RevenueEngine\\RevenueUrgencyModel::classify",
        "fqmn": "App\\Services\\OutreachAI\\RevenueEngine\\RevenueUrgencyModel@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/OutreachAI/RevenueEngine/RevenueUrgencyModel.php::App\\Services\\OutreachAI\\RevenueEngine\\RevenueUrgencyModel::predict",
        "fqmn": "App\\Services\\OutreachAI\\RevenueEngine\\RevenueUrgencyModel@predict",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/RevenueEngine/UpgradeCTAEngine.php::App\\Services\\OutreachAI\\RevenueEngine\\UpgradeCTAEngine::generate",
        "fqmn": "App\\Services\\OutreachAI\\RevenueEngine\\UpgradeCTAEngine@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/OutreachAI/RevenueEngine/UpgradeCTAEngine.php::App\\Services\\OutreachAI\\RevenueEngine\\UpgradeCTAEngine::selectCTA",
        "fqmn": "App\\Services\\OutreachAI\\RevenueEngine\\UpgradeCTAEngine@selectCTA",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/RevenueEngine/UpgradeOpportunityDetector.php::App\\Services\\OutreachAI\\RevenueEngine\\UpgradeOpportunityDetector::detect",
        "fqmn": "App\\Services\\OutreachAI\\RevenueEngine\\UpgradeOpportunityDetector@detect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Sales/CTAGenerator.php::App\\Services\\OutreachAI\\Sales\\CTAGenerator::generate",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\CTAGenerator@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/OutreachAI/Sales/CTAGenerator.php::App\\Services\\OutreachAI\\Sales\\CTAGenerator::selectCTAType",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\CTAGenerator@selectCTAType",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Sales/DemoPitchEngine.php::App\\Services\\OutreachAI\\Sales\\DemoPitchEngine::detectDemoInterest",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\DemoPitchEngine@detectDemoInterest",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Sales/DemoPitchEngine.php::App\\Services\\OutreachAI\\Sales\\DemoPitchEngine::generatePitch",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\DemoPitchEngine@generatePitch",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Sales/DemoPitchEngine.php::App\\Services\\OutreachAI\\Sales\\DemoPitchEngine::scheduleDemo",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\DemoPitchEngine@scheduleDemo",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Sales/FeatureRenderer.php::App\\Services\\OutreachAI\\Sales\\FeatureRenderer::getFeatureFacts",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\FeatureRenderer@getFeatureFacts",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Sales/FeatureRenderer.php::App\\Services\\OutreachAI\\Sales\\FeatureRenderer::render",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\FeatureRenderer@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/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Sales/FeatureRenderer.php::App\\Services\\OutreachAI\\Sales\\FeatureRenderer::shouldHandle",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\FeatureRenderer@shouldHandle",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Sales/IntentToBuyDetector.php::App\\Services\\OutreachAI\\Sales\\IntentToBuyDetector::detect",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\IntentToBuyDetector@detect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Sales/MicroIntentEngine.php::App\\Services\\OutreachAI\\Sales\\MicroIntentEngine::applyToConversation",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\MicroIntentEngine@applyToConversation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Sales/MicroIntentEngine.php::App\\Services\\OutreachAI\\Sales\\MicroIntentEngine::detectMicroIntents",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\MicroIntentEngine@detectMicroIntents",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Sales/OfferWindowEngine.php::App\\Services\\OutreachAI\\Sales\\OfferWindowEngine::detectWindow",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\OfferWindowEngine@detectWindow",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Sales/PainPointExtractor.php::App\\Services\\OutreachAI\\Sales\\PainPointExtractor::extract",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PainPointExtractor@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/OutreachAI/Sales/PricingAuthority.php::App\\Services\\OutreachAI\\Sales\\PricingAuthority::getLivePricingSummary",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingAuthority@getLivePricingSummary",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingAuthority.php::App\\Services\\OutreachAI\\Sales\\PricingAuthority::getLlmPricingGuard",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingAuthority@getLlmPricingGuard",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingAuthority.php::App\\Services\\OutreachAI\\Sales\\PricingAuthority::intercept",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingAuthority@intercept",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingAuthority.php::App\\Services\\OutreachAI\\Sales\\PricingAuthority::isPricingIntent",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingAuthority@isPricingIntent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingAuthority.php::App\\Services\\OutreachAI\\Sales\\PricingAuthority::resolveTier",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingAuthority@resolveTier",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingRenderer.php::App\\Services\\OutreachAI\\Sales\\PricingRenderer::getPricingFacts",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingRenderer@getPricingFacts",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingRenderer.php::App\\Services\\OutreachAI\\Sales\\PricingRenderer::render",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingRenderer@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/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingRenderer.php::App\\Services\\OutreachAI\\Sales\\PricingRenderer::shouldHandle",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingRenderer@shouldHandle",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingResolver.php::App\\Services\\OutreachAI\\Sales\\PricingResolver::getAllPlans",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingResolver@getAllPlans",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingResolver.php::App\\Services\\OutreachAI\\Sales\\PricingResolver::getCanonicalContract",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingResolver@getCanonicalContract",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingResolver.php::App\\Services\\OutreachAI\\Sales\\PricingResolver::getPricingContext",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingResolver@getPricingContext",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingResolver.php::App\\Services\\OutreachAI\\Sales\\PricingResolver::resolve",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingResolver@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/OutreachAI/Sales/PricingResolver.php::App\\Services\\OutreachAI\\Sales\\PricingResolver::validateLimits",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingResolver@validateLimits",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingResolver.php::App\\Services\\OutreachAI\\Sales\\PricingResolver::validateNoUnauthorizedPricing",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingResolver@validateNoUnauthorizedPricing",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingResolver.php::App\\Services\\OutreachAI\\Sales\\PricingResolver::validateReply",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingResolver@validateReply",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Sales/SalesAccelerationPipeline.php::App\\Services\\OutreachAI\\Sales\\SalesAccelerationPipeline::__construct",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\SalesAccelerationPipeline@__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/OutreachAI/Sales/SalesAccelerationPipeline.php::App\\Services\\OutreachAI\\Sales\\SalesAccelerationPipeline::accelerate",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\SalesAccelerationPipeline@accelerate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Sales/ValuePropositionEngine.php::App\\Services\\OutreachAI\\Sales\\ValuePropositionEngine::generate",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\ValuePropositionEngine@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/OutreachAI/Sales/VariantTestingService.php::App\\Services\\OutreachAI\\Sales\\VariantTestingService::getVariant",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\VariantTestingService@getVariant",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Sales/VariantTestingService.php::App\\Services\\OutreachAI\\Sales\\VariantTestingService::recordSuccess",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\VariantTestingService@recordSuccess",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/SalesAcceleration/CTASelector.php::App\\Services\\OutreachAI\\SalesAcceleration\\CTASelector::select",
        "fqmn": "App\\Services\\OutreachAI\\SalesAcceleration\\CTASelector@select",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/SalesAcceleration/MicroPitchLibrary.php::App\\Services\\OutreachAI\\SalesAcceleration\\MicroPitchLibrary::getPitch",
        "fqmn": "App\\Services\\OutreachAI\\SalesAcceleration\\MicroPitchLibrary@getPitch",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/SalesAcceleration/MicroPitchLibrary.php::App\\Services\\OutreachAI\\SalesAcceleration\\MicroPitchLibrary::selectPitch",
        "fqmn": "App\\Services\\OutreachAI\\SalesAcceleration\\MicroPitchLibrary@selectPitch",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/SalesAcceleration/SalesAccelerationEngine.php::App\\Services\\OutreachAI\\SalesAcceleration\\SalesAccelerationEngine::__construct",
        "fqmn": "App\\Services\\OutreachAI\\SalesAcceleration\\SalesAccelerationEngine@__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/OutreachAI/SalesAcceleration/SalesAccelerationEngine.php::App\\Services\\OutreachAI\\SalesAcceleration\\SalesAccelerationEngine::accelerate",
        "fqmn": "App\\Services\\OutreachAI\\SalesAcceleration\\SalesAccelerationEngine@accelerate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/SalesAcceleration/SalesDirectiveEngine.php::App\\Services\\OutreachAI\\SalesAcceleration\\SalesDirectiveEngine::generateDirective",
        "fqmn": "App\\Services\\OutreachAI\\SalesAcceleration\\SalesDirectiveEngine@generateDirective",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/SalesAcceleration/SalesIntentDetector.php::App\\Services\\OutreachAI\\SalesAcceleration\\SalesIntentDetector::detect",
        "fqmn": "App\\Services\\OutreachAI\\SalesAcceleration\\SalesIntentDetector@detect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/SalesAcceleration/SalesObjectionBypasser.php::App\\Services\\OutreachAI\\SalesAcceleration\\SalesObjectionBypasser::detect",
        "fqmn": "App\\Services\\OutreachAI\\SalesAcceleration\\SalesObjectionBypasser@detect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/SalesAcceleration/SalesObjectionBypasser.php::App\\Services\\OutreachAI\\SalesAcceleration\\SalesObjectionBypasser::generateBypass",
        "fqmn": "App\\Services\\OutreachAI\\SalesAcceleration\\SalesObjectionBypasser@generateBypass",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/SalesAcceleration/SalesPitchGenerator.php::App\\Services\\OutreachAI\\SalesAcceleration\\SalesPitchGenerator::__construct",
        "fqmn": "App\\Services\\OutreachAI\\SalesAcceleration\\SalesPitchGenerator@__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/OutreachAI/SalesAcceleration/SalesPitchGenerator.php::App\\Services\\OutreachAI\\SalesAcceleration\\SalesPitchGenerator::generate",
        "fqmn": "App\\Services\\OutreachAI\\SalesAcceleration\\SalesPitchGenerator@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/OutreachAI/SalesAcceleration/SalesUrgencyEngine.php::App\\Services\\OutreachAI\\SalesAcceleration\\SalesUrgencyEngine::detect",
        "fqmn": "App\\Services\\OutreachAI\\SalesAcceleration\\SalesUrgencyEngine@detect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/SentimentAnalysisService.php::App\\Services\\OutreachAI\\SentimentAnalysisService::analyze",
        "fqmn": "App\\Services\\OutreachAI\\SentimentAnalysisService@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/OutreachAI/SentimentRecoveryEngine.php::App\\Services\\OutreachAI\\SentimentRecoveryEngine::analyzeAndRecover",
        "fqmn": "App\\Services\\OutreachAI\\SentimentRecoveryEngine@analyzeAndRecover",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/SentimentRecoveryEngine.php::App\\Services\\OutreachAI\\SentimentRecoveryEngine::emit",
        "fqmn": "App\\Services\\OutreachAI\\SentimentRecoveryEngine@emit",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/SentimentRecoveryEngine.php::App\\Services\\OutreachAI\\SentimentRecoveryEngine::recordRecoveryAttempt",
        "fqmn": "App\\Services\\OutreachAI\\SentimentRecoveryEngine@recordRecoveryAttempt",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/SequenceBuilder.php::App\\Services\\OutreachAI\\SequenceBuilder::build",
        "fqmn": "App\\Services\\OutreachAI\\SequenceBuilder@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/OutreachAI/SequenceBuilder.php::App\\Services\\OutreachAI\\SequenceBuilder::run",
        "fqmn": "App\\Services\\OutreachAI\\SequenceBuilder@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/OutreachAI/ShortTermMemoryService.php::App\\Services\\OutreachAI\\ShortTermMemoryService::__construct",
        "fqmn": "App\\Services\\OutreachAI\\ShortTermMemoryService@__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/OutreachAI/ShortTermMemoryService.php::App\\Services\\OutreachAI\\ShortTermMemoryService::extractAndUpdateMemory",
        "fqmn": "App\\Services\\OutreachAI\\ShortTermMemoryService@extractAndUpdateMemory",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ShortTermMemoryService.php::App\\Services\\OutreachAI\\ShortTermMemoryService::extractKeyPoints",
        "fqmn": "App\\Services\\OutreachAI\\ShortTermMemoryService@extractKeyPoints",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ShortTermMemoryService.php::App\\Services\\OutreachAI\\ShortTermMemoryService::getMemory",
        "fqmn": "App\\Services\\OutreachAI\\ShortTermMemoryService@getMemory",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ShortTermMemoryService.php::App\\Services\\OutreachAI\\ShortTermMemoryService::mergeContextIntoPrompt",
        "fqmn": "App\\Services\\OutreachAI\\ShortTermMemoryService@mergeContextIntoPrompt",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/ShortTermMemoryService.php::App\\Services\\OutreachAI\\ShortTermMemoryService::updateMemory",
        "fqmn": "App\\Services\\OutreachAI\\ShortTermMemoryService@updateMemory",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/SignupLinkGenerator.php::App\\Services\\OutreachAI\\SignupLinkGenerator::forgetLinkCache",
        "fqmn": "App\\Services\\OutreachAI\\SignupLinkGenerator@forgetLinkCache",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/SignupLinkGenerator.php::App\\Services\\OutreachAI\\SignupLinkGenerator::generateForLead",
        "fqmn": "App\\Services\\OutreachAI\\SignupLinkGenerator@generateForLead",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/SignupLinkGenerator.php::App\\Services\\OutreachAI\\SignupLinkGenerator::hasBeenClicked",
        "fqmn": "App\\Services\\OutreachAI\\SignupLinkGenerator@hasBeenClicked",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/SocialFrictionAuditor.php::App\\Services\\OutreachAI\\SocialFrictionAuditor::audit",
        "fqmn": "App\\Services\\OutreachAI\\SocialFrictionAuditor@audit",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/State/StateManager.php::App\\Services\\OutreachAI\\State\\StateManager::clear",
        "fqmn": "App\\Services\\OutreachAI\\State\\StateManager@clear",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/State/StateManager.php::App\\Services\\OutreachAI\\State\\StateManager::get",
        "fqmn": "App\\Services\\OutreachAI\\State\\StateManager@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/OutreachAI/State/StateManager.php::App\\Services\\OutreachAI\\State\\StateManager::set",
        "fqmn": "App\\Services\\OutreachAI\\State\\StateManager@set",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/StateAwareResponseService.php::App\\Services\\OutreachAI\\StateAwareResponseService::getClarificationResponse",
        "fqmn": "App\\Services\\OutreachAI\\StateAwareResponseService@getClarificationResponse",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/StateAwareResponseService.php::App\\Services\\OutreachAI\\StateAwareResponseService::getFollowUp1",
        "fqmn": "App\\Services\\OutreachAI\\StateAwareResponseService@getFollowUp1",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/StateAwareResponseService.php::App\\Services\\OutreachAI\\StateAwareResponseService::getFollowUp2",
        "fqmn": "App\\Services\\OutreachAI\\StateAwareResponseService@getFollowUp2",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/StateAwareResponseService.php::App\\Services\\OutreachAI\\StateAwareResponseService::getFollowUpFinal",
        "fqmn": "App\\Services\\OutreachAI\\StateAwareResponseService@getFollowUpFinal",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/StateAwareResponseService.php::App\\Services\\OutreachAI\\StateAwareResponseService::getResponse",
        "fqmn": "App\\Services\\OutreachAI\\StateAwareResponseService@getResponse",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/StateAwareResponseService.php::App\\Services\\OutreachAI\\StateAwareResponseService::getVoiceFailureResponse",
        "fqmn": "App\\Services\\OutreachAI\\StateAwareResponseService@getVoiceFailureResponse",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/StateAwareResponseService.php::App\\Services\\OutreachAI\\StateAwareResponseService::shouldUseTemplate",
        "fqmn": "App\\Services\\OutreachAI\\StateAwareResponseService@shouldUseTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/StrategyScoreService.php::App\\Services\\OutreachAI\\StrategyScoreService::assignScoresToMessageTypes",
        "fqmn": "App\\Services\\OutreachAI\\StrategyScoreService@assignScoresToMessageTypes",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/StrategyScoreService.php::App\\Services\\OutreachAI\\StrategyScoreService::computeSuccessRatios",
        "fqmn": "App\\Services\\OutreachAI\\StrategyScoreService@computeSuccessRatios",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/StrategyScoreService.php::App\\Services\\OutreachAI\\StrategyScoreService::rankCTAApproaches",
        "fqmn": "App\\Services\\OutreachAI\\StrategyScoreService@rankCTAApproaches",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/StrategyScoreService.php::App\\Services\\OutreachAI\\StrategyScoreService::trackMultiStepFunnelPerformance",
        "fqmn": "App\\Services\\OutreachAI\\StrategyScoreService@trackMultiStepFunnelPerformance",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/StrategyScoreService.php::App\\Services\\OutreachAI\\StrategyScoreService::updateStrategySnapshots",
        "fqmn": "App\\Services\\OutreachAI\\StrategyScoreService@updateStrategySnapshots",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/SubscriptionIntentService.php::App\\Services\\OutreachAI\\SubscriptionIntentService::detectIntent",
        "fqmn": "App\\Services\\OutreachAI\\SubscriptionIntentService@detectIntent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/SubscriptionSalesEngine.php::App\\Services\\OutreachAI\\SubscriptionSalesEngine::computeSubscriptionScore",
        "fqmn": "App\\Services\\OutreachAI\\SubscriptionSalesEngine@computeSubscriptionScore",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/SubscriptionSalesEngine.php::App\\Services\\OutreachAI\\SubscriptionSalesEngine::detectSubscriptionSignals",
        "fqmn": "App\\Services\\OutreachAI\\SubscriptionSalesEngine@detectSubscriptionSignals",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/SubscriptionSalesEngine.php::App\\Services\\OutreachAI\\SubscriptionSalesEngine::generateTrialSequence",
        "fqmn": "App\\Services\\OutreachAI\\SubscriptionSalesEngine@generateTrialSequence",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/SubscriptionSalesEngine.php::App\\Services\\OutreachAI\\SubscriptionSalesEngine::maybeInjectSalesPrompt",
        "fqmn": "App\\Services\\OutreachAI\\SubscriptionSalesEngine@maybeInjectSalesPrompt",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/SubscriptionSalesEngine.php::App\\Services\\OutreachAI\\SubscriptionSalesEngine::updateSubscriptionStage",
        "fqmn": "App\\Services\\OutreachAI\\SubscriptionSalesEngine@updateSubscriptionStage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/SubscriptionService.php::App\\Services\\OutreachAI\\SubscriptionService::getEffectiveLimits",
        "fqmn": "App\\Services\\OutreachAI\\SubscriptionService@getEffectiveLimits",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/TemplateApprovalMonitor.php::App\\Services\\OutreachAI\\TemplateApprovalMonitor::__construct",
        "fqmn": "App\\Services\\OutreachAI\\TemplateApprovalMonitor@__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/OutreachAI/TemplateApprovalMonitor.php::App\\Services\\OutreachAI\\TemplateApprovalMonitor::getPendingTemplates",
        "fqmn": "App\\Services\\OutreachAI\\TemplateApprovalMonitor@getPendingTemplates",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/TemplateApprovalMonitor.php::App\\Services\\OutreachAI\\TemplateApprovalMonitor::handleApproval",
        "fqmn": "App\\Services\\OutreachAI\\TemplateApprovalMonitor@handleApproval",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/TemplateApprovalMonitor.php::App\\Services\\OutreachAI\\TemplateApprovalMonitor::handleRejection",
        "fqmn": "App\\Services\\OutreachAI\\TemplateApprovalMonitor@handleRejection",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/TemplateApprovalMonitor.php::App\\Services\\OutreachAI\\TemplateApprovalMonitor::syncApprovalStatus",
        "fqmn": "App\\Services\\OutreachAI\\TemplateApprovalMonitor@syncApprovalStatus",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/TemplateCreatorService.php::App\\Services\\OutreachAI\\TemplateCreatorService::__construct",
        "fqmn": "App\\Services\\OutreachAI\\TemplateCreatorService@__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/OutreachAI/TemplateCreatorService.php::App\\Services\\OutreachAI\\TemplateCreatorService::createFromPatterns",
        "fqmn": "App\\Services\\OutreachAI\\TemplateCreatorService@createFromPatterns",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/TemplateCreatorService.php::App\\Services\\OutreachAI\\TemplateCreatorService::createVariants",
        "fqmn": "App\\Services\\OutreachAI\\TemplateCreatorService@createVariants",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/TemplateCreatorService.php::App\\Services\\OutreachAI\\TemplateCreatorService::learnFromRejection",
        "fqmn": "App\\Services\\OutreachAI\\TemplateCreatorService@learnFromRejection",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/TemplateDecisionEngine.php::App\\Services\\OutreachAI\\TemplateDecisionEngine::__construct",
        "fqmn": "App\\Services\\OutreachAI\\TemplateDecisionEngine@__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/OutreachAI/TemplateDecisionEngine.php::App\\Services\\OutreachAI\\TemplateDecisionEngine::decide",
        "fqmn": "App\\Services\\OutreachAI\\TemplateDecisionEngine@decide",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/TemplatePerformanceAnalyzer.php::App\\Services\\OutreachAI\\TemplatePerformanceAnalyzer::__construct",
        "fqmn": "App\\Services\\OutreachAI\\TemplatePerformanceAnalyzer@__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/OutreachAI/TemplatePerformanceAnalyzer.php::App\\Services\\OutreachAI\\TemplatePerformanceAnalyzer::analyzePatterns",
        "fqmn": "App\\Services\\OutreachAI\\TemplatePerformanceAnalyzer@analyzePatterns",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/TemplatePerformanceAnalyzer.php::App\\Services\\OutreachAI\\TemplatePerformanceAnalyzer::getTopPerformers",
        "fqmn": "App\\Services\\OutreachAI\\TemplatePerformanceAnalyzer@getTopPerformers",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/TemplatePerformanceAnalyzer.php::App\\Services\\OutreachAI\\TemplatePerformanceAnalyzer::predictSuccess",
        "fqmn": "App\\Services\\OutreachAI\\TemplatePerformanceAnalyzer@predictSuccess",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/TemplatePerformanceAnalyzer.php::App\\Services\\OutreachAI\\TemplatePerformanceAnalyzer::scoreTemplate",
        "fqmn": "App\\Services\\OutreachAI\\TemplatePerformanceAnalyzer@scoreTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/TemplateSelectionService.php::App\\Services\\OutreachAI\\TemplateSelectionService::__construct",
        "fqmn": "App\\Services\\OutreachAI\\TemplateSelectionService@__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/OutreachAI/TemplateSelectionService.php::App\\Services\\OutreachAI\\TemplateSelectionService::selectBest",
        "fqmn": "App\\Services\\OutreachAI\\TemplateSelectionService@selectBest",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/TemplateUsageTracker.php::App\\Services\\OutreachAI\\TemplateUsageTracker::recordConversion",
        "fqmn": "App\\Services\\OutreachAI\\TemplateUsageTracker@recordConversion",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/TemplateUsageTracker.php::App\\Services\\OutreachAI\\TemplateUsageTracker::recordDelivery",
        "fqmn": "App\\Services\\OutreachAI\\TemplateUsageTracker@recordDelivery",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/TemplateUsageTracker.php::App\\Services\\OutreachAI\\TemplateUsageTracker::recordOutcome",
        "fqmn": "App\\Services\\OutreachAI\\TemplateUsageTracker@recordOutcome",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/TemplateUsageTracker.php::App\\Services\\OutreachAI\\TemplateUsageTracker::recordRead",
        "fqmn": "App\\Services\\OutreachAI\\TemplateUsageTracker@recordRead",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/TemplateUsageTracker.php::App\\Services\\OutreachAI\\TemplateUsageTracker::recordReply",
        "fqmn": "App\\Services\\OutreachAI\\TemplateUsageTracker@recordReply",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/TemplateUsageTracker.php::App\\Services\\OutreachAI\\TemplateUsageTracker::trackUsage",
        "fqmn": "App\\Services\\OutreachAI\\TemplateUsageTracker@trackUsage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/TemplateUsageTracker.php::App\\Services\\OutreachAI\\TemplateUsageTracker::updateTemplateMetrics",
        "fqmn": "App\\Services\\OutreachAI\\TemplateUsageTracker@updateTemplateMetrics",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/TranscriptionCleanupService.php::App\\Services\\OutreachAI\\TranscriptionCleanupService::clean",
        "fqmn": "App\\Services\\OutreachAI\\TranscriptionCleanupService@clean",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/TranscriptionSummaryService.php::App\\Services\\OutreachAI\\TranscriptionSummaryService::summarize",
        "fqmn": "App\\Services\\OutreachAI\\TranscriptionSummaryService@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/OutreachAI/TrialEngine/Extension/TrialExtensionCTA.php::App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionCTA::detectAcceptance",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionCTA@detectAcceptance",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/TrialEngine/Extension/TrialExtensionCTA.php::App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionCTA::generate",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionCTA@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/OutreachAI/TrialEngine/Extension/TrialExtensionEngine.php::App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionEngine::buildUpgradePrompt",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionEngine@buildUpgradePrompt",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/TrialEngine/Extension/TrialExtensionEngine.php::App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionEngine::evaluateTrialClosingStrategy",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionEngine@evaluateTrialClosingStrategy",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/TrialEngine/Extension/TrialExtensionEngine.php::App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionEngine::extend",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionEngine@extend",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/TrialEngine/Extension/TrialExtensionEvaluator.php::App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionEvaluator::evaluate",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionEvaluator@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/OutreachAI/TrialEngine/Extension/TrialExtensionNudgeService.php::App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionNudgeService::generateNudgeMessage",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionNudgeService@generateNudgeMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/TrialEngine/Extension/TrialExtensionNudgeService.php::App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionNudgeService::scheduleNudges",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionNudgeService@scheduleNudges",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/TrialEngine/TrialActivationEngine.php::App\\Services\\OutreachAI\\TrialEngine\\TrialActivationEngine::activate",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\TrialActivationEngine@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/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/TrialEngine/TrialCTASelector.php::App\\Services\\OutreachAI\\TrialEngine\\TrialCTASelector::select",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\TrialCTASelector@select",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/TrialEngine/TrialIntentDetector.php::App\\Services\\OutreachAI\\TrialEngine\\TrialIntentDetector::detect",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\TrialIntentDetector@detect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/TrialEngine/TrialIntentDetector.php::App\\Services\\OutreachAI\\TrialEngine\\TrialIntentDetector::emit",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\TrialIntentDetector@emit",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/TrialEngine/TrialNudgeEngine.php::App\\Services\\OutreachAI\\TrialEngine\\TrialNudgeEngine::generateNudgeMessage",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\TrialNudgeEngine@generateNudgeMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/TrialEngine/TrialNudgeEngine.php::App\\Services\\OutreachAI\\TrialEngine\\TrialNudgeEngine::scheduleNudges",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\TrialNudgeEngine@scheduleNudges",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/TrialEngine/TrialOnboardingFlow.php::App\\Services\\OutreachAI\\TrialEngine\\TrialOnboardingFlow::advance",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\TrialOnboardingFlow@advance",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/TrialEngine/TrialOnboardingFlow.php::App\\Services\\OutreachAI\\TrialEngine\\TrialOnboardingFlow::getNextStep",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\TrialOnboardingFlow@getNextStep",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/TrialEngine/TrialOnboardingFlow.php::App\\Services\\OutreachAI\\TrialEngine\\TrialOnboardingFlow::getStepInstruction",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\TrialOnboardingFlow@getStepInstruction",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/TrialEngine/TrialProgressTracker.php::App\\Services\\OutreachAI\\TrialEngine\\TrialProgressTracker::track",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\TrialProgressTracker@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/OutreachAI/TrialEngine/TrialStuckDetector.php::App\\Services\\OutreachAI\\TrialEngine\\TrialStuckDetector::detect",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\TrialStuckDetector@detect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/TrialEngine/TrialUpgradeScorer.php::App\\Services\\OutreachAI\\TrialEngine\\TrialUpgradeScorer::score",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\TrialUpgradeScorer@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/OutreachAI/UpsellEngine.php::App\\Services\\OutreachAI\\UpsellEngine::__construct",
        "fqmn": "App\\Services\\OutreachAI\\UpsellEngine@__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/OutreachAI/UpsellEngine.php::App\\Services\\OutreachAI\\UpsellEngine::clearCache",
        "fqmn": "App\\Services\\OutreachAI\\UpsellEngine@clearCache",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/UpsellEngine.php::App\\Services\\OutreachAI\\UpsellEngine::detectOpportunity",
        "fqmn": "App\\Services\\OutreachAI\\UpsellEngine@detectOpportunity",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/UpsellEngine.php::App\\Services\\OutreachAI\\UpsellEngine::logUpsellEvent",
        "fqmn": "App\\Services\\OutreachAI\\UpsellEngine@logUpsellEvent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/UpsellProcessor.php::App\\Services\\OutreachAI\\UpsellProcessor::processAddOn",
        "fqmn": "App\\Services\\OutreachAI\\UpsellProcessor@processAddOn",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/UpsellProcessor.php::App\\Services\\OutreachAI\\UpsellProcessor::processUpgrade",
        "fqmn": "App\\Services\\OutreachAI\\UpsellProcessor@processUpgrade",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/UpsellSuccessDetector.php::App\\Services\\OutreachAI\\UpsellSuccessDetector::detectSuccess",
        "fqmn": "App\\Services\\OutreachAI\\UpsellSuccessDetector@detectSuccess",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/UpsellSuccessDetector.php::App\\Services\\OutreachAI\\UpsellSuccessDetector::updateUpsellEventOutcome",
        "fqmn": "App\\Services\\OutreachAI\\UpsellSuccessDetector@updateUpsellEventOutcome",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/UserActivityAnalyzer.php::App\\Services\\OutreachAI\\UserActivityAnalyzer::getInactiveConvertedLeads",
        "fqmn": "App\\Services\\OutreachAI\\UserActivityAnalyzer@getInactiveConvertedLeads",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/UserActivityAnalyzer.php::App\\Services\\OutreachAI\\UserActivityAnalyzer::getSubscriptionStatus",
        "fqmn": "App\\Services\\OutreachAI\\UserActivityAnalyzer@getSubscriptionStatus",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/UserActivityAnalyzer.php::App\\Services\\OutreachAI\\UserActivityAnalyzer::getUpsellOpportunities",
        "fqmn": "App\\Services\\OutreachAI\\UserActivityAnalyzer@getUpsellOpportunities",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/UserActivityAnalyzer.php::App\\Services\\OutreachAI\\UserActivityAnalyzer::hasActiveSubscription",
        "fqmn": "App\\Services\\OutreachAI\\UserActivityAnalyzer@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/OutreachAI/UserActivityAnalyzer.php::App\\Services\\OutreachAI\\UserActivityAnalyzer::isActiveUser",
        "fqmn": "App\\Services\\OutreachAI\\UserActivityAnalyzer@isActiveUser",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/UserActivityAnalyzer.php::App\\Services\\OutreachAI\\UserActivityAnalyzer::isFreeTier",
        "fqmn": "App\\Services\\OutreachAI\\UserActivityAnalyzer@isFreeTier",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/UserActivityAnalyzer.php::App\\Services\\OutreachAI\\UserActivityAnalyzer::isInactiveUser",
        "fqmn": "App\\Services\\OutreachAI\\UserActivityAnalyzer@isInactiveUser",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/UserActivityAnalyzer.php::App\\Services\\OutreachAI\\UserActivityAnalyzer::shouldReactivate",
        "fqmn": "App\\Services\\OutreachAI\\UserActivityAnalyzer@shouldReactivate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Utilities/DeterministicReplyBank.php::App\\Services\\OutreachAI\\Utilities\\DeterministicReplyBank::getReply",
        "fqmn": "App\\Services\\OutreachAI\\Utilities\\DeterministicReplyBank@getReply",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Utilities/FrequencyGuard.php::App\\Services\\OutreachAI\\Utilities\\FrequencyGuard::isAllowed",
        "fqmn": "App\\Services\\OutreachAI\\Utilities\\FrequencyGuard@isAllowed",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/Utilities/FrequencyGuard.php::App\\Services\\OutreachAI\\Utilities\\FrequencyGuard::record",
        "fqmn": "App\\Services\\OutreachAI\\Utilities\\FrequencyGuard@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/OutreachAI/UX/ContinuityEngine.php::App\\Services\\OutreachAI\\UX\\ContinuityEngine::analyzeContinuity",
        "fqmn": "App\\Services\\OutreachAI\\UX\\ContinuityEngine@analyzeContinuity",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/UX/CorrectionDirectiveAdapter.php::App\\Services\\OutreachAI\\UX\\CorrectionDirectiveAdapter::adapt",
        "fqmn": "App\\Services\\OutreachAI\\UX\\CorrectionDirectiveAdapter@adapt",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/UX/EngagementAnalyzer.php::App\\Services\\OutreachAI\\UX\\EngagementAnalyzer::analyzeEngagement",
        "fqmn": "App\\Services\\OutreachAI\\UX\\EngagementAnalyzer@analyzeEngagement",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/UX/MessageClarityService.php::App\\Services\\OutreachAI\\UX\\MessageClarityService::analyzeClarity",
        "fqmn": "App\\Services\\OutreachAI\\UX\\MessageClarityService@analyzeClarity",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/UX/MessageClarityService.php::App\\Services\\OutreachAI\\UX\\MessageClarityService::getClarityDirective",
        "fqmn": "App\\Services\\OutreachAI\\UX\\MessageClarityService@getClarityDirective",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/UX/ResponseStructureEngine.php::App\\Services\\OutreachAI\\UX\\ResponseStructureEngine::restructure",
        "fqmn": "App\\Services\\OutreachAI\\UX\\ResponseStructureEngine@restructure",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/UX/UXOptimizationPipeline.php::App\\Services\\OutreachAI\\UX\\UXOptimizationPipeline::__construct",
        "fqmn": "App\\Services\\OutreachAI\\UX\\UXOptimizationPipeline@__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/OutreachAI/UX/UXOptimizationPipeline.php::App\\Services\\OutreachAI\\UX\\UXOptimizationPipeline::optimize",
        "fqmn": "App\\Services\\OutreachAI\\UX\\UXOptimizationPipeline@optimize",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/VisionService.php::App\\Services\\OutreachAI\\VisionService::__construct",
        "fqmn": "App\\Services\\OutreachAI\\VisionService@__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/OutreachAI/VisionService.php::App\\Services\\OutreachAI\\VisionService::analyzeReceipt",
        "fqmn": "App\\Services\\OutreachAI\\VisionService@analyzeReceipt",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/WarmthEvolutionEngine.php::App\\Services\\OutreachAI\\WarmthEvolutionEngine::evaluate",
        "fqmn": "App\\Services\\OutreachAI\\WarmthEvolutionEngine@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/OutreachAI/WhatsApp24HourWindowService.php::App\\Services\\OutreachAI\\WhatsApp24HourWindowService::__construct",
        "fqmn": "App\\Services\\OutreachAI\\WhatsApp24HourWindowService@__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/OutreachAI/WhatsApp24HourWindowService.php::App\\Services\\OutreachAI\\WhatsApp24HourWindowService::prepareMessageContext",
        "fqmn": "App\\Services\\OutreachAI\\WhatsApp24HourWindowService@prepareMessageContext",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OutreachAI/WhisperTranscriptionService.php::App\\Services\\OutreachAI\\WhisperTranscriptionService::__construct",
        "fqmn": "App\\Services\\OutreachAI\\WhisperTranscriptionService@__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/OutreachAI/WhisperTranscriptionService.php::App\\Services\\OutreachAI\\WhisperTranscriptionService::transcribe",
        "fqmn": "App\\Services\\OutreachAI\\WhisperTranscriptionService@transcribe",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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::store",
        "fqmn": "App\\Services\\PaymentGateway\\StoredPaymentMethodService@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_DELETE",
        "surface_id": "method::app/Services/PaymentGateway/TapCardStorageService.php::App\\Services\\PaymentGateway\\TapCardStorageService::storeFromCharge",
        "fqmn": "App\\Services\\PaymentGateway\\TapCardStorageService@storeFromCharge",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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::__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::execute",
        "fqmn": "App\\Services\\PaymentGateway\\TapGateway@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/PaymentProofService.php::App\\Services\\PaymentProofService::getPaymentProofStatistics",
        "fqmn": "App\\Services\\PaymentProofService@getPaymentProofStatistics",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/PaymentProofService.php::App\\Services\\PaymentProofService::handleIncomingMessages",
        "fqmn": "App\\Services\\PaymentProofService@handleIncomingMessages",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Payments/Tap/TapWebhookValidationResult.php::App\\Services\\Payments\\Tap\\TapWebhookValidationResult::__construct",
        "fqmn": "App\\Services\\Payments\\Tap\\TapWebhookValidationResult@__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/Payments/Tap/TapWebhookValidationResult.php::App\\Services\\Payments\\Tap\\TapWebhookValidationResult::errors",
        "fqmn": "App\\Services\\Payments\\Tap\\TapWebhookValidationResult@errors",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Payments/Tap/TapWebhookValidationResult.php::App\\Services\\Payments\\Tap\\TapWebhookValidationResult::fromErrors",
        "fqmn": "App\\Services\\Payments\\Tap\\TapWebhookValidationResult@fromErrors",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Payments/Tap/TapWebhookValidationResult.php::App\\Services\\Payments\\Tap\\TapWebhookValidationResult::isValid",
        "fqmn": "App\\Services\\Payments\\Tap\\TapWebhookValidationResult@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/Payments/Tap/TapWebhookValidationResult.php::App\\Services\\Payments\\Tap\\TapWebhookValidationResult::valid",
        "fqmn": "App\\Services\\Payments\\Tap\\TapWebhookValidationResult@valid",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Payments/Tap/TapWebhookValidator.php::App\\Services\\Payments\\Tap\\TapWebhookValidator::validate",
        "fqmn": "App\\Services\\Payments\\Tap\\TapWebhookValidator@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/PricingResolver.php::App\\Services\\PricingResolver::forTier",
        "fqmn": "App\\Services\\PricingResolver@forTier",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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_DELETE",
        "surface_id": "method::app/Services/PropertyDocumentService.php::App\\Services\\PropertyDocumentService::cleanupOrphanedFiles",
        "fqmn": "App\\Services\\PropertyDocumentService@cleanupOrphanedFiles",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/PropertyDocumentService.php::App\\Services\\PropertyDocumentService::deletePropertyDocument",
        "fqmn": "App\\Services\\PropertyDocumentService@deletePropertyDocument",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/PropertyDocumentService.php::App\\Services\\PropertyDocumentService::getPropertyDocuments",
        "fqmn": "App\\Services\\PropertyDocumentService@getPropertyDocuments",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/PropertyDocumentService.php::App\\Services\\PropertyDocumentService::getStorageStatistics",
        "fqmn": "App\\Services\\PropertyDocumentService@getStorageStatistics",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/PropertyDocumentService.php::App\\Services\\PropertyDocumentService::storePropertyDocument",
        "fqmn": "App\\Services\\PropertyDocumentService@storePropertyDocument",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/PropertyDocumentService.php::App\\Services\\PropertyDocumentService::storePropertyDocuments",
        "fqmn": "App\\Services\\PropertyDocumentService@storePropertyDocuments",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RedirectService.php::App\\Services\\RedirectService::getAuthenticatedUserPath",
        "fqmn": "App\\Services\\RedirectService@getAuthenticatedUserPath",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RedirectService.php::App\\Services\\RedirectService::getPostInvitationPath",
        "fqmn": "App\\Services\\RedirectService@getPostInvitationPath",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RedirectService.php::App\\Services\\RedirectService::getPostRegistrationPath",
        "fqmn": "App\\Services\\RedirectService@getPostRegistrationPath",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RedirectService.php::App\\Services\\RedirectService::getRedirectPath",
        "fqmn": "App\\Services\\RedirectService@getRedirectPath",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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_DELETE",
        "surface_id": "method::app/Services/RevenueRecognition/DeferredRevenueAllocator.php::App\\Services\\RevenueRecognition\\DeferredRevenueAllocator::allocate",
        "fqmn": "App\\Services\\RevenueRecognition\\DeferredRevenueAllocator@allocate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RevenueRecognition/RevenueRecognitionEngine.php::App\\Services\\RevenueRecognition\\RevenueRecognitionEngine::runForDate",
        "fqmn": "App\\Services\\RevenueRecognition\\RevenueRecognitionEngine@runForDate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RevenueRecognition/RevenueSnapshotGenerator.php::App\\Services\\RevenueRecognition\\RevenueSnapshotGenerator::generateForDate",
        "fqmn": "App\\Services\\RevenueRecognition\\RevenueSnapshotGenerator@generateForDate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/Security/HoneypotService.php::App\\Services\\Security\\HoneypotService::buildHttpContext",
        "fqmn": "App\\Services\\Security\\HoneypotService@buildHttpContext",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Security/HoneypotService.php::App\\Services\\Security\\HoneypotService::log",
        "fqmn": "App\\Services\\Security\\HoneypotService@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/Security/HoneypotService.php::App\\Services\\Security\\HoneypotService::sanitizePayload",
        "fqmn": "App\\Services\\Security\\HoneypotService@sanitizePayload",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Settlement/SettlementMatchingEngine.php::App\\Services\\Settlement\\SettlementMatchingEngine::match",
        "fqmn": "App\\Services\\Settlement\\SettlementMatchingEngine@match",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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::__construct",
        "fqmn": "App\\Services\\SubscriptionBillingService@__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/SubscriptionBillingService.php::App\\Services\\SubscriptionBillingService::billNow",
        "fqmn": "App\\Services\\SubscriptionBillingService@billNow",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/SubscriptionComputeCacheService.php::App\\Services\\SubscriptionComputeCacheService::forgetById",
        "fqmn": "App\\Services\\SubscriptionComputeCacheService@forgetById",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/SubscriptionComputeCacheService.php::App\\Services\\SubscriptionComputeCacheService::get",
        "fqmn": "App\\Services\\SubscriptionComputeCacheService@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/SubscriptionService.php::App\\Services\\SubscriptionService::__construct",
        "fqmn": "App\\Services\\SubscriptionService@__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/SubscriptionService.php::App\\Services\\SubscriptionService::cancelSubscription",
        "fqmn": "App\\Services\\SubscriptionService@cancelSubscription",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/SubscriptionService.php::App\\Services\\SubscriptionService::canPerformAction",
        "fqmn": "App\\Services\\SubscriptionService@canPerformAction",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/SubscriptionService.php::App\\Services\\SubscriptionService::convertTrialToPaid",
        "fqmn": "App\\Services\\SubscriptionService@convertTrialToPaid",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/SubscriptionService.php::App\\Services\\SubscriptionService::getEffectiveLimits",
        "fqmn": "App\\Services\\SubscriptionService@getEffectiveLimits",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/SubscriptionService.php::App\\Services\\SubscriptionService::grantTrial",
        "fqmn": "App\\Services\\SubscriptionService@grantTrial",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/SubscriptionService.php::App\\Services\\SubscriptionService::grantTrialForTier",
        "fqmn": "App\\Services\\SubscriptionService@grantTrialForTier",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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::lockSubscriptionForUpdate",
        "fqmn": "App\\Services\\SubscriptionStateService@lockSubscriptionForUpdate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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::markActiveAndClearDunning",
        "fqmn": "App\\Services\\SubscriptionStateService@markActiveAndClearDunning",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/SystemSettings.php::App\\Services\\SystemSettings::adminWhatsAppProvider",
        "fqmn": "App\\Services\\SystemSettings@adminWhatsAppProvider",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/SystemSettings.php::App\\Services\\SystemSettings::appWhatsAppProvider",
        "fqmn": "App\\Services\\SystemSettings@appWhatsAppProvider",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/SystemSettings.php::App\\Services\\SystemSettings::get",
        "fqmn": "App\\Services\\SystemSettings@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/SystemSettings.php::App\\Services\\SystemSettings::set",
        "fqmn": "App\\Services\\SystemSettings@set",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/SystemSettings.php::App\\Services\\SystemSettings::setAdminWhatsAppProvider",
        "fqmn": "App\\Services\\SystemSettings@setAdminWhatsAppProvider",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/SystemSettings.php::App\\Services\\SystemSettings::setAppWhatsAppProvider",
        "fqmn": "App\\Services\\SystemSettings@setAppWhatsAppProvider",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/SystemSettings.php::App\\Services\\SystemSettings::setWhatsAppEnv",
        "fqmn": "App\\Services\\SystemSettings@setWhatsAppEnv",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/SystemSettings.php::App\\Services\\SystemSettings::whatsappEnv",
        "fqmn": "App\\Services\\SystemSettings@whatsappEnv",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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::get",
        "fqmn": "App\\Services\\TapClient@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/TapClient.php::App\\Services\\TapClient::post",
        "fqmn": "App\\Services\\TapClient@post",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TapPaymentMethodService.php::App\\Services\\TapPaymentMethodService::getDefaultPaymentMethods",
        "fqmn": "App\\Services\\TapPaymentMethodService@getDefaultPaymentMethods",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TapPaymentMethodService.php::App\\Services\\TapPaymentMethodService::getPaymentMethodOptions",
        "fqmn": "App\\Services\\TapPaymentMethodService@getPaymentMethodOptions",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TapPaymentMethodService.php::App\\Services\\TapPaymentMethodService::getPaymentMethodsForCountry",
        "fqmn": "App\\Services\\TapPaymentMethodService@getPaymentMethodsForCountry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TapPaymentMethodService.php::App\\Services\\TapPaymentMethodService::isMethodAvailableForCountry",
        "fqmn": "App\\Services\\TapPaymentMethodService@isMethodAvailableForCountry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TapPaymentService.php::App\\Services\\TapPaymentService::__construct",
        "fqmn": "App\\Services\\TapPaymentService@__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/TapPaymentService.php::App\\Services\\TapPaymentService::calculateVAT",
        "fqmn": "App\\Services\\TapPaymentService@calculateVAT",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TapPaymentService.php::App\\Services\\TapPaymentService::createCombinedSubscriptionCharge",
        "fqmn": "App\\Services\\TapPaymentService@createCombinedSubscriptionCharge",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TapPaymentService.php::App\\Services\\TapPaymentService::createCreditTopUpCharge",
        "fqmn": "App\\Services\\TapPaymentService@createCreditTopUpCharge",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TapPaymentService.php::App\\Services\\TapPaymentService::createFeatureAddonCharge",
        "fqmn": "App\\Services\\TapPaymentService@createFeatureAddonCharge",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TapPaymentService.php::App\\Services\\TapPaymentService::createPaymentRequestCharge",
        "fqmn": "App\\Services\\TapPaymentService@createPaymentRequestCharge",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TapPaymentService.php::App\\Services\\TapPaymentService::createRentCycleCharge",
        "fqmn": "App\\Services\\TapPaymentService@createRentCycleCharge",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TapPaymentService.php::App\\Services\\TapPaymentService::createSubscriptionCharge",
        "fqmn": "App\\Services\\TapPaymentService@createSubscriptionCharge",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TapPaymentService.php::App\\Services\\TapPaymentService::forOrganization",
        "fqmn": "App\\Services\\TapPaymentService@forOrganization",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TapPaymentService.php::App\\Services\\TapPaymentService::getCharge",
        "fqmn": "App\\Services\\TapPaymentService@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/TapPaymentService.php::App\\Services\\TapPaymentService::getTotalWithVAT",
        "fqmn": "App\\Services\\TapPaymentService@getTotalWithVAT",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TapPaymentService.php::App\\Services\\TapPaymentService::initiateSubscriptionRenewal",
        "fqmn": "App\\Services\\TapPaymentService@initiateSubscriptionRenewal",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TapPaymentService.php::App\\Services\\TapPaymentService::verifyWebhookSignature",
        "fqmn": "App\\Services\\TapPaymentService@verifyWebhookSignature",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TapSettlement/ZohoPaymentFeeSyncService.php::App\\Services\\TapSettlement\\ZohoPaymentFeeSyncService::sync",
        "fqmn": "App\\Services\\TapSettlement\\ZohoPaymentFeeSyncService@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/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Tax/TaxAmountCalculator.php::App\\Services\\Tax\\TaxAmountCalculator::calculateFromBase",
        "fqmn": "App\\Services\\Tax\\TaxAmountCalculator@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/TemplateRenderingService.php::App\\Services\\TemplateRenderingService::buildVariablesForRentCycle",
        "fqmn": "App\\Services\\TemplateRenderingService@buildVariablesForRentCycle",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TemplateRenderingService.php::App\\Services\\TemplateRenderingService::previewTemplate",
        "fqmn": "App\\Services\\TemplateRenderingService@previewTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TemplateRenderingService.php::App\\Services\\TemplateRenderingService::renderForRentCycle",
        "fqmn": "App\\Services\\TemplateRenderingService@renderForRentCycle",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TemplateRenderingService.php::App\\Services\\TemplateRenderingService::validateTemplate",
        "fqmn": "App\\Services\\TemplateRenderingService@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/Tracking/IpinfoService.php::App\\Services\\Tracking\\IpinfoService::getDetails",
        "fqmn": "App\\Services\\Tracking\\IpinfoService@getDetails",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Tracking/TrackingAnalyticsService.php::App\\Services\\Tracking\\TrackingAnalyticsService::getChannelLeaderboard",
        "fqmn": "App\\Services\\Tracking\\TrackingAnalyticsService@getChannelLeaderboard",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Tracking/TrackingAnalyticsService.php::App\\Services\\Tracking\\TrackingAnalyticsService::getGlobalStats",
        "fqmn": "App\\Services\\Tracking\\TrackingAnalyticsService@getGlobalStats",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Tracking/TrackingAnalyticsService.php::App\\Services\\Tracking\\TrackingAnalyticsService::getLinkStats",
        "fqmn": "App\\Services\\Tracking\\TrackingAnalyticsService@getLinkStats",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Tracking/TrackingService.php::App\\Services\\Tracking\\TrackingService::track",
        "fqmn": "App\\Services\\Tracking\\TrackingService@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/Tracking/TrackingService.php::App\\Services\\Tracking\\TrackingService::trackRegistrationCompleted",
        "fqmn": "App\\Services\\Tracking\\TrackingService@trackRegistrationCompleted",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Tracking/UserAgentParser.php::App\\Services\\Tracking\\UserAgentParser::parse",
        "fqmn": "App\\Services\\Tracking\\UserAgentParser@parse",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TwilioProtectionService.php::App\\Services\\TwilioProtectionService::guardedCall",
        "fqmn": "App\\Services\\TwilioProtectionService@guardedCall",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TwilioVerifyService.php::App\\Services\\TwilioVerifyService::checkVerification",
        "fqmn": "App\\Services\\TwilioVerifyService@checkVerification",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TwilioVerifyService.php::App\\Services\\TwilioVerifyService::startVerification",
        "fqmn": "App\\Services\\TwilioVerifyService@startVerification",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/UsageMeterService.php::App\\Services\\UsageMeterService::getUsageForOrganization",
        "fqmn": "App\\Services\\UsageMeterService@getUsageForOrganization",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Webhooks/WebhookIdempotencyService.php::App\\Services\\Webhooks\\WebhookIdempotencyService::generateIdempotencyKey",
        "fqmn": "App\\Services\\Webhooks\\WebhookIdempotencyService@generateIdempotencyKey",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Webhooks/WebhookIdempotencyService.php::App\\Services\\Webhooks\\WebhookIdempotencyService::process",
        "fqmn": "App\\Services\\Webhooks\\WebhookIdempotencyService@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/WhatsApp/Channels/WhatsAppChannel.php::App\\Services\\WhatsApp\\Channels\\WhatsAppChannel::__construct",
        "fqmn": "App\\Services\\WhatsApp\\Channels\\WhatsAppChannel@__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/WhatsApp/Channels/WhatsAppChannel.php::App\\Services\\WhatsApp\\Channels\\WhatsAppChannel::send",
        "fqmn": "App\\Services\\WhatsApp\\Channels\\WhatsAppChannel@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/WhatsApp/Dialog360InboundService.php::App\\Services\\WhatsApp\\Dialog360InboundService::__construct",
        "fqmn": "App\\Services\\WhatsApp\\Dialog360InboundService@__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/WhatsApp/Dialog360InboundService.php::App\\Services\\WhatsApp\\Dialog360InboundService::handle",
        "fqmn": "App\\Services\\WhatsApp\\Dialog360InboundService@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_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Dialog360OnboardingService.php::App\\Services\\WhatsApp\\Dialog360OnboardingService::__construct",
        "fqmn": "App\\Services\\WhatsApp\\Dialog360OnboardingService@__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/WhatsApp/Dialog360OnboardingService.php::App\\Services\\WhatsApp\\Dialog360OnboardingService::activateNumber",
        "fqmn": "App\\Services\\WhatsApp\\Dialog360OnboardingService@activateNumber",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Dialog360OnboardingService.php::App\\Services\\WhatsApp\\Dialog360OnboardingService::fetchBusinessProfile",
        "fqmn": "App\\Services\\WhatsApp\\Dialog360OnboardingService@fetchBusinessProfile",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Dialog360OnboardingService.php::App\\Services\\WhatsApp\\Dialog360OnboardingService::fetchPhoneNumbers",
        "fqmn": "App\\Services\\WhatsApp\\Dialog360OnboardingService@fetchPhoneNumbers",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Dialog360OnboardingService.php::App\\Services\\WhatsApp\\Dialog360OnboardingService::validateToken",
        "fqmn": "App\\Services\\WhatsApp\\Dialog360OnboardingService@validateToken",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Dialog360ProfileService.php::App\\Services\\WhatsApp\\Dialog360ProfileService::__construct",
        "fqmn": "App\\Services\\WhatsApp\\Dialog360ProfileService@__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/WhatsApp/Dialog360ProfileService.php::App\\Services\\WhatsApp\\Dialog360ProfileService::fetchProfile",
        "fqmn": "App\\Services\\WhatsApp\\Dialog360ProfileService@fetchProfile",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Dialog360ProfileService.php::App\\Services\\WhatsApp\\Dialog360ProfileService::syncProfile",
        "fqmn": "App\\Services\\WhatsApp\\Dialog360ProfileService@syncProfile",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Dialog360ProfileService.php::App\\Services\\WhatsApp\\Dialog360ProfileService::updateProfile",
        "fqmn": "App\\Services\\WhatsApp\\Dialog360ProfileService@updateProfile",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Handlers/AgentInboundHandler.php::App\\Services\\WhatsApp\\Handlers\\AgentInboundHandler::handle",
        "fqmn": "App\\Services\\WhatsApp\\Handlers\\AgentInboundHandler@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_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Handlers/ChatbotInboundHandler.php::App\\Services\\WhatsApp\\Handlers\\ChatbotInboundHandler::__construct",
        "fqmn": "App\\Services\\WhatsApp\\Handlers\\ChatbotInboundHandler@__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/WhatsApp/Handlers/ChatbotInboundHandler.php::App\\Services\\WhatsApp\\Handlers\\ChatbotInboundHandler::handle",
        "fqmn": "App\\Services\\WhatsApp\\Handlers\\ChatbotInboundHandler@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_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Handlers/DefaultInboundHandler.php::App\\Services\\WhatsApp\\Handlers\\DefaultInboundHandler::handle",
        "fqmn": "App\\Services\\WhatsApp\\Handlers\\DefaultInboundHandler@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_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Handlers/HumanReplyHandler.php::App\\Services\\WhatsApp\\Handlers\\HumanReplyHandler::__construct",
        "fqmn": "App\\Services\\WhatsApp\\Handlers\\HumanReplyHandler@__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/WhatsApp/Handlers/HumanReplyHandler.php::App\\Services\\WhatsApp\\Handlers\\HumanReplyHandler::handle",
        "fqmn": "App\\Services\\WhatsApp\\Handlers\\HumanReplyHandler@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_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Handlers/MaintenanceInboundHandler.php::App\\Services\\WhatsApp\\Handlers\\MaintenanceInboundHandler::handle",
        "fqmn": "App\\Services\\WhatsApp\\Handlers\\MaintenanceInboundHandler@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_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Handlers/PaymentProofInboundHandler.php::App\\Services\\WhatsApp\\Handlers\\PaymentProofInboundHandler::__construct",
        "fqmn": "App\\Services\\WhatsApp\\Handlers\\PaymentProofInboundHandler@__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/WhatsApp/Handlers/PaymentProofInboundHandler.php::App\\Services\\WhatsApp\\Handlers\\PaymentProofInboundHandler::handle",
        "fqmn": "App\\Services\\WhatsApp\\Handlers\\PaymentProofInboundHandler@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_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Inbound/Adapters/Dialog360InboundAdapter.php::App\\Services\\WhatsApp\\Inbound\\Adapters\\Dialog360InboundAdapter::fromPayload",
        "fqmn": "App\\Services\\WhatsApp\\Inbound\\Adapters\\Dialog360InboundAdapter@fromPayload",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Inbound/Adapters/TwilioInboundAdapter.php::App\\Services\\WhatsApp\\Inbound\\Adapters\\TwilioInboundAdapter::fromPayload",
        "fqmn": "App\\Services\\WhatsApp\\Inbound\\Adapters\\TwilioInboundAdapter@fromPayload",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Inbound/CanonicalInboundMessage.php::App\\Services\\WhatsApp\\Inbound\\CanonicalInboundMessage::__construct",
        "fqmn": "App\\Services\\WhatsApp\\Inbound\\CanonicalInboundMessage@__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/WhatsApp/Inbound/CanonicalInboundMessage.php::App\\Services\\WhatsApp\\Inbound\\CanonicalInboundMessage::fromArray",
        "fqmn": "App\\Services\\WhatsApp\\Inbound\\CanonicalInboundMessage@fromArray",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Inbound/CanonicalInboundMessage.php::App\\Services\\WhatsApp\\Inbound\\CanonicalInboundMessage::toArray",
        "fqmn": "App\\Services\\WhatsApp\\Inbound\\CanonicalInboundMessage@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/WhatsApp/Inbound/InboundMessageFactory.php::App\\Services\\WhatsApp\\Inbound\\InboundMessageFactory::makeFromProviderPayload",
        "fqmn": "App\\Services\\WhatsApp\\Inbound\\InboundMessageFactory@makeFromProviderPayload",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Normalizer/Dialog360WhatsAppNormalizer.php::App\\Services\\WhatsApp\\Normalizer\\Dialog360WhatsAppNormalizer::getProviderName",
        "fqmn": "App\\Services\\WhatsApp\\Normalizer\\Dialog360WhatsAppNormalizer@getProviderName",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Normalizer/Dialog360WhatsAppNormalizer.php::App\\Services\\WhatsApp\\Normalizer\\Dialog360WhatsAppNormalizer::normalizeError",
        "fqmn": "App\\Services\\WhatsApp\\Normalizer\\Dialog360WhatsAppNormalizer@normalizeError",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Normalizer/Dialog360WhatsAppNormalizer.php::App\\Services\\WhatsApp\\Normalizer\\Dialog360WhatsAppNormalizer::normalizeOutboundRequest",
        "fqmn": "App\\Services\\WhatsApp\\Normalizer\\Dialog360WhatsAppNormalizer@normalizeOutboundRequest",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Normalizer/Dialog360WhatsAppNormalizer.php::App\\Services\\WhatsApp\\Normalizer\\Dialog360WhatsAppNormalizer::normalizeSendResponse",
        "fqmn": "App\\Services\\WhatsApp\\Normalizer\\Dialog360WhatsAppNormalizer@normalizeSendResponse",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Normalizer/Dialog360WhatsAppNormalizer.php::App\\Services\\WhatsApp\\Normalizer\\Dialog360WhatsAppNormalizer::normalizeWebhookStatus",
        "fqmn": "App\\Services\\WhatsApp\\Normalizer\\Dialog360WhatsAppNormalizer@normalizeWebhookStatus",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Normalizer/TwilioWhatsAppNormalizer.php::App\\Services\\WhatsApp\\Normalizer\\TwilioWhatsAppNormalizer::getProviderName",
        "fqmn": "App\\Services\\WhatsApp\\Normalizer\\TwilioWhatsAppNormalizer@getProviderName",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Normalizer/TwilioWhatsAppNormalizer.php::App\\Services\\WhatsApp\\Normalizer\\TwilioWhatsAppNormalizer::normalizeError",
        "fqmn": "App\\Services\\WhatsApp\\Normalizer\\TwilioWhatsAppNormalizer@normalizeError",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Normalizer/TwilioWhatsAppNormalizer.php::App\\Services\\WhatsApp\\Normalizer\\TwilioWhatsAppNormalizer::normalizeOutboundRequest",
        "fqmn": "App\\Services\\WhatsApp\\Normalizer\\TwilioWhatsAppNormalizer@normalizeOutboundRequest",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Normalizer/TwilioWhatsAppNormalizer.php::App\\Services\\WhatsApp\\Normalizer\\TwilioWhatsAppNormalizer::normalizeSendResponse",
        "fqmn": "App\\Services\\WhatsApp\\Normalizer\\TwilioWhatsAppNormalizer@normalizeSendResponse",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Normalizer/TwilioWhatsAppNormalizer.php::App\\Services\\WhatsApp\\Normalizer\\TwilioWhatsAppNormalizer::normalizeWebhookStatus",
        "fqmn": "App\\Services\\WhatsApp\\Normalizer\\TwilioWhatsAppNormalizer@normalizeWebhookStatus",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Normalizer/WhatsAppMessageNormalizer.php::App\\Services\\WhatsApp\\Normalizer\\WhatsAppMessageNormalizer::normalizeError",
        "fqmn": "App\\Services\\WhatsApp\\Normalizer\\WhatsAppMessageNormalizer@normalizeError",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Normalizer/WhatsAppMessageNormalizer.php::App\\Services\\WhatsApp\\Normalizer\\WhatsAppMessageNormalizer::normalizeOutboundRequest",
        "fqmn": "App\\Services\\WhatsApp\\Normalizer\\WhatsAppMessageNormalizer@normalizeOutboundRequest",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Normalizer/WhatsAppMessageNormalizer.php::App\\Services\\WhatsApp\\Normalizer\\WhatsAppMessageNormalizer::normalizeSendResponse",
        "fqmn": "App\\Services\\WhatsApp\\Normalizer\\WhatsAppMessageNormalizer@normalizeSendResponse",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Normalizer/WhatsAppMessageNormalizer.php::App\\Services\\WhatsApp\\Normalizer\\WhatsAppMessageNormalizer::normalizeWebhookStatus",
        "fqmn": "App\\Services\\WhatsApp\\Normalizer\\WhatsAppMessageNormalizer@normalizeWebhookStatus",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/ProviderFactory.php::App\\Services\\WhatsApp\\ProviderFactory::make",
        "fqmn": "App\\Services\\WhatsApp\\ProviderFactory@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/WhatsApp/ProviderFactory.php::App\\Services\\WhatsApp\\ProviderFactory::makeTemplateProvider",
        "fqmn": "App\\Services\\WhatsApp\\ProviderFactory@makeTemplateProvider",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/ProviderMetricsService.php::App\\Services\\WhatsApp\\ProviderMetricsService::snapshotForSender",
        "fqmn": "App\\Services\\WhatsApp\\ProviderMetricsService@snapshotForSender",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Providers/Dialog360WhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider::getMediaUrl",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider@getMediaUrl",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Providers/Dialog360WhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider::pushTemplate",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider@pushTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Providers/Dialog360WhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider::sendMessage",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider@sendMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Providers/Dialog360WhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider::sendSenderAction",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider@sendSenderAction",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Providers/Dialog360WhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider::sendTemplate",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider@sendTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Providers/TwilioWhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider::__construct",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@__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/WhatsApp/Providers/TwilioWhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider::fetchTemplateStatus",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@fetchTemplateStatus",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Providers/TwilioWhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider::provision",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@provision",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Providers/TwilioWhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider::pushTemplate",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@pushTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Providers/TwilioWhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider::resolveOrganizationIdByTo",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@resolveOrganizationIdByTo",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Providers/TwilioWhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider::sendDocument",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@sendDocument",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Providers/TwilioWhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider::sendImage",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@sendImage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Providers/TwilioWhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider::sendMessage",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@sendMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Providers/TwilioWhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider::sendSenderAction",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@sendSenderAction",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Providers/TwilioWhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider::sendTemplate",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@sendTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Providers/TwilioWhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider::syncTemplateStatus",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@syncTemplateStatus",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Routing/WhatsAppMessageRouter.php::App\\Services\\WhatsApp\\Routing\\WhatsAppMessageRouter::route",
        "fqmn": "App\\Services\\WhatsApp\\Routing\\WhatsAppMessageRouter@route",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Sessions/WhatsAppSessionResolver.php::App\\Services\\WhatsApp\\Sessions\\WhatsAppSessionResolver::resolve",
        "fqmn": "App\\Services\\WhatsApp\\Sessions\\WhatsAppSessionResolver@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/WhatsApp/SmartReplyService.php::App\\Services\\WhatsApp\\SmartReplyService::buildContractMedia",
        "fqmn": "App\\Services\\WhatsApp\\SmartReplyService@buildContractMedia",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/SmartReplyService.php::App\\Services\\WhatsApp\\SmartReplyService::buildInvoiceMessage",
        "fqmn": "App\\Services\\WhatsApp\\SmartReplyService@buildInvoiceMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/SmartReplyService.php::App\\Services\\WhatsApp\\SmartReplyService::buildOutstandingBalanceMessage",
        "fqmn": "App\\Services\\WhatsApp\\SmartReplyService@buildOutstandingBalanceMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/SmartReplyService.php::App\\Services\\WhatsApp\\SmartReplyService::buildPaymentLinkMessage",
        "fqmn": "App\\Services\\WhatsApp\\SmartReplyService@buildPaymentLinkMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/SmartReplyService.php::App\\Services\\WhatsApp\\SmartReplyService::buildRentReminderMessage",
        "fqmn": "App\\Services\\WhatsApp\\SmartReplyService@buildRentReminderMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/SmartReplyService.php::App\\Services\\WhatsApp\\SmartReplyService::buildTemplateMessage",
        "fqmn": "App\\Services\\WhatsApp\\SmartReplyService@buildTemplateMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/SmartReplyService.php::App\\Services\\WhatsApp\\SmartReplyService::buildUnitLocationMessage",
        "fqmn": "App\\Services\\WhatsApp\\SmartReplyService@buildUnitLocationMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Templates/Dialog360TemplateProvider.php::App\\Services\\WhatsApp\\Templates\\Dialog360TemplateProvider::deleteTemplate",
        "fqmn": "App\\Services\\WhatsApp\\Templates\\Dialog360TemplateProvider@deleteTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Templates/Dialog360TemplateProvider.php::App\\Services\\WhatsApp\\Templates\\Dialog360TemplateProvider::pushTemplate",
        "fqmn": "App\\Services\\WhatsApp\\Templates\\Dialog360TemplateProvider@pushTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Templates/Dialog360TemplateProvider.php::App\\Services\\WhatsApp\\Templates\\Dialog360TemplateProvider::syncTemplate",
        "fqmn": "App\\Services\\WhatsApp\\Templates\\Dialog360TemplateProvider@syncTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Templates/Dialog360TemplateProvider.php::App\\Services\\WhatsApp\\Templates\\Dialog360TemplateProvider::templateCapabilities",
        "fqmn": "App\\Services\\WhatsApp\\Templates\\Dialog360TemplateProvider@templateCapabilities",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Templates/TwilioTemplateProvider.php::App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider::__construct",
        "fqmn": "App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider@__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/WhatsApp/Templates/TwilioTemplateProvider.php::App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider::deleteTemplate",
        "fqmn": "App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider@deleteTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Templates/TwilioTemplateProvider.php::App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider::pushTemplate",
        "fqmn": "App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider@pushTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Templates/TwilioTemplateProvider.php::App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider::syncTemplate",
        "fqmn": "App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider@syncTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/Templates/TwilioTemplateProvider.php::App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider::templateCapabilities",
        "fqmn": "App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider@templateCapabilities",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/TenantSidebarService.php::App\\Services\\WhatsApp\\TenantSidebarService::getTenantInfo",
        "fqmn": "App\\Services\\WhatsApp\\TenantSidebarService@getTenantInfo",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/TwilioProvisioningService.php::App\\Services\\WhatsApp\\TwilioProvisioningService::ensureMessagingService",
        "fqmn": "App\\Services\\WhatsApp\\TwilioProvisioningService@ensureMessagingService",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/TwilioProvisioningService.php::App\\Services\\WhatsApp\\TwilioProvisioningService::requestWhatsAppSender",
        "fqmn": "App\\Services\\WhatsApp\\TwilioProvisioningService@requestWhatsAppSender",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/TwilioTemplatePushService.php::App\\Services\\WhatsApp\\TwilioTemplatePushService::push",
        "fqmn": "App\\Services\\WhatsApp\\TwilioTemplatePushService@push",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/TwilioWhatsAppService.php::App\\Services\\WhatsApp\\TwilioWhatsAppService::findApprovedTemplateSid",
        "fqmn": "App\\Services\\WhatsApp\\TwilioWhatsAppService@findApprovedTemplateSid",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/TwilioWhatsAppService.php::App\\Services\\WhatsApp\\TwilioWhatsAppService::resolveOrganizationIdByTo",
        "fqmn": "App\\Services\\WhatsApp\\TwilioWhatsAppService@resolveOrganizationIdByTo",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/TwilioWhatsAppService.php::App\\Services\\WhatsApp\\TwilioWhatsAppService::send",
        "fqmn": "App\\Services\\WhatsApp\\TwilioWhatsAppService@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/WhatsApp/TwilioWhatsAppService.php::App\\Services\\WhatsApp\\TwilioWhatsAppService::sendTemplate",
        "fqmn": "App\\Services\\WhatsApp\\TwilioWhatsAppService@sendTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/TwilioWhatsAppService.php::App\\Services\\WhatsApp\\TwilioWhatsAppService::status",
        "fqmn": "App\\Services\\WhatsApp\\TwilioWhatsAppService@status",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/WalkInLeadService.php::App\\Services\\WhatsApp\\WalkInLeadService::dispatchInboundPipeline",
        "fqmn": "App\\Services\\WhatsApp\\WalkInLeadService@dispatchInboundPipeline",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/WalkInLeadService.php::App\\Services\\WhatsApp\\WalkInLeadService::handleWalkIn",
        "fqmn": "App\\Services\\WhatsApp\\WalkInLeadService@handleWalkIn",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/WhatsAppAISettingsService.php::App\\Services\\WhatsApp\\WhatsAppAISettingsService::forOrganization",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppAISettingsService@forOrganization",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/WhatsAppChatbotService.php::App\\Services\\WhatsApp\\WhatsAppChatbotService::__construct",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppChatbotService@__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/WhatsApp/WhatsAppChatbotService.php::App\\Services\\WhatsApp\\WhatsAppChatbotService::handleInbound",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppChatbotService@handleInbound",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/WhatsAppConnectivityService.php::App\\Services\\WhatsApp\\WhatsAppConnectivityService::canCreateWhatsAppTemplate",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppConnectivityService@canCreateWhatsAppTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/WhatsAppConnectivityService.php::App\\Services\\WhatsApp\\WhatsAppConnectivityService::checkConnectivity",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppConnectivityService@checkConnectivity",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/WhatsAppConnectivityService.php::App\\Services\\WhatsApp\\WhatsAppConnectivityService::checkProviderConnectivity",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppConnectivityService@checkProviderConnectivity",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/WhatsAppConnectivityService.php::App\\Services\\WhatsApp\\WhatsAppConnectivityService::getActiveProvider",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppConnectivityService@getActiveProvider",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/WhatsAppConnectivityService.php::App\\Services\\WhatsApp\\WhatsAppConnectivityService::getConnectivityHelperText",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppConnectivityService@getConnectivityHelperText",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/WhatsAppConsentService.php::App\\Services\\WhatsApp\\WhatsAppConsentService::isOptedOut",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppConsentService@isOptedOut",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/WhatsAppConsentService.php::App\\Services\\WhatsApp\\WhatsAppConsentService::recordOptIn",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppConsentService@recordOptIn",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/WhatsAppConsentService.php::App\\Services\\WhatsApp\\WhatsAppConsentService::recordOptOut",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppConsentService@recordOptOut",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/WhatsAppInboundMessageWriter.php::App\\Services\\WhatsApp\\WhatsAppInboundMessageWriter::create",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppInboundMessageWriter@create",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/WhatsAppInboundMessageWriter.php::App\\Services\\WhatsApp\\WhatsAppInboundMessageWriter::delete",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppInboundMessageWriter@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/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/WhatsAppInboundMessageWriter.php::App\\Services\\WhatsApp\\WhatsAppInboundMessageWriter::insert",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppInboundMessageWriter@insert",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WhatsApp/WhatsAppInboundMessageWriter.php::App\\Services\\WhatsApp\\WhatsAppInboundMessageWriter::update",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppInboundMessageWriter@update",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZATCAInvoiceService.php::App\\Services\\ZATCAInvoiceService::prepareForZATCA",
        "fqmn": "App\\Services\\ZATCAInvoiceService@prepareForZATCA",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZATCAInvoiceService.php::App\\Services\\ZATCAInvoiceService::validateCompliance",
        "fqmn": "App\\Services\\ZATCAInvoiceService@validateCompliance",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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::__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::send",
        "fqmn": "App\\Services\\ZeptoMailService@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/ZeptoMailService.php::App\\Services\\ZeptoMailService::sendBulk",
        "fqmn": "App\\Services\\ZeptoMailService@sendBulk",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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::sendTemplate",
        "fqmn": "App\\Services\\ZeptoMailService@sendTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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::verifyWebhook",
        "fqmn": "App\\Services\\ZeptoMailService@verifyWebhook",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/InvoiceOrchestrator.php::App\\Services\\Zoho\\InvoiceOrchestrator::__construct",
        "fqmn": "App\\Services\\Zoho\\InvoiceOrchestrator@__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/Zoho/InvoiceOrchestrator.php::App\\Services\\Zoho\\InvoiceOrchestrator::createCreditNote",
        "fqmn": "App\\Services\\Zoho\\InvoiceOrchestrator@createCreditNote",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/InvoiceOrchestrator.php::App\\Services\\Zoho\\InvoiceOrchestrator::createInvoice",
        "fqmn": "App\\Services\\Zoho\\InvoiceOrchestrator@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/Zoho/Normalizers/BahrainAddressNormalizer.php::App\\Services\\Zoho\\Normalizers\\BahrainAddressNormalizer::normalize",
        "fqmn": "App\\Services\\Zoho\\Normalizers\\BahrainAddressNormalizer@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/Zoho/Normalizers/KuwaitAddressNormalizer.php::App\\Services\\Zoho\\Normalizers\\KuwaitAddressNormalizer::normalize",
        "fqmn": "App\\Services\\Zoho\\Normalizers\\KuwaitAddressNormalizer@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/Zoho/Normalizers/OmanAddressNormalizer.php::App\\Services\\Zoho\\Normalizers\\OmanAddressNormalizer::normalize",
        "fqmn": "App\\Services\\Zoho\\Normalizers\\OmanAddressNormalizer@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/Zoho/Normalizers/QatarAddressNormalizer.php::App\\Services\\Zoho\\Normalizers\\QatarAddressNormalizer::normalize",
        "fqmn": "App\\Services\\Zoho\\Normalizers\\QatarAddressNormalizer@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/Zoho/Normalizers/SaudiAddressNormalizer.php::App\\Services\\Zoho\\Normalizers\\SaudiAddressNormalizer::normalize",
        "fqmn": "App\\Services\\Zoho\\Normalizers\\SaudiAddressNormalizer@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/Zoho/Normalizers/UAEAddressNormalizer.php::App\\Services\\Zoho\\Normalizers\\UAEAddressNormalizer::normalize",
        "fqmn": "App\\Services\\Zoho\\Normalizers\\UAEAddressNormalizer@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/Zoho/ZohoAddressNormalizer.php::App\\Services\\Zoho\\ZohoAddressNormalizer::normalize",
        "fqmn": "App\\Services\\Zoho\\ZohoAddressNormalizer@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/Zoho/ZohoAddressNormalizer.php::App\\Services\\Zoho\\ZohoAddressNormalizer::normalizeFromArray",
        "fqmn": "App\\Services\\Zoho\\ZohoAddressNormalizer@normalizeFromArray",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/ZohoBooksClient.php::App\\Services\\Zoho\\ZohoBooksClient::__construct",
        "fqmn": "App\\Services\\Zoho\\ZohoBooksClient@__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/Zoho/ZohoBooksClient.php::App\\Services\\Zoho\\ZohoBooksClient::accessToken",
        "fqmn": "App\\Services\\Zoho\\ZohoBooksClient@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/Zoho/ZohoBooksClient.php::App\\Services\\Zoho\\ZohoBooksClient::get",
        "fqmn": "App\\Services\\Zoho\\ZohoBooksClient@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/Zoho/ZohoBooksClient.php::App\\Services\\Zoho\\ZohoBooksClient::getConnectionStatus",
        "fqmn": "App\\Services\\Zoho\\ZohoBooksClient@getConnectionStatus",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/ZohoBooksClient.php::App\\Services\\Zoho\\ZohoBooksClient::isConnected",
        "fqmn": "App\\Services\\Zoho\\ZohoBooksClient@isConnected",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/ZohoBooksClient.php::App\\Services\\Zoho\\ZohoBooksClient::post",
        "fqmn": "App\\Services\\Zoho\\ZohoBooksClient@post",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/ZohoErrorResolver.php::App\\Services\\Zoho\\ZohoErrorResolver::classifyError",
        "fqmn": "App\\Services\\Zoho\\ZohoErrorResolver@classifyError",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/ZohoErrorResolver.php::App\\Services\\Zoho\\ZohoErrorResolver::extractErrorCode",
        "fqmn": "App\\Services\\Zoho\\ZohoErrorResolver@extractErrorCode",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/ZohoErrorResolver.php::App\\Services\\Zoho\\ZohoErrorResolver::extractErrorMessage",
        "fqmn": "App\\Services\\Zoho\\ZohoErrorResolver@extractErrorMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/ZohoErrorResolver.php::App\\Services\\Zoho\\ZohoErrorResolver::getResolutionStrategy",
        "fqmn": "App\\Services\\Zoho\\ZohoErrorResolver@getResolutionStrategy",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/ZohoErrorResolver.php::App\\Services\\Zoho\\ZohoErrorResolver::isConflict",
        "fqmn": "App\\Services\\Zoho\\ZohoErrorResolver@isConflict",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/ZohoIdempotencyService.php::App\\Services\\Zoho\\ZohoIdempotencyService::checkAndStore",
        "fqmn": "App\\Services\\Zoho\\ZohoIdempotencyService@checkAndStore",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/ZohoIdempotencyService.php::App\\Services\\Zoho\\ZohoIdempotencyService::generateCustomerKey",
        "fqmn": "App\\Services\\Zoho\\ZohoIdempotencyService@generateCustomerKey",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/ZohoIdempotencyService.php::App\\Services\\Zoho\\ZohoIdempotencyService::generateInvoiceKey",
        "fqmn": "App\\Services\\Zoho\\ZohoIdempotencyService@generateInvoiceKey",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/ZohoIdempotencyService.php::App\\Services\\Zoho\\ZohoIdempotencyService::generateKey",
        "fqmn": "App\\Services\\Zoho\\ZohoIdempotencyService@generateKey",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/ZohoIdempotencyService.php::App\\Services\\Zoho\\ZohoIdempotencyService::generatePaymentKey",
        "fqmn": "App\\Services\\Zoho\\ZohoIdempotencyService@generatePaymentKey",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/ZohoIdempotencyService.php::App\\Services\\Zoho\\ZohoIdempotencyService::isDuplicate",
        "fqmn": "App\\Services\\Zoho\\ZohoIdempotencyService@isDuplicate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/ZohoIdempotencyService.php::App\\Services\\Zoho\\ZohoIdempotencyService::store",
        "fqmn": "App\\Services\\Zoho\\ZohoIdempotencyService@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_DELETE",
        "surface_id": "method::app/Services/Zoho/ZohoMappingService.php::App\\Services\\Zoho\\ZohoMappingService::mapCurrency",
        "fqmn": "App\\Services\\Zoho\\ZohoMappingService@mapCurrency",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/ZohoMappingService.php::App\\Services\\Zoho\\ZohoMappingService::mapCustomFields",
        "fqmn": "App\\Services\\Zoho\\ZohoMappingService@mapCustomFields",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/ZohoMappingService.php::App\\Services\\Zoho\\ZohoMappingService::mapOrganizationToCustomer",
        "fqmn": "App\\Services\\Zoho\\ZohoMappingService@mapOrganizationToCustomer",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/ZohoMappingService.php::App\\Services\\Zoho\\ZohoMappingService::mapPaymentMethod",
        "fqmn": "App\\Services\\Zoho\\ZohoMappingService@mapPaymentMethod",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/ZohoMappingService.php::App\\Services\\Zoho\\ZohoMappingService::mapVatPolicyToTaxId",
        "fqmn": "App\\Services\\Zoho\\ZohoMappingService@mapVatPolicyToTaxId",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/ZohoMappingService.php::App\\Services\\Zoho\\ZohoMappingService::mapZohoStatusToLocal",
        "fqmn": "App\\Services\\Zoho\\ZohoMappingService@mapZohoStatusToLocal",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/ZohoRetryService.php::App\\Services\\Zoho\\ZohoRetryService::calculateBackoff",
        "fqmn": "App\\Services\\Zoho\\ZohoRetryService@calculateBackoff",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/ZohoRetryService.php::App\\Services\\Zoho\\ZohoRetryService::getRetryDelay",
        "fqmn": "App\\Services\\Zoho\\ZohoRetryService@getRetryDelay",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/ZohoRetryService.php::App\\Services\\Zoho\\ZohoRetryService::incrementRetryCount",
        "fqmn": "App\\Services\\Zoho\\ZohoRetryService@incrementRetryCount",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/ZohoRetryService.php::App\\Services\\Zoho\\ZohoRetryService::isRetryableError",
        "fqmn": "App\\Services\\Zoho\\ZohoRetryService@isRetryableError",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/ZohoRetryService.php::App\\Services\\Zoho\\ZohoRetryService::markAsFailed",
        "fqmn": "App\\Services\\Zoho\\ZohoRetryService@markAsFailed",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/ZohoRetryService.php::App\\Services\\Zoho\\ZohoRetryService::parseRetryAfter",
        "fqmn": "App\\Services\\Zoho\\ZohoRetryService@parseRetryAfter",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/ZohoRetryService.php::App\\Services\\Zoho\\ZohoRetryService::shouldRetry",
        "fqmn": "App\\Services\\Zoho\\ZohoRetryService@shouldRetry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/ZohoTokenManager.php::App\\Services\\Zoho\\ZohoTokenManager::getAccessToken",
        "fqmn": "App\\Services\\Zoho\\ZohoTokenManager@getAccessToken",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/ZohoWebhookProcessor.php::App\\Services\\Zoho\\ZohoWebhookProcessor::__construct",
        "fqmn": "App\\Services\\Zoho\\ZohoWebhookProcessor@__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/Zoho/ZohoWebhookProcessor.php::App\\Services\\Zoho\\ZohoWebhookProcessor::process",
        "fqmn": "App\\Services\\Zoho\\ZohoWebhookProcessor@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/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::createDirectSubscriptionInvoice",
        "fqmn": "App\\Services\\ZohoBooksService@createDirectSubscriptionInvoice",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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::createMaintenanceEstimate",
        "fqmn": "App\\Services\\ZohoBooksService@createMaintenanceEstimate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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::createZohoInvoice",
        "fqmn": "App\\Services\\ZohoBooksService@createZohoInvoice",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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::downloadEstimatePdf",
        "fqmn": "App\\Services\\ZohoBooksService@downloadEstimatePdf",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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::findOrCreateCustomerForLandlord",
        "fqmn": "App\\Services\\ZohoBooksService@findOrCreateCustomerForLandlord",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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::findOrCreateMaintenanceItem",
        "fqmn": "App\\Services\\ZohoBooksService@findOrCreateMaintenanceItem",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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::resolveZohoTaxId",
        "fqmn": "App\\Services\\ZohoBooksService@resolveZohoTaxId",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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::syncCustomer",
        "fqmn": "App\\Services\\ZohoBooksService@syncCustomer",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. 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/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Cache/CacheManagerProxy.php::App\\Support\\Cache\\CacheManagerProxy::add",
        "fqmn": "App\\Support\\Cache\\CacheManagerProxy@add",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Cache/CacheManagerProxy.php::App\\Support\\Cache\\CacheManagerProxy::fake",
        "fqmn": "App\\Support\\Cache\\CacheManagerProxy@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/Cache/CacheManagerProxy.php::App\\Support\\Cache\\CacheManagerProxy::flush",
        "fqmn": "App\\Support\\Cache\\CacheManagerProxy@flush",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Cache/CacheManagerProxy.php::App\\Support\\Cache\\CacheManagerProxy::forget",
        "fqmn": "App\\Support\\Cache\\CacheManagerProxy@forget",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Cache/CacheManagerProxy.php::App\\Support\\Cache\\CacheManagerProxy::get",
        "fqmn": "App\\Support\\Cache\\CacheManagerProxy@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/Cache/CacheManagerProxy.php::App\\Support\\Cache\\CacheManagerProxy::lock",
        "fqmn": "App\\Support\\Cache\\CacheManagerProxy@lock",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Cache/CacheManagerProxy.php::App\\Support\\Cache\\CacheManagerProxy::put",
        "fqmn": "App\\Support\\Cache\\CacheManagerProxy@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/Cache/CacheManagerProxy.php::App\\Support\\Cache\\CacheManagerProxy::remember",
        "fqmn": "App\\Support\\Cache\\CacheManagerProxy@remember",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Cache/CacheManagerProxy.php::App\\Support\\Cache\\CacheManagerProxy::store",
        "fqmn": "App\\Support\\Cache\\CacheManagerProxy@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/Chat/RateLimiter.php::App\\Support\\Chat\\RateLimiter::checkBurstLimit",
        "fqmn": "App\\Support\\Chat\\RateLimiter@checkBurstLimit",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Chat/RateLimiter.php::App\\Support\\Chat\\RateLimiter::checkMultipleWindows",
        "fqmn": "App\\Support\\Chat\\RateLimiter@checkMultipleWindows",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Chat/RateLimiter.php::App\\Support\\Chat\\RateLimiter::checkOpenAITokens",
        "fqmn": "App\\Support\\Chat\\RateLimiter@checkOpenAITokens",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Chat/RateLimiter.php::App\\Support\\Chat\\RateLimiter::checkOrFail",
        "fqmn": "App\\Support\\Chat\\RateLimiter@checkOrFail",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Chat/RateLimiter.php::App\\Support\\Chat\\RateLimiter::checkTwilioTierLimit",
        "fqmn": "App\\Support\\Chat\\RateLimiter@checkTwilioTierLimit",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Chat/RateLimiter.php::App\\Support\\Chat\\RateLimiter::estimateTokens",
        "fqmn": "App\\Support\\Chat\\RateLimiter@estimateTokens",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Chat/RateLimiter.php::App\\Support\\Chat\\RateLimiter::getRemaining",
        "fqmn": "App\\Support\\Chat\\RateLimiter@getRemaining",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Chat/RateLimiter.php::App\\Support\\Chat\\RateLimiter::getResetTime",
        "fqmn": "App\\Support\\Chat\\RateLimiter@getResetTime",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Chat/RateLimiter.php::App\\Support\\Chat\\RateLimiter::isAllowed",
        "fqmn": "App\\Support\\Chat\\RateLimiter@isAllowed",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Chat/RateLimiter.php::App\\Support\\Chat\\RateLimiter::reset",
        "fqmn": "App\\Support\\Chat\\RateLimiter@reset",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::acquireLock",
        "fqmn": "App\\Support\\Chat\\StateRepository@acquireLock",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::addConversationMessage",
        "fqmn": "App\\Support\\Chat\\StateRepository@addConversationMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::clearSession",
        "fqmn": "App\\Support\\Chat\\StateRepository@clearSession",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::getConversationHistory",
        "fqmn": "App\\Support\\Chat\\StateRepository@getConversationHistory",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::getConversationId",
        "fqmn": "App\\Support\\Chat\\StateRepository@getConversationId",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::getLastMessageAt",
        "fqmn": "App\\Support\\Chat\\StateRepository@getLastMessageAt",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::getSessionState",
        "fqmn": "App\\Support\\Chat\\StateRepository@getSessionState",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::loadConversation",
        "fqmn": "App\\Support\\Chat\\StateRepository@loadConversation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::loadSession",
        "fqmn": "App\\Support\\Chat\\StateRepository@loadSession",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::releaseLock",
        "fqmn": "App\\Support\\Chat\\StateRepository@releaseLock",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::saveInboundMessage",
        "fqmn": "App\\Support\\Chat\\StateRepository@saveInboundMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::saveOutboundMessage",
        "fqmn": "App\\Support\\Chat\\StateRepository@saveOutboundMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::saveSession",
        "fqmn": "App\\Support\\Chat\\StateRepository@saveSession",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::setConversationId",
        "fqmn": "App\\Support\\Chat\\StateRepository@setConversationId",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::setLastMessageAt",
        "fqmn": "App\\Support\\Chat\\StateRepository@setLastMessageAt",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::setSessionState",
        "fqmn": "App\\Support\\Chat\\StateRepository@setSessionState",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::trimHistory",
        "fqmn": "App\\Support\\Chat\\StateRepository@trimHistory",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::updateLastMessageTimestamp",
        "fqmn": "App\\Support\\Chat\\StateRepository@updateLastMessageTimestamp",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::updateSessionField",
        "fqmn": "App\\Support\\Chat\\StateRepository@updateSessionField",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/FactoryToolkit.php::App\\Support\\FactoryToolkit::factoryFullCycle",
        "fqmn": "App\\Support\\FactoryToolkit@factoryFullCycle",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/FactoryToolkit.php::App\\Support\\FactoryToolkit::factoryLease",
        "fqmn": "App\\Support\\FactoryToolkit@factoryLease",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/FactoryToolkit.php::App\\Support\\FactoryToolkit::factoryOrganization",
        "fqmn": "App\\Support\\FactoryToolkit@factoryOrganization",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/FactoryToolkit.php::App\\Support\\FactoryToolkit::factoryPropertyChain",
        "fqmn": "App\\Support\\FactoryToolkit@factoryPropertyChain",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/FactoryToolkit.php::App\\Support\\FactoryToolkit::factoryTenant",
        "fqmn": "App\\Support\\FactoryToolkit@factoryTenant",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/FactoryToolkit.php::App\\Support\\FactoryToolkit::fullLeaseCycle",
        "fqmn": "App\\Support\\FactoryToolkit@fullLeaseCycle",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/FactoryToolkit.php::App\\Support\\FactoryToolkit::organizationWithTenants",
        "fqmn": "App\\Support\\FactoryToolkit@organizationWithTenants",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/FactoryToolkit.php::App\\Support\\FactoryToolkit::paymentScenario",
        "fqmn": "App\\Support\\FactoryToolkit@paymentScenario",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/FactoryToolkit.php::App\\Support\\FactoryToolkit::propertyWithUnits",
        "fqmn": "App\\Support\\FactoryToolkit@propertyWithUnits",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/FactoryToolkit.php::App\\Support\\FactoryToolkit::tenantWithLease",
        "fqmn": "App\\Support\\FactoryToolkit@tenantWithLease",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Http/PreservingResponseFactory.php::App\\Support\\Http\\PreservingResponseFactory::json",
        "fqmn": "App\\Support\\Http\\PreservingResponseFactory@json",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/WhatsAppLogger.php::App\\Support\\Logging\\WhatsAppLogger::error",
        "fqmn": "App\\Support\\Logging\\WhatsAppLogger@error",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/WhatsAppLogger.php::App\\Support\\Logging\\WhatsAppLogger::info",
        "fqmn": "App\\Support\\Logging\\WhatsAppLogger@info",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/MarketingMetrics.php::App\\Support\\MarketingMetrics::collectedThisMonth",
        "fqmn": "App\\Support\\MarketingMetrics@collectedThisMonth",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/MarketingMetrics.php::App\\Support\\MarketingMetrics::onTimePaymentsPercentage",
        "fqmn": "App\\Support\\MarketingMetrics@onTimePaymentsPercentage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/MarketingMetrics.php::App\\Support\\MarketingMetrics::propertiesManaged",
        "fqmn": "App\\Support\\MarketingMetrics@propertiesManaged",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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_DELETE",
        "surface_id": "method::app/Support/OutreachAI/AdaptiveWeightStore.php::App\\Support\\OutreachAI\\AdaptiveWeightStore::decreaseWeight",
        "fqmn": "App\\Support\\OutreachAI\\AdaptiveWeightStore@decreaseWeight",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/AdaptiveWeightStore.php::App\\Support\\OutreachAI\\AdaptiveWeightStore::get",
        "fqmn": "App\\Support\\OutreachAI\\AdaptiveWeightStore@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/OutreachAI/AdaptiveWeightStore.php::App\\Support\\OutreachAI\\AdaptiveWeightStore::increaseWeight",
        "fqmn": "App\\Support\\OutreachAI\\AdaptiveWeightStore@increaseWeight",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/AdaptiveWeightStore.php::App\\Support\\OutreachAI\\AdaptiveWeightStore::reset",
        "fqmn": "App\\Support\\OutreachAI\\AdaptiveWeightStore@reset",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/AdaptiveWeightStore.php::App\\Support\\OutreachAI\\AdaptiveWeightStore::rollbackToPrevious",
        "fqmn": "App\\Support\\OutreachAI\\AdaptiveWeightStore@rollbackToPrevious",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/AdaptiveWeightStore.php::App\\Support\\OutreachAI\\AdaptiveWeightStore::update",
        "fqmn": "App\\Support\\OutreachAI\\AdaptiveWeightStore@update",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Budget/CurrencyNormalizer.php::App\\Support\\OutreachAI\\Budget\\CurrencyNormalizer::normalize",
        "fqmn": "App\\Support\\OutreachAI\\Budget\\CurrencyNormalizer@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/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/OutreachAI/ClarityScorer.php::App\\Support\\OutreachAI\\ClarityScorer::score",
        "fqmn": "App\\Support\\OutreachAI\\ClarityScorer@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/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/OutreachAI/ContradictionDetector.php::App\\Support\\OutreachAI\\ContradictionDetector::detectContradiction",
        "fqmn": "App\\Support\\OutreachAI\\ContradictionDetector@detectContradiction",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/CounterProposalBuilder.php::App\\Support\\OutreachAI\\CounterProposalBuilder::build",
        "fqmn": "App\\Support\\OutreachAI\\CounterProposalBuilder@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/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/OutreachAI/CounterProposalBuilder.php::App\\Support\\OutreachAI\\CounterProposalBuilder::execute",
        "fqmn": "App\\Support\\OutreachAI\\CounterProposalBuilder@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/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/OutreachAI/GoalAlignmentScorer.php::App\\Support\\OutreachAI\\GoalAlignmentScorer::score",
        "fqmn": "App\\Support\\OutreachAI\\GoalAlignmentScorer@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/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/OutreachAI/Knowledge/AllowedKnowledgeRegistry.php::App\\Support\\OutreachAI\\Knowledge\\AllowedKnowledgeRegistry::getAllowedFacts",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\AllowedKnowledgeRegistry@getAllowedFacts",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Knowledge/AllowedKnowledgeRegistry.php::App\\Support\\OutreachAI\\Knowledge\\AllowedKnowledgeRegistry::getFactualBoundaries",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\AllowedKnowledgeRegistry@getFactualBoundaries",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Knowledge/AllowedKnowledgeRegistry.php::App\\Support\\OutreachAI\\Knowledge\\AllowedKnowledgeRegistry::getPricingFacts",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\AllowedKnowledgeRegistry@getPricingFacts",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Knowledge/AllowedKnowledgeRegistry.php::App\\Support\\OutreachAI\\Knowledge\\AllowedKnowledgeRegistry::getSignupLinkForLead",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\AllowedKnowledgeRegistry@getSignupLinkForLead",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Knowledge/AllowedKnowledgeRegistry.php::App\\Support\\OutreachAI\\Knowledge\\AllowedKnowledgeRegistry::validateFact",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\AllowedKnowledgeRegistry@validateFact",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Knowledge/FAQTemplateRegistry.php::App\\Support\\OutreachAI\\Knowledge\\FAQTemplateRegistry::getTemplates",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\FAQTemplateRegistry@getTemplates",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Knowledge/FAQTemplateRegistry.php::App\\Support\\OutreachAI\\Knowledge\\FAQTemplateRegistry::match",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\FAQTemplateRegistry@match",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Knowledge/ForbiddenPhrasesRegistry.php::App\\Support\\OutreachAI\\Knowledge\\ForbiddenPhrasesRegistry::getForbiddenCategories",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\ForbiddenPhrasesRegistry@getForbiddenCategories",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Knowledge/ForbiddenPhrasesRegistry.php::App\\Support\\OutreachAI\\Knowledge\\ForbiddenPhrasesRegistry::isForbidden",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\ForbiddenPhrasesRegistry@isForbidden",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Knowledge/ForbiddenPhrasesRegistry.php::App\\Support\\OutreachAI\\Knowledge\\ForbiddenPhrasesRegistry::sanitize",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\ForbiddenPhrasesRegistry@sanitize",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Knowledge/KnowledgeGuard.php::App\\Support\\OutreachAI\\Knowledge\\KnowledgeGuard::rebuildReply",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\KnowledgeGuard@rebuildReply",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Knowledge/KnowledgeGuard.php::App\\Support\\OutreachAI\\Knowledge\\KnowledgeGuard::validateReply",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\KnowledgeGuard@validateReply",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Knowledge/PlanPricingRegistry.php::App\\Support\\OutreachAI\\Knowledge\\PlanPricingRegistry::getPackageDetails",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\PlanPricingRegistry@getPackageDetails",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Knowledge/PlanPricingRegistry.php::App\\Support\\OutreachAI\\Knowledge\\PlanPricingRegistry::getPlan",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\PlanPricingRegistry@getPlan",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Knowledge/PlanPricingRegistry.php::App\\Support\\OutreachAI\\Knowledge\\PlanPricingRegistry::getPlans",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\PlanPricingRegistry@getPlans",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Knowledge/PlanPricingRegistry.php::App\\Support\\OutreachAI\\Knowledge\\PlanPricingRegistry::getPricingSummary",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\PlanPricingRegistry@getPricingSummary",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Knowledge/PlanPricingRegistry.php::App\\Support\\OutreachAI\\Knowledge\\PlanPricingRegistry::listAllFeatureNames",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\PlanPricingRegistry@listAllFeatureNames",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/MisunderstandingDetector.php::App\\Support\\OutreachAI\\MisunderstandingDetector::detect",
        "fqmn": "App\\Support\\OutreachAI\\MisunderstandingDetector@detect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/OnboardingPromptBuilder.php::App\\Support\\OutreachAI\\OnboardingPromptBuilder::build",
        "fqmn": "App\\Support\\OutreachAI\\OnboardingPromptBuilder@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/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/OutreachAI/Persona/PersonaConfig.php::App\\Support\\OutreachAI\\Persona\\PersonaConfig::getBrandTraits",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\PersonaConfig@getBrandTraits",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Persona/PersonaConfig.php::App\\Support\\OutreachAI\\Persona\\PersonaConfig::getIdentity",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\PersonaConfig@getIdentity",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Persona/PersonaConfig.php::App\\Support\\OutreachAI\\Persona\\PersonaConfig::getPersonaBlock",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\PersonaConfig@getPersonaBlock",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Persona/PersonaConfig.php::App\\Support\\OutreachAI\\Persona\\PersonaConfig::getTone",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\PersonaConfig@getTone",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Persona/PersonaConfig.php::App\\Support\\OutreachAI\\Persona\\PersonaConfig::validateTransparency",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\PersonaConfig@validateTransparency",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Persona/PersonaEnforcer.php::App\\Support\\OutreachAI\\Persona\\PersonaEnforcer::enforce",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\PersonaEnforcer@enforce",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Persona/StructureEngine.php::App\\Support\\OutreachAI\\Persona\\StructureEngine::restructure",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\StructureEngine@restructure",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Persona/StyleRules.php::App\\Support\\OutreachAI\\Persona\\StyleRules::addStructure",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\StyleRules@addStructure",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Persona/StyleRules.php::App\\Support\\OutreachAI\\Persona\\StyleRules::beMoreDirect",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\StyleRules@beMoreDirect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Persona/StyleRules.php::App\\Support\\OutreachAI\\Persona\\StyleRules::clarify",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\StyleRules@clarify",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Persona/StyleRules.php::App\\Support\\OutreachAI\\Persona\\StyleRules::enforceLength",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\StyleRules@enforceLength",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Persona/StyleRules.php::App\\Support\\OutreachAI\\Persona\\StyleRules::lengthen",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\StyleRules@lengthen",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Persona/StyleRules.php::App\\Support\\OutreachAI\\Persona\\StyleRules::removeFiller",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\StyleRules@removeFiller",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Persona/StyleRules.php::App\\Support\\OutreachAI\\Persona\\StyleRules::shorten",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\StyleRules@shorten",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Persona/StyleRules.php::App\\Support\\OutreachAI\\Persona\\StyleRules::simplify",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\StyleRules@simplify",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Persona/StyleRules.php::App\\Support\\OutreachAI\\Persona\\StyleRules::softenTone",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\StyleRules@softenTone",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Persona/ToneSelector.php::App\\Support\\OutreachAI\\Persona\\ToneSelector::getToneConstraints",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\ToneSelector@getToneConstraints",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Persona/ToneSelector.php::App\\Support\\OutreachAI\\Persona\\ToneSelector::getToneInstructions",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\ToneSelector@getToneInstructions",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Persona/ToneSelector.php::App\\Support\\OutreachAI\\Persona\\ToneSelector::selectTone",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\ToneSelector@selectTone",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/QuestionDetector.php::App\\Support\\OutreachAI\\QuestionDetector::detectQuestions",
        "fqmn": "App\\Support\\OutreachAI\\QuestionDetector@detectQuestions",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/QuestionDetector.php::App\\Support\\OutreachAI\\QuestionDetector::hasQuestion",
        "fqmn": "App\\Support\\OutreachAI\\QuestionDetector@hasQuestion",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/ReengagementMessageBuilder.php::App\\Support\\OutreachAI\\ReengagementMessageBuilder::build",
        "fqmn": "App\\Support\\OutreachAI\\ReengagementMessageBuilder@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/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/OutreachAI/Safety/AbuseDetector.php::App\\Support\\OutreachAI\\Safety\\AbuseDetector::checkConversationSafety",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\AbuseDetector@checkConversationSafety",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Safety/AbuseDetector.php::App\\Support\\OutreachAI\\Safety\\AbuseDetector::checkInbound",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\AbuseDetector@checkInbound",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Safety/AbuseDetector.php::App\\Support\\OutreachAI\\Safety\\AbuseDetector::detectSpamLikeBehavior",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\AbuseDetector@detectSpamLikeBehavior",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Safety/ComplianceRules.php::App\\Support\\OutreachAI\\Safety\\ComplianceRules::apply",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\ComplianceRules@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/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/OutreachAI/Safety/ComplianceRules.php::App\\Support\\OutreachAI\\Safety\\ComplianceRules::getForbiddenPhrases",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\ComplianceRules@getForbiddenPhrases",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Safety/ComplianceRules.php::App\\Support\\OutreachAI\\Safety\\ComplianceRules::getRequiredOptInLanguage",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\ComplianceRules@getRequiredOptInLanguage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Safety/ForbiddenContentScanner.php::App\\Support\\OutreachAI\\Safety\\ForbiddenContentScanner::rewrite",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\ForbiddenContentScanner@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/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/OutreachAI/Safety/ForbiddenContentScanner.php::App\\Support\\OutreachAI\\Safety\\ForbiddenContentScanner::validate",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\ForbiddenContentScanner@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/OutreachAI/Safety/FrequencyLimiter.php::App\\Support\\OutreachAI\\Safety\\FrequencyLimiter::checkLimits",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\FrequencyLimiter@checkLimits",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Safety/FrequencyLimiter.php::App\\Support\\OutreachAI\\Safety\\FrequencyLimiter::recordOutbound",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\FrequencyLimiter@recordOutbound",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Safety/GPTContentFilter.php::App\\Support\\OutreachAI\\Safety\\GPTContentFilter::validate",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\GPTContentFilter@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/OutreachAI/Safety/OptOutEnforcer.php::App\\Support\\OutreachAI\\Safety\\OptOutEnforcer::detect",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\OptOutEnforcer@detect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Safety/OptOutEnforcer.php::App\\Support\\OutreachAI\\Safety\\OptOutEnforcer::enforce",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\OptOutEnforcer@enforce",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Safety/OptOutEnforcer.php::App\\Support\\OutreachAI\\Safety\\OptOutEnforcer::getConfirmationMessage",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\OptOutEnforcer@getConfirmationMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Safety/SafetyRules.php::App\\Support\\OutreachAI\\Safety\\SafetyRules::validateInbound",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\SafetyRules@validateInbound",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Safety/SafetyRules.php::App\\Support\\OutreachAI\\Safety\\SafetyRules::validateOutbound",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\SafetyRules@validateOutbound",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Safety/SafetySupervisor.php::App\\Support\\OutreachAI\\Safety\\SafetySupervisor::checkOutbound",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\SafetySupervisor@checkOutbound",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Safety/SafetySupervisor.php::App\\Support\\OutreachAI\\Safety\\SafetySupervisor::processOutboundReply",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\SafetySupervisor@processOutboundReply",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/Safety/SafetySupervisor.php::App\\Support\\OutreachAI\\Safety\\SafetySupervisor::validateInboundText",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\SafetySupervisor@validateInboundText",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/SafetyCheck.php::App\\Support\\OutreachAI\\SafetyCheck::check",
        "fqmn": "App\\Support\\OutreachAI\\SafetyCheck@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/OutreachAI/TrajectoryAdjustmentDirector.php::App\\Support\\OutreachAI\\TrajectoryAdjustmentDirector::adjust",
        "fqmn": "App\\Support\\OutreachAI\\TrajectoryAdjustmentDirector@adjust",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/TrajectoryAdjustmentDirector.php::App\\Support\\OutreachAI\\TrajectoryAdjustmentDirector::getAdjustmentInstructions",
        "fqmn": "App\\Support\\OutreachAI\\TrajectoryAdjustmentDirector@getAdjustmentInstructions",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/OutreachAI/TrajectoryDriftAnalyzer.php::App\\Support\\OutreachAI\\TrajectoryDriftAnalyzer::analyze",
        "fqmn": "App\\Support\\OutreachAI\\TrajectoryDriftAnalyzer@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/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/OutreachAI/UpsellMessageBuilder.php::App\\Support\\OutreachAI\\UpsellMessageBuilder::build",
        "fqmn": "App\\Support\\OutreachAI\\UpsellMessageBuilder@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/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/OutreachAI/UpsellMessageBuilder.php::App\\Support\\OutreachAI\\UpsellMessageBuilder::validateSafety",
        "fqmn": "App\\Support\\OutreachAI\\UpsellMessageBuilder@validateSafety",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Scopes/OrganizationScope.php::App\\Support\\Scopes\\OrganizationScope::apply",
        "fqmn": "App\\Support\\Scopes\\OrganizationScope@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/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Services/CurrencyService.php::App\\Support\\Services\\CurrencyService::currencyForCountry",
        "fqmn": "App\\Support\\Services\\CurrencyService@currencyForCountry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Services/CurrencyService.php::App\\Support\\Services\\CurrencyService::decimalsFor",
        "fqmn": "App\\Support\\Services\\CurrencyService@decimalsFor",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Services/CurrencyService.php::App\\Support\\Services\\CurrencyService::fromBaseTo",
        "fqmn": "App\\Support\\Services\\CurrencyService@fromBaseTo",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Services/PhoneNumberService.php::App\\Support\\Services\\PhoneNumberService::normalizeToE164",
        "fqmn": "App\\Support\\Services\\PhoneNumberService@normalizeToE164",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Services/SystemSettings.php::App\\Support\\Services\\SystemSettings::delete",
        "fqmn": "App\\Support\\Services\\SystemSettings@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/Services/SystemSettings.php::App\\Support\\Services\\SystemSettings::get",
        "fqmn": "App\\Support\\Services\\SystemSettings@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/Services/SystemSettings.php::App\\Support\\Services\\SystemSettings::set",
        "fqmn": "App\\Support\\Services\\SystemSettings@set",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Services/UnifiedPhoneNormalizer.php::App\\Support\\Services\\UnifiedPhoneNormalizer::normalize",
        "fqmn": "App\\Support\\Services\\UnifiedPhoneNormalizer@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/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Services/UnifiedPhoneNormalizer.php::App\\Support\\Services\\UnifiedPhoneNormalizer::normalizeToE164",
        "fqmn": "App\\Support\\Services\\UnifiedPhoneNormalizer@normalizeToE164",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Subscription/Actions/StartFeaturePreviewAction.php::App\\Support\\Subscription\\Actions\\StartFeaturePreviewAction::execute",
        "fqmn": "App\\Support\\Subscription\\Actions\\StartFeaturePreviewAction@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/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Subscription/FeatureAccessService.php::App\\Support\\Subscription\\FeatureAccessService::determineAccess",
        "fqmn": "App\\Support\\Subscription\\FeatureAccessService@determineAccess",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Subscription/FeatureAccessService.php::App\\Support\\Subscription\\FeatureAccessService::enforce",
        "fqmn": "App\\Support\\Subscription\\FeatureAccessService@enforce",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Subscription/FeatureAccessService.php::App\\Support\\Subscription\\FeatureAccessService::getFeatureDisplayName",
        "fqmn": "App\\Support\\Subscription\\FeatureAccessService@getFeatureDisplayName",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Subscription/FeatureAccessService.php::App\\Support\\Subscription\\FeatureAccessService::resolveFeatureKey",
        "fqmn": "App\\Support\\Subscription\\FeatureAccessService@resolveFeatureKey",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Subscription/FeatureAccessService.php::App\\Support\\Subscription\\FeatureAccessService::startPreview",
        "fqmn": "App\\Support\\Subscription\\FeatureAccessService@startPreview",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Subscription/GateResult.php::App\\Support\\Subscription\\GateResult::__construct",
        "fqmn": "App\\Support\\Subscription\\GateResult@__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/Subscription/SubscriptionGate.php::App\\Support\\Subscription\\SubscriptionGate::__construct",
        "fqmn": "App\\Support\\Subscription\\SubscriptionGate@__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/Subscription/SubscriptionGate.php::App\\Support\\Subscription\\SubscriptionGate::check",
        "fqmn": "App\\Support\\Subscription\\SubscriptionGate@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/Subscription/SubscriptionGate.php::App\\Support\\Subscription\\SubscriptionGate::enforce",
        "fqmn": "App\\Support\\Subscription\\SubscriptionGate@enforce",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Testing/LogFake.php::App\\Support\\Testing\\LogFake::__call",
        "fqmn": "App\\Support\\Testing\\LogFake@__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/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Testing/LogFake.php::App\\Support\\Testing\\LogFake::alert",
        "fqmn": "App\\Support\\Testing\\LogFake@alert",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Testing/LogFake.php::App\\Support\\Testing\\LogFake::assertLogged",
        "fqmn": "App\\Support\\Testing\\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/Testing/LogFake.php::App\\Support\\Testing\\LogFake::channel",
        "fqmn": "App\\Support\\Testing\\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/Testing/LogFake.php::App\\Support\\Testing\\LogFake::critical",
        "fqmn": "App\\Support\\Testing\\LogFake@critical",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Testing/LogFake.php::App\\Support\\Testing\\LogFake::debug",
        "fqmn": "App\\Support\\Testing\\LogFake@debug",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Testing/LogFake.php::App\\Support\\Testing\\LogFake::driver",
        "fqmn": "App\\Support\\Testing\\LogFake@driver",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Testing/LogFake.php::App\\Support\\Testing\\LogFake::emergency",
        "fqmn": "App\\Support\\Testing\\LogFake@emergency",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Testing/LogFake.php::App\\Support\\Testing\\LogFake::error",
        "fqmn": "App\\Support\\Testing\\LogFake@error",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Testing/LogFake.php::App\\Support\\Testing\\LogFake::info",
        "fqmn": "App\\Support\\Testing\\LogFake@info",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Testing/LogFake.php::App\\Support\\Testing\\LogFake::log",
        "fqmn": "App\\Support\\Testing\\LogFake@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/Testing/LogFake.php::App\\Support\\Testing\\LogFake::notice",
        "fqmn": "App\\Support\\Testing\\LogFake@notice",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Testing/LogFake.php::App\\Support\\Testing\\LogFake::stack",
        "fqmn": "App\\Support\\Testing\\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/Testing/LogFake.php::App\\Support\\Testing\\LogFake::warning",
        "fqmn": "App\\Support\\Testing\\LogFake@warning",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_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/Testing/TestDetector.php::App\\Support\\Testing\\TestDetector::isTested",
        "fqmn": "App\\Support\\Testing\\TestDetector@isTested",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Valu",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/ValueObjects/Address.php::App\\ValueObjects\\Address::fromArray",
        "fqmn": "App\\ValueObjects\\Address@fromArray",
        "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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "fqmn": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::get::/files/stats::App\\Api\\Controllers\\FileController::stats",
        "fqmn": "App\\Api\\Controllers\\FileController@stats",
        "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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::get::/health::closure",
        "fqmn": "route::routes/api.php::get::/health::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::get::/internal/metrics::closure",
        "fqmn": "route::routes/api.php::get::/internal/metrics::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::get::/invitations::App\\Http\\Controllers\\InvitationController::index",
        "fqmn": "App\\Http\\Controllers\\InvitationController@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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::get::/landlord/dashboard::App\\Api\\Controllers\\LandlordDashboardController::dashboard",
        "fqmn": "App\\Api\\Controllers\\LandlordDashboardController@dashboard",
        "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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::get::/landlords::App\\Api\\Controllers\\LandlordController::index",
        "fqmn": "App\\Api\\Controllers\\LandlordController@index",
        "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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::get::/leases::App\\Api\\Controllers\\LeaseController::index",
        "fqmn": "App\\Api\\Controllers\\LeaseController@index",
        "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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::get::/maintenance/digest-preferences::App\\Http\\Controllers\\Api\\MaintenanceDigestPreferencesController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceDigestPreferencesController@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_route::routes/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::get::/maintenance/metrics::App\\Http\\Controllers\\Api\\MaintenanceMetricsController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceMetricsController@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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::get::/maintenance/slas::App\\Http\\Controllers\\Api\\MaintenanceSlaController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceSlaController@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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::get::/maintenance/tickets::App\\Http\\Controllers\\Api\\MaintenanceTicketController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::get::/org/deductions::App\\Api\\Controllers\\OrgDeductionSettingsController::show",
        "fqmn": "App\\Api\\Controllers\\OrgDeductionSettingsController@show",
        "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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::get::/payment-proofs::App\\Api\\Controllers\\PaymentProofController::index",
        "fqmn": "App\\Api\\Controllers\\PaymentProofController@index",
        "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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::get::/payments::App\\Api\\Controllers\\PaymentController::index",
        "fqmn": "App\\Api\\Controllers\\PaymentController@index",
        "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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::get::/predictions/conversation/{conversation}/latest::App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController::getLatest",
        "fqmn": "App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController@getLatest",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "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::/properties::App\\Api\\Controllers\\PropertyController::index",
        "fqmn": "App\\Api\\Controllers\\PropertyController@index",
        "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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::get::/reminders::App\\Api\\Controllers\\ReminderController::index",
        "fqmn": "App\\Api\\Controllers\\ReminderController@index",
        "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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::get::/rent-cycles::App\\Api\\Controllers\\RentCycleController::index",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@index",
        "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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::get::/reports/organization-dashboard::App\\Api\\Controllers\\ReportController::organizationDashboard",
        "fqmn": "App\\Api\\Controllers\\ReportController@organizationDashboard",
        "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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::get::/subscriptions/current::App\\Api\\Controllers\\SubscriptionController::current",
        "fqmn": "App\\Api\\Controllers\\SubscriptionController@current",
        "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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::get::/tenant-dashboard::App\\Api\\Controllers\\TenantDashboardController::dashboard",
        "fqmn": "App\\Api\\Controllers\\TenantDashboardController@dashboard",
        "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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::get::/tenant/dashboard::App\\Api\\Controllers\\TenantDashboardController::dashboard",
        "fqmn": "App\\Api\\Controllers\\TenantDashboardController@dashboard",
        "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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::get::/tenants::App\\Api\\Controllers\\TenantController::index",
        "fqmn": "App\\Api\\Controllers\\TenantController@index",
        "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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::get::/testing/outreach-ai/pricing/suggest-plan::App\\Http\\Controllers\\Testing\\OutreachPricingSuggestController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\OutreachPricingSuggestController@__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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::get::/testing/sate/dashboard/performance-indicators::App\\Http\\Controllers\\Testing\\DashboardPerformanceIndicatorsController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\DashboardPerformanceIndicatorsController@__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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::get::/testing/sate/dashboard/quick-stats::App\\Http\\Controllers\\Testing\\DashboardQuickStatsController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\DashboardQuickStatsController@__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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::get::/testing/sate/landlord/overview-stats::App\\Http\\Controllers\\Testing\\LandlordOverviewStatsController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\LandlordOverviewStatsController@__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/ap",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "route::routes/api.php::get::/testing/sate/outreach-ai/knowledge/forbidden-phrases/categories::App\\Support\\OutreachAI\\Knowledge\\ForbiddenPhrasesRegistry::__invoke",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\ForbiddenPhrasesRegistry@__invoke",
        "bucket": "DELETE",
        "signals": [
          "zero_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_DELETE",
        "surface_id": "route::routes/api.php::get::/testing/sate/outreach-ai/persona/block::App\\Support\\OutreachAI\\Persona\\PersonaConfig::__invoke",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\PersonaConfig@__invoke",
        "bucket": "DELETE",
        "signals": [
          "zero_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_DELETE",
        "surface_id": "route::routes/api.php::get::/testing/sate/outreach-ai/persona/brand-traits::App\\Support\\OutreachAI\\Persona\\PersonaConfig::__invoke",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\PersonaConfig@__invoke",
        "bucket": "DELETE",
        "signals": [
          "zero_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_DELETE",
        "surface_id": "route::routes/api.php::get::/testing/sate/outreach-ai/persona/identity::App\\Support\\OutreachAI\\Persona\\PersonaConfig::__invoke",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\PersonaConfig@__invoke",
        "bucket": "DELETE",
        "signals": [
          "zero_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::/tickets/approve/{token}::closure",
        "fqmn": "route::routes/api.php::get::/tickets/approve/{token}::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::get::/transfers/pending::App\\Api\\Controllers\\TransferController::pending",
        "fqmn": "App\\Api\\Controllers\\TransferController@pending",
        "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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::get::/units::App\\Api\\Controllers\\UnitController::index",
        "fqmn": "App\\Api\\Controllers\\UnitController@index",
        "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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::get::/whatsapp/agencies/profile::App\\Http\\Controllers\\AgencyWhatsAppProfileController::show",
        "fqmn": "App\\Http\\Controllers\\AgencyWhatsAppProfileController@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_route::routes/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::get::/whatsapp/profile::App\\Http\\Controllers\\AgencyWhatsAppProfileController::show",
        "fqmn": "App\\Http\\Controllers\\AgencyWhatsAppProfileController@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_route::routes/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/__sate/outreach-ai/drift/analyze::closure",
        "fqmn": "route::routes/api.php::post::/__sate/outreach-ai/drift/analyze::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/__sate/outreach-ai/misunderstanding-detect::closure",
        "fqmn": "route::routes/api.php::post::/__sate/outreach-ai/misunderstanding-detect::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/__sate/outreach-ai/optout/detect::closure",
        "fqmn": "route::routes/api.php::post::/__sate/outreach-ai/optout/detect::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/__sate/outreach-ai/trajectory/adjust::closure",
        "fqmn": "route::routes/api.php::post::/__sate/outreach-ai/trajectory/adjust::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/__tests/outreach-ai/compliance/check::closure",
        "fqmn": "route::routes/api.php::post::/__tests/outreach-ai/compliance/check::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/__tests/outreach-ai/knowledge/validate::closure",
        "fqmn": "route::routes/api.php::post::/__tests/outreach-ai/knowledge/validate::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/bookings::App\\Api\\Controllers\\BookingController::store",
        "fqmn": "App\\Api\\Controllers\\BookingController@store",
        "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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/gateway/register::App\\Api\\Controllers\\GatewayController::register",
        "fqmn": "App\\Api\\Controllers\\GatewayController@register",
        "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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/inbound::App\\Http\\Controllers\\Webhooks\\TwilioWebhookController::inbound",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\TwilioWebhookController@inbound",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "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::post::/login::App\\Http\\Controllers\\Auth\\AuthController::login",
        "fqmn": "App\\Http\\Controllers\\Auth\\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_route::routes/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/maintenance/tickets/{ticket}/approve::App\\Http\\Controllers\\Api\\MaintenanceTicketController::approve",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@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_route::routes/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/outreach-ai/conversations/{conversation}/inbound::App\\Http\\Controllers\\Testing\\OutreachConversationInboundController::store",
        "fqmn": "App\\Http\\Controllers\\Testing\\OutreachConversationInboundController@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_route::routes/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/outreach-ai/knowledge/validate-reply::App\\Http\\Controllers\\Testing\\OutreachKnowledgeValidateController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\OutreachKnowledgeValidateController@__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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/auth/filament/agency-register-batch::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/auth/filament/agency-register-batch::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/auth/filament/agency-register::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/auth/filament/agency-register::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/credit-transactions/create::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/credit-transactions/create::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/dunning/evaluate::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/dunning/evaluate::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/dunning/policy-resolve::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/dunning/policy-resolve::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/dunning/run-attempt::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/dunning/run-attempt::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/dunning/start::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/dunning/start::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/invoices/generate-credit-topup::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/invoices/generate-credit-topup::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/invoices/generate-message-package::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/invoices/generate-message-package::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/invoices/generate-subscription::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/invoices/generate-subscription::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/subscription-event::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscription-event::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/subscription/add-credits::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscription/add-credits::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/subscription/create-soft-deleted::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscription/create-soft-deleted::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/subscription/suspend::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscription/suspend::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/subscriptions/auto-charge/run::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscriptions/auto-charge/run::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/subscriptions/convert-trial-to-paid::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscriptions/convert-trial-to-paid::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/subscriptions/evaluate-post-dunning-failure::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscriptions/evaluate-post-dunning-failure::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/subscriptions/move-to-active::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscriptions/move-to-active::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/subscriptions/transition::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscriptions/transition::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/tap-settlements/auto-allocate::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/tap-settlements/auto-allocate::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/tap-settlements/match::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/tap-settlements/match::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/tap-webhook/process-twice::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/tap-webhook/process-twice::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/tap-webhook/process::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/tap-webhook/process::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/ap",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/zoho/analytics/clearance-status-stats::App\\Services\\Billing\\ZohoBillingAnalyticsService::__invoke",
        "fqmn": "App\\Services\\Billing\\ZohoBillingAnalyticsService@__invoke",
        "bucket": "DELETE",
        "signals": [
          "zero_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::post::/testing/sate/billing/zoho/analytics/invoice-anomalies::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/zoho/analytics/invoice-anomalies::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/zoho/analytics/monthly-invoice-stats::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/zoho/analytics/monthly-invoice-stats::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/zoho/analytics/vat-exposure::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/zoho/analytics/vat-exposure::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/zoho/sync-invoice::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/zoho/sync-invoice::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/zoho/sync-tap-settlement::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/zoho/sync-tap-settlement::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/discount-code-usages/anonymous/record::App\\Http\\Controllers\\Testing\\RecordAnonymousDiscountCodeUsageController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\RecordAnonymousDiscountCodeUsageController@__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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/discount-code-usages/subscription/record::App\\Http\\Controllers\\Testing\\RecordSubscriptionDiscountCodeUsageController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\RecordSubscriptionDiscountCodeUsageController@__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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/dunning/auto-charge/run::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/dunning/auto-charge/run::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/dunning/resolve-policy::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/dunning/resolve-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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/dunning/run-attempt::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/dunning/run-attempt::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/dunning/start::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/dunning/start::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/dunning/transition-active::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/dunning/transition-active::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/email-template/apply-placeholders::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/email-template/apply-placeholders::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/email-template/get-localized-content::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/email-template/get-localized-content::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/email-template/get-template-for::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/email-template/get-template-for::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/email-template/is-enabled-for-organization::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/email-template/is-enabled-for-organization::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/files/security/scan-for-virus::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/files/security/scan-for-virus::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/files/security/validate::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/files/security/validate::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/maintenance/landlord-approval-request/notify::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/maintenance/landlord-approval-request/notify::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/maintenance/landlord-approval-request/twilio::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/maintenance/landlord-approval-request/twilio::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/maintenance/tenant-ticket-confirmation/notify::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/maintenance/tenant-ticket-confirmation/notify::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/maintenance/tenant-ticket-confirmation/twilio::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/maintenance/tenant-ticket-confirmation/twilio::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/maintenance/ticket-completed/notify::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/maintenance/ticket-completed/notify::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/maintenance/worker-assigned/notify::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/maintenance/worker-assigned/notify::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/notifications/over-limit::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/notifications/over-limit::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/notifications/payment-failed::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/notifications/payment-failed::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/notifications/payment-proof-submitted::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/notifications/payment-proof-submitted::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/notifications/retry-scheduled::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/notifications/retry-scheduled::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/notifications/security-alert::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/notifications/security-alert::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/ai/generate-reply::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/ai/generate-reply::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/churn-prevention/run::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/churn-prevention/run::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/emotion/adjust-goal::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/emotion/adjust-goal::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/emotion/update::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/emotion/update::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/generate-reply-with-weights::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/generate-reply-with-weights::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/generate-reply::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/generate-reply::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/goal/derive::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/goal/derive::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/knowledge/forbidden-phrases/check::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/knowledge/forbidden-phrases/check::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/knowledge/forbidden-phrases/sanitize::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/knowledge/forbidden-phrases/sanitize::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/optimization/persist-adjustments::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/optimization/persist-adjustments::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/persona/enforce::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/persona/enforce::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/persona/structure/restructure::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/persona/structure/restructure::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/persona/tone-select::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/persona/tone-select::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/persona/validate-transparency::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/persona/validate-transparency::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/prompt/sentiment-modifier::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/prompt/sentiment-modifier::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/question/detect-all::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/question/detect-all::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/question/detect::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/question/detect::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/reengagement/build-message::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/reengagement/build-message::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/reengagement/run::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/reengagement/run::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/reply-evaluate::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/reply-evaluate::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/revenue/discount-decide::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/revenue/discount-decide::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/revenue/process-inbound::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/revenue/process-inbound::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/safety/abuse/check-inbound::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/safety/abuse/check-inbound::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/safety/abuse/detect-spam-like::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/safety/abuse/detect-spam-like::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/safety/process-outbound::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/safety/process-outbound::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/safety/validate-inbound::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/safety/validate-inbound::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/sales-acceleration/accelerate::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sales-acceleration/accelerate::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/generate-trial-sequence::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/generate-trial-sequence::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/maybe-inject-sales-prompt::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/maybe-inject-sales-prompt::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/update-stage::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/update-stage::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/send-ai-whatsapp-reply/run::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/send-ai-whatsapp-reply/run::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/sentiment/analyze-and-audit::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sentiment/analyze-and-audit::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/sentiment/analyze::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sentiment/analyze::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/sequence/process-command::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sequence/process-command::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/sequence/run-step::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sequence/run-step::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/sequence/run-steps::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sequence/run-steps::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/subscription-nudge/run::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/subscription-nudge/run::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/trial/extend::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/trial/extend::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach/followups/adjust-timing-by-temperature::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach/followups/adjust-timing-by-temperature::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach/followups/convert-interval-to-timestamp::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach/followups/convert-interval-to-timestamp::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach/followups/schedule::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach/followups/schedule::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach/sync-conversation-costs/run::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach/sync-conversation-costs/run::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/reminders/cancel-for-rent-cycle::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/reminders/cancel-for-rent-cycle::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/reminders/templates/review::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/reminders/templates/review::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/subscription/feature-access/determine-access::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/subscription/feature-access/determine-access::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/subscription/feature-access/enforce::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/subscription/feature-access/enforce::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/subscription/feature-access/feature-display-name::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/subscription/feature-access/feature-display-name::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/subscription/feature-access/resolve-feature-key::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/subscription/feature-access/resolve-feature-key::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/tap/create-subscription-charge::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/tap/create-subscription-charge::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/tap/webhook/process-attempt::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/tap/webhook/process-attempt::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/whatsapp/dialog360/inbound::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/whatsapp/dialog360/inbound::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/whatsapp/session-notes/create::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/whatsapp/session-notes/create::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/whatsapp/sessions/attempt-create::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/whatsapp/sessions/attempt-create::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/whatsapp/sessions/create::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/whatsapp/sessions/create::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/whatsapp/webhook/process-status::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/whatsapp/webhook/process-status::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/testing/sate/zoho/webhook/process::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/zoho/webhook/process::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/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/verify/start::App\\Http\\Controllers\\VerificationController::start",
        "fqmn": "App\\Http\\Controllers\\VerificationController@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_route::routes/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/webhooks/360dialog/inbound::App\\Http\\Controllers\\Webhooks\\Dialog360WebhookController::handle",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\Dialog360WebhookController@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_route::routes/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/webhooks/360dialog/status::App\\Http\\Controllers\\Webhooks\\Dialog360StatusWebhookController::handle",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\Dialog360StatusWebhookController@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_route::routes/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/webhooks/tap::App\\Http\\Controllers\\Webhooks\\TapWebhookController::handle",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\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_route::routes/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::post::/webhooks/zepto/bounce::App\\Http\\Controllers\\Webhooks\\ZeptoWebhookController::handleBounce",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\ZeptoWebhookController@handleBounce",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "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::post::/whatsapp/agencies/onboarding/start::App\\Http\\Controllers\\OrgWhatsAppOnboardingController::start",
        "fqmn": "App\\Http\\Controllers\\OrgWhatsAppOnboardingController@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_route::routes/mo",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/mobile.php::post::/forgot-password::App\\Http\\Controllers\\Api\\Mobile\\MobileForgotPasswordController::sendResetLink",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileForgotPasswordController@sendResetLink",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "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/mo",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/mobile.php::post::/login::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_route::routes/mo",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/mobile.php::post::/logout::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_route::routes/ou",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/outreach.php::any::/testing/outreach-ai/{path}::closure",
        "fqmn": "route::routes/outreach.php::any::/testing/outreach-ai/{path}::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/ou",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/outreach.php::any::/testing/sate/{path}::closure",
        "fqmn": "route::routes/outreach.php::any::/testing/sate/{path}::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/ou",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/outreach.php::post::/outreach/webhook/whatsapp::App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController::handle",
        "fqmn": "App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController@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_route::routes/ou",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/outreach.php::post::/outreach/webhook/whatsapp/test::closure",
        "fqmn": "route::routes/outreach.php::post::/outreach/webhook/whatsapp/test::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/ou",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/outreach.php::post::/whatsapp::App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController::handle",
        "fqmn": "App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController@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_route::routes/sa",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/sandbox/360dialog.php::post::/messages::App\\Sandbox\\Dialog360\\Controllers\\MessageController::store",
        "fqmn": "App\\Sandbox\\Dialog360\\Controllers\\MessageController@store",
        "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::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_route::routes/we",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/web.php::get::/agencies::closure",
        "fqmn": "route::routes/web.php::get::/agencies::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::App\\Http\\Controllers\\AppController::index",
        "fqmn": "App\\Http\\Controllers\\AppController@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::/collection::closure",
        "fqmn": "route::routes/web.php::get::/collection::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::/email/verify/{id}/{hash}::App\\Http\\Controllers\\Auth\\VerificationController::verify",
        "fqmn": "App\\Http\\Controllers\\Auth\\VerificationController@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_route::routes/we",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/web.php::get::/email/verify/resend::App\\Http\\Controllers\\Auth\\VerificationController::showResendForm",
        "fqmn": "App\\Http\\Controllers\\Auth\\VerificationController@showResendForm",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "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::/favicon.ico::closure",
        "fqmn": "route::routes/web.php::get::/favicon.ico::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::/healthz::closure",
        "fqmn": "route::routes/web.php::get::/healthz::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::/images/favicon.ico::closure",
        "fqmn": "route::routes/web.php::get::/images/favicon.ico::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::/invoicing::closure",
        "fqmn": "route::routes/web.php::get::/invoicing::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::/landlords::closure",
        "fqmn": "route::routes/web.php::get::/landlords::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::/locale/{lang}::App\\Http\\Controllers\\LocaleController::switch",
        "fqmn": "App\\Http\\Controllers\\LocaleController@switch",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "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::/log::closure",
        "fqmn": "route::routes/web.php::get::/log::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::/maintenance::closure",
        "fqmn": "route::routes/web.php::get::/maintenance::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::/manifest.json::closure",
        "fqmn": "route::routes/web.php::get::/manifest.json::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::/payments::closure",
        "fqmn": "route::routes/web.php::get::/payments::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::/robots.txt::closure",
        "fqmn": "route::routes/web.php::get::/robots.txt::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::/service-worker.js::closure",
        "fqmn": "route::routes/web.php::get::/service-worker.js::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::/test/ipinfo::closure",
        "fqmn": "route::routes/web.php::get::/test/ipinfo::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::/whatsapp::closure",
        "fqmn": "route::routes/web.php::get::/whatsapp::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::/email/verify/resend::App\\Http\\Controllers\\Auth\\VerificationController::resend",
        "fqmn": "App\\Http\\Controllers\\Auth\\VerificationController@resend",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "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::/leads::App\\Http\\Controllers\\LeadController::store",
        "fqmn": "App\\Http\\Controllers\\LeadController@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_route::routes/we",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/web.php::post::/locale::App\\Http\\Controllers\\LocaleController::post",
        "fqmn": "App\\Http\\Controllers\\LocaleController@post",
        "bucket": "DEFER",
        "signals": [
          "zero_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_352875be",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_001",
        "fqmn": "App\\Actions\\EmailTemplates\\RenderEmailTemplateAction@__construct",
        "canonical": "App\\Actions\\EmailTemplates\\IsEmailTemplateEnabledForOrganizationAction@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Actions\\EmailTemplates\\IsEmailTemplateEnabledForOrganizationAction@__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_53a389fc",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_001",
        "fqmn": "App\\Actions\\EmailTemplates\\SendEmailTemplateAction@__construct",
        "canonical": "App\\Actions\\EmailTemplates\\IsEmailTemplateEnabledForOrganizationAction@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Actions\\EmailTemplates\\IsEmailTemplateEnabledForOrganizationAction@__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_7c2f889b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_001",
        "fqmn": "App\\Actions\\SendEmailTemplateAction@__construct",
        "canonical": "App\\Actions\\EmailTemplates\\IsEmailTemplateEnabledForOrganizationAction@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Actions\\EmailTemplates\\IsEmailTemplateEnabledForOrganizationAction@__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_31cea76a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_002",
        "fqmn": "App\\Actions\\SendEmailTemplateAction@execute",
        "canonical": "App\\Actions\\EmailTemplates\\SendEmailTemplateAction@execute",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Actions\\EmailTemplates\\SendEmailTemplateAction@execute. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_4724c799",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_003",
        "fqmn": "App\\Actions\\EmailTemplates\\SendEmailTemplateToUsersUsingTheirLocaleAction@__construct",
        "canonical": "App\\Actions\\EmailTemplates\\SendEmailTemplateToManyRecipientsAction@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Actions\\EmailTemplates\\SendEmailTemplateToManyRecipientsAction@__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_bae0f895",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_004",
        "fqmn": "App\\Actions\\OutreachAI\\ComputeAttributionAction@execute",
        "canonical": "App\\Actions\\OutreachAI\\AssignClusterAction@execute",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Actions\\OutreachAI\\AssignClusterAction@execute. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_4a02d197",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_004",
        "fqmn": "App\\Actions\\OutreachAI\\OutputInsightsAction@execute",
        "canonical": "App\\Actions\\OutreachAI\\AssignClusterAction@execute",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Actions\\OutreachAI\\AssignClusterAction@execute. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_65001aab",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_005",
        "fqmn": "App\\Actions\\OutreachAI\\SalesAcceleration\\RunSalesAccelerationOutcomeAction@execute",
        "canonical": "App\\Actions\\OutreachAI\\SalesAcceleration\\RunQualificationOutcomeAction@execute",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Actions\\OutreachAI\\SalesAcceleration\\RunQualificationOutcomeAction@execute. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_afaf7262",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_005",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\IntentToBuyDetector@detect",
        "canonical": "App\\Actions\\OutreachAI\\SalesAcceleration\\RunQualificationOutcomeAction@execute",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Actions\\OutreachAI\\SalesAcceleration\\RunQualificationOutcomeAction@execute. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_5009cc37",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_005",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PainPointExtractor@extract",
        "canonical": "App\\Actions\\OutreachAI\\SalesAcceleration\\RunQualificationOutcomeAction@execute",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Actions\\OutreachAI\\SalesAcceleration\\RunQualificationOutcomeAction@execute. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_67c22faf",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_005",
        "fqmn": "App\\Services\\OutreachAI\\SalesAcceleration\\SalesIntentDetector@detect",
        "canonical": "App\\Actions\\OutreachAI\\SalesAcceleration\\RunQualificationOutcomeAction@execute",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Actions\\OutreachAI\\SalesAcceleration\\RunQualificationOutcomeAction@execute. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9f9fe08f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_005",
        "fqmn": "App\\Services\\OutreachAI\\UX\\MessageClarityService@analyzeClarity",
        "canonical": "App\\Actions\\OutreachAI\\SalesAcceleration\\RunQualificationOutcomeAction@execute",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Actions\\OutreachAI\\SalesAcceleration\\RunQualificationOutcomeAction@execute. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_77786372",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_006",
        "fqmn": "App\\Actions\\Payments\\RecordPaymentAction@__construct",
        "canonical": "App\\Actions\\Payments\\CreatePaymentDeductionAction@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Actions\\Payments\\CreatePaymentDeductionAction@__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_f85e3ec7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_006",
        "fqmn": "App\\Domains\\Payments\\Actions\\RecordPaymentAction@__construct",
        "canonical": "App\\Actions\\Payments\\CreatePaymentDeductionAction@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Actions\\Payments\\CreatePaymentDeductionAction@__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_7009886f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_007",
        "fqmn": "App\\Domains\\Payments\\Actions\\CreateTransactionAction@__construct",
        "canonical": "App\\Actions\\Payments\\FinalizeTransactionAction@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Actions\\Payments\\FinalizeTransactionAction@__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_c0354709",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_007",
        "fqmn": "App\\Domains\\Payments\\Actions\\FinalizeTransactionAction@__construct",
        "canonical": "App\\Actions\\Payments\\FinalizeTransactionAction@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Actions\\Payments\\FinalizeTransactionAction@__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_304d45fc",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_008",
        "fqmn": "App\\Actions\\Zoho\\SyncZohoInvoiceAction@__construct",
        "canonical": "App\\Actions\\Zoho\\SyncZohoCustomerAction@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Actions\\Zoho\\SyncZohoCustomerAction@__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_d78cd81d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_009",
        "fqmn": "App\\Services\\OutreachAI\\SubscriptionService@getEffectiveLimits",
        "canonical": "App\\Actions\\Zoho\\SyncZohoCustomerAction@execute",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Actions\\Zoho\\SyncZohoCustomerAction@execute. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d6391d73",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_010",
        "fqmn": "App\\Services\\OutreachAI\\PricingPrimitives@getAvailablePrimitives",
        "canonical": "App\\AIBr\\Domain\\Knowledge\\RetrievalConstraintService@applyConstraints",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\AIBr\\Domain\\Knowledge\\RetrievalConstraintService@applyConstraints. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_fc0073de",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_011",
        "fqmn": "App\\Services\\OutreachAI\\LeadPriorityService@calculateScore",
        "canonical": "App\\AIBr\\Domain\\Scoring\\LeadPriorityService@calculateScore",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\AIBr\\Domain\\Scoring\\LeadPriorityService@calculateScore. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_af483e6f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\AIBr\\Support\\TextFilters@sanitize",
        "canonical": "App\\AIBr\\Support\\Helpers@normalizeText",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\AIBr\\Support\\Helpers@normalizeText. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_2d89b06a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\ForbiddenPhrasesRegistry@sanitize",
        "canonical": "App\\AIBr\\Support\\Helpers@normalizeText",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\AIBr\\Support\\Helpers@normalizeText. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0be0265b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\StyleRules@addStructure",
        "canonical": "App\\AIBr\\Support\\Helpers@normalizeText",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\AIBr\\Support\\Helpers@normalizeText. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9dc80a66",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\StyleRules@beMoreDirect",
        "canonical": "App\\AIBr\\Support\\Helpers@normalizeText",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\AIBr\\Support\\Helpers@normalizeText. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_6b77d3b3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\StyleRules@clarify",
        "canonical": "App\\AIBr\\Support\\Helpers@normalizeText",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\AIBr\\Support\\Helpers@normalizeText. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_71a899b8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\StyleRules@lengthen",
        "canonical": "App\\AIBr\\Support\\Helpers@normalizeText",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\AIBr\\Support\\Helpers@normalizeText. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d11e82fd",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\StyleRules@removeFiller",
        "canonical": "App\\AIBr\\Support\\Helpers@normalizeText",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\AIBr\\Support\\Helpers@normalizeText. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0c65d49c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\StyleRules@simplify",
        "canonical": "App\\AIBr\\Support\\Helpers@normalizeText",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\AIBr\\Support\\Helpers@normalizeText. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_c89b489c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\StyleRules@softenTone",
        "canonical": "App\\AIBr\\Support\\Helpers@normalizeText",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\AIBr\\Support\\Helpers@normalizeText. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_c9a46d47",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_013",
        "fqmn": "App\\Api\\Controllers\\BookingController@convert",
        "canonical": "App\\Api\\Controllers\\BookingController@cancel",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\BookingController@cancel. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_f59738f8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_014",
        "fqmn": "App\\Api\\Controllers\\BookingController@store",
        "canonical": "App\\Api\\Controllers\\BookingController@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\BookingController@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_d97600ae",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_014",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@store",
        "canonical": "App\\Api\\Controllers\\BookingController@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\BookingController@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_0e1b2d55",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_015",
        "fqmn": "App\\Api\\Controllers\\LandlordController@index",
        "canonical": "App\\Api\\Controllers\\FileController@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\FileController@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_0e1b2d55",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_015",
        "fqmn": "App\\Api\\Controllers\\LandlordController@index",
        "canonical": "App\\Api\\Controllers\\FileController@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\FileController@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_c283dec2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_015",
        "fqmn": "App\\Api\\Controllers\\LandlordDashboardController@leases",
        "canonical": "App\\Api\\Controllers\\FileController@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\FileController@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_d3b78e98",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_015",
        "fqmn": "App\\Api\\Controllers\\LandlordDashboardController@properties",
        "canonical": "App\\Api\\Controllers\\FileController@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\FileController@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_baa1bed2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_015",
        "fqmn": "App\\Api\\Controllers\\LeaseController@expiringSoon",
        "canonical": "App\\Api\\Controllers\\FileController@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\FileController@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_57b8098b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_015",
        "fqmn": "App\\Api\\Controllers\\LeaseController@index",
        "canonical": "App\\Api\\Controllers\\FileController@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\FileController@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_57b8098b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_015",
        "fqmn": "App\\Api\\Controllers\\LeaseController@index",
        "canonical": "App\\Api\\Controllers\\FileController@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\FileController@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_66343fd3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_015",
        "fqmn": "App\\Api\\Controllers\\PaymentController@index",
        "canonical": "App\\Api\\Controllers\\FileController@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\FileController@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_66343fd3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_015",
        "fqmn": "App\\Api\\Controllers\\PaymentController@index",
        "canonical": "App\\Api\\Controllers\\FileController@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\FileController@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_5f5e8ab6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_015",
        "fqmn": "App\\Api\\Controllers\\PaymentController@recent",
        "canonical": "App\\Api\\Controllers\\FileController@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\FileController@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_03dd5776",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_015",
        "fqmn": "App\\Api\\Controllers\\PropertyController@index",
        "canonical": "App\\Api\\Controllers\\FileController@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\FileController@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_03dd5776",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_015",
        "fqmn": "App\\Api\\Controllers\\PropertyController@index",
        "canonical": "App\\Api\\Controllers\\FileController@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\FileController@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_6e533a51",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_015",
        "fqmn": "App\\Api\\Controllers\\ReminderController@index",
        "canonical": "App\\Api\\Controllers\\FileController@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\FileController@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_6e533a51",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_015",
        "fqmn": "App\\Api\\Controllers\\ReminderController@index",
        "canonical": "App\\Api\\Controllers\\FileController@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\FileController@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_9f442988",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_015",
        "fqmn": "App\\Api\\Controllers\\ReminderController@recent",
        "canonical": "App\\Api\\Controllers\\FileController@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\FileController@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_e925d88f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_015",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@dueSoon",
        "canonical": "App\\Api\\Controllers\\FileController@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\FileController@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_1305f977",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_015",
        "fqmn": "App\\Api\\Controllers\\TenantController@index",
        "canonical": "App\\Api\\Controllers\\FileController@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\FileController@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_1305f977",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_015",
        "fqmn": "App\\Api\\Controllers\\TenantController@index",
        "canonical": "App\\Api\\Controllers\\FileController@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\FileController@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_40c86ef9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_015",
        "fqmn": "App\\Api\\Controllers\\UnitController@index",
        "canonical": "App\\Api\\Controllers\\FileController@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\FileController@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_40c86ef9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_015",
        "fqmn": "App\\Api\\Controllers\\UnitController@index",
        "canonical": "App\\Api\\Controllers\\FileController@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\FileController@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_04b54566",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_015",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@index",
        "canonical": "App\\Api\\Controllers\\FileController@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\FileController@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_04b54566",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_015",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@index",
        "canonical": "App\\Api\\Controllers\\FileController@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\FileController@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_978f958d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_016",
        "fqmn": "App\\Api\\Controllers\\FileController@stats",
        "canonical": "App\\Api\\Controllers\\FileController@stats",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\FileController@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_897e7b57",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_016",
        "fqmn": "App\\Api\\Controllers\\ReportController@occupancyTrends",
        "canonical": "App\\Api\\Controllers\\FileController@stats",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\FileController@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_ae920e58",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_016",
        "fqmn": "App\\Api\\Controllers\\TransferController@stats",
        "canonical": "App\\Api\\Controllers\\FileController@stats",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\FileController@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_00dba7ce",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_017",
        "fqmn": "App\\Api\\Controllers\\GatewayController@register",
        "canonical": "App\\Api\\Controllers\\GatewayController@register",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\GatewayController@register. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_2fd02a99",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_018",
        "fqmn": "App\\Api\\Controllers\\TenantController@stats",
        "canonical": "App\\Api\\Controllers\\LandlordController@stats",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\LandlordController@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_ddf37f1e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_019",
        "fqmn": "App\\Api\\Controllers\\TenantDashboardController@__construct",
        "canonical": "App\\Api\\Controllers\\LandlordDashboardController@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\LandlordDashboardController@__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_fdccfbe3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_020",
        "fqmn": "App\\Api\\Controllers\\LandlordDashboardController@dashboard",
        "canonical": "App\\Api\\Controllers\\LandlordDashboardController@dashboard",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\LandlordDashboardController@dashboard. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8e6c4b45",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_021",
        "fqmn": "App\\Api\\Controllers\\LeaseController@expired",
        "canonical": "App\\Api\\Controllers\\LeaseController@active",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\LeaseController@active. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9b47df43",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_021",
        "fqmn": "App\\Api\\Controllers\\PaymentController@needingTransfer",
        "canonical": "App\\Api\\Controllers\\LeaseController@active",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\LeaseController@active. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_004a2290",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_021",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@dueToday",
        "canonical": "App\\Api\\Controllers\\LeaseController@active",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\LeaseController@active. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9f37c319",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_021",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@overdue",
        "canonical": "App\\Api\\Controllers\\LeaseController@active",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\LeaseController@active. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_4b4d22ba",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_021",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@pending",
        "canonical": "App\\Api\\Controllers\\LeaseController@active",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\LeaseController@active. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_35809fa2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_021",
        "fqmn": "App\\Api\\Controllers\\TransferController@pending",
        "canonical": "App\\Api\\Controllers\\LeaseController@active",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\LeaseController@active. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_35809fa2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_021",
        "fqmn": "App\\Api\\Controllers\\TransferController@pending",
        "canonical": "App\\Api\\Controllers\\LeaseController@active",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\LeaseController@active. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ed965c2e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_022",
        "fqmn": "App\\Api\\Controllers\\LeaseController@upcomingDueDates",
        "canonical": "App\\Api\\Controllers\\LeaseController@stats",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\LeaseController@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_497e76fa",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_022",
        "fqmn": "App\\Api\\Controllers\\PaymentController@stats",
        "canonical": "App\\Api\\Controllers\\LeaseController@stats",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\LeaseController@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_7814ead0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_022",
        "fqmn": "App\\Api\\Controllers\\ReminderController@stats",
        "canonical": "App\\Api\\Controllers\\LeaseController@stats",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\LeaseController@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_1fa198ff",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_022",
        "fqmn": "App\\Api\\Controllers\\ReportController@monthlyCollections",
        "canonical": "App\\Api\\Controllers\\LeaseController@stats",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\LeaseController@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_b5961d39",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_022",
        "fqmn": "App\\Api\\Controllers\\ReportController@topProperties",
        "canonical": "App\\Api\\Controllers\\LeaseController@stats",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\LeaseController@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_e082b1f2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_022",
        "fqmn": "App\\Http\\Controllers\\InvitationController@index",
        "canonical": "App\\Api\\Controllers\\LeaseController@stats",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\LeaseController@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_e082b1f2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_022",
        "fqmn": "App\\Http\\Controllers\\InvitationController@index",
        "canonical": "App\\Api\\Controllers\\LeaseController@stats",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\LeaseController@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_41ef2a7d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_023",
        "fqmn": "App\\Api\\Controllers\\OrgDeductionSettingsController@show",
        "canonical": "App\\Api\\Controllers\\OrgDeductionSettingsController@show",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\OrgDeductionSettingsController@show. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_f5d240ee",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_024",
        "fqmn": "App\\Api\\Controllers\\PaymentProofController@reject",
        "canonical": "App\\Api\\Controllers\\PaymentProofController@approve",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\PaymentProofController@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_2b97e82e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_025",
        "fqmn": "App\\Api\\Controllers\\PaymentProofController@index",
        "canonical": "App\\Api\\Controllers\\PaymentProofController@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\PaymentProofController@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_f3bc38a3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_026",
        "fqmn": "App\\Api\\Controllers\\PaymentProofController@requiresReview",
        "canonical": "App\\Api\\Controllers\\PaymentProofController@pendingCount",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\PaymentProofController@pendingCount. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a326fcc8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@stats",
        "canonical": "App\\Api\\Controllers\\PropertyController@stats",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\PropertyController@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_cd86ea76",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_028",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@index",
        "canonical": "App\\Api\\Controllers\\RentCycleController@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\RentCycleController@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_78c8e6d4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_028",
        "fqmn": "App\\Api\\Controllers\\TransferController@index",
        "canonical": "App\\Api\\Controllers\\RentCycleController@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\RentCycleController@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_3636b2ce",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_029",
        "fqmn": "App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController@getFeatureImportance",
        "canonical": "App\\Api\\Controllers\\RentCycleController@monthlyCollections",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\RentCycleController@monthlyCollections. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ae1889be",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_030",
        "fqmn": "App\\Api\\Controllers\\ReportController@tenantDashboard",
        "canonical": "App\\Api\\Controllers\\ReportController@landlordDashboard",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\ReportController@landlordDashboard. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d16ff032",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_031",
        "fqmn": "App\\Api\\Controllers\\ReportController@organizationDashboard",
        "canonical": "App\\Api\\Controllers\\ReportController@organizationDashboard",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\ReportController@organizationDashboard. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_062b2aa8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_032",
        "fqmn": "App\\Api\\Controllers\\SubscriptionController@transactions",
        "canonical": "App\\Api\\Controllers\\ReportExportController@exportFinancialSummary",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\ReportExportController@exportFinancialSummary. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_b00e91d3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_033",
        "fqmn": "App\\Api\\Controllers\\SubscriptionController@current",
        "canonical": "App\\Api\\Controllers\\SubscriptionController@current",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\SubscriptionController@current. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_bdb79dcd",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_033",
        "fqmn": "App\\Api\\Controllers\\SubscriptionController@usage",
        "canonical": "App\\Api\\Controllers\\SubscriptionController@current",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\SubscriptionController@current. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_99866c44",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_034",
        "fqmn": "App\\Api\\Controllers\\TenantDashboardController@dashboard",
        "canonical": "App\\Api\\Controllers\\TenantDashboardController@dashboard",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\TenantDashboardController@dashboard. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_99866c44",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_034",
        "fqmn": "App\\Api\\Controllers\\TenantDashboardController@dashboard",
        "canonical": "App\\Api\\Controllers\\TenantDashboardController@dashboard",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\TenantDashboardController@dashboard. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8bf7e2c2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_035",
        "fqmn": "App\\Api\\Controllers\\UnitController@vacant",
        "canonical": "App\\Api\\Controllers\\UnitController@occupied",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Controllers\\UnitController@occupied. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_3b3af1be",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_036",
        "fqmn": "App\\Api\\Resources\\UnitResource@toArray",
        "canonical": "App\\Api\\Resources\\MaintenanceTicketResource@toArray",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Api\\Resources\\MaintenanceTicketResource@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_271eba9b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_037",
        "fqmn": "App\\Console\\Commands\\CleanupWebhookEvents@handle",
        "canonical": "App\\Console\\Commands\\CleanupS3Backups@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\CleanupS3Backups@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_b9b5ad0d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_038",
        "fqmn": "App\\Console\\Commands\\DispatchDueDunningAttempts@handle",
        "canonical": "App\\Console\\Commands\\DetectUpsellSuccessCommand@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\DetectUpsellSuccessCommand@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_22b8269a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_038",
        "fqmn": "App\\Console\\Commands\\DispatchScheduledClosingAttempts@handle",
        "canonical": "App\\Console\\Commands\\DetectUpsellSuccessCommand@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\DetectUpsellSuccessCommand@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_e3c0881f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_039",
        "fqmn": "App\\Console\\Commands\\SetConversationMode@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_f3e43d6e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_040",
        "fqmn": "App\\Console\\Commands\\ViewABTestResultsCommand@handle",
        "canonical": "App\\Console\\Commands\\OutreachAI\\ShowFailures@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\OutreachAI\\ShowFailures@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_2fb92e4d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_040",
        "fqmn": "App\\Console\\Commands\\ViewPredictionStatsCommand@handle",
        "canonical": "App\\Console\\Commands\\OutreachAI\\ShowFailures@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\OutreachAI\\ShowFailures@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_97a19ef3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_040",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@getTotalStorageForOrganization",
        "canonical": "App\\Console\\Commands\\OutreachAI\\ShowFailures@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\OutreachAI\\ShowFailures@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_daa57365",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_040",
        "fqmn": "App\\Support\\MarketingMetrics@collectedThisMonth",
        "canonical": "App\\Console\\Commands\\OutreachAI\\ShowFailures@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\OutreachAI\\ShowFailures@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_2b3ba748",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_040",
        "fqmn": "App\\Support\\MarketingMetrics@propertiesManaged",
        "canonical": "App\\Console\\Commands\\OutreachAI\\ShowFailures@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\OutreachAI\\ShowFailures@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_a3bc9c2a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_041",
        "fqmn": "App\\Http\\Requests\\Auth\\RegisterRequest@prepareForValidation",
        "canonical": "App\\Console\\Commands\\RecalculateLeadStages@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\RecalculateLeadStages@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_fc1a9b34",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_042",
        "fqmn": "App\\Console\\Commands\\WhatsAppDebugConfig@handle",
        "canonical": "App\\Console\\Commands\\RunOnAllEnvironments@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\RunOnAllEnvironments@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_aab52209",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_042",
        "fqmn": "App\\Services\\Integrations\\BrotionsSalesService@__construct",
        "canonical": "App\\Console\\Commands\\RunOnAllEnvironments@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\RunOnAllEnvironments@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_d8617690",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_042",
        "fqmn": "App\\Services\\OpenAI\\OpenAIVisionService@__construct",
        "canonical": "App\\Console\\Commands\\RunOnAllEnvironments@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\RunOnAllEnvironments@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_1ec5a809",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_042",
        "fqmn": "App\\Services\\TapClient@__construct",
        "canonical": "App\\Console\\Commands\\RunOnAllEnvironments@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\RunOnAllEnvironments@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_eec813f0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_042",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@__construct",
        "canonical": "App\\Console\\Commands\\RunOnAllEnvironments@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\RunOnAllEnvironments@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_1abfa381",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_043",
        "fqmn": "App\\Console\\Commands\\WhatsAppTemplatesList@handle",
        "canonical": "App\\Console\\Commands\\WhatsAppAuthCheck@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\WhatsAppAuthCheck@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_c96bd235",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_044",
        "fqmn": "App\\Console\\Commands\\WhatsAppStatus@handle",
        "canonical": "App\\Console\\Commands\\WhatsAppListContent@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\WhatsAppListContent@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_8fcb398c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_044",
        "fqmn": "App\\Console\\Commands\\WhatsAppTest360Dialog@handle",
        "canonical": "App\\Console\\Commands\\WhatsAppListContent@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\WhatsAppListContent@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_92c1f4a1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_044",
        "fqmn": "App\\Console\\Commands\\WhatsAppTestSend@handle",
        "canonical": "App\\Console\\Commands\\WhatsAppListContent@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\WhatsAppListContent@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_68a68e05",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_044",
        "fqmn": "App\\Console\\Commands\\WhatsAppTestTemplate@handle",
        "canonical": "App\\Console\\Commands\\WhatsAppListContent@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\WhatsAppListContent@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_a6cd094d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_045",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@afterSave",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@afterCreate",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@afterCreate. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_b6d8a1b8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_046",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@canCreate",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@canCreate",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@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_055d404d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_046",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource@canCreate",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@canCreate",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@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_02db7bb8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_047",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource@canCreate",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@canViewAny",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@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_aa04a0cc",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_047",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@canCreate",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@canViewAny",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@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_b3379eb8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_047",
        "fqmn": "App\\Domains\\Landlords\\Resources\\LandlordDelegateResource@canViewAny",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@canViewAny",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@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_e15ac0f6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_047",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@canViewAny",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@canViewAny",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@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_1f255892",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_047",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTenantsResource@canViewAny",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@canViewAny",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@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_489c4b81",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_047",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTransfersResource@canViewAny",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@canViewAny",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@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_5f64e874",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_047",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ClickLogResource@canViewAny",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@canViewAny",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@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_fd76a8f7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_047",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ClickLogResource@shouldRegisterNavigation",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@canViewAny",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@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_3d5a7fc7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_047",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource@shouldRegisterNavigation",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@canViewAny",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@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_144f5c53",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_047",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@canViewAny",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@canViewAny",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@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_7ccd7fac",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_047",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@shouldRegisterNavigation",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@canViewAny",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@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_c7eb0725",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_047",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource@shouldRegisterNavigation",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@canViewAny",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@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_288450ae",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_047",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource@shouldRegisterNavigation",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@canViewAny",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@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_99b8a471",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_047",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource@shouldRegisterNavigation",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@canViewAny",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@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_d0ae8a6c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_047",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@shouldRegisterNavigation",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@canViewAny",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@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_d0dd8372",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_047",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@shouldRegisterNavigation",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@canViewAny",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@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_855280f4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_047",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource@canCreate",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@canViewAny",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@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_27c51f6b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_047",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource@canDeleteAny",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@canViewAny",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@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_89f3a049",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_047",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource@canViewAny",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@canViewAny",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@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_6707f8fa",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_047",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource@shouldRegisterNavigation",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@canViewAny",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@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_8ec05e51",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_047",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@canViewAny",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@canViewAny",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@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_430c0632",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_047",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@shouldRegisterNavigation",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@canViewAny",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@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_e3840071",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_047",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyLeaseResource@canViewAny",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@canViewAny",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@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_ea60e1fe",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_047",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@canViewAny",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@canViewAny",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@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_ca6fc4b4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_b23f8126",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getPluralModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1ee0e365",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getTitle",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1586991f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\CreateAgencyUser@getHeading",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_4739497b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\CreateAgencyUser@getTitle",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8620b3c3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\EditAgencyUser@getHeading",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_49bbbcaf",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\EditAgencyUser@getTitle",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8b7cac04",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\ViewAgencyUser@getHeading",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_00c3c04c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\ViewAgencyUser@getTitle",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_259e92ea",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\FileResource@getModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8658cea9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\FileResource@getNavigationLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_483f92c8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\FileResource@getPluralModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_79edd76d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\CreateLabour@getTitle",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_04956ba5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\EditLabour@getTitle",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_b05d4eb7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ListLabours@getBreadcrumb",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_24e21a14",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ListLabours@getHeading",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7b6cfd1c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ListLabours@getTitle",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_98be195a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ViewLabour@getTitle",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a293e312",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource@getModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a95df181",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource@getNavigationLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_44c52c70",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource@getPluralModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_df975ab3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\CreateLandlord@getTitle",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_6489a0d7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\EditLandlord@getTitle",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_729ae999",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ListLandlords@getBreadcrumb",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_753eb926",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ListLandlords@getHeading",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_812c798e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ListLandlords@getTitle",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_b1ca4dbc",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ViewLandlord@getTitle",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_482750cc",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@getModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1d9f937e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@getPluralModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7e2240e0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource@getModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_f978cf4b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource@getNavigationLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_90c7a97a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource@getPluralModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_3e94e7ad",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings@getNavigationLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_83fe0ee3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings@getTitle",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_3c4c23e7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\CreateLease@getTitle",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e9863003",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\EditLease@getTitle",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a52479b6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ListLeases@getTitle",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_96ca8ed6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ViewLease@getTitle",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7d5974d7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@getModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_35483f26",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@getNavigationLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_941598b1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@getPluralModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_3dade1a5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource\\Pages\\CreateMaintenanceSla@getHeading",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e4c16059",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource\\Pages\\CreateMaintenanceSla@getTitle",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_84a33ed9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@getModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_6a5cb0bc",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@getNavigationLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_fe0f735f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@getPluralModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_29ac85b9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource@getModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_6bef509c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource@getNavigationLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ebe32c7f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource@getPluralModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_764be7bf",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\Pages\\CreateMaintenanceTicket@getHeading",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_2353911b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\Pages\\CreateMaintenanceTicket@getTitle",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_16782c79",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@getModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_fee7625c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@getNavigationLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_66200f3f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@getPluralModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0df17e47",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\Pages\\ManageAgencyUsers@getHeading",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8d45f253",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\Pages\\ManageAgencyUsers@getTitle",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_231a3414",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentProofResource@getModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7982688f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentProofResource@getNavigationLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_fb0c7646",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentProofResource@getPluralModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ee973f38",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource@getModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_930dcbd3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource@getNavigationLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9d4777b2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource@getPluralModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9e92f38f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource\\Pages\\CreatePayment@getTitle",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_acfbfb53",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource\\Pages\\EditPayment@getTitle",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9cd909fe",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource\\Pages\\ViewPayment@getTitle",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_dadff2c4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager@getModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_87813b16",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager@getPluralModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8505db75",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@getModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_fb3d1658",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@getNavigationLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_4cb30273",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@getPluralModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_3a463c31",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\CreateProperty@getTitle",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_72b2e791",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\EditProperty@getTitle",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_129eda39",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\ListProperties@getTitle",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9874cf4e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderLogResource@getModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_f655942d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderLogResource@getNavigationLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_06537e24",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderLogResource@getPluralModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_329c30c9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderLogResource\\Pages\\ListReminderLogs@getBreadcrumb",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_91e7e956",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderLogResource\\Pages\\ListReminderLogs@getHeading",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_102b80fe",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderLogResource\\Pages\\ListReminderLogs@getTitle",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0a2067dc",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@getModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d19a466e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@getPluralModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_132c2779",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource@getModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_239c935c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource@getNavigationLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_2f5c323f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource@getPluralModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_408b48aa",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource\\Pages\\ViewRentCycle@getTitle",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9e6c0901",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource@getModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_b151fcf4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource@getNavigationLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_84582667",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource@getPluralModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_21c43514",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource@getModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_42482b8f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource@getNavigationLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0a5e6f46",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource@getPluralModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d1e8797f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\CreateTenant@getTitle",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_2e888f13",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\EditTenant@getTitle",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_65ea4646",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\ListTenants@getTitle",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_2da4db04",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\ViewTenant@getTitle",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_2ae12dab",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource@getModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_aa09752d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource@getPluralModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1a6a5f16",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@getModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_fe0281e5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@getNavigationLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d685e56c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@getPluralModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e29677f8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Files\\Resources\\FileResource@getModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9d2b9f93",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Files\\Resources\\FileResource@getNavigationLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_c7eeae72",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Files\\Resources\\FileResource@getPluralModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d528ce71",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@getModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_fb7c1f44",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@getNavigationLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e45ed7b7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@getPluralModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ea9d1fcf",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTenantsResource@getModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_5e0eb4ce",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTenantsResource@getNavigationLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_67d67829",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTenantsResource@getPluralModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_aab7b8ae",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTransfersResource@getModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_c07aaa8d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTransfersResource@getNavigationLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_569a2a44",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTransfersResource@getPluralModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_84cfbfa0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Reports\\Resources\\ReportResource@getModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9182253a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Reports\\Resources\\ReportResource@getPluralModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_b1ad3363",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_700e3f92",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getNavigationLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_27ede965",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPluralModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_747a6d75",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyInvoicesResource@getModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_f3864c58",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyInvoicesResource@getNavigationLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_27f30473",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyInvoicesResource@getPluralModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_46c33101",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@getModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_2fcd74f4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@getNavigationLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a0b60e67",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@getPluralModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_dbdabfe6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e1205555",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getNavigationLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_be38fbdc",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getPluralModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d4a81f56",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyLeaseResource@getModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_83c2d725",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyLeaseResource@getNavigationLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ac750dac",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyLeaseResource@getPluralModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_13ea8201",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@getModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_333727f4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@getNavigationLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_001ad767",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@getPluralModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_5f8b46b6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyRentCyclesResource@getModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_efe5e985",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyRentCyclesResource@getNavigationLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8fdcbdcc",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyRentCyclesResource@getPluralModelLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_b7849653",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\ModelRouter@creative",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_debeb5dc",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\ModelRouter@deepReasoning",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e7241a94",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\ModelRouter@fastReasoning",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_4b4f1516",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingAuthority@getLivePricingSummary",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_01bca13a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Services\\SystemSettings@adminWhatsAppProvider",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_150d4003",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppConnectivityService@getActiveProvider",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_07168fb0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Services\\Zoho\\ZohoBooksClient@accessToken",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_04a2d873",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_049",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getNavigationGroup",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getLabel",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getLabel. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_98ad7776",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_049",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationCenterResource@getLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getLabel",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getLabel. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0345f49c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_049",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationCenterResource@getPluralLabel",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getLabel",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getLabel. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_555b4b7a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_049",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource@getNavigationGroup",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getLabel",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@getLabel. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_25fcff82",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_050",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LabourResource@mutateFormDataBeforeCreate",
        "canonical": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@mutateFormDataBeforeCreate",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\AgencyUserResource@mutateFormDataBeforeCreate. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8d22d739",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_051",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@form",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@form",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_904d928b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_052",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource@getEloquentQuery",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getEloquentQuery",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_1211693b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_052",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource@getEloquentQuery",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getEloquentQuery",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_b76a60a1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_052",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentProofResource@getEloquentQuery",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getEloquentQuery",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_a435a20b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_052",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource@getEloquentQuery",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getEloquentQuery",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_eeedc722",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_052",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@getEloquentQuery",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getEloquentQuery",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_d3961cf9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_052",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderLogResource@getEloquentQuery",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getEloquentQuery",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_a088147d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_052",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource@getEloquentQuery",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getEloquentQuery",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_bcd3d23f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_052",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@getEloquentQuery",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getEloquentQuery",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_918e043f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_052",
        "fqmn": "App\\Domains\\Files\\Resources\\FileResource@getEloquentQuery",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getEloquentQuery",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_36a51828",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_052",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getEloquentQuery",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getEloquentQuery",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_7b59b3b2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_052",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@getEloquentQuery",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getEloquentQuery",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_3ecc91d1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_052",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@getEloquentQuery",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getEloquentQuery",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_bc90b8f9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_052",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getEloquentQuery",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getEloquentQuery",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_090288a9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_9f386967",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_3e31abab",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_3dbd616a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_b8ededa8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_17f8fa98",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_0cb28285",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource@getRelations",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_414beeb8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_63e6fdc1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationCenterResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_2b219bf1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationSettingsResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_48d6eb7f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentProofResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_4de2e66b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_fd0b62ec",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_3b98e495",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderLogResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_de069957",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_40e42630",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_62711470",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_4d85955f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_9245af16",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_55ab4b0d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_2b6ca32f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\Imports\\Constants\\CsvImportSchema@allSchemas",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_75fce2ee",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\Landlords\\Resources\\LandlordDelegateResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_a96ace78",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_082a8212",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTenantsResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_afaa9375",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTransfersResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_0f7e2119",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\Payments\\Services\\DeductionCalculator@getDefaultTemplates",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_ce01d83b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@getStatisticsForOrganization",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_6930022d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportExportService@getCollectionReportHeaders",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_654db143",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportExportService@getOverdueReportHeaders",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_353dd56f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportExportService@getRentRollHeaders",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_48fcad3e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_c5088754",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyInvoicesResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_55ac94c0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_374a3d83",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\AuditLogResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_2aec6da5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingAdminActionsResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_2565fa15",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_c4bea794",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_7aae5ffc",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ClickLogResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_9f860f21",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ClickLogResource@getRelations",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_bde84df8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_73a551e5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource@getRelations",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_3df8dd91",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_70e6dcb4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\EmailTemplateResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_5f5f2c02",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_97bde8ac",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\LeadResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_5fcef471",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\LeadResource@getRelations",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_d0fbdedd",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_4b17926c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource@getRelations",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_2980d660",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_dd72608e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_00f24e3d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_42078857",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_a157cc8d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_211aa6bb",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SupportTicketResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_6f54c5fa",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SupportTicketResource@getRelations",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_9330dbc1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_082a6518",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource@getRelations",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_b97c68ad",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_ffa1249c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@getRelations",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_d7ec42ca",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\WebhookEventAttemptResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_d831fb73",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\WebhookEventResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_cf1ed7ed",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyLeaseResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_f3f56830",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_b2077d25",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyRentCyclesResource@getPages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_94c7a0f7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\AcceptInvitationRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_e5ac4797",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Admin\\StorePlanVersionFeatureRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_3d69b003",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Admin\\StorePlanVersionRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_906bdba9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Admin\\UpdatePlanVersionFeatureRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_1959d6c1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Admin\\UpdatePlanVersionRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_ae991e75",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Auth\\LoginRequest@attributes",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_70a42030",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Auth\\LoginRequest@messages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_99d6170b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Auth\\LoginRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_a0fb5917",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Auth\\RegisterRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_f10c420c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Auth\\ResendVerificationRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_b241589e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Auth\\ResetPasswordRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_b91df6d2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Auth\\SendPasswordResetLinkRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_7df31bd6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Files\\BulkUploadRequest@attributes",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_0f407a03",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Files\\BulkUploadRequest@messages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_56280fa2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Files\\BulkUploadRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_583cbbec",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Files\\UploadFileRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_a076cb02",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Gateway\\DeliveryStatusRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_a9581e50",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Gateway\\HeartbeatRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_4835e8bf",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Gateway\\RegisterGatewayRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_053f2c81",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\InvitationRequest@attributes",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_17b05b5a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Leads\\StoreLeadRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_14adc132",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Leases\\StoreLeaseRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_fdde3c2c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Leases\\TerminateLeaseRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_34812f2e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Locale\\SetLocaleRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_b547b001",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Maintenance\\AddCommentRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_8e5b4a68",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Maintenance\\ApproveTicketRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_0895626f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Maintenance\\AssignLabourRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_adf9c44c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Maintenance\\AssignWorkerRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_c474abb4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Maintenance\\UpdateTicketStatusRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_f0893ad6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Maintenance\\UploadQuoteRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_322fbfd5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\OrgDeductionSettings\\UpdateOrgDeductionSettingsRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_c40d5ac4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\PaymentProofs\\SubmitProofRequest@messages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_580762df",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\PaymentProofs\\SubmitProofRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_69050660",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Payments\\UpdatePaymentRequest@attributes",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_2f244d79",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Payments\\UpdatePaymentRequest@messages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_af3ad35e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\People\\StoreLandlordRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_6edf113c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\People\\StoreTenantRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_6de58991",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Profile\\UpdateProfileRequest@attributes",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_e980f534",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Profile\\UpdateProfileRequest@messages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_d63ab994",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Properties\\AssignTenantRequest@attributes",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_90dfb3b5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Properties\\AssignTenantRequest@messages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_321985e0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Properties\\AssignTenantRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_a09ada15",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Properties\\GetPropertiesByTypeRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_d9cea511",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Properties\\GetPropertiesForLandlordRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_b7d28979",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Properties\\StorePropertyRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_0a7511d0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Properties\\StoreUnitRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_264cac67",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Properties\\UpdatePropertyRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_32a85938",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Properties\\UpdateUnitCompositionRequest@attributes",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_ddc23bd1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Properties\\UpdateUnitCompositionRequest@messages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_1ff2456c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Properties\\UpdateUnitCompositionRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_04ca2255",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Reminders\\GetRemindersByStatusRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_b4356eb9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Reports\\ExportCollectionReportRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_97366787",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Reports\\ExportOverdueReportRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_38c1b673",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Reports\\ExportRentRollRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_83969d40",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Subscriptions\\SubscribeRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_de9f2cbe",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Subscriptions\\TopUpRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_15e18f82",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Transfers\\BulkCompleteTransferRequest@attributes",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_d871d1e7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Transfers\\BulkCompleteTransferRequest@messages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_c511415e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Transfers\\CompleteTransferRequest@attributes",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_3b84f06b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Transfers\\CompleteTransferRequest@messages",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_114897ba",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Transfers\\CompleteTransferRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_a82d95e3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Transfers\\FailTransferRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_e53751ea",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Verification\\CheckVerificationRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_fb5a6ad2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\Verification\\StartVerificationRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_01170ed3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\WhatsApp\\ProvisionWhatsAppRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_324b88cb",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\WhatsApp\\SelectPhoneNumberRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_2695e343",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\WhatsApp\\StartOnboardingRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_a8c1526e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\WhatsApp\\TestWhatsAppRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_e04162f5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\WhatsApp\\UpdateWhatsAppIntegrationRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_7e99d340",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\WhatsApp\\UpdateWhatsAppProfileRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_45bb169e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Requests\\WhatsApp\\UpdateWhatsAppSettingsRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_5affe0dd",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Models\\MessageTemplate@getAvailableVariables",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_aae9eed1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Services\\Messaging\\MessagingResult@toArray",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_68be342e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Services\\Outreach\\AnalyticsService@getOverviewStats",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_992f206a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Services\\OutreachAI\\AdaptiveLearningEngine@evolveStrategiesDaily",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_855460ab",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Services\\OutreachAI\\AudioConverter@getStorageStats",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_bdeee7ad",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Services\\OutreachAI\\ConversationPlanService@addAddOnOfferStep",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_259a5759",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Services\\OutreachAI\\ConversationPlanService@addPriceAlignmentExplainerStep",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_0d7199d9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Services\\OutreachAI\\ConversationPlanService@addUpsellSequenceStep",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_356fcb16",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingResolver@getAllPlans",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_1f2f42ef",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Services\\OutreachAI\\StrategyScoreService@computeSuccessRatios",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_5a343919",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Services\\WhatsApp\\Inbound\\CanonicalInboundMessage@toArray",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_ea9519e1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Services\\WhatsApp\\Templates\\Dialog360TemplateProvider@templateCapabilities",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_e716c16e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider@templateCapabilities",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_eb0d1fe5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Services\\Zoho\\ZohoBooksClient@getConnectionStatus",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_5f410338",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\AllowedKnowledgeRegistry@getPricingFacts",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_b42dc8ba",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\FAQTemplateRegistry@getTemplates",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_4041b483",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\ComplianceRules@getForbiddenPhrases",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_2136c195",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\OptOutEnforcer@getConfirmationMessage",
        "canonical": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\FileResource@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_89b39842",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_054",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@getRelations",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource@getRelations",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource@getRelations. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_51d1fb21",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_054",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource@getRelations",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource@getRelations",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource@getRelations. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_4d0c24bb",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_054",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@getRelations",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource@getRelations",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource@getRelations. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ff4bb28f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_054",
        "fqmn": "App\\Domains\\Landlords\\Actions\\GetLandlordOverviewWidgetStatsAction@execute",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource@getRelations",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource@getRelations. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_51d649cc",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_054",
        "fqmn": "App\\Http\\Requests\\Profile\\UpdateProfileRequest@rules",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource@getRelations",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource@getRelations. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_3964e35f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_054",
        "fqmn": "App\\Services\\GccCountryService@getCountries",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource@getRelations",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource@getRelations. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_de3a02af",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_054",
        "fqmn": "App\\Services\\GccCountryService@getCountryCodes",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource@getRelations",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource@getRelations. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_3b9eb029",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_054",
        "fqmn": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@computeStageDifficultyScores",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource@getRelations",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource@getRelations. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_156515f6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_054",
        "fqmn": "App\\Services\\Payments\\Tap\\TapWebhookValidationResult@errors",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource@getRelations",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource@getRelations. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_5d3e5ccb",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_054",
        "fqmn": "App\\Support\\FactoryToolkit@factoryFullCycle",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource@getRelations",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource@getRelations. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7e9a1f8f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_054",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\AllowedKnowledgeRegistry@getAllowedFacts",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource@getRelations",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource@getRelations. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ac47bfaa",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_054",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\ForbiddenPhrasesRegistry@getForbiddenCategories",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource@getRelations",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource@getRelations. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_6a15e287",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_055",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@form",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@form",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@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_3e52b9b2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_055",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@form",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@form",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@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_7b9f8303",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_055",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\CommentsRelationManager@form",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@form",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@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_6dfd089d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_055",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\MediaRelationManager@form",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@form",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@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_689d33cd",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_055",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationSettingsResource@form",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@form",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@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_bbcd374e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_055",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\FilesRelationManager@form",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@form",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@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_6c08b7ce",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_055",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\UnitsRelationManager@form",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@form",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@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_6b2df3a4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_055",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource@form",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@form",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@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_82a7677b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_055",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource\\RelationManagers\\FilesRelationManager@form",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@form",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@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_ba93ddf7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_055",
        "fqmn": "App\\Domains\\Files\\Resources\\FileResource@form",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@form",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@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_1b7620c8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_055",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@form",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@form",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@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_6904d81a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_055",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTenantsResource@form",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@form",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@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_c14adac9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_055",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTransfersResource@form",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@form",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@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_d5cb4fae",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_055",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@form",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@form",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@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_860fb9c8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_055",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyInvoicesResource@form",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@form",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@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_9561925c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_055",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@form",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@form",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@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_8ca5f4b8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_055",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource@form",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@form",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@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_7e3537a8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_055",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\EmailTemplateResource@form",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@form",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@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_ec22840e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_055",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource@form",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@form",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@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_ef8d748c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_055",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\LeadResource@form",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@form",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@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_1068652d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_055",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource@form",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@form",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@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_69cfd1a3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_055",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SupportTicketResource@form",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@form",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@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_87bc1b05",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_055",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource@form",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@form",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@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_727deff9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_055",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyLeaseResource@form",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@form",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@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_56b88fcc",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_055",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@form",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@form",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@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_e9132915",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_055",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyRentCyclesResource@form",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@form",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@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_324a3136",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_056",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@getTitle",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@getTitle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@getTitle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_29e07b0a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_056",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager@getTitle",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@getTitle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@getTitle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_097af0cd",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_056",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\FilesRelationManager@getTitle",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@getTitle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@getTitle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_c047f6c1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_056",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\UnitsRelationManager@getTitle",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@getTitle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@getTitle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e12e95a0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_056",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource\\RelationManagers\\FilesRelationManager@getTitle",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@getTitle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@getTitle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_853b8081",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_057",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@table",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@table",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@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_19928842",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_057",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@table",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@table",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@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_49d7e025",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_057",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\CommentsRelationManager@table",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@table",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@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_e29c551f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_057",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\MediaRelationManager@table",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@table",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@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_fbd1ee98",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_057",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SlaLogsRelationManager@table",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@table",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@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_3b646777",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_057",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationCenterResource@table",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@table",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@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_52526b8f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_057",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationSettingsResource@table",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@table",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@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_0e2c27e9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_057",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentProofResource@table",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@table",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@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_c19e80f9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_057",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager@table",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@table",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@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_34542d4a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_057",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\UnitsRelationManager@table",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@table",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@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_385ff913",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_057",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderLogResource@table",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@table",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@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_60b3f3bc",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_057",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource@table",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@table",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@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_8915fd6d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_057",
        "fqmn": "App\\Domains\\Files\\Resources\\FileResource@table",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@table",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@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_b1144b5a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_057",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTenantsResource@table",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@table",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@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_359eb65c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_057",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@table",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@table",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@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_9b572215",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_057",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\AuditLogResource@table",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@table",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@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_df44ea7b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_057",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@table",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@table",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@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_1a72c384",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_057",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource@table",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@table",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@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_697dd7f8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_057",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\EmailTemplateResource@table",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@table",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@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_622cb898",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_057",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\LeadResource@table",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@table",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@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_48ac2bab",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_057",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource@table",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@table",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@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_27306519",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_057",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@table",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@table",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@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_34944ec3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_057",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@table",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@table",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@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_84f50a4b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_057",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyLeaseResource@table",
        "canonical": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@table",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@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_575d3df7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_058",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@getEloquentQuery",
        "canonical": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@getEloquentQuery",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LeaseCycleResource@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_f2d8494a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_058",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource@getEloquentQuery",
        "canonical": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@getEloquentQuery",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LeaseCycleResource@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_5d95a372",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_058",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource@getEloquentQuery",
        "canonical": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@getEloquentQuery",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LeaseCycleResource@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_4f008d4b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_058",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@getEloquentQuery",
        "canonical": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@getEloquentQuery",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LeaseCycleResource@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_5d27b756",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_058",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource@getEloquentQuery",
        "canonical": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@getEloquentQuery",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LeaseCycleResource@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_e5427ecb",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_059",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationCenterResource@shouldRegisterNavigation",
        "canonical": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_73f7300f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_059",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationSettingsResource@shouldRegisterNavigation",
        "canonical": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e0bb1591",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_059",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@shouldRegisterNavigation",
        "canonical": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_c8b5b1ec",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_059",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@canCreate",
        "canonical": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_966020e6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_059",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTenantsResource@canCreate",
        "canonical": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e840eefb",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_059",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTransfersResource@canCreate",
        "canonical": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d1af146a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_059",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@canCreate",
        "canonical": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7c60d2cc",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_059",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyInvoicesResource@canCreate",
        "canonical": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a12a7998",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_059",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@canCreate",
        "canonical": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_98c0eaad",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_059",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\AuditLogResource@shouldRegisterNavigation",
        "canonical": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_cb051caf",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_059",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@shouldRegisterNavigation",
        "canonical": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_5cb97842",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_059",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource@shouldRegisterNavigation",
        "canonical": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e2036abf",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_059",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@canCreate",
        "canonical": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_3b1b374e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_059",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@canDeleteAny",
        "canonical": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_872cf0da",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_059",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\EmailTemplateResource@shouldRegisterNavigation",
        "canonical": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1ed0213a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_059",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource@shouldRegisterNavigation",
        "canonical": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0000190b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_059",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@canCreate",
        "canonical": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_f4b7def9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_059",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@shouldRegisterNavigation",
        "canonical": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a48e20db",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_059",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@canCreate",
        "canonical": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_dd1f4082",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_059",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@canDeleteAny",
        "canonical": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1cd6b53b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_059",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyLeaseResource@canCreate",
        "canonical": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_2c08b378",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_059",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@canCreate",
        "canonical": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_810fe73f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_059",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyRentCyclesResource@canCreate",
        "canonical": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_49e70d45",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_060",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@table",
        "canonical": "App\\Domains\\Agencies\\Resources\\LeaseResource@table",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LeaseResource@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_20543dee",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_061",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\ListProperties@getSubheading",
        "canonical": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ListLeases@getSubheading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ListLeases@getSubheading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7ed8cc09",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_061",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource\\Pages\\ListSupportTickets@getSubheading",
        "canonical": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ListLeases@getSubheading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ListLeases@getSubheading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_bc5f4189",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_061",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\ListTenants@getSubheading",
        "canonical": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ListLeases@getSubheading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ListLeases@getSubheading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_59c47e83",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_061",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource\\Pages\\ListTransfers@getSubheading",
        "canonical": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ListLeases@getSubheading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ListLeases@getSubheading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_bb6dbded",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_061",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource\\Pages\\ListUnits@getSubheading",
        "canonical": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ListLeases@getSubheading",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ListLeases@getSubheading. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_3db848e7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_062",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource@getEloquentQuery",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@getEloquentQuery",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@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_2fbe1497",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_062",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@getEloquentQuery",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@getEloquentQuery",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@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_5f184f1f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_062",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource@getEloquentQuery",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@getEloquentQuery",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@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_cbda16b7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_062",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@getEloquentQuery",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@getEloquentQuery",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@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_5db33d82",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_062",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTransfersResource@getEloquentQuery",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@getEloquentQuery",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@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_e893613a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_062",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyLeaseResource@getEloquentQuery",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@getEloquentQuery",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@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_e6f687ff",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_062",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@getEloquentQuery",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@getEloquentQuery",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@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_01a8b323",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_063",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource@infolist",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@infolist",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@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_3e44479c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_063",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource\\Pages\\ViewDiscountCodeUsage@infolist",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@infolist",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@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_c103043c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_063",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource\\Pages\\ViewTrackingLink@infolist",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@infolist",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@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_8316984e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_064",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@shouldRegisterNavigation",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e3a12a26",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_064",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource@shouldRegisterNavigation",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ba44a032",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_064",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@shouldRegisterNavigation",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_3d99751d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_064",
        "fqmn": "App\\Http\\Requests\\InvitationRequest@authorize",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1e8a3789",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_064",
        "fqmn": "App\\Http\\Requests\\PaymentProofs\\SubmitProofRequest@authorize",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7727d20a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_064",
        "fqmn": "App\\Http\\Requests\\Payments\\UpdatePaymentRequest@authorize",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e481aa50",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_064",
        "fqmn": "App\\Http\\Requests\\People\\StoreLandlordRequest@authorize",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0829e266",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_064",
        "fqmn": "App\\Http\\Requests\\People\\StoreTenantRequest@authorize",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_12538a2a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_064",
        "fqmn": "App\\Http\\Requests\\People\\UpdateLandlordRequest@authorize",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_3362cd44",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_064",
        "fqmn": "App\\Http\\Requests\\People\\UpdateTenantRequest@authorize",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_b24e8d86",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_064",
        "fqmn": "App\\Http\\Requests\\Properties\\AssignTenantRequest@authorize",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e5712c6a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_064",
        "fqmn": "App\\Http\\Requests\\Properties\\StoreUnitRequest@authorize",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_248ff24a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_064",
        "fqmn": "App\\Http\\Requests\\Properties\\UpdateUnitCompositionRequest@authorize",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_457c29d4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_064",
        "fqmn": "App\\Http\\Requests\\Properties\\UpdateUnitRequest@authorize",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0216c698",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_064",
        "fqmn": "App\\Http\\Requests\\Transfers\\BulkCompleteTransferRequest@authorize",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d9dcd0ec",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_064",
        "fqmn": "App\\Http\\Requests\\Transfers\\CompleteTransferRequest@authorize",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_edc359c1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_064",
        "fqmn": "App\\Http\\Requests\\WhatsApp\\ProvisionWhatsAppRequest@authorize",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a9161f14",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_064",
        "fqmn": "App\\Http\\Requests\\WhatsApp\\TestWhatsAppRequest@authorize",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a8d20820",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_064",
        "fqmn": "App\\Http\\Requests\\WhatsApp\\UpdateWhatsAppSettingsRequest@authorize",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_94d02c40",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_064",
        "fqmn": "App\\Services\\Payments\\Tap\\TapWebhookValidationResult@isValid",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_cd306937",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_065",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SlaLogsRelationManager@form",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@form",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@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_a449009b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_065",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SuggestionsRelationManager@form",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@form",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@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_9ae2dbab",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_065",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@form",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@form",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@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_1b2456a4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_065",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationCenterResource@form",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@form",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@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_b4d55f2b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_065",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource@form",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@form",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@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_b22f1342",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_065",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@form",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@form",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@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_38c6ef5b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_065",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource@form",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@form",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@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_a9bb7952",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_065",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource\\RelationManagers\\UsagesRelationManager@form",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@form",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@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_e92b2ba5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_065",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource@form",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@form",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@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_5db9e788",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_066",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ClickLogResource@table",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@table",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@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_bab9baf4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_066",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource@table",
        "canonical": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@table",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@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_a0f3227f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_067",
        "fqmn": "App\\Domains\\Landlords\\Resources\\LandlordDelegateResource@table",
        "canonical": "App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\FilesRelationManager@table",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\FilesRelationManager@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_2a1d2421",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_067",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@table",
        "canonical": "App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\FilesRelationManager@table",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\FilesRelationManager@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_7c17ddfb",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_068",
        "fqmn": "App\\Services\\Outreach\\FollowUpMetricsService@dailyStats",
        "canonical": "App\\Domains\\Agencies\\Resources\\RentCycleResource\\Pages\\ListRentCycles@getTabs",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\RentCycleResource\\Pages\\ListRentCycles@getTabs. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_2abb1b59",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_069",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@getRelations",
        "canonical": "App\\Domains\\Agencies\\Resources\\TransferResource@getRelations",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\TransferResource@getRelations. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_84e8aa10",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_069",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\EmailTemplateResource@getRelations",
        "canonical": "App\\Domains\\Agencies\\Resources\\TransferResource@getRelations",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\TransferResource@getRelations. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7b508273",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_069",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@getRelations",
        "canonical": "App\\Domains\\Agencies\\Resources\\TransferResource@getRelations",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\TransferResource@getRelations. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_47294ecf",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_069",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@getRelations",
        "canonical": "App\\Domains\\Agencies\\Resources\\TransferResource@getRelations",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Agencies\\Resources\\TransferResource@getRelations. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_caa5c9a0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_070",
        "fqmn": "App\\Domains\\Billing\\Services\\GlobalTaxRulesService@getDefaultCurrencyForCountry",
        "canonical": "App\\Domains\\Billing\\Services\\CurrencyService@getDefaultCurrency",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Billing\\Services\\CurrencyService@getDefaultCurrency. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_29f045d9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_070",
        "fqmn": "App\\Domains\\Billing\\Services\\GlobalTaxRulesService@getDefaultLocaleForCountry",
        "canonical": "App\\Domains\\Billing\\Services\\CurrencyService@getDefaultCurrency",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Billing\\Services\\CurrencyService@getDefaultCurrency. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_6e3bdbc6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_070",
        "fqmn": "App\\Domains\\Billing\\Services\\GlobalTaxRulesService@getInvoiceFormatForCountry",
        "canonical": "App\\Domains\\Billing\\Services\\CurrencyService@getDefaultCurrency",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Billing\\Services\\CurrencyService@getDefaultCurrency. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_be7702a9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_071",
        "fqmn": "App\\Domains\\Billing\\Services\\GlobalTaxRulesService@getTaxRate",
        "canonical": "App\\Domains\\Billing\\Services\\GlobalTaxRulesService@getDefaultTaxRateForCountry",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Billing\\Services\\GlobalTaxRulesService@getDefaultTaxRateForCountry. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1c338798",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_072",
        "fqmn": "App\\Domains\\Billing\\Services\\GlobalTaxRulesService@getNumberFormatForCountry",
        "canonical": "App\\Domains\\Billing\\Services\\GlobalTaxRulesService@getLineItemTaxRulesForCountry",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Billing\\Services\\GlobalTaxRulesService@getLineItemTaxRulesForCountry. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_05b001fd",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_073",
        "fqmn": "App\\Domains\\Billing\\Services\\GlobalTaxRulesService@isMultiLanguageRequiredForCountry",
        "canonical": "App\\Domains\\Billing\\Services\\GlobalTaxRulesService@isEInvoicingRequiredForCountry",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Billing\\Services\\GlobalTaxRulesService@isEInvoicingRequiredForCountry. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_5d9a35bd",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_073",
        "fqmn": "App\\Domains\\Billing\\Services\\GlobalTaxRulesService@isQrRequiredForCountry",
        "canonical": "App\\Domains\\Billing\\Services\\GlobalTaxRulesService@isEInvoicingRequiredForCountry",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Billing\\Services\\GlobalTaxRulesService@isEInvoicingRequiredForCountry. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9300e8cf",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_074",
        "fqmn": "App\\Domains\\Leases\\Repositories\\RentCycleRepository@allForOrganization",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@allForOrganization",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Files\\Repositories\\FileRepository@allForOrganization. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_2e0356b4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_074",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@allForOrganization",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@allForOrganization",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Files\\Repositories\\FileRepository@allForOrganization. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_932d8076",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_074",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@getNeedingTransfer",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@allForOrganization",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Files\\Repositories\\FileRepository@allForOrganization. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a70d24e6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_074",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@allForOrganization",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@allForOrganization",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Files\\Repositories\\FileRepository@allForOrganization. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_3cda1929",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_074",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@getActiveForOrganization",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@allForOrganization",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Files\\Repositories\\FileRepository@allForOrganization. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_45fd1933",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_074",
        "fqmn": "App\\Domains\\People\\Repositories\\TenantRepository@getActiveForOrganization",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@allForOrganization",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Files\\Repositories\\FileRepository@allForOrganization. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e740a4c3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_075",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@countActiveForOrganization",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@countForOrganization",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Files\\Repositories\\FileRepository@countForOrganization. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e22c284d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_075",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@countForOrganization",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@countForOrganization",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Files\\Repositories\\FileRepository@countForOrganization. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_5d925615",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_075",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@countForOrganization",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@countForOrganization",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Files\\Repositories\\FileRepository@countForOrganization. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9b546bd3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_075",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@countActiveForOrganization",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@countForOrganization",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Files\\Repositories\\FileRepository@countForOrganization. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1bfced5d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_075",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@countForOrganization",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@countForOrganization",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Files\\Repositories\\FileRepository@countForOrganization. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_58fce4d9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_075",
        "fqmn": "App\\Domains\\People\\Repositories\\TenantRepository@countActiveForOrganization",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@countForOrganization",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Files\\Repositories\\FileRepository@countForOrganization. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_b6384803",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_075",
        "fqmn": "App\\Domains\\People\\Repositories\\TenantRepository@countForOrganization",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@countForOrganization",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Files\\Repositories\\FileRepository@countForOrganization. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_712881a8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_075",
        "fqmn": "App\\Domains\\Properties\\Repositories\\PropertyRepository@countActiveForOrganization",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@countForOrganization",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Files\\Repositories\\FileRepository@countForOrganization. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_865af68a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_075",
        "fqmn": "App\\Domains\\Properties\\Repositories\\PropertyRepository@countForOrganization",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@countForOrganization",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Files\\Repositories\\FileRepository@countForOrganization. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_923ea64f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_075",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@countForOrganization",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@countForOrganization",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Files\\Repositories\\FileRepository@countForOrganization. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e2464520",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_075",
        "fqmn": "App\\Domains\\Reminders\\Actions\\ProcessDueRemindersAction@run",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@countForOrganization",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Files\\Repositories\\FileRepository@countForOrganization. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_6c2cadae",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_075",
        "fqmn": "App\\Services\\Imports\\CsvImportSessionManager@cleanupOldSessions",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@countForOrganization",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Files\\Repositories\\FileRepository@countForOrganization. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_25d7b520",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_075",
        "fqmn": "App\\Services\\OutreachAI\\NudgeService@processDueNudges",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@countForOrganization",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Files\\Repositories\\FileRepository@countForOrganization. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7f067d41",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_076",
        "fqmn": "App\\Domains\\Properties\\Repositories\\PropertyRepository@getByTypeForOrganization",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@getByTypeForOrganization",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Files\\Repositories\\FileRepository@getByTypeForOrganization. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_463f37ff",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_077",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@allForOrganization",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@getOrphanedFiles",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Files\\Repositories\\FileRepository@getOrphanedFiles. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_5cd4aa2c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_077",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@getActiveForOrganization",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@getOrphanedFiles",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Files\\Repositories\\FileRepository@getOrphanedFiles. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_22d50d59",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_077",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@getExpiredForOrganization",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@getOrphanedFiles",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Files\\Repositories\\FileRepository@getOrphanedFiles. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_48ab7310",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_077",
        "fqmn": "App\\Domains\\Leases\\Repositories\\RentCycleRepository@getDueToday",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@getOrphanedFiles",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Files\\Repositories\\FileRepository@getOrphanedFiles. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1c32b8ab",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_077",
        "fqmn": "App\\Domains\\Leases\\Repositories\\RentCycleRepository@getOverdueForOrganization",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@getOrphanedFiles",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Files\\Repositories\\FileRepository@getOrphanedFiles. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_3f7fb21f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_077",
        "fqmn": "App\\Domains\\Properties\\Repositories\\PropertyRepository@getActiveForOrganization",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@getOrphanedFiles",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Files\\Repositories\\FileRepository@getOrphanedFiles. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0faa0548",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_077",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@getOccupiedForOrganization",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@getOrphanedFiles",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Files\\Repositories\\FileRepository@getOrphanedFiles. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ad29e081",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_077",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@getVacantForOrganization",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@getOrphanedFiles",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Files\\Repositories\\FileRepository@getOrphanedFiles. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_f06bdbe2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_077",
        "fqmn": "App\\Domains\\Reminders\\Repositories\\ReminderRepository@getDue",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@getOrphanedFiles",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Files\\Repositories\\FileRepository@getOrphanedFiles. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a13f69bc",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_078",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@paginatedForOrganization",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@paginatedForOrganization",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Files\\Repositories\\FileRepository@paginatedForOrganization. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_abf910ff",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_078",
        "fqmn": "App\\Domains\\Leases\\Repositories\\RentCycleRepository@paginatedForOrganization",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@paginatedForOrganization",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Files\\Repositories\\FileRepository@paginatedForOrganization. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_b1075a3c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_078",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@paginatedForOrganization",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@paginatedForOrganization",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Files\\Repositories\\FileRepository@paginatedForOrganization. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_33f6b4ec",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_078",
        "fqmn": "App\\Domains\\People\\Repositories\\TenantRepository@paginatedForOrganization",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@paginatedForOrganization",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Files\\Repositories\\FileRepository@paginatedForOrganization. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_4a3b37ed",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_078",
        "fqmn": "App\\Domains\\Properties\\Repositories\\PropertyRepository@paginatedForOrganization",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@paginatedForOrganization",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Files\\Repositories\\FileRepository@paginatedForOrganization. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_fd6bfdd0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_078",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@paginatedForOrganization",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@paginatedForOrganization",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Files\\Repositories\\FileRepository@paginatedForOrganization. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_cf9b26d0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_079",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@search",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@search",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Files\\Repositories\\FileRepository@search. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ec2f9e98",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_079",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@search",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@search",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Files\\Repositories\\FileRepository@search. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_b07f42c6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_079",
        "fqmn": "App\\Domains\\People\\Repositories\\TenantRepository@search",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@search",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Files\\Repositories\\FileRepository@search. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_246e5d4b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_079",
        "fqmn": "App\\Domains\\Properties\\Repositories\\PropertyRepository@search",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@search",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Files\\Repositories\\FileRepository@search. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_6b49262a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_079",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@search",
        "canonical": "App\\Domains\\Files\\Repositories\\FileRepository@search",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Files\\Repositories\\FileRepository@search. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_b39640f2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_080",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@canEdit",
        "canonical": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@canDelete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Landlords\\Resources\\MyPropertiesResource@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_10f5e9cb",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_080",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTenantsResource@canDelete",
        "canonical": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@canDelete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Landlords\\Resources\\MyPropertiesResource@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_aabf19d4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_080",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTenantsResource@canEdit",
        "canonical": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@canDelete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Landlords\\Resources\\MyPropertiesResource@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_5d765e1a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_080",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTransfersResource@canDelete",
        "canonical": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@canDelete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Landlords\\Resources\\MyPropertiesResource@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_7febf8e1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_080",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTransfersResource@canEdit",
        "canonical": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@canDelete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Landlords\\Resources\\MyPropertiesResource@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_31df048e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_080",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@canDelete",
        "canonical": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@canDelete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Landlords\\Resources\\MyPropertiesResource@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_91c7102d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_080",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@canEdit",
        "canonical": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@canDelete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Landlords\\Resources\\MyPropertiesResource@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_00216f92",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_080",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@canDelete",
        "canonical": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@canDelete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Landlords\\Resources\\MyPropertiesResource@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_1416fd59",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_080",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@canEdit",
        "canonical": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@canDelete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Landlords\\Resources\\MyPropertiesResource@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_ae293096",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_081",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTenantsResource@canView",
        "canonical": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@canView",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Landlords\\Resources\\MyPropertiesResource@canView. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_6240e7fb",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_081",
        "fqmn": "App\\Domains\\Landlords\\Resources\\MyTransfersResource@canView",
        "canonical": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@canView",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Landlords\\Resources\\MyPropertiesResource@canView. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_78a39fdc",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_081",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ClickLogResource@canView",
        "canonical": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@canView",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Landlords\\Resources\\MyPropertiesResource@canView. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8fd890ed",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_081",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource@canDelete",
        "canonical": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@canView",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Landlords\\Resources\\MyPropertiesResource@canView. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_5a39003e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_081",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource@canEdit",
        "canonical": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@canView",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Landlords\\Resources\\MyPropertiesResource@canView. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_06d3a3bb",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_081",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource@canView",
        "canonical": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@canView",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Landlords\\Resources\\MyPropertiesResource@canView. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1b1e4d8b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_081",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@canView",
        "canonical": "App\\Domains\\Landlords\\Resources\\MyPropertiesResource@canView",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Landlords\\Resources\\MyPropertiesResource@canView. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_03e138a0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_082",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyRentCyclesResource@getEloquentQuery",
        "canonical": "App\\Domains\\Landlords\\Resources\\MyTenantsResource@getEloquentQuery",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Landlords\\Resources\\MyTenantsResource@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_e67b69f0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_083",
        "fqmn": "App\\Domains\\Leases\\Actions\\GenerateRentCyclesAction@__construct",
        "canonical": "App\\Domains\\Leases\\Actions\\CreateLeaseAction@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Leases\\Actions\\CreateLeaseAction@__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_95cfbf0e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_083",
        "fqmn": "App\\Domains\\Leases\\Actions\\UpdateLeaseAction@__construct",
        "canonical": "App\\Domains\\Leases\\Actions\\CreateLeaseAction@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Leases\\Actions\\CreateLeaseAction@__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_9a5e278e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_084",
        "fqmn": "App\\Domains\\Leases\\Repositories\\RentCycleRepository@getForLandlord",
        "canonical": "App\\Domains\\Leases\\Repositories\\LeaseRepository@getForLandlord",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Leases\\Repositories\\LeaseRepository@getForLandlord. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_fd76993d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_084",
        "fqmn": "App\\Domains\\Payments\\Services\\TransferService@getTransfersForLandlord",
        "canonical": "App\\Domains\\Leases\\Repositories\\LeaseRepository@getForLandlord",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Leases\\Repositories\\LeaseRepository@getForLandlord. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_cba153ee",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_084",
        "fqmn": "App\\Domains\\Properties\\Repositories\\PropertyRepository@getForLandlord",
        "canonical": "App\\Domains\\Leases\\Repositories\\LeaseRepository@getForLandlord",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Leases\\Repositories\\LeaseRepository@getForLandlord. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_daebba69",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_085",
        "fqmn": "App\\Domains\\Leases\\Repositories\\RentCycleRepository@getForTenant",
        "canonical": "App\\Domains\\Leases\\Repositories\\LeaseRepository@getForTenant",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Leases\\Repositories\\LeaseRepository@getForTenant. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a994f00e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_085",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@getForTenant",
        "canonical": "App\\Domains\\Leases\\Repositories\\LeaseRepository@getForTenant",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Leases\\Repositories\\LeaseRepository@getForTenant. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_3ded714d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_086",
        "fqmn": "App\\Domains\\Reminders\\Repositories\\ReminderRepository@getByStatusForOrganization",
        "canonical": "App\\Domains\\Leases\\Repositories\\RentCycleRepository@getByStatusForOrganization",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Leases\\Repositories\\RentCycleRepository@getByStatusForOrganization. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e802d39d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_087",
        "fqmn": "App\\Domains\\Maintenance\\Actions\\ExtendSlaAction@__construct",
        "canonical": "App\\Domains\\Maintenance\\Actions\\AssignSlaToTicketAction@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Maintenance\\Actions\\AssignSlaToTicketAction@__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_ff9dd17f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_087",
        "fqmn": "App\\Domains\\Maintenance\\Actions\\PauseSlaAction@__construct",
        "canonical": "App\\Domains\\Maintenance\\Actions\\AssignSlaToTicketAction@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Maintenance\\Actions\\AssignSlaToTicketAction@__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_11962be4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_087",
        "fqmn": "App\\Domains\\Maintenance\\Actions\\ResumeSlaAction@__construct",
        "canonical": "App\\Domains\\Maintenance\\Actions\\AssignSlaToTicketAction@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Maintenance\\Actions\\AssignSlaToTicketAction@__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_e484afa3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_088",
        "fqmn": "App\\Domains\\Maintenance\\Notifications\\TenantTicketConfirmationNotification@sendTwilioNotification",
        "canonical": "App\\Domains\\Maintenance\\Notifications\\LandlordApprovalRequestNotification@sendTwilioNotification",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Maintenance\\Notifications\\LandlordApprovalRequestNotification@sendTwilioNotification. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_86242172",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_089",
        "fqmn": "App\\Domains\\Outreach\\Jobs\\SendWhatsAppMessageJob@__construct",
        "canonical": "App\\Domains\\Outreach\\Jobs\\FetchDeliveryStatusJob@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Outreach\\Jobs\\FetchDeliveryStatusJob@__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_9dda0fcf",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_090",
        "fqmn": "App\\Domains\\Outreach\\Services\\AudienceHealthService@getInvalidNumbers",
        "canonical": "App\\Domains\\Outreach\\Services\\AudienceHealthService@getBlockedOptOut",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Outreach\\Services\\AudienceHealthService@getBlockedOptOut. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_2dbcc5b0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_090",
        "fqmn": "App\\Domains\\Outreach\\Services\\AudienceHealthService@getValidNumbers",
        "canonical": "App\\Domains\\Outreach\\Services\\AudienceHealthService@getBlockedOptOut",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Outreach\\Services\\AudienceHealthService@getBlockedOptOut. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_3590470a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_091",
        "fqmn": "App\\Domains\\Outreach\\Services\\BillingService@getConversationTypes",
        "canonical": "App\\Domains\\Outreach\\Services\\BillingService@getCampaignCostBreakdown",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Outreach\\Services\\BillingService@getCampaignCostBreakdown. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_c41b037c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_092",
        "fqmn": "App\\Domains\\Outreach\\Services\\DeliveryStatusService@getRead",
        "canonical": "App\\Domains\\Outreach\\Services\\DeliveryStatusService@getDelivered",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Outreach\\Services\\DeliveryStatusService@getDelivered. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_65e42a49",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_092",
        "fqmn": "App\\Domains\\Outreach\\Services\\DeliveryStatusService@getUndelivered",
        "canonical": "App\\Domains\\Outreach\\Services\\DeliveryStatusService@getDelivered",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Outreach\\Services\\DeliveryStatusService@getDelivered. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ee4ed5f7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_092",
        "fqmn": "App\\Domains\\Outreach\\Services\\RepliesService@getAIClassifiedReplies",
        "canonical": "App\\Domains\\Outreach\\Services\\DeliveryStatusService@getDelivered",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Outreach\\Services\\DeliveryStatusService@getDelivered. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_2677244d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_092",
        "fqmn": "App\\Domains\\Outreach\\Services\\RepliesService@getAllReplies",
        "canonical": "App\\Domains\\Outreach\\Services\\DeliveryStatusService@getDelivered",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Outreach\\Services\\DeliveryStatusService@getDelivered. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8934e5b5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_092",
        "fqmn": "App\\Domains\\Outreach\\Services\\RepliesService@getFollowUpRequired",
        "canonical": "App\\Domains\\Outreach\\Services\\DeliveryStatusService@getDelivered",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Outreach\\Services\\DeliveryStatusService@getDelivered. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8ead4ecf",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_092",
        "fqmn": "App\\Domains\\Outreach\\Services\\RepliesService@getInterested",
        "canonical": "App\\Domains\\Outreach\\Services\\DeliveryStatusService@getDelivered",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Outreach\\Services\\DeliveryStatusService@getDelivered. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_c363bdca",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_092",
        "fqmn": "App\\Domains\\Outreach\\Services\\RepliesService@getNotInterested",
        "canonical": "App\\Domains\\Outreach\\Services\\DeliveryStatusService@getDelivered",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Outreach\\Services\\DeliveryStatusService@getDelivered. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_cb1be56f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_093",
        "fqmn": "App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController@handle",
        "canonical": "App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController@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_cb1be56f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_093",
        "fqmn": "App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController@handle",
        "canonical": "App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController@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_9af269cc",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_094",
        "fqmn": "App\\Domains\\Payments\\Models\\PaymentRequest@tenant",
        "canonical": "App\\Domains\\Payments\\Models\\PaymentRequest@landlord",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Payments\\Models\\PaymentRequest@landlord. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_df604cdf",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_094",
        "fqmn": "App\\Domains\\Payments\\Models\\PaymentRequest@user",
        "canonical": "App\\Domains\\Payments\\Models\\PaymentRequest@landlord",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Payments\\Models\\PaymentRequest@landlord. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8da5419d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_095",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@getByStatusForOrganization",
        "canonical": "App\\Domains\\Payments\\Repositories\\PaymentRepository@getByStatusForOrganization",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Payments\\Repositories\\PaymentRepository@getByStatusForOrganization. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1aa76fe0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_096",
        "fqmn": "App\\Domains\\Reminders\\Repositories\\ReminderRepository@getForTenant",
        "canonical": "App\\Domains\\Payments\\Repositories\\PaymentRepository@getForTenant",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Payments\\Repositories\\PaymentRepository@getForTenant. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ebffed96",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_097",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentProof\\OpenAIPaymentProofAnalyzer@analyze",
        "canonical": "App\\Domains\\Payments\\Services\\PaymentProof\\ManualReviewFallbackAnalyzer@analyze",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Payments\\Services\\PaymentProof\\ManualReviewFallbackAnalyzer@analyze. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_6a2e6979",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_098",
        "fqmn": "App\\Domains\\People\\Repositories\\TenantRepository@emailExistsInOrganization",
        "canonical": "App\\Domains\\People\\Repositories\\LandlordRepository@emailExistsInOrganization",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\People\\Repositories\\LandlordRepository@emailExistsInOrganization. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_2536d7d9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_099",
        "fqmn": "App\\Domains\\Reminders\\Repositories\\ReminderRepository@paginatedForOrganization",
        "canonical": "App\\Domains\\People\\Repositories\\LandlordRepository@paginatedForOrganization",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\People\\Repositories\\LandlordRepository@paginatedForOrganization. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_6d7daaa9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_100",
        "fqmn": "App\\Domains\\Properties\\Repositories\\PropertyRepository@allForOrganization",
        "canonical": "App\\Domains\\People\\Repositories\\TenantRepository@allForOrganization",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\People\\Repositories\\TenantRepository@allForOrganization. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_18220514",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_100",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@allForOrganization",
        "canonical": "App\\Domains\\People\\Repositories\\TenantRepository@allForOrganization",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\People\\Repositories\\TenantRepository@allForOrganization. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_992b8c51",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_101",
        "fqmn": "App\\Services\\Outreach\\AnalyticsService@getAttemptsPerCountry",
        "canonical": "App\\Domains\\Properties\\Repositories\\PropertyRepository@getStatisticsForOrganization",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Properties\\Repositories\\PropertyRepository@getStatisticsForOrganization. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_c9cef304",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_101",
        "fqmn": "App\\Services\\OutreachAI\\ABTestingService@getExperimentalWeights",
        "canonical": "App\\Domains\\Properties\\Repositories\\PropertyRepository@getStatisticsForOrganization",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Properties\\Repositories\\PropertyRepository@getStatisticsForOrganization. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_86059f2c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_101",
        "fqmn": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@analyzeAppointmentImpact",
        "canonical": "App\\Domains\\Properties\\Repositories\\PropertyRepository@getStatisticsForOrganization",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Properties\\Repositories\\PropertyRepository@getStatisticsForOrganization. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_31834eee",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_101",
        "fqmn": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@analyzeBudgetImpact",
        "canonical": "App\\Domains\\Properties\\Repositories\\PropertyRepository@getStatisticsForOrganization",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Properties\\Repositories\\PropertyRepository@getStatisticsForOrganization. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_c460de58",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_101",
        "fqmn": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@analyzeDiscountImpact",
        "canonical": "App\\Domains\\Properties\\Repositories\\PropertyRepository@getStatisticsForOrganization",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Properties\\Repositories\\PropertyRepository@getStatisticsForOrganization. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_249c86d2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_101",
        "fqmn": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@analyzeObjectionImpact",
        "canonical": "App\\Domains\\Properties\\Repositories\\PropertyRepository@getStatisticsForOrganization",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Properties\\Repositories\\PropertyRepository@getStatisticsForOrganization. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8b55fb91",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_101",
        "fqmn": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@analyzeObjectionInfluenceOnClosing",
        "canonical": "App\\Domains\\Properties\\Repositories\\PropertyRepository@getStatisticsForOrganization",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Properties\\Repositories\\PropertyRepository@getStatisticsForOrganization. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7dd7862d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_101",
        "fqmn": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@analyzeTrialImpact",
        "canonical": "App\\Domains\\Properties\\Repositories\\PropertyRepository@getStatisticsForOrganization",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Properties\\Repositories\\PropertyRepository@getStatisticsForOrganization. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1781310a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_102",
        "fqmn": "App\\Domains\\Properties\\Services\\UnitCompositionService@getVisualLayout",
        "canonical": "App\\Domains\\Properties\\Services\\UnitCompositionService@getCompositionText",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Properties\\Services\\UnitCompositionService@getCompositionText. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_c0eb27b8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_103",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderService@cancelRemindersForRentCycle",
        "canonical": "App\\Domains\\Reminders\\Actions\\CancelRemindersForRentCycleAction@execute",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Reminders\\Actions\\CancelRemindersForRentCycleAction@execute. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_6a199e55",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_104",
        "fqmn": "App\\Domains\\Reminders\\Actions\\ProcessDueRemindersAction@__construct",
        "canonical": "App\\Domains\\Reminders\\Actions\\MapReminderTypeToTemplateTypeAction@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Reminders\\Actions\\MapReminderTypeToTemplateTypeAction@__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_872b501b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_104",
        "fqmn": "App\\Domains\\Reminders\\Actions\\ScheduleRemindersForRentCycleAction@__construct",
        "canonical": "App\\Domains\\Reminders\\Actions\\MapReminderTypeToTemplateTypeAction@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Reminders\\Actions\\MapReminderTypeToTemplateTypeAction@__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_81b9d43a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_105",
        "fqmn": "App\\Jobs\\Outreach\\ProcessOutreachInboundMessageJob@middleware",
        "canonical": "App\\Domains\\Reminders\\Jobs\\SendReminderJob@tags",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Reminders\\Jobs\\SendReminderJob@tags. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a954caa4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_105",
        "fqmn": "App\\Jobs\\Outreach\\SendFollowUpMessageJob@tags",
        "canonical": "App\\Domains\\Reminders\\Jobs\\SendReminderJob@tags",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Reminders\\Jobs\\SendReminderJob@tags. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_21de770c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_105",
        "fqmn": "App\\Jobs\\OutreachAI\\RunChurnPreventionCheckJob@tags",
        "canonical": "App\\Domains\\Reminders\\Jobs\\SendReminderJob@tags",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Reminders\\Jobs\\SendReminderJob@tags. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_4548af04",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_105",
        "fqmn": "App\\Jobs\\OutreachAI\\SendReengagementMessageJob@tags",
        "canonical": "App\\Domains\\Reminders\\Jobs\\SendReminderJob@tags",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Reminders\\Jobs\\SendReminderJob@tags. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8b85f544",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_105",
        "fqmn": "App\\Jobs\\ProcessTapWebhookJob@backoff",
        "canonical": "App\\Domains\\Reminders\\Jobs\\SendReminderJob@tags",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Reminders\\Jobs\\SendReminderJob@tags. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1b5d9459",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_106",
        "fqmn": "App\\Domains\\Reminders\\Repositories\\ReminderRepository@countByStatusForOrganization",
        "canonical": "App\\Domains\\Reminders\\Repositories\\ReminderRepository@countByChannelForOrganization",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Reminders\\Repositories\\ReminderRepository@countByChannelForOrganization. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_091044b1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_107",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderMonitoringService@logSent",
        "canonical": "App\\Domains\\Reminders\\Services\\ReminderMonitoringService@logScheduled",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Reminders\\Services\\ReminderMonitoringService@logScheduled. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8191d0e1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_108",
        "fqmn": "App\\Listeners\\CancelRemindersOnPayment@__construct",
        "canonical": "App\\Domains\\Reminders\\Services\\ReminderScheduler@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Reminders\\Services\\ReminderScheduler@__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_a8e583c5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_109",
        "fqmn": "App\\Services\\PropertyDocumentService@getStorageStatistics",
        "canonical": "App\\Domains\\Reminders\\Services\\ReminderService@getReminderStatistics",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Reminders\\Services\\ReminderService@getReminderStatistics. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_bfcd0db4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_109",
        "fqmn": "App\\Services\\UsageMeterService@getUsageForOrganization",
        "canonical": "App\\Domains\\Reminders\\Services\\ReminderService@getReminderStatistics",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Reminders\\Services\\ReminderService@getReminderStatistics. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_13800a3a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_110",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getAgencyPricingExplanation",
        "canonical": "App\\Domains\\Reminders\\Services\\ReminderService@mapReminderTypeToTemplateType",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Reminders\\Services\\ReminderService@mapReminderTypeToTemplateType. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_5c40aa18",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_110",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getCounterProposalTemplate",
        "canonical": "App\\Domains\\Reminders\\Services\\ReminderService@mapReminderTypeToTemplateType",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Reminders\\Services\\ReminderService@mapReminderTypeToTemplateType. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e60d4755",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_111",
        "fqmn": "App\\Domains\\Reports\\Repositories\\AnalyticsRepository@getRentCycleCountsByStatus",
        "canonical": "App\\Domains\\Reports\\Repositories\\AnalyticsRepository@getPaymentTotalsByStatus",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Reports\\Repositories\\AnalyticsRepository@getPaymentTotalsByStatus. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_2200a00a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_112",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportExportService@exportFinancialSummary",
        "canonical": "App\\Domains\\Reports\\Services\\DashboardService@getQuickStats",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Reports\\Services\\DashboardService@getQuickStats. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d30fa5b2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_112",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportService@getOccupancyTrends",
        "canonical": "App\\Domains\\Reports\\Services\\DashboardService@getQuickStats",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Reports\\Services\\DashboardService@getQuickStats. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_34f6c5ab",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_112",
        "fqmn": "App\\Services\\SubscriptionService@getEffectiveLimits",
        "canonical": "App\\Domains\\Reports\\Services\\DashboardService@getQuickStats",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Reports\\Services\\DashboardService@getQuickStats. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_057c252c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_113",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportExportService@exportRentRoll",
        "canonical": "App\\Domains\\Reports\\Services\\ReportExportService@exportOverdueReport",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Reports\\Services\\ReportExportService@exportOverdueReport. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_6d7c403a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_114",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyInvoicesResource@table",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@table",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@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_abc75117",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_115",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@canViewAny",
        "canonical": "App\\Domains\\SuperAdmin\\Resources\\AuditLogResource@canViewAny",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\SuperAdmin\\Resources\\AuditLogResource@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_cb9bd286",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_115",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource@canViewAny",
        "canonical": "App\\Domains\\SuperAdmin\\Resources\\AuditLogResource@canViewAny",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\SuperAdmin\\Resources\\AuditLogResource@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_bb513cd8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_115",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource@canViewAny",
        "canonical": "App\\Domains\\SuperAdmin\\Resources\\AuditLogResource@canViewAny",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\SuperAdmin\\Resources\\AuditLogResource@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_78b50261",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_115",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@canViewAny",
        "canonical": "App\\Domains\\SuperAdmin\\Resources\\AuditLogResource@canViewAny",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\SuperAdmin\\Resources\\AuditLogResource@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_29df51db",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_116",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@form",
        "canonical": "App\\Domains\\SuperAdmin\\Resources\\ClickLogResource@form",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\SuperAdmin\\Resources\\ClickLogResource@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_2b20c43e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_117",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@table",
        "canonical": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource\\RelationManagers\\UsagesRelationManager@table",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource\\RelationManagers\\UsagesRelationManager@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_c48d6c89",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_118",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource\\Pages\\ManageTiers@getTitle",
        "canonical": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@getPluralModelLabel",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@getPluralModelLabel. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_edd5498c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_119",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyLeaseResource@canEdit",
        "canonical": "App\\Domains\\Tenants\\Resources\\MyLeaseResource@canDelete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Tenants\\Resources\\MyLeaseResource@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_76b3ed6e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_119",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@canDelete",
        "canonical": "App\\Domains\\Tenants\\Resources\\MyLeaseResource@canDelete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Tenants\\Resources\\MyLeaseResource@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_565fe10d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_119",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@canEdit",
        "canonical": "App\\Domains\\Tenants\\Resources\\MyLeaseResource@canDelete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Tenants\\Resources\\MyLeaseResource@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_5bf71951",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_119",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyRentCyclesResource@canDelete",
        "canonical": "App\\Domains\\Tenants\\Resources\\MyLeaseResource@canDelete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Tenants\\Resources\\MyLeaseResource@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_0c7e338a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_119",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyRentCyclesResource@canEdit",
        "canonical": "App\\Domains\\Tenants\\Resources\\MyLeaseResource@canDelete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Tenants\\Resources\\MyLeaseResource@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_e973cf34",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_120",
        "fqmn": "App\\Domains\\Tenants\\Resources\\MyPaymentsResource@canView",
        "canonical": "App\\Domains\\Tenants\\Resources\\MyLeaseResource@canView",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Tenants\\Resources\\MyLeaseResource@canView. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9c14cff2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_121",
        "fqmn": "App\\Http\\Controllers\\Landing\\PlansController@index",
        "canonical": "App\\Http\\Controllers\\Admin\\PlanVersionController@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Admin\\PlanVersionController@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_e0194d05",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_122",
        "fqmn": "App\\Http\\Controllers\\AgencyWhatsAppProfileController@show",
        "canonical": "App\\Http\\Controllers\\AgencyWhatsAppProfileController@show",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\AgencyWhatsAppProfileController@show. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e0194d05",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_122",
        "fqmn": "App\\Http\\Controllers\\AgencyWhatsAppProfileController@show",
        "canonical": "App\\Http\\Controllers\\AgencyWhatsAppProfileController@show",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\AgencyWhatsAppProfileController@show. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e73e444f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_123",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceDigestPreferencesController@show",
        "canonical": "App\\Http\\Controllers\\Api\\MaintenanceDigestPreferencesController@show",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\MaintenanceDigestPreferencesController@show. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_24555554",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_124",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceMetricsController@index",
        "canonical": "App\\Http\\Controllers\\Api\\MaintenanceMetricsController@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\MaintenanceMetricsController@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_d55d1f0b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_124",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceSlaController@index",
        "canonical": "App\\Http\\Controllers\\Api\\MaintenanceMetricsController@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\MaintenanceMetricsController@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_d55d1f0b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_124",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceSlaController@index",
        "canonical": "App\\Http\\Controllers\\Api\\MaintenanceMetricsController@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\MaintenanceMetricsController@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_72fd1309",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_125",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceSlaController@update",
        "canonical": "App\\Http\\Controllers\\Api\\MaintenanceSlaController@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\MaintenanceSlaController@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_258f42c4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_126",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@approve",
        "canonical": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@approve",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\MaintenanceTicketController@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_2acb31a9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@suggestions",
        "canonical": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@slaLogs",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\MaintenanceTicketController@slaLogs. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_facdcb87",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_128",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileForgotPasswordController@sendResetLink",
        "canonical": "App\\Http\\Controllers\\Api\\Mobile\\MobileForgotPasswordController@sendResetLink",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Mobile\\MobileForgotPasswordController@sendResetLink. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8a5d010c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_129",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobilePropertyController@index",
        "canonical": "App\\Http\\Controllers\\Api\\Mobile\\MobilePeopleController@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Mobile\\MobilePeopleController@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_e8eecf76",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_130",
        "fqmn": "App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController@getLatest",
        "canonical": "App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController@getLatest",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController@getLatest. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e6b9c80d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_131",
        "fqmn": "App\\Http\\Controllers\\AppController@index",
        "canonical": "App\\Http\\Controllers\\AppController@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\AppController@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_c0374cdf",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_131",
        "fqmn": "App\\Http\\Controllers\\Auth\\PasswordResetController@showForgotPassword",
        "canonical": "App\\Http\\Controllers\\AppController@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\AppController@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_fc1de989",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_131",
        "fqmn": "App\\Http\\Controllers\\Auth\\VerificationController@showResendForm",
        "canonical": "App\\Http\\Controllers\\AppController@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\AppController@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_fc1de989",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_131",
        "fqmn": "App\\Http\\Controllers\\Auth\\VerificationController@showResendForm",
        "canonical": "App\\Http\\Controllers\\AppController@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\AppController@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_4817b898",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_132",
        "fqmn": "App\\Http\\Controllers\\Auth\\AuthController@login",
        "canonical": "App\\Http\\Controllers\\Auth\\AuthController@login",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\AuthController@login. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0a5742f0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_133",
        "fqmn": "App\\Http\\Controllers\\Auth\\VerificationController@resend",
        "canonical": "App\\Http\\Controllers\\Auth\\VerificationController@resend",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\VerificationController@resend. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_5e62cea7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_134",
        "fqmn": "App\\Http\\Controllers\\Auth\\VerificationController@verify",
        "canonical": "App\\Http\\Controllers\\Auth\\VerificationController@verify",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\VerificationController@verify. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_dd441bcd",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_135",
        "fqmn": "App\\Http\\Controllers\\LandingController@index",
        "canonical": "App\\Http\\Controllers\\LandingController@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\LandingController@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_e6289ff0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_136",
        "fqmn": "App\\Http\\Controllers\\LeadController@store",
        "canonical": "App\\Http\\Controllers\\LeadController@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\LeadController@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_009c7478",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_137",
        "fqmn": "App\\Http\\Controllers\\LocaleController@post",
        "canonical": "App\\Http\\Controllers\\LocaleController@post",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\LocaleController@post. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_6f30eaf9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_138",
        "fqmn": "App\\Http\\Controllers\\LocaleController@switch",
        "canonical": "App\\Http\\Controllers\\LocaleController@switch",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\LocaleController@switch. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a495024f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_139",
        "fqmn": "App\\Http\\Controllers\\OrgWhatsAppOnboardingController@start",
        "canonical": "App\\Http\\Controllers\\OrgWhatsAppOnboardingController@start",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\OrgWhatsAppOnboardingController@start. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_32f58340",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_140",
        "fqmn": "App\\Http\\Controllers\\Outreach\\FollowUpMetricsController@priorities",
        "canonical": "App\\Http\\Controllers\\Outreach\\FollowUpMetricsController@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Outreach\\FollowUpMetricsController@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_13171675",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_141",
        "fqmn": "App\\Http\\Controllers\\Testing\\DashboardPerformanceIndicatorsController@__invoke",
        "canonical": "App\\Http\\Controllers\\Testing\\DashboardPerformanceIndicatorsController@__invoke",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Testing\\DashboardPerformanceIndicatorsController@__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_538356e5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_141",
        "fqmn": "App\\Http\\Controllers\\Testing\\DashboardQuickStatsController@__invoke",
        "canonical": "App\\Http\\Controllers\\Testing\\DashboardPerformanceIndicatorsController@__invoke",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Testing\\DashboardPerformanceIndicatorsController@__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_538356e5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_141",
        "fqmn": "App\\Http\\Controllers\\Testing\\DashboardQuickStatsController@__invoke",
        "canonical": "App\\Http\\Controllers\\Testing\\DashboardPerformanceIndicatorsController@__invoke",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Testing\\DashboardPerformanceIndicatorsController@__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_2925b0e2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_142",
        "fqmn": "App\\Http\\Controllers\\Testing\\LandlordOverviewStatsController@__invoke",
        "canonical": "App\\Http\\Controllers\\Testing\\LandlordOverviewStatsController@__invoke",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Testing\\LandlordOverviewStatsController@__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_267a3ca9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_143",
        "fqmn": "App\\Http\\Controllers\\Testing\\OutreachConversationInboundController@store",
        "canonical": "App\\Http\\Controllers\\Testing\\OutreachConversationInboundController@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Testing\\OutreachConversationInboundController@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_ee67ed71",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_144",
        "fqmn": "App\\Http\\Controllers\\Testing\\OutreachKnowledgeValidateController@__invoke",
        "canonical": "App\\Http\\Controllers\\Testing\\OutreachKnowledgeValidateController@__invoke",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Testing\\OutreachKnowledgeValidateController@__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_5305ea7c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_145",
        "fqmn": "App\\Http\\Controllers\\Testing\\OutreachPricingSuggestController@__invoke",
        "canonical": "App\\Http\\Controllers\\Testing\\OutreachPricingSuggestController@__invoke",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Testing\\OutreachPricingSuggestController@__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_4e4befb7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_146",
        "fqmn": "App\\Http\\Controllers\\Testing\\RecordAnonymousDiscountCodeUsageController@__invoke",
        "canonical": "App\\Http\\Controllers\\Testing\\RecordAnonymousDiscountCodeUsageController@__invoke",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Testing\\RecordAnonymousDiscountCodeUsageController@__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_c7727f0e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_147",
        "fqmn": "App\\Http\\Controllers\\Testing\\RecordSubscriptionDiscountCodeUsageController@__invoke",
        "canonical": "App\\Http\\Controllers\\Testing\\RecordSubscriptionDiscountCodeUsageController@__invoke",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Testing\\RecordSubscriptionDiscountCodeUsageController@__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_ddb14191",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_148",
        "fqmn": "App\\Http\\Controllers\\VerificationController@start",
        "canonical": "App\\Http\\Controllers\\VerificationController@start",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\VerificationController@start. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_049e19f3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_149",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\Dialog360StatusWebhookController@handle",
        "canonical": "App\\Http\\Controllers\\Webhooks\\Dialog360StatusWebhookController@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Webhooks\\Dialog360StatusWebhookController@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_aa6d2914",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_149",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\TwilioWebhookController@status",
        "canonical": "App\\Http\\Controllers\\Webhooks\\Dialog360StatusWebhookController@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Webhooks\\Dialog360StatusWebhookController@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_c992cdc3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_150",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\Dialog360WebhookController@handle",
        "canonical": "App\\Http\\Controllers\\Webhooks\\Dialog360WebhookController@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Webhooks\\Dialog360WebhookController@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_18d13b72",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_151",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\TapWebhookController@handle",
        "canonical": "App\\Http\\Controllers\\Webhooks\\TapWebhookController@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Webhooks\\TapWebhookController@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_bfc85ef3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_152",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\TwilioWebhookController@inbound",
        "canonical": "App\\Http\\Controllers\\Webhooks\\TwilioWebhookController@inbound",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Webhooks\\TwilioWebhookController@inbound. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_6f3316eb",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_153",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\ZeptoWebhookController@handleBounce",
        "canonical": "App\\Http\\Controllers\\Webhooks\\ZeptoWebhookController@handleBounce",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Webhooks\\ZeptoWebhookController@handleBounce. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_837a0dea",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_154",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\ZohoWebhookController@handleError",
        "canonical": "App\\Http\\Controllers\\Webhooks\\ZohoWebhookController@handleCustomer",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Webhooks\\ZohoWebhookController@handleCustomer. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1b34545c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\Admin\\StorePlanVersionFeatureRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_3e8e1aee",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\Admin\\StorePlanVersionRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_59a94954",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\Admin\\UpdatePlanVersionFeatureRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_9ef9e676",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\Admin\\UpdatePlanVersionRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_a25587e6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\Auth\\LoginRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_c18b6d9c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\Auth\\RegisterRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_df5ee9f7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\Auth\\ResendVerificationRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_6f357093",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\Auth\\ResetPasswordRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_42f13557",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\Auth\\SendPasswordResetLinkRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_108e1cdb",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\Gateway\\DeliveryStatusRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_17583823",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\Gateway\\HeartbeatRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_ecb0e3fc",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\Gateway\\RegisterGatewayRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_31368639",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\Leads\\StoreLeadRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_2b47ca91",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\Leases\\StoreLeaseRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_9106735f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\Leases\\TerminateLeaseRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_8ceb6771",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\Leases\\UpdateLeaseRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_5efb3837",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\Locale\\SetLocaleRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_626fca98",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\Maintenance\\AddCommentRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_75c2680f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\Maintenance\\ApproveTicketRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_f5fd6e82",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\Maintenance\\AssignLabourRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_dda5c4f5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\Maintenance\\AssignWorkerRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_48f2d7a1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\Maintenance\\UpdateTicketStatusRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_ccfe8bc5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\Maintenance\\UploadQuoteRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_85202b1e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\OrgDeductionSettings\\UpdateOrgDeductionSettingsRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_ba4a4260",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\Profile\\UpdateProfileRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_4928674c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\Properties\\GetPropertiesByTypeRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_207bd77a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\Properties\\GetPropertiesForLandlordRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_8c0e7908",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\Properties\\StorePropertyRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_dc1a5e10",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\Properties\\UpdatePropertyRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_b2998ce4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\Reminders\\GetRemindersByStatusRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_c8ff0a9f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\RentCycles\\BulkUpdateRentCycleRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_74ce5247",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\RentCycles\\UpdateRentCycleRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_31dfed84",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\Reports\\ExportCollectionReportRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_16f0dcb0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\Reports\\ExportOverdueReportRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_f9ae44ca",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\Reports\\ExportRentRollRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_2681dba3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\Subscriptions\\SubscribeRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_ad6f6211",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\Subscriptions\\TopUpRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_78719bde",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\Transfers\\FailTransferRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_74d0c32f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\Verification\\CheckVerificationRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_87416c0b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\Verification\\StartVerificationRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_9942b252",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\WhatsApp\\SelectPhoneNumberRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_1c5b8d4a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\WhatsApp\\StartOnboardingRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_73f948c8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\WhatsApp\\UpdateWhatsAppIntegrationRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_b52d5db9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Http\\Requests\\WhatsApp\\UpdateWhatsAppProfileRequest@authorize",
        "canonical": "App\\Http\\Requests\\AcceptInvitationRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AcceptInvitationRequest@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_3128d3d4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_156",
        "fqmn": "App\\Http\\Requests\\Files\\UploadFileRequest@authorize",
        "canonical": "App\\Http\\Requests\\Files\\BulkUploadRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\Files\\BulkUploadRequest@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_5f456320",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_156",
        "fqmn": "App\\Models\\OutreachAI\\HumanHandoffState@isAvailable",
        "canonical": "App\\Http\\Requests\\Files\\BulkUploadRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\Files\\BulkUploadRequest@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_7c8f8e5b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_157",
        "fqmn": "App\\Http\\Requests\\Payments\\StorePaymentRequest@rules",
        "canonical": "App\\Http\\Requests\\InvitationRequest@messages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\InvitationRequest@messages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_31f99af3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_157",
        "fqmn": "App\\Http\\Requests\\Payments\\UpdatePaymentRequest@rules",
        "canonical": "App\\Http\\Requests\\InvitationRequest@messages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\InvitationRequest@messages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_41de27c5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_157",
        "fqmn": "App\\Http\\Requests\\RentCycles\\BulkUpdateRentCycleRequest@rules",
        "canonical": "App\\Http\\Requests\\InvitationRequest@messages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\InvitationRequest@messages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d1c8bb65",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_157",
        "fqmn": "App\\Http\\Requests\\RentCycles\\UpdateRentCycleRequest@rules",
        "canonical": "App\\Http\\Requests\\InvitationRequest@messages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\InvitationRequest@messages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1d276e91",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_157",
        "fqmn": "App\\Http\\Requests\\Transfers\\BulkCompleteTransferRequest@rules",
        "canonical": "App\\Http\\Requests\\InvitationRequest@messages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\InvitationRequest@messages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d3cb68de",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_158",
        "fqmn": "App\\Http\\Requests\\People\\UpdateLandlordRequest@rules",
        "canonical": "App\\Http\\Requests\\Leases\\UpdateLeaseRequest@rules",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\Leases\\UpdateLeaseRequest@rules. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_5e214abc",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_158",
        "fqmn": "App\\Http\\Requests\\People\\UpdateTenantRequest@rules",
        "canonical": "App\\Http\\Requests\\Leases\\UpdateLeaseRequest@rules",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\Leases\\UpdateLeaseRequest@rules. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_86b652ec",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_158",
        "fqmn": "App\\Http\\Requests\\Properties\\UpdateUnitRequest@rules",
        "canonical": "App\\Http\\Requests\\Leases\\UpdateLeaseRequest@rules",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\Leases\\UpdateLeaseRequest@rules. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_b4d3fd83",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_159",
        "fqmn": "App\\Jobs\\SyncTapFeeToZoho@__construct",
        "canonical": "App\\Jobs\\Billing\\PushZohoSettlementPaymentJob@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Billing\\PushZohoSettlementPaymentJob@__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_724af4ea",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_159",
        "fqmn": "App\\Jobs\\SyncTapSettlementFeeToZoho@__construct",
        "canonical": "App\\Jobs\\Billing\\PushZohoSettlementPaymentJob@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Billing\\PushZohoSettlementPaymentJob@__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_3142edd8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_159",
        "fqmn": "App\\Jobs\\SyncTapSettlementPaymentToZoho@__construct",
        "canonical": "App\\Jobs\\Billing\\PushZohoSettlementPaymentJob@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Billing\\PushZohoSettlementPaymentJob@__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_b3400b52",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_159",
        "fqmn": "App\\Jobs\\SyncTapSettlementToZoho@__construct",
        "canonical": "App\\Jobs\\Billing\\PushZohoSettlementPaymentJob@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Billing\\PushZohoSettlementPaymentJob@__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_3aa46435",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_160",
        "fqmn": "App\\Jobs\\Chat\\ProcessAIMessageJob@failed",
        "canonical": "App\\Jobs\\Chat\\InboundMessageJob@failed",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Chat\\InboundMessageJob@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_fc43c9a0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_160",
        "fqmn": "App\\Jobs\\Chat\\SendOutboundMessageJob@failed",
        "canonical": "App\\Jobs\\Chat\\InboundMessageJob@failed",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Chat\\InboundMessageJob@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_1ca2da19",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_161",
        "fqmn": "App\\Jobs\\LogClickJob@backoff",
        "canonical": "App\\Jobs\\Chat\\SendOutboundMessageJob@backoff",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Chat\\SendOutboundMessageJob@backoff. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d3d032f1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_161",
        "fqmn": "App\\Jobs\\Outreach\\SendCampaignMessageJob@middleware",
        "canonical": "App\\Jobs\\Chat\\SendOutboundMessageJob@backoff",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Chat\\SendOutboundMessageJob@backoff. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_68835009",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_161",
        "fqmn": "App\\Jobs\\Outreach\\SendFollowUpMessageJob@backoff",
        "canonical": "App\\Jobs\\Chat\\SendOutboundMessageJob@backoff",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Chat\\SendOutboundMessageJob@backoff. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_fefd30ea",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_161",
        "fqmn": "App\\Jobs\\OutreachAI\\SendAiWhatsappReplyJob@backoff",
        "canonical": "App\\Jobs\\Chat\\SendOutboundMessageJob@backoff",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Chat\\SendOutboundMessageJob@backoff. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_60f3b4a5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_161",
        "fqmn": "App\\Jobs\\OutreachAI\\SendReengagementMessageJob@backoff",
        "canonical": "App\\Jobs\\Chat\\SendOutboundMessageJob@backoff",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Chat\\SendOutboundMessageJob@backoff. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_5e99b280",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_161",
        "fqmn": "App\\Jobs\\ProcessDunningRetryJob@tags",
        "canonical": "App\\Jobs\\Chat\\SendOutboundMessageJob@backoff",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Chat\\SendOutboundMessageJob@backoff. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_5abfc531",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_162",
        "fqmn": "App\\Jobs\\OutreachAI\\HandleObjectionJob@tags",
        "canonical": "App\\Jobs\\Dunning\\RunDunningAttemptJob@tags",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Dunning\\RunDunningAttemptJob@tags. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0020acc4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_162",
        "fqmn": "App\\Jobs\\OutreachAI\\SendHumanHandoffNotificationJob@tags",
        "canonical": "App\\Jobs\\Dunning\\RunDunningAttemptJob@tags",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Dunning\\RunDunningAttemptJob@tags. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_cba225ee",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_162",
        "fqmn": "App\\Jobs\\OutreachAI\\SendScheduledAppointmentFollowupJob@tags",
        "canonical": "App\\Jobs\\Dunning\\RunDunningAttemptJob@tags",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Dunning\\RunDunningAttemptJob@tags. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0b7dbde9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_163",
        "fqmn": "App\\Jobs\\SendInvitationEmail@backoff",
        "canonical": "App\\Jobs\\Dunning\\RunDunningSweepJob@tags",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Dunning\\RunDunningSweepJob@tags. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d8b86fbd",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_163",
        "fqmn": "App\\Jobs\\SendReminderJob@backoff",
        "canonical": "App\\Jobs\\Dunning\\RunDunningSweepJob@tags",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Dunning\\RunDunningSweepJob@tags. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9d2f9beb",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_164",
        "fqmn": "App\\Jobs\\OutreachAI\\ProcessConversationAnalyticsJob@handle",
        "canonical": "App\\Jobs\\GenerateFunnelSnapshotJob@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\GenerateFunnelSnapshotJob@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_fd7780e2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_164",
        "fqmn": "App\\Jobs\\RetryTapWebhookJob@handle",
        "canonical": "App\\Jobs\\GenerateFunnelSnapshotJob@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\GenerateFunnelSnapshotJob@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_7e88cff1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_164",
        "fqmn": "App\\Jobs\\SendTransferNotification@handle",
        "canonical": "App\\Jobs\\GenerateFunnelSnapshotJob@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\GenerateFunnelSnapshotJob@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_2c6a3301",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_165",
        "fqmn": "App\\Jobs\\ProcessTapWebhookJob@__construct",
        "canonical": "App\\Jobs\\Outreach\\SendCampaignMessageJob@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Outreach\\SendCampaignMessageJob@__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_13ddccd2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_166",
        "fqmn": "App\\Jobs\\OutreachAI\\RunOptimizationCycleJob@__construct",
        "canonical": "App\\Jobs\\OutreachAI\\RunDailyPredictionSweepJob@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\OutreachAI\\RunDailyPredictionSweepJob@__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_7c2ff34a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_167",
        "fqmn": "App\\Jobs\\ProcessWhatsAppWebhookJob@__construct",
        "canonical": "App\\Jobs\\ProcessWhatsAppTemplateUpdateJob@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\ProcessWhatsAppTemplateUpdateJob@__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_30c7f0a2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_168",
        "fqmn": "App\\Jobs\\SyncWhatsAppTemplateStatusJob@__construct",
        "canonical": "App\\Jobs\\PushWhatsAppTemplateJob@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\PushWhatsAppTemplateJob@__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_99c86cb3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_169",
        "fqmn": "App\\Jobs\\SendReminderJob@retryUntil",
        "canonical": "App\\Jobs\\SendInvitationEmail@retryUntil",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\SendInvitationEmail@retryUntil. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_cdc0a304",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_170",
        "fqmn": "App\\Listeners\\OnSubscriptionRefundedCreateCreditNote@__construct",
        "canonical": "App\\Listeners\\OnSubscriptionCapturedPostInvoice@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\OnSubscriptionCapturedPostInvoice@__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_a6e82233",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_171",
        "fqmn": "App\\Models\\ZohoWebhookEvent@isDuplicate",
        "canonical": "App\\Models\\WebhookEvent@isProcessed",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Models\\WebhookEvent@isProcessed. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_868fb07f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_172",
        "fqmn": "App\\Policies\\AdaptiveWeightPolicy@viewAny",
        "canonical": "App\\Policies\\AdaptiveWeightPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdaptiveWeightPolicy@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_6e29fed0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_172",
        "fqmn": "App\\Policies\\AuditLeakPolicy@create",
        "canonical": "App\\Policies\\AdaptiveWeightPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdaptiveWeightPolicy@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_6b4d30d5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_172",
        "fqmn": "App\\Policies\\AuditLeakPolicy@viewAny",
        "canonical": "App\\Policies\\AdaptiveWeightPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdaptiveWeightPolicy@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_fb89822d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_172",
        "fqmn": "App\\Policies\\ConversationPolicy@create",
        "canonical": "App\\Policies\\AdaptiveWeightPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdaptiveWeightPolicy@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_e4579f92",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_172",
        "fqmn": "App\\Policies\\ConversationPolicy@viewAny",
        "canonical": "App\\Policies\\AdaptiveWeightPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdaptiveWeightPolicy@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_ce84d3a3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_172",
        "fqmn": "App\\Policies\\EmailTemplatePolicy@viewAny",
        "canonical": "App\\Policies\\AdaptiveWeightPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdaptiveWeightPolicy@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_5058c98c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_172",
        "fqmn": "App\\Policies\\FollowUpPolicy@create",
        "canonical": "App\\Policies\\AdaptiveWeightPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdaptiveWeightPolicy@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_406414c1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_172",
        "fqmn": "App\\Policies\\FollowUpPolicy@viewAny",
        "canonical": "App\\Policies\\AdaptiveWeightPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdaptiveWeightPolicy@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_3eab9ba5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_172",
        "fqmn": "App\\Policies\\InvitationPolicy@create",
        "canonical": "App\\Policies\\AdaptiveWeightPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdaptiveWeightPolicy@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_e911c1ea",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_172",
        "fqmn": "App\\Policies\\InvitationPolicy@viewAny",
        "canonical": "App\\Policies\\AdaptiveWeightPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdaptiveWeightPolicy@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_e71f3fce",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_172",
        "fqmn": "App\\Policies\\LandlordPolicy@create",
        "canonical": "App\\Policies\\AdaptiveWeightPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdaptiveWeightPolicy@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_ccfb1b83",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_172",
        "fqmn": "App\\Policies\\LandlordPolicy@viewAny",
        "canonical": "App\\Policies\\AdaptiveWeightPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdaptiveWeightPolicy@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_bdebe90e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_172",
        "fqmn": "App\\Policies\\LearningSignalPolicy@create",
        "canonical": "App\\Policies\\AdaptiveWeightPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdaptiveWeightPolicy@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_0720bac3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_172",
        "fqmn": "App\\Policies\\LearningSignalPolicy@viewAny",
        "canonical": "App\\Policies\\AdaptiveWeightPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdaptiveWeightPolicy@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_9d37019a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_172",
        "fqmn": "App\\Policies\\MaintenanceSlaPolicy@viewAny",
        "canonical": "App\\Policies\\AdaptiveWeightPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdaptiveWeightPolicy@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_4c7f1ad1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_172",
        "fqmn": "App\\Policies\\MaintenanceTicketPolicy@create",
        "canonical": "App\\Policies\\AdaptiveWeightPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdaptiveWeightPolicy@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_3d8ad716",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_172",
        "fqmn": "App\\Policies\\MaintenanceTicketPolicy@viewAny",
        "canonical": "App\\Policies\\AdaptiveWeightPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdaptiveWeightPolicy@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_83ae13fe",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_172",
        "fqmn": "App\\Policies\\OrganizationPolicy@viewAny",
        "canonical": "App\\Policies\\AdaptiveWeightPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdaptiveWeightPolicy@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_d897066e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_172",
        "fqmn": "App\\Policies\\PaymentPolicy@create",
        "canonical": "App\\Policies\\AdaptiveWeightPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdaptiveWeightPolicy@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_f9782763",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_172",
        "fqmn": "App\\Policies\\PaymentPolicy@viewAny",
        "canonical": "App\\Policies\\AdaptiveWeightPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdaptiveWeightPolicy@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_65a2ecf8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_172",
        "fqmn": "App\\Policies\\PaymentProofPolicy@create",
        "canonical": "App\\Policies\\AdaptiveWeightPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdaptiveWeightPolicy@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_f863833d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_172",
        "fqmn": "App\\Policies\\PaymentProofPolicy@viewAny",
        "canonical": "App\\Policies\\AdaptiveWeightPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdaptiveWeightPolicy@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_e7ccd887",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_172",
        "fqmn": "App\\Policies\\PropertyPolicy@create",
        "canonical": "App\\Policies\\AdaptiveWeightPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdaptiveWeightPolicy@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_da72735c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_172",
        "fqmn": "App\\Policies\\PropertyPolicy@viewAny",
        "canonical": "App\\Policies\\AdaptiveWeightPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdaptiveWeightPolicy@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_8a361618",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_172",
        "fqmn": "App\\Policies\\ReminderPolicy@manageSettings",
        "canonical": "App\\Policies\\AdaptiveWeightPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdaptiveWeightPolicy@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_94047c58",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_172",
        "fqmn": "App\\Policies\\ReminderTemplatePolicy@create",
        "canonical": "App\\Policies\\AdaptiveWeightPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdaptiveWeightPolicy@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_97bc2cdd",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_172",
        "fqmn": "App\\Policies\\ReminderTemplatePolicy@viewAny",
        "canonical": "App\\Policies\\AdaptiveWeightPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdaptiveWeightPolicy@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_6639ba45",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_172",
        "fqmn": "App\\Policies\\SupportTicketPolicy@create",
        "canonical": "App\\Policies\\AdaptiveWeightPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdaptiveWeightPolicy@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_c8b663ca",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_172",
        "fqmn": "App\\Policies\\SupportTicketPolicy@viewAny",
        "canonical": "App\\Policies\\AdaptiveWeightPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdaptiveWeightPolicy@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_7606253c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_172",
        "fqmn": "App\\Policies\\TenantPolicy@create",
        "canonical": "App\\Policies\\AdaptiveWeightPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdaptiveWeightPolicy@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_d3be30f1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_172",
        "fqmn": "App\\Policies\\TenantPolicy@viewAny",
        "canonical": "App\\Policies\\AdaptiveWeightPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdaptiveWeightPolicy@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_20630888",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_172",
        "fqmn": "App\\Policies\\TransactionPolicy@create",
        "canonical": "App\\Policies\\AdaptiveWeightPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdaptiveWeightPolicy@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_907a0c8d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_172",
        "fqmn": "App\\Policies\\TransactionPolicy@viewAny",
        "canonical": "App\\Policies\\AdaptiveWeightPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdaptiveWeightPolicy@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_eacef16a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_172",
        "fqmn": "App\\Policies\\TransferPolicy@bulkComplete",
        "canonical": "App\\Policies\\AdaptiveWeightPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdaptiveWeightPolicy@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_2bad0992",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_172",
        "fqmn": "App\\Policies\\TransferPolicy@viewAny",
        "canonical": "App\\Policies\\AdaptiveWeightPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdaptiveWeightPolicy@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_92a0fc9f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_172",
        "fqmn": "App\\Policies\\UnitPolicy@viewAny",
        "canonical": "App\\Policies\\AdaptiveWeightPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdaptiveWeightPolicy@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_92954ef5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_173",
        "fqmn": "App\\Policies\\AdaptiveWeightPolicy@forceDelete",
        "canonical": "App\\Policies\\AdaptiveWeightPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdaptiveWeightPolicy@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_b724ea07",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_173",
        "fqmn": "App\\Policies\\AdaptiveWeightPolicy@restore",
        "canonical": "App\\Policies\\AdaptiveWeightPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdaptiveWeightPolicy@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_f76d680e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_173",
        "fqmn": "App\\Policies\\AdaptiveWeightPolicy@update",
        "canonical": "App\\Policies\\AdaptiveWeightPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdaptiveWeightPolicy@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_8342222a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_173",
        "fqmn": "App\\Policies\\AdaptiveWeightPolicy@view",
        "canonical": "App\\Policies\\AdaptiveWeightPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdaptiveWeightPolicy@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_8688b7ae",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_174",
        "fqmn": "App\\Policies\\AuditLeakPolicy@forceDelete",
        "canonical": "App\\Policies\\AuditLeakPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AuditLeakPolicy@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_46c3a108",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_174",
        "fqmn": "App\\Policies\\AuditLeakPolicy@restore",
        "canonical": "App\\Policies\\AuditLeakPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AuditLeakPolicy@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_f26c051b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_174",
        "fqmn": "App\\Policies\\AuditLeakPolicy@update",
        "canonical": "App\\Policies\\AuditLeakPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AuditLeakPolicy@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_eb81916b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_174",
        "fqmn": "App\\Policies\\AuditLeakPolicy@view",
        "canonical": "App\\Policies\\AuditLeakPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AuditLeakPolicy@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_8cb72e43",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_175",
        "fqmn": "App\\Policies\\BookingPolicy@convert",
        "canonical": "App\\Policies\\BookingPolicy@cancel",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\BookingPolicy@cancel. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7348d1f3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_176",
        "fqmn": "App\\Policies\\ConversationPolicy@forceDelete",
        "canonical": "App\\Policies\\ConversationPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\ConversationPolicy@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_a34d1fbd",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_176",
        "fqmn": "App\\Policies\\ConversationPolicy@restore",
        "canonical": "App\\Policies\\ConversationPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\ConversationPolicy@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_c32c4ea8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_176",
        "fqmn": "App\\Policies\\ConversationPolicy@update",
        "canonical": "App\\Policies\\ConversationPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\ConversationPolicy@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_d9446c54",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_176",
        "fqmn": "App\\Policies\\ConversationPolicy@view",
        "canonical": "App\\Policies\\ConversationPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\ConversationPolicy@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_1d07ebac",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_177",
        "fqmn": "App\\Policies\\FilePolicy@viewAny",
        "canonical": "App\\Policies\\FilePolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\FilePolicy@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_66e5f5e3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_177",
        "fqmn": "App\\Policies\\RentCyclePolicy@viewAny",
        "canonical": "App\\Policies\\FilePolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\FilePolicy@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_f558fd8d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_178",
        "fqmn": "App\\Policies\\FilePolicy@update",
        "canonical": "App\\Policies\\FilePolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\FilePolicy@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_3170c6a0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_179",
        "fqmn": "App\\Policies\\FollowUpPolicy@delete",
        "canonical": "App\\Policies\\FollowUpPolicy@cancel",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\FollowUpPolicy@cancel. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e491ddb9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_179",
        "fqmn": "App\\Policies\\FollowUpPolicy@forceDelete",
        "canonical": "App\\Policies\\FollowUpPolicy@cancel",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\FollowUpPolicy@cancel. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9f0d3d93",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_179",
        "fqmn": "App\\Policies\\FollowUpPolicy@restore",
        "canonical": "App\\Policies\\FollowUpPolicy@cancel",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\FollowUpPolicy@cancel. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_dc759aad",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_179",
        "fqmn": "App\\Policies\\FollowUpPolicy@trigger",
        "canonical": "App\\Policies\\FollowUpPolicy@cancel",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\FollowUpPolicy@cancel. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_2c2b2ba2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_179",
        "fqmn": "App\\Policies\\FollowUpPolicy@update",
        "canonical": "App\\Policies\\FollowUpPolicy@cancel",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\FollowUpPolicy@cancel. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ae188426",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_179",
        "fqmn": "App\\Policies\\FollowUpPolicy@view",
        "canonical": "App\\Policies\\FollowUpPolicy@cancel",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\FollowUpPolicy@cancel. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1eb03d4f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_180",
        "fqmn": "App\\Policies\\InvitationPolicy@update",
        "canonical": "App\\Policies\\InvitationPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\InvitationPolicy@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_3ffe0611",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_181",
        "fqmn": "App\\Policies\\LandlordPolicy@invite",
        "canonical": "App\\Policies\\LandlordPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\LandlordPolicy@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_99570fd9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_181",
        "fqmn": "App\\Policies\\LandlordPolicy@update",
        "canonical": "App\\Policies\\LandlordPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\LandlordPolicy@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_40e0e779",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_181",
        "fqmn": "App\\Policies\\LandlordPolicy@view",
        "canonical": "App\\Policies\\LandlordPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\LandlordPolicy@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_93dbd3b1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_182",
        "fqmn": "App\\Policies\\LearningSignalPolicy@forceDelete",
        "canonical": "App\\Policies\\LearningSignalPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\LearningSignalPolicy@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_7263f2db",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_182",
        "fqmn": "App\\Policies\\LearningSignalPolicy@restore",
        "canonical": "App\\Policies\\LearningSignalPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\LearningSignalPolicy@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_685c11ea",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_182",
        "fqmn": "App\\Policies\\LearningSignalPolicy@update",
        "canonical": "App\\Policies\\LearningSignalPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\LearningSignalPolicy@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_ea500bbe",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_182",
        "fqmn": "App\\Policies\\LearningSignalPolicy@view",
        "canonical": "App\\Policies\\LearningSignalPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\LearningSignalPolicy@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_c8fac343",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_183",
        "fqmn": "App\\Policies\\LeasePolicy@viewAny",
        "canonical": "App\\Policies\\LeasePolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\LeasePolicy@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_bdf56642",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_184",
        "fqmn": "App\\Policies\\LeasePolicy@update",
        "canonical": "App\\Policies\\LeasePolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\LeasePolicy@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_1b0574c6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_184",
        "fqmn": "App\\Policies\\LeasePolicy@view",
        "canonical": "App\\Policies\\LeasePolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\LeasePolicy@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_1591c43f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_185",
        "fqmn": "App\\Policies\\LeasePolicy@terminate",
        "canonical": "App\\Policies\\LeasePolicy@manageContracts",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\LeasePolicy@manageContracts. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1b739c15",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_186",
        "fqmn": "App\\Policies\\MaintenanceSlaPolicy@update",
        "canonical": "App\\Policies\\MaintenanceSlaPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\MaintenanceSlaPolicy@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_819a8b18",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_187",
        "fqmn": "App\\Policies\\MaintenanceTicketPolicy@uploadQuote",
        "canonical": "App\\Policies\\MaintenanceTicketPolicy@assignWorker",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\MaintenanceTicketPolicy@assignWorker. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_6bee46d4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_188",
        "fqmn": "App\\Policies\\MaintenanceTicketPolicy@reviewSuggestion",
        "canonical": "App\\Policies\\MaintenanceTicketPolicy@reopen",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\MaintenanceTicketPolicy@reopen. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_069e719a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_189",
        "fqmn": "App\\Policies\\MaintenanceTicketPolicy@view",
        "canonical": "App\\Policies\\MaintenanceTicketPolicy@update",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\MaintenanceTicketPolicy@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_66ac9a81",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_190",
        "fqmn": "App\\Policies\\MaintenanceTicketPolicy@viewSuggestions",
        "canonical": "App\\Policies\\MaintenanceTicketPolicy@viewSlaLogs",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\MaintenanceTicketPolicy@viewSlaLogs. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ba6f6949",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_191",
        "fqmn": "App\\Policies\\PaymentPolicy@restore",
        "canonical": "App\\Policies\\PaymentPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\PaymentPolicy@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_5caee70c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_191",
        "fqmn": "App\\Policies\\PaymentPolicy@update",
        "canonical": "App\\Policies\\PaymentPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\PaymentPolicy@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_7c9fe060",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_191",
        "fqmn": "App\\Policies\\PaymentPolicy@view",
        "canonical": "App\\Policies\\PaymentPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\PaymentPolicy@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_9400c0d8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_192",
        "fqmn": "App\\Policies\\PropertyPolicy@manageDocuments",
        "canonical": "App\\Policies\\PropertyPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\PropertyPolicy@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_b764f224",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_192",
        "fqmn": "App\\Policies\\PropertyPolicy@update",
        "canonical": "App\\Policies\\PropertyPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\PropertyPolicy@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_bd299e78",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_193",
        "fqmn": "App\\Policies\\ReminderPolicy@view",
        "canonical": "App\\Policies\\ReminderPolicy@cancel",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\ReminderPolicy@cancel. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_fd1d6511",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_194",
        "fqmn": "App\\Policies\\ReminderTemplatePolicy@view",
        "canonical": "App\\Policies\\ReminderTemplatePolicy@update",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\ReminderTemplatePolicy@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_5d664a95",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_195",
        "fqmn": "App\\Policies\\RentCyclePolicy@markPaid",
        "canonical": "App\\Policies\\RentCyclePolicy@markOverdue",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\RentCyclePolicy@markOverdue. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_74123e93",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_195",
        "fqmn": "App\\Policies\\RentCyclePolicy@update",
        "canonical": "App\\Policies\\RentCyclePolicy@markOverdue",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\RentCyclePolicy@markOverdue. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_b6ede3b3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_195",
        "fqmn": "App\\Policies\\RentCyclePolicy@view",
        "canonical": "App\\Policies\\RentCyclePolicy@markOverdue",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\RentCyclePolicy@markOverdue. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_6e7b0c47",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_196",
        "fqmn": "App\\Policies\\TenantPolicy@invite",
        "canonical": "App\\Policies\\TenantPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\TenantPolicy@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_4e10107f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_196",
        "fqmn": "App\\Policies\\TenantPolicy@update",
        "canonical": "App\\Policies\\TenantPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\TenantPolicy@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_64a2f1e7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_196",
        "fqmn": "App\\Policies\\TenantPolicy@view",
        "canonical": "App\\Policies\\TenantPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\TenantPolicy@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_918503e4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_197",
        "fqmn": "App\\Policies\\TransactionPolicy@update",
        "canonical": "App\\Policies\\TransactionPolicy@finalize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\TransactionPolicy@finalize. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_2885662c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_198",
        "fqmn": "App\\Policies\\TransferPolicy@update",
        "canonical": "App\\Policies\\TransferPolicy@complete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\TransferPolicy@complete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9a562180",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_198",
        "fqmn": "App\\Policies\\TransferPolicy@view",
        "canonical": "App\\Policies\\TransferPolicy@complete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\TransferPolicy@complete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8fc9301c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_199",
        "fqmn": "App\\Policies\\UnitPolicy@delete",
        "canonical": "App\\Policies\\UnitPolicy@assignTenant",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\UnitPolicy@assignTenant. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9a6e61ee",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_199",
        "fqmn": "App\\Policies\\UnitPolicy@update",
        "canonical": "App\\Policies\\UnitPolicy@assignTenant",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\UnitPolicy@assignTenant. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_2fb3320a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_199",
        "fqmn": "App\\Policies\\UnitPolicy@view",
        "canonical": "App\\Policies\\UnitPolicy@assignTenant",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\UnitPolicy@assignTenant. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_4f50e597",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_200",
        "fqmn": "App\\Repositories\\Outreach\\LeadRepository@getFilteredLeads",
        "canonical": "App\\Repositories\\Outreach\\CampaignAttemptRepository@getFilteredAttempts",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Repositories\\Outreach\\CampaignAttemptRepository@getFilteredAttempts. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e31ea2f0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_201",
        "fqmn": "App\\Sandbox\\Dialog360\\Controllers\\MetricsController@__construct",
        "canonical": "App\\Sandbox\\Dialog360\\Controllers\\MessageController@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Sandbox\\Dialog360\\Controllers\\MessageController@__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_4af7de7b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_201",
        "fqmn": "App\\Sandbox\\Dialog360\\Controllers\\TemplateController@__construct",
        "canonical": "App\\Sandbox\\Dialog360\\Controllers\\MessageController@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Sandbox\\Dialog360\\Controllers\\MessageController@__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_1978105d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_202",
        "fqmn": "App\\Sandbox\\Dialog360\\Controllers\\MessageController@store",
        "canonical": "App\\Sandbox\\Dialog360\\Controllers\\MessageController@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Sandbox\\Dialog360\\Controllers\\MessageController@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_d4fb5587",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_203",
        "fqmn": "App\\Sandbox\\Dialog360\\Controllers\\MetricsController@messages",
        "canonical": "App\\Sandbox\\Dialog360\\Controllers\\MetricsController@connections",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Sandbox\\Dialog360\\Controllers\\MetricsController@connections. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_c295fb06",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_204",
        "fqmn": "App\\Services\\Billing\\BillingAlertService@notifyCreditExhausted",
        "canonical": "App\\Services\\Billing\\BillingAlertService@checkAndNotifyLowBalance",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Billing\\BillingAlertService@checkAndNotifyLowBalance. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8aa51d20",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_205",
        "fqmn": "App\\Services\\Tax\\TaxAmountCalculator@calculateFromBase",
        "canonical": "App\\Services\\Billing\\BillingAmountCalculator@calculateFromBase",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Billing\\BillingAmountCalculator@calculateFromBase. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9911668a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_206",
        "fqmn": "App\\Services\\SubscriptionBillingService@billNow",
        "canonical": "App\\Services\\Billing\\VatService@determinePolicy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Billing\\VatService@determinePolicy. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_94c48150",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_207",
        "fqmn": "App\\Services\\Billing\\ZohoBillingAnalyticsService@getVatExposure",
        "canonical": "App\\Services\\Billing\\ZohoBillingAnalyticsService@detectInvoiceAnomalies",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Billing\\ZohoBillingAnalyticsService@detectInvoiceAnomalies. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_15ac8f2f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_208",
        "fqmn": "App\\Services\\Outreach\\AnalyticsService@getDeliveryRatePerCountry",
        "canonical": "App\\Services\\Billing\\ZohoBillingAnalyticsService@getClearanceStatusStats",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Billing\\ZohoBillingAnalyticsService@getClearanceStatusStats. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_deaa4e8d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_208",
        "fqmn": "App\\Services\\Outreach\\AnalyticsService@getDeliveryRatePerTemplate",
        "canonical": "App\\Services\\Billing\\ZohoBillingAnalyticsService@getClearanceStatusStats",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Billing\\ZohoBillingAnalyticsService@getClearanceStatusStats. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d28097a3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_209",
        "fqmn": "App\\Services\\Billing\\ZohoPaymentSyncService@__construct",
        "canonical": "App\\Services\\Billing\\ZohoExpenseSyncService@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Billing\\ZohoExpenseSyncService@__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_701b3211",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_210",
        "fqmn": "App\\Services\\Integrations\\BrotionsSalesService@reportDealWon",
        "canonical": "App\\Services\\BillingStateService@applyZohoVoidedOrCancelled",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\BillingStateService@applyZohoVoidedOrCancelled. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_5363e098",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_211",
        "fqmn": "App\\Services\\BillingStateService@moveToCanceled",
        "canonical": "App\\Services\\BillingStateService@moveToActive",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\BillingStateService@moveToActive. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_897f276c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_211",
        "fqmn": "App\\Services\\BillingStateService@moveToExpired",
        "canonical": "App\\Services\\BillingStateService@moveToActive",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\BillingStateService@moveToActive. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_04b37ce5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_211",
        "fqmn": "App\\Services\\BillingStateService@moveToGrace",
        "canonical": "App\\Services\\BillingStateService@moveToActive",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\BillingStateService@moveToActive. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_6a9fde47",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_211",
        "fqmn": "App\\Services\\BillingStateService@moveToPastDue",
        "canonical": "App\\Services\\BillingStateService@moveToActive",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\BillingStateService@moveToActive. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_aba9fe94",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_211",
        "fqmn": "App\\Services\\BillingStateService@moveToPendingPayment",
        "canonical": "App\\Services\\BillingStateService@moveToActive",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\BillingStateService@moveToActive. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_3759b654",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_211",
        "fqmn": "App\\Services\\BillingStateService@moveToSuspended",
        "canonical": "App\\Services\\BillingStateService@moveToActive",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\BillingStateService@moveToActive. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_c29e8f93",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_212",
        "fqmn": "App\\Services\\GccCountryService@getCurrencyName",
        "canonical": "App\\Services\\GccCountryService@getCountryName",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\GccCountryService@getCountryName. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_c6d1dc13",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_213",
        "fqmn": "App\\Services\\Imports\\CsvImportExecutorV2@generateErrorReport",
        "canonical": "App\\Services\\Imports\\CsvImportExecutor@generateErrorReport",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Imports\\CsvImportExecutor@generateErrorReport. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_5c103424",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_214",
        "fqmn": "App\\Support\\Chat\\StateRepository@clearSession",
        "canonical": "App\\Services\\Imports\\CsvImportSessionManager@deleteSession",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Imports\\CsvImportSessionManager@deleteSession. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_da312673",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_214",
        "fqmn": "App\\Support\\Chat\\StateRepository@releaseLock",
        "canonical": "App\\Services\\Imports\\CsvImportSessionManager@deleteSession",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Imports\\CsvImportSessionManager@deleteSession. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_2969f014",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_215",
        "fqmn": "App\\Support\\Chat\\StateRepository@updateLastMessageTimestamp",
        "canonical": "App\\Services\\Imports\\CsvImportSessionManager@markComplete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Imports\\CsvImportSessionManager@markComplete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_78782df1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_216",
        "fqmn": "App\\Services\\ZATCAInvoiceService@prepareForZATCA",
        "canonical": "App\\Services\\InvoiceService@prepareForZatca",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\InvoiceService@prepareForZatca. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_f55f2de8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_217",
        "fqmn": "App\\Services\\Messaging\\MessageQuotaService@checkMonthlyLimit",
        "canonical": "App\\Services\\Messaging\\MessageQuotaService@checkDailyLimit",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Messaging\\MessageQuotaService@checkDailyLimit. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d3409341",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_218",
        "fqmn": "App\\Services\\OutreachAI\\CrossSellEngine@__construct",
        "canonical": "App\\Services\\OrganizationRegistrationService@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OrganizationRegistrationService@__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_85841ccb",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_219",
        "fqmn": "App\\Support\\Services\\UnifiedPhoneNormalizer@normalize",
        "canonical": "App\\Services\\Outreach\\PhoneNumberNormalizer@normalize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Outreach\\PhoneNumberNormalizer@normalize. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_cf990a35",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_220",
        "fqmn": "App\\Services\\OutreachAI\\ConversationGovernanceService@handleUserSilence",
        "canonical": "App\\Services\\OutreachAI\\ABTestingService@shouldUseExperimentalWeights",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\ABTestingService@shouldUseExperimentalWeights. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_6f496c3f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_221",
        "fqmn": "App\\Services\\OutreachAI\\StrategyScoreService@assignScoresToMessageTypes",
        "canonical": "App\\Services\\OutreachAI\\AdaptiveLearningEngine@computeOutcomeWeights",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\AdaptiveLearningEngine@computeOutcomeWeights. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e6a61eb0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_221",
        "fqmn": "App\\Services\\OutreachAI\\StrategyScoreService@trackMultiStepFunnelPerformance",
        "canonical": "App\\Services\\OutreachAI\\AdaptiveLearningEngine@computeOutcomeWeights",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\AdaptiveLearningEngine@computeOutcomeWeights. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_58d6aa8b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_222",
        "fqmn": "App\\Services\\OutreachAI\\ChurnPredictionEngine@emit",
        "canonical": "App\\Services\\OutreachAI\\AffordabilityScoringService@emit",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\AffordabilityScoringService@emit. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_b7cce45e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_222",
        "fqmn": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@emit",
        "canonical": "App\\Services\\OutreachAI\\AffordabilityScoringService@emit",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\AffordabilityScoringService@emit. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_c0b01979",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_222",
        "fqmn": "App\\Services\\OutreachAI\\PlanRecommendationService@emit",
        "canonical": "App\\Services\\OutreachAI\\AffordabilityScoringService@emit",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\AffordabilityScoringService@emit. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_09e8e2ab",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_222",
        "fqmn": "App\\Services\\OutreachAI\\PredictionEngine@emit",
        "canonical": "App\\Services\\OutreachAI\\AffordabilityScoringService@emit",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\AffordabilityScoringService@emit. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d9127d0a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_222",
        "fqmn": "App\\Services\\OutreachAI\\SentimentRecoveryEngine@analyzeAndRecover",
        "canonical": "App\\Services\\OutreachAI\\AffordabilityScoringService@emit",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\AffordabilityScoringService@emit. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9616d893",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_223",
        "fqmn": "App\\Services\\OutreachAI\\RetrievalConstraintService@getConstrainedContext",
        "canonical": "App\\Services\\OutreachAI\\AgencyConversion\\AgencyConversionDecisionService@generateConversionPrompt",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\AgencyConversion\\AgencyConversionDecisionService@generateConversionPrompt. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ea9c685a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_224",
        "fqmn": "App\\Services\\OutreachAI\\AgencyConversion\\AgencyPricingExplainService@detectPricingIntent",
        "canonical": "App\\Services\\OutreachAI\\AgencyConversion\\AgencyDemoScheduler@detectDemoInterest",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\AgencyConversion\\AgencyDemoScheduler@detectDemoInterest. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_89237393",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_224",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionCTA@detectAcceptance",
        "canonical": "App\\Services\\OutreachAI\\AgencyConversion\\AgencyDemoScheduler@detectDemoInterest",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\AgencyConversion\\AgencyDemoScheduler@detectDemoInterest. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8411d701",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_225",
        "fqmn": "App\\Services\\OutreachAI\\ContractRenewal\\RenewalIncentiveEngine@calculate",
        "canonical": "App\\Services\\OutreachAI\\AppointmentSchedulingService@suggestAppointmentForClosing",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\AppointmentSchedulingService@suggestAppointmentForClosing. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_5f651144",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_225",
        "fqmn": "App\\Services\\OutreachAI\\ConversationAttributionEngine@getConversationSummaryAttribution",
        "canonical": "App\\Services\\OutreachAI\\AppointmentSchedulingService@suggestAppointmentForClosing",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\AppointmentSchedulingService@suggestAppointmentForClosing. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0bd19986",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_225",
        "fqmn": "App\\Services\\OutreachAI\\CustomerSuccess\\MilestoneDetectionService@detect",
        "canonical": "App\\Services\\OutreachAI\\AppointmentSchedulingService@suggestAppointmentForClosing",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\AppointmentSchedulingService@suggestAppointmentForClosing. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9f1ffd0d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_225",
        "fqmn": "App\\Services\\OutreachAI\\EscalationIntelligenceEngine@analyzeEscalationNeed",
        "canonical": "App\\Services\\OutreachAI\\AppointmentSchedulingService@suggestAppointmentForClosing",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\AppointmentSchedulingService@suggestAppointmentForClosing. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_dfd425e5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_225",
        "fqmn": "App\\Services\\OutreachAI\\PaymentEngine\\PaymentPatternAnalysisService@analyze",
        "canonical": "App\\Services\\OutreachAI\\AppointmentSchedulingService@suggestAppointmentForClosing",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\AppointmentSchedulingService@suggestAppointmentForClosing. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_54a067f5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_225",
        "fqmn": "App\\Services\\OutreachAI\\PropertyMatcher\\PropertyRecommendationEngine@recommend",
        "canonical": "App\\Services\\OutreachAI\\AppointmentSchedulingService@suggestAppointmentForClosing",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\AppointmentSchedulingService@suggestAppointmentForClosing. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_651fc5dc",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_225",
        "fqmn": "App\\Services\\OutreachAI\\Qualification\\QualificationGapDetector@detectGaps",
        "canonical": "App\\Services\\OutreachAI\\AppointmentSchedulingService@suggestAppointmentForClosing",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\AppointmentSchedulingService@suggestAppointmentForClosing. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e33df86d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_225",
        "fqmn": "App\\Services\\OutreachAI\\SubscriptionSalesEngine@generateTrialSequence",
        "canonical": "App\\Services\\OutreachAI\\AppointmentSchedulingService@suggestAppointmentForClosing",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\AppointmentSchedulingService@suggestAppointmentForClosing. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7521d515",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_226",
        "fqmn": "App\\Services\\OutreachAI\\AutoReplyDetectionService@detect",
        "canonical": "App\\Services\\OutreachAI\\AssetDetectionService@detect",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\AssetDetectionService@detect. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7f32ee07",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_226",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\AbuseDetector@checkInbound",
        "canonical": "App\\Services\\OutreachAI\\AssetDetectionService@detect",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\AssetDetectionService@detect. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_4813225c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_226",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\SafetyRules@validateInbound",
        "canonical": "App\\Services\\OutreachAI\\AssetDetectionService@detect",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\AssetDetectionService@detect. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_398d9ec9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_226",
        "fqmn": "App\\Support\\OutreachAI\\UpsellMessageBuilder@validateSafety",
        "canonical": "App\\Services\\OutreachAI\\AssetDetectionService@detect",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\AssetDetectionService@detect. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_aba1d2f3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_227",
        "fqmn": "App\\Services\\OutreachAI\\MediaDownloadService@download",
        "canonical": "App\\Services\\OutreachAI\\AudioDownloadService@download",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\AudioDownloadService@download. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_14b09c92",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_228",
        "fqmn": "App\\Services\\OutreachAI\\ConversationService@closeConversation",
        "canonical": "App\\Services\\OutreachAI\\AutoCorrectionService@clearDirectives",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\AutoCorrectionService@clearDirectives. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1d9b8b1a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_229",
        "fqmn": "App\\Services\\OutreachAI\\ContractRenewal\\RenewalTimingOptimizer@optimize",
        "canonical": "App\\Services\\OutreachAI\\ContractRenewal\\RenewalCampaignService@shouldStartCampaign",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\ContractRenewal\\RenewalCampaignService@shouldStartCampaign. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_80e8191b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_229",
        "fqmn": "App\\Services\\OutreachAI\\RevenueEngine\\RevenueUrgencyModel@predict",
        "canonical": "App\\Services\\OutreachAI\\ContractRenewal\\RenewalCampaignService@shouldStartCampaign",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\ContractRenewal\\RenewalCampaignService@shouldStartCampaign. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_5cd5e293",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_229",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionEngine@evaluateTrialClosingStrategy",
        "canonical": "App\\Services\\OutreachAI\\ContractRenewal\\RenewalCampaignService@shouldStartCampaign",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\ContractRenewal\\RenewalCampaignService@shouldStartCampaign. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_92e3a9fc",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_229",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionEvaluator@evaluate",
        "canonical": "App\\Services\\OutreachAI\\ContractRenewal\\RenewalCampaignService@shouldStartCampaign",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\ContractRenewal\\RenewalCampaignService@shouldStartCampaign. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_24a4a946",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_230",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\ValuePropositionEngine@generate",
        "canonical": "App\\Services\\OutreachAI\\ConversationClusterService@assignCluster",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\ConversationClusterService@assignCluster. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_4d4b6dad",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_231",
        "fqmn": "App\\Services\\OutreachAI\\ConversationPlanService@__construct",
        "canonical": "App\\Services\\OutreachAI\\ConversationGoalService@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\ConversationGoalService@__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_f763f49a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_231",
        "fqmn": "App\\Services\\OutreachAI\\ConversionDetectionService@__construct",
        "canonical": "App\\Services\\OutreachAI\\ConversationGoalService@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\ConversationGoalService@__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_6d209247",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_231",
        "fqmn": "App\\Services\\OutreachAI\\QualificationExtractionService@__construct",
        "canonical": "App\\Services\\OutreachAI\\ConversationGoalService@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\ConversationGoalService@__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_d3c1d4c2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_231",
        "fqmn": "App\\Services\\OutreachAI\\ShortTermMemoryService@__construct",
        "canonical": "App\\Services\\OutreachAI\\ConversationGoalService@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\ConversationGoalService@__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_4489e5cb",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_232",
        "fqmn": "App\\Services\\OutreachAI\\ConversationService@recordInboundMessage",
        "canonical": "App\\Services\\OutreachAI\\ConversationService@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\ConversationService@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_049cf2f8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_233",
        "fqmn": "App\\Services\\OutreachAI\\HandoffService@determineHandoffNeeded",
        "canonical": "App\\Services\\OutreachAI\\CrossSellEngine@detectOpportunities",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\CrossSellEngine@detectOpportunities. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e5e531ac",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_234",
        "fqmn": "App\\Services\\OutreachAI\\ObjectionResponseService@detectFinalObjectionMoments",
        "canonical": "App\\Services\\OutreachAI\\DealClosingEngine@shouldResolveObjectionsBeforeClosing",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\DealClosingEngine@shouldResolveObjectionsBeforeClosing. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_be33acad",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_234",
        "fqmn": "App\\Services\\OutreachAI\\PropertyMatcher\\LeadPropertyAffinityService@analyze",
        "canonical": "App\\Services\\OutreachAI\\DealClosingEngine@shouldResolveObjectionsBeforeClosing",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\DealClosingEngine@shouldResolveObjectionsBeforeClosing. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a0c6d72a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_235",
        "fqmn": "App\\Services\\OutreachAI\\HandoffService@shouldPreventRepeatedEscalation",
        "canonical": "App\\Services\\OutreachAI\\EscalationIntelligenceEngine@shouldDelayEscalation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\EscalationIntelligenceEngine@shouldDelayEscalation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_5d5cdf60",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_235",
        "fqmn": "App\\Services\\OutreachAI\\UserActivityAnalyzer@isActiveUser",
        "canonical": "App\\Services\\OutreachAI\\EscalationIntelligenceEngine@shouldDelayEscalation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\EscalationIntelligenceEngine@shouldDelayEscalation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e15bab72",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_236",
        "fqmn": "App\\Services\\OutreachAI\\FailureLogger@appointmentFailed",
        "canonical": "App\\Services\\OutreachAI\\FailureLogger@aiFailed",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\FailureLogger@aiFailed. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_bfcb7e3b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_236",
        "fqmn": "App\\Services\\OutreachAI\\FailureLogger@followUpFailed",
        "canonical": "App\\Services\\OutreachAI\\FailureLogger@aiFailed",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\FailureLogger@aiFailed. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_65f51a78",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_236",
        "fqmn": "App\\Services\\OutreachAI\\FailureLogger@messageFailed",
        "canonical": "App\\Services\\OutreachAI\\FailureLogger@aiFailed",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\FailureLogger@aiFailed. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0d8facc3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_237",
        "fqmn": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@outputInsights",
        "canonical": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@analyzeConversationDNA",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\FunnelBehaviorEngine@analyzeConversationDNA. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_893b9211",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_237",
        "fqmn": "App\\Services\\OutreachAI\\LeadWarmthEngine@detectSimilarConverters",
        "canonical": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@analyzeConversationDNA",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\FunnelBehaviorEngine@analyzeConversationDNA. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_24e95c1b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_237",
        "fqmn": "App\\Services\\OutreachAI\\PredictionEngine@calculateClosingReadinessScore",
        "canonical": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@analyzeConversationDNA",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\FunnelBehaviorEngine@analyzeConversationDNA. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_69df04d6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_238",
        "fqmn": "App\\Services\\OutreachAI\\StrategyScoreService@rankCTAApproaches",
        "canonical": "App\\Services\\OutreachAI\\FunnelBehaviorEngine@computeTransitionProbabilities",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\FunnelBehaviorEngine@computeTransitionProbabilities. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a362fc8f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_239",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\SignalDirector@warmupContext",
        "canonical": "App\\Services\\OutreachAI\\HandoffService@handleHandoffRequest",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\HandoffService@handleHandoffRequest. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_2b7d880d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_239",
        "fqmn": "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnAppointmentScheduled",
        "canonical": "App\\Services\\OutreachAI\\HandoffService@handleHandoffRequest",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\HandoffService@handleHandoffRequest. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ae8573da",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_239",
        "fqmn": "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnDiscountInteraction",
        "canonical": "App\\Services\\OutreachAI\\HandoffService@handleHandoffRequest",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\HandoffService@handleHandoffRequest. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_f497579d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_239",
        "fqmn": "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnFunnelStageChange",
        "canonical": "App\\Services\\OutreachAI\\HandoffService@handleHandoffRequest",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\HandoffService@handleHandoffRequest. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_3d0f9d31",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_239",
        "fqmn": "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnInboundMessage",
        "canonical": "App\\Services\\OutreachAI\\HandoffService@handleHandoffRequest",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\HandoffService@handleHandoffRequest. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0517deb6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_239",
        "fqmn": "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnObjectionDetected",
        "canonical": "App\\Services\\OutreachAI\\HandoffService@handleHandoffRequest",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\HandoffService@handleHandoffRequest. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_48fd9730",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_239",
        "fqmn": "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnOutboundMessage",
        "canonical": "App\\Services\\OutreachAI\\HandoffService@handleHandoffRequest",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\HandoffService@handleHandoffRequest. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_4cc387e7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_239",
        "fqmn": "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnPricingInteraction",
        "canonical": "App\\Services\\OutreachAI\\HandoffService@handleHandoffRequest",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\HandoffService@handleHandoffRequest. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1c998435",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_239",
        "fqmn": "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnReengagementFired",
        "canonical": "App\\Services\\OutreachAI\\HandoffService@handleHandoffRequest",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\HandoffService@handleHandoffRequest. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_bfdac48e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_239",
        "fqmn": "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnTrialExtended",
        "canonical": "App\\Services\\OutreachAI\\HandoffService@handleHandoffRequest",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\HandoffService@handleHandoffRequest. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_f7cd6aca",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_239",
        "fqmn": "App\\Services\\OutreachAI\\PredictionRecalculationService@recalculateOnWarmthStageChange",
        "canonical": "App\\Services\\OutreachAI\\HandoffService@handleHandoffRequest",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\HandoffService@handleHandoffRequest. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7f8fffa9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_239",
        "fqmn": "App\\Services\\OutreachAI\\SequenceBuilder@build",
        "canonical": "App\\Services\\OutreachAI\\HandoffService@handleHandoffRequest",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\HandoffService@handleHandoffRequest. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a93bf3b2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_240",
        "fqmn": "App\\Services\\OutreachAI\\IntentTrajectoryService@shouldReturnToQualification",
        "canonical": "App\\Services\\OutreachAI\\IntentTrajectoryService@shouldPauseTrajectory",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\IntentTrajectoryService@shouldPauseTrajectory. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8f754e9a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_241",
        "fqmn": "App\\Services\\OutreachAI\\PromptExperimentService@getInstruction",
        "canonical": "App\\Services\\OutreachAI\\Orchestration\\RollingSummaryService@getRollingSummary",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\Orchestration\\RollingSummaryService@getRollingSummary. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_b0f8fe92",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_242",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getReengagementTemplate",
        "canonical": "App\\Services\\OutreachAI\\PromptLibrary@getAgencyFollowUpTemplate",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\PromptLibrary@getAgencyFollowUpTemplate. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9f13544a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_243",
        "fqmn": "App\\Services\\OutreachAI\\PromptLibrary@getTrajectoryTemplate",
        "canonical": "App\\Services\\OutreachAI\\PromptLibrary@getTrajectoryStageInstructions",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\PromptLibrary@getTrajectoryStageInstructions. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7b43eaf9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_244",
        "fqmn": "App\\Services\\OutreachAI\\SalesAcceleration\\SalesUrgencyEngine@detect",
        "canonical": "App\\Services\\OutreachAI\\Qualification\\IndustrySegmentationEngine@segment",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\Qualification\\IndustrySegmentationEngine@segment. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_bb998a5b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_245",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\TrialIntentDetector@emit",
        "canonical": "App\\Services\\OutreachAI\\Qualification\\RealTimeQualificationEngine@emit",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\Qualification\\RealTimeQualificationEngine@emit. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_387d537c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_246",
        "fqmn": "App\\Services\\OutreachAI\\RevenueEngine\\ARMEOrchestrator@processInbound",
        "canonical": "App\\Services\\OutreachAI\\Qualification\\RealTimeQualificationEngine@qualify",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\Qualification\\RealTimeQualificationEngine@qualify. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_fea98b62",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_247",
        "fqmn": "App\\Services\\OutreachAI\\Quality\\VerificationAgent@__construct",
        "canonical": "App\\Services\\OutreachAI\\Quality\\PersonaAdaptationAgent@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\Quality\\PersonaAdaptationAgent@__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_c63ea40c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_248",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\OfferWindowEngine@detectWindow",
        "canonical": "App\\Services\\OutreachAI\\RevenueEngine\\DiscountDecisionEngine@decide",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\RevenueEngine\\DiscountDecisionEngine@decide. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9ebbe91c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_249",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\DemoPitchEngine@generatePitch",
        "canonical": "App\\Services\\OutreachAI\\RevenueEngine\\RevenueUrgencyModel@classify",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\RevenueEngine\\RevenueUrgencyModel@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_a4ebb186",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_250",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingRenderer@shouldHandle",
        "canonical": "App\\Services\\OutreachAI\\Sales\\FeatureRenderer@shouldHandle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\Sales\\FeatureRenderer@shouldHandle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_06061b17",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_251",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingResolver@resolve",
        "canonical": "App\\Services\\OutreachAI\\Sales\\PricingResolver@getCanonicalContract",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\Sales\\PricingResolver@getCanonicalContract. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_042a6f2a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_252",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\FrequencyLimiter@recordOutbound",
        "canonical": "App\\Services\\OutreachAI\\SentimentRecoveryEngine@recordRecoveryAttempt",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\SentimentRecoveryEngine@recordRecoveryAttempt. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_790db3cf",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_253",
        "fqmn": "App\\Services\\OutreachAI\\UserActivityAnalyzer@isFreeTier",
        "canonical": "App\\Services\\OutreachAI\\SignupLinkGenerator@hasBeenClicked",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\SignupLinkGenerator@hasBeenClicked. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_bfc9b792",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_254",
        "fqmn": "App\\Services\\OutreachAI\\StateAwareResponseService@getVoiceFailureResponse",
        "canonical": "App\\Services\\OutreachAI\\StateAwareResponseService@getClarificationResponse",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\StateAwareResponseService@getClarificationResponse. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1992ead6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_255",
        "fqmn": "App\\Services\\OutreachAI\\StateAwareResponseService@getFollowUpFinal",
        "canonical": "App\\Services\\OutreachAI\\StateAwareResponseService@getFollowUp2",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\StateAwareResponseService@getFollowUp2. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_bacad993",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_256",
        "fqmn": "App\\Services\\OutreachAI\\TemplatePerformanceAnalyzer@__construct",
        "canonical": "App\\Services\\OutreachAI\\TemplateApprovalMonitor@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\TemplateApprovalMonitor@__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_b0ce94f9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_257",
        "fqmn": "App\\Services\\OutreachAI\\TemplateUsageTracker@recordDelivery",
        "canonical": "App\\Services\\OutreachAI\\TemplateUsageTracker@recordConversion",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\TemplateUsageTracker@recordConversion. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_f01b7331",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_257",
        "fqmn": "App\\Services\\OutreachAI\\TemplateUsageTracker@recordRead",
        "canonical": "App\\Services\\OutreachAI\\TemplateUsageTracker@recordConversion",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\TemplateUsageTracker@recordConversion. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_090e291b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_257",
        "fqmn": "App\\Services\\OutreachAI\\TemplateUsageTracker@recordReply",
        "canonical": "App\\Services\\OutreachAI\\TemplateUsageTracker@recordConversion",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\TemplateUsageTracker@recordConversion. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_bfe89268",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_258",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\TrialNudgeEngine@generateNudgeMessage",
        "canonical": "App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionNudgeService@generateNudgeMessage",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionNudgeService@generateNudgeMessage. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_60c17193",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_259",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\TrialNudgeEngine@scheduleNudges",
        "canonical": "App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionNudgeService@scheduleNudges",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OutreachAI\\TrialEngine\\Extension\\TrialExtensionNudgeService@scheduleNudges. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_46607237",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_260",
        "fqmn": "App\\Services\\RedirectService@getPostInvitationPath",
        "canonical": "App\\Services\\RedirectService@getAuthenticatedUserPath",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\RedirectService@getAuthenticatedUserPath. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ca2ec0a9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_260",
        "fqmn": "App\\Services\\RedirectService@getPostRegistrationPath",
        "canonical": "App\\Services\\RedirectService@getAuthenticatedUserPath",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\RedirectService@getAuthenticatedUserPath. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_2a28392f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_261",
        "fqmn": "App\\Services\\SystemSettings@setAppWhatsAppProvider",
        "canonical": "App\\Services\\SystemSettings@setAdminWhatsAppProvider",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\SystemSettings@setAdminWhatsAppProvider. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_c8e66334",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_262",
        "fqmn": "App\\Services\\TapPaymentMethodService@getPaymentMethodsForCountry",
        "canonical": "App\\Services\\TapPaymentMethodService@getDefaultPaymentMethods",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\TapPaymentMethodService@getDefaultPaymentMethods. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_5e4b1bb9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_263",
        "fqmn": "App\\Services\\WhatsApp\\Dialog360ProfileService@__construct",
        "canonical": "App\\Services\\WhatsApp\\Dialog360OnboardingService@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\WhatsApp\\Dialog360OnboardingService@__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_70789184",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_263",
        "fqmn": "App\\Services\\ZeptoMailService@__construct",
        "canonical": "App\\Services\\WhatsApp\\Dialog360OnboardingService@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\WhatsApp\\Dialog360OnboardingService@__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_f3a99034",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_264",
        "fqmn": "App\\Services\\WhatsApp\\Dialog360ProfileService@fetchProfile",
        "canonical": "App\\Services\\WhatsApp\\Dialog360OnboardingService@fetchBusinessProfile",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\WhatsApp\\Dialog360OnboardingService@fetchBusinessProfile. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_3d71b990",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_265",
        "fqmn": "App\\Services\\WhatsApp\\Routing\\WhatsAppMessageRouter@route",
        "canonical": "App\\Services\\WhatsApp\\Handlers\\HumanReplyHandler@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\WhatsApp\\Handlers\\HumanReplyHandler@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_d8dfa24d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_266",
        "fqmn": "App\\Services\\WhatsApp\\Normalizer\\TwilioWhatsAppNormalizer@normalizeError",
        "canonical": "App\\Services\\WhatsApp\\Normalizer\\Dialog360WhatsAppNormalizer@normalizeError",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\WhatsApp\\Normalizer\\Dialog360WhatsAppNormalizer@normalizeError. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_b05cdc71",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_267",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@sendImage",
        "canonical": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@sendDocument",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@sendDocument. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8aa44a38",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_268",
        "fqmn": "App\\Services\\WhatsApp\\SmartReplyService@buildInvoiceMessage",
        "canonical": "App\\Services\\WhatsApp\\SmartReplyService@buildContractMedia",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\WhatsApp\\SmartReplyService@buildContractMedia. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d2c1f19e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_268",
        "fqmn": "App\\Services\\WhatsApp\\SmartReplyService@buildRentReminderMessage",
        "canonical": "App\\Services\\WhatsApp\\SmartReplyService@buildContractMedia",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\WhatsApp\\SmartReplyService@buildContractMedia. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_180f372a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_268",
        "fqmn": "App\\Services\\WhatsApp\\SmartReplyService@buildUnitLocationMessage",
        "canonical": "App\\Services\\WhatsApp\\SmartReplyService@buildContractMedia",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\WhatsApp\\SmartReplyService@buildContractMedia. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_c71a4cfc",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_269",
        "fqmn": "App\\Services\\WhatsApp\\SmartReplyService@buildPaymentLinkMessage",
        "canonical": "App\\Services\\WhatsApp\\SmartReplyService@buildOutstandingBalanceMessage",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\WhatsApp\\SmartReplyService@buildOutstandingBalanceMessage. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7d137f42",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_270",
        "fqmn": "App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider@deleteTemplate",
        "canonical": "App\\Services\\WhatsApp\\Templates\\Dialog360TemplateProvider@deleteTemplate",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\WhatsApp\\Templates\\Dialog360TemplateProvider@deleteTemplate. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_72944cad",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_271",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppConsentService@recordOptOut",
        "canonical": "App\\Services\\WhatsApp\\WhatsAppConsentService@recordOptIn",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\WhatsApp\\WhatsAppConsentService@recordOptIn. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1d0dd09c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_272",
        "fqmn": "App\\Services\\Zoho\\Normalizers\\KuwaitAddressNormalizer@normalize",
        "canonical": "App\\Services\\Zoho\\Normalizers\\BahrainAddressNormalizer@normalize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Zoho\\Normalizers\\BahrainAddressNormalizer@normalize. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1cfa9442",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_272",
        "fqmn": "App\\Services\\Zoho\\Normalizers\\OmanAddressNormalizer@normalize",
        "canonical": "App\\Services\\Zoho\\Normalizers\\BahrainAddressNormalizer@normalize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Zoho\\Normalizers\\BahrainAddressNormalizer@normalize. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_f6e452f6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_272",
        "fqmn": "App\\Services\\Zoho\\Normalizers\\QatarAddressNormalizer@normalize",
        "canonical": "App\\Services\\Zoho\\Normalizers\\BahrainAddressNormalizer@normalize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Zoho\\Normalizers\\BahrainAddressNormalizer@normalize. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_433d1ad5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_272",
        "fqmn": "App\\Services\\Zoho\\Normalizers\\SaudiAddressNormalizer@normalize",
        "canonical": "App\\Services\\Zoho\\Normalizers\\BahrainAddressNormalizer@normalize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Zoho\\Normalizers\\BahrainAddressNormalizer@normalize. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_4dae59a2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_272",
        "fqmn": "App\\Services\\Zoho\\Normalizers\\UAEAddressNormalizer@normalize",
        "canonical": "App\\Services\\Zoho\\Normalizers\\BahrainAddressNormalizer@normalize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Zoho\\Normalizers\\BahrainAddressNormalizer@normalize. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_de6c15b9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_273",
        "fqmn": "App\\Support\\Cache\\CacheManagerProxy@put",
        "canonical": "App\\Support\\Cache\\CacheManagerProxy@add",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Support\\Cache\\CacheManagerProxy@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_05bdaf57",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_274",
        "fqmn": "App\\Support\\Chat\\StateRepository@saveOutboundMessage",
        "canonical": "App\\Support\\Chat\\StateRepository@saveInboundMessage",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Support\\Chat\\StateRepository@saveInboundMessage. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9c3c7c5d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_275",
        "fqmn": "App\\Support\\FactoryToolkit@paymentScenario",
        "canonical": "App\\Support\\FactoryToolkit@fullLeaseCycle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Support\\FactoryToolkit@fullLeaseCycle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_6a6dba39",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_276",
        "fqmn": "App\\Support\\Logging\\WhatsAppLogger@info",
        "canonical": "App\\Support\\Logging\\WhatsAppLogger@error",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Support\\Logging\\WhatsAppLogger@error. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_eef4b3bb",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_277",
        "fqmn": "App\\Support\\OutreachAI\\AdaptiveWeightStore@increaseWeight",
        "canonical": "App\\Support\\OutreachAI\\AdaptiveWeightStore@decreaseWeight",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Support\\OutreachAI\\AdaptiveWeightStore@decreaseWeight. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_78ca004b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_278",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\SafetySupervisor@checkOutbound",
        "canonical": "App\\Support\\OutreachAI\\Knowledge\\KnowledgeGuard@validateReply",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Support\\OutreachAI\\Knowledge\\KnowledgeGuard@validateReply. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_dde42faa",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_279",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\PlanPricingRegistry@getPricingSummary",
        "canonical": "App\\Support\\OutreachAI\\Knowledge\\PlanPricingRegistry@getPackageDetails",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Support\\OutreachAI\\Knowledge\\PlanPricingRegistry@getPackageDetails. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_3c2f3904",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_280",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\ToneSelector@getToneInstructions",
        "canonical": "App\\Support\\OutreachAI\\Persona\\ToneSelector@getToneConstraints",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Support\\OutreachAI\\Persona\\ToneSelector@getToneConstraints. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_b5d39350",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_281",
        "fqmn": "App\\Support\\Testing\\LogFake@critical",
        "canonical": "App\\Support\\Testing\\LogFake@alert",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Support\\Testing\\LogFake@alert. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_3728f400",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_281",
        "fqmn": "App\\Support\\Testing\\LogFake@debug",
        "canonical": "App\\Support\\Testing\\LogFake@alert",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Support\\Testing\\LogFake@alert. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_df9e665a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_281",
        "fqmn": "App\\Support\\Testing\\LogFake@emergency",
        "canonical": "App\\Support\\Testing\\LogFake@alert",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Support\\Testing\\LogFake@alert. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_49bc12c9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_281",
        "fqmn": "App\\Support\\Testing\\LogFake@error",
        "canonical": "App\\Support\\Testing\\LogFake@alert",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Support\\Testing\\LogFake@alert. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9d8d702d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_281",
        "fqmn": "App\\Support\\Testing\\LogFake@info",
        "canonical": "App\\Support\\Testing\\LogFake@alert",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Support\\Testing\\LogFake@alert. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9dee92d9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_281",
        "fqmn": "App\\Support\\Testing\\LogFake@notice",
        "canonical": "App\\Support\\Testing\\LogFake@alert",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Support\\Testing\\LogFake@alert. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8b47b4a7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_281",
        "fqmn": "App\\Support\\Testing\\LogFake@warning",
        "canonical": "App\\Support\\Testing\\LogFake@alert",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Support\\Testing\\LogFake@alert. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1aae26ec",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/__sate/outreach-ai/drift/analyze::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_988e2d6f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/__sate/outreach-ai/misunderstanding-detect::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_303ba851",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/__sate/outreach-ai/optout/detect::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_7c248127",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/__sate/outreach-ai/trajectory/adjust::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_d7516510",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/__tests/outreach-ai/compliance/check::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_99d67b6d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/__tests/outreach-ai/knowledge/validate::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_571591f8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/credit-transactions/create::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_f6b18b11",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/dunning/evaluate::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_99342d81",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/dunning/policy-resolve::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_df5116b5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/dunning/run-attempt::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_fa96ff6a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/dunning/start::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_ce3f8de6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/invoices/generate-subscription::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_2255739e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscription-event::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_c3408dc8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscription/add-credits::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_62fa14d8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscription/suspend::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_956188cf",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscriptions/auto-charge/run::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_7018dbfc",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscriptions/convert-trial-to-paid::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_3aa8629e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscriptions/evaluate-post-dunning-failure::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_7d86bd91",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscriptions/move-to-active::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_38c69462",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscriptions/transition::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_f5fdbe66",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/tap-settlements/auto-allocate::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_045bb0ba",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/tap-settlements/match::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_1644bfd7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/dunning/resolve-policy::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_82d68b71",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/dunning/run-attempt::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_147011d6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/dunning/start::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_9c93976a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/dunning/transition-active::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_15234fe1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/email-template/apply-placeholders::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_c0e0f990",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/email-template/get-localized-content::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_216a68fb",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/email-template/get-template-for::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_892a1210",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/maintenance/landlord-approval-request/notify::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_e72fb1df",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/maintenance/landlord-approval-request/twilio::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_801ea29f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/maintenance/tenant-ticket-confirmation/notify::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_624a7f98",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/maintenance/tenant-ticket-confirmation/twilio::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_8201e914",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/maintenance/ticket-completed/notify::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_aeb4d5e7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/maintenance/worker-assigned/notify::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_525e4369",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/notifications/over-limit::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_7fe713b5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/notifications/payment-failed::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_31deab4e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/notifications/payment-proof-submitted::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_48ee4db6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/notifications/security-alert::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_49f71ffa",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/ai/generate-reply::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_1700c7b8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/churn-prevention/run::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_e117f17c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/emotion/adjust-goal::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_f32d9050",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/emotion/update::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_18e9691f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/generate-reply::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_8ba017c4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/goal/derive::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_7c55ac23",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/knowledge/forbidden-phrases/check::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_5c236e66",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/knowledge/forbidden-phrases/sanitize::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_3fdf5b24",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/optimization/persist-adjustments::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_fb8dca7a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/persona/enforce::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_226886a8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/persona/structure/restructure::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_8767b911",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/persona/tone-select::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_e389b01d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/persona/validate-transparency::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_839e983b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/prompt/sentiment-modifier::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_183758f1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/question/detect-all::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_af99fb5b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/question/detect::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_4169d928",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/reengagement/build-message::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_0f269875",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/reply-evaluate::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_5feab802",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/revenue/discount-decide::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_d8bfc24b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/revenue/process-inbound::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_e2bf8bad",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/safety/abuse/check-inbound::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_b30b1986",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/safety/abuse/detect-spam-like::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_a6ebada0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/safety/process-outbound::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_f1fdc97a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/safety/validate-inbound::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_3970f02e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sales-acceleration/accelerate::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_3c92bd00",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/generate-trial-sequence::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_7a1f7040",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/maybe-inject-sales-prompt::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_4020f0f3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sentiment/analyze::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_d234b9e4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sequence/process-command::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_86353cad",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sequence/run-step::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_481f9dca",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sequence/run-steps::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_841a8aba",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/subscription-nudge/run::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_e34d5bea",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/trial/extend::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_07f02955",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach/followups/adjust-timing-by-temperature::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_ccc1672e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/subscription/feature-access/determine-access::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_0c2e40a4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/subscription/feature-access/enforce::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_640ffead",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/subscription/feature-access/feature-display-name::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_6a36fc45",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/subscription/feature-access/resolve-feature-key::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_648ee847",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/tap/webhook/process-attempt::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_cdd39546",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/whatsapp/dialog360/inbound::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_7e77c285",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/whatsapp/webhook/process-status::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_7edf5da4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_282",
        "fqmn": "route::routes/api.php::post::/testing/sate/zoho/webhook/process::closure",
        "canonical": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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_6ec36346",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_283",
        "fqmn": "route::routes/api.php::post::/testing/sate/notifications/retry-scheduled::closure",
        "canonical": "route::routes/api.php::get::/health::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/health::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_dbfc2ef7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_284",
        "fqmn": "route::routes/outreach.php::post::/outreach/webhook/whatsapp/test::closure",
        "canonical": "route::routes/api.php::get::/internal/metrics::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/internal/metrics::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_33bac782",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_285",
        "fqmn": "App\\Services\\Billing\\ZohoBillingAnalyticsService@__invoke",
        "canonical": "App\\Livewire\\Landing\\ContactForm@__invoke",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Livewire\\Landing\\ContactForm@__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_4c6f7229",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_285",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\ForbiddenPhrasesRegistry@__invoke",
        "canonical": "App\\Livewire\\Landing\\ContactForm@__invoke",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Livewire\\Landing\\ContactForm@__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_af210f8f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_285",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\PersonaConfig@__invoke",
        "canonical": "App\\Livewire\\Landing\\ContactForm@__invoke",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Livewire\\Landing\\ContactForm@__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_af210f8f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_285",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\PersonaConfig@__invoke",
        "canonical": "App\\Livewire\\Landing\\ContactForm@__invoke",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Livewire\\Landing\\ContactForm@__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_af210f8f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_285",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\PersonaConfig@__invoke",
        "canonical": "App\\Livewire\\Landing\\ContactForm@__invoke",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Livewire\\Landing\\ContactForm@__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_5c30e4e7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_286",
        "fqmn": "route::routes/web.php::get::/log::closure",
        "canonical": "route::routes/api.php::get::/tickets/approve/{token}::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::get::/tickets/approve/{token}::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_3375c686",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_287",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/invoices/generate-credit-topup::closure",
        "canonical": "route::routes/api.php::post::/testing/sate/auth/filament/agency-register-batch::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::post::/testing/sate/auth/filament/agency-register-batch::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_495c6954",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_287",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/invoices/generate-message-package::closure",
        "canonical": "route::routes/api.php::post::/testing/sate/auth/filament/agency-register-batch::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::post::/testing/sate/auth/filament/agency-register-batch::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_7d338184",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_287",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/zoho/analytics/invoice-anomalies::closure",
        "canonical": "route::routes/api.php::post::/testing/sate/auth/filament/agency-register-batch::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::post::/testing/sate/auth/filament/agency-register-batch::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_2521842a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_287",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/zoho/analytics/monthly-invoice-stats::closure",
        "canonical": "route::routes/api.php::post::/testing/sate/auth/filament/agency-register-batch::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::post::/testing/sate/auth/filament/agency-register-batch::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_1e79016c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_287",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/zoho/analytics/vat-exposure::closure",
        "canonical": "route::routes/api.php::post::/testing/sate/auth/filament/agency-register-batch::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::post::/testing/sate/auth/filament/agency-register-batch::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_2dd696ef",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_287",
        "fqmn": "route::routes/api.php::post::/testing/sate/email-template/is-enabled-for-organization::closure",
        "canonical": "route::routes/api.php::post::/testing/sate/auth/filament/agency-register-batch::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::post::/testing/sate/auth/filament/agency-register-batch::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_852a3efa",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_287",
        "fqmn": "route::routes/api.php::post::/testing/sate/tap/create-subscription-charge::closure",
        "canonical": "route::routes/api.php::post::/testing/sate/auth/filament/agency-register-batch::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::post::/testing/sate/auth/filament/agency-register-batch::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_e479d1f3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_288",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/tap-webhook/process::closure",
        "canonical": "route::routes/api.php::post::/testing/sate/billing/tap-webhook/process-twice::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::post::/testing/sate/billing/tap-webhook/process-twice::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_b7bd32d3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_288",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sentiment/analyze-and-audit::closure",
        "canonical": "route::routes/api.php::post::/testing/sate/billing/tap-webhook/process-twice::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::post::/testing/sate/billing/tap-webhook/process-twice::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_11b3b17b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_288",
        "fqmn": "route::routes/api.php::post::/testing/sate/reminders/cancel-for-rent-cycle::closure",
        "canonical": "route::routes/api.php::post::/testing/sate/billing/tap-webhook/process-twice::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::post::/testing/sate/billing/tap-webhook/process-twice::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_e58d1d51",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_289",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/zoho/sync-tap-settlement::closure",
        "canonical": "route::routes/api.php::post::/testing/sate/billing/zoho/sync-invoice::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::post::/testing/sate/billing/zoho/sync-invoice::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_7f48caf9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_290",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/generate-reply-with-weights::closure",
        "canonical": "route::routes/api.php::post::/testing/sate/files/security/scan-for-virus::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::post::/testing/sate/files/security/scan-for-virus::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_2c74535a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_290",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach/followups/schedule::closure",
        "canonical": "route::routes/api.php::post::/testing/sate/files/security/scan-for-virus::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::post::/testing/sate/files/security/scan-for-virus::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_9c73a5c9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_290",
        "fqmn": "route::routes/api.php::post::/testing/sate/whatsapp/session-notes/create::closure",
        "canonical": "route::routes/api.php::post::/testing/sate/files/security/scan-for-virus::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::post::/testing/sate/files/security/scan-for-virus::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_3b6f6a06",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_290",
        "fqmn": "route::routes/api.php::post::/testing/sate/whatsapp/sessions/create::closure",
        "canonical": "route::routes/api.php::post::/testing/sate/files/security/scan-for-virus::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::post::/testing/sate/files/security/scan-for-virus::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_032ad0ce",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_291",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach/followups/convert-interval-to-timestamp::closure",
        "canonical": "route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/update-stage::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/update-stage::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_b7ac5fa5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_292",
        "fqmn": "route::routes/outreach.php::any::/testing/sate/{path}::closure",
        "canonical": "route::routes/outreach.php::any::/testing/outreach-ai/{path}::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/outreach.php::any::/testing/outreach-ai/{path}::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_86464d63",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_293",
        "fqmn": "route::routes/web.php::get::/collection::closure",
        "canonical": "route::routes/web.php::get::/agencies::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/web.php::get::/agencies::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_80d35e1b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_293",
        "fqmn": "route::routes/web.php::get::/invoicing::closure",
        "canonical": "route::routes/web.php::get::/agencies::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/web.php::get::/agencies::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_43869cd2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_293",
        "fqmn": "route::routes/web.php::get::/landlords::closure",
        "canonical": "route::routes/web.php::get::/agencies::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/web.php::get::/agencies::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_7566c3ce",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_293",
        "fqmn": "route::routes/web.php::get::/maintenance::closure",
        "canonical": "route::routes/web.php::get::/agencies::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/web.php::get::/agencies::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_ceab5052",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_293",
        "fqmn": "route::routes/web.php::get::/payments::closure",
        "canonical": "route::routes/web.php::get::/agencies::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/web.php::get::/agencies::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_370e7095",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_293",
        "fqmn": "route::routes/web.php::get::/whatsapp::closure",
        "canonical": "route::routes/web.php::get::/agencies::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/web.php::get::/agencies::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_bcf822a6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_294",
        "fqmn": "route::routes/web.php::get::/images/favicon.ico::closure",
        "canonical": "route::routes/web.php::get::/favicon.ico::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/web.php::get::/favicon.ico::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_202ac987",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_294",
        "fqmn": "route::routes/web.php::get::/manifest.json::closure",
        "canonical": "route::routes/web.php::get::/favicon.ico::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/web.php::get::/favicon.ico::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_54e5b121",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_294",
        "fqmn": "route::routes/web.php::get::/robots.txt::closure",
        "canonical": "route::routes/web.php::get::/favicon.ico::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/web.php::get::/favicon.ico::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_f5d00b25",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_294",
        "fqmn": "route::routes/web.php::get::/service-worker.js::closure",
        "canonical": "route::routes/web.php::get::/favicon.ico::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/web.php::get::/favicon.ico::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
      }
    ],
    "coverage_gaps": [
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/Auth/FilamentAgencyRegisterAction.php::App\\Actions\\Auth\\FilamentAgencyRegisterAction::execute",
        "fqmn": "App\\Actions\\Auth\\FilamentAgencyRegisterAction@execute",
        "expected_test_path": "tests/Unit/FilamentAgencyRegisterActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Actions\\Auth\\FilamentAgencyRegisterAction;\n\nclass FilamentAgencyRegisterActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\Auth\\FilamentAgencyRegisterAction@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Actions\\Auth\\FilamentAgencyRegisterAction@execute is PROOF_READY but no test file at tests/Unit/FilamentAgencyRegisterActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/Billing/AddUnitsToSubscriptionAction.php::App\\Actions\\Billing\\AddUnitsToSubscriptionAction::execute",
        "fqmn": "App\\Actions\\Billing\\AddUnitsToSubscriptionAction@execute",
        "expected_test_path": "tests/Unit/AddUnitsToSubscriptionActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Actions\\Billing\\AddUnitsToSubscriptionAction;\n\nclass AddUnitsToSubscriptionActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\Billing\\AddUnitsToSubscriptionAction@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Actions\\Billing\\AddUnitsToSubscriptionAction@execute is PROOF_READY but no test file at tests/Unit/AddUnitsToSubscriptionActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/Billing/CreateCreditTransactionAction.php::App\\Actions\\Billing\\CreateCreditTransactionAction::execute",
        "fqmn": "App\\Actions\\Billing\\CreateCreditTransactionAction@execute",
        "expected_test_path": "tests/Unit/CreateCreditTransactionActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Actions\\Billing\\CreateCreditTransactionAction;\n\nclass CreateCreditTransactionActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\Billing\\CreateCreditTransactionAction@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Actions\\Billing\\CreateCreditTransactionAction@execute is PROOF_READY but no test file at tests/Unit/CreateCreditTransactionActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/Billing/CreateProrationChargeAction.php::App\\Actions\\Billing\\CreateProrationChargeAction::execute",
        "fqmn": "App\\Actions\\Billing\\CreateProrationChargeAction@execute",
        "expected_test_path": "tests/Unit/CreateProrationChargeActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Actions\\Billing\\CreateProrationChargeAction;\n\nclass CreateProrationChargeActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\Billing\\CreateProrationChargeAction@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Actions\\Billing\\CreateProrationChargeAction@execute is PROOF_READY but no test file at tests/Unit/CreateProrationChargeActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/Billing/CreateSoftDeletedOrganizationSubscriptionAction.php::App\\Actions\\Billing\\CreateSoftDeletedOrganizationSubscriptionAction::execute",
        "fqmn": "App\\Actions\\Billing\\CreateSoftDeletedOrganizationSubscriptionAction@execute",
        "expected_test_path": "tests/Unit/CreateSoftDeletedOrganizationSubscriptionActionTest.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\\Actions\\Billing\\CreateSoftDeletedOrganizationSubscriptionAction;\n\nclass CreateSoftDeletedOrganizationSubscriptionActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\Billing\\CreateSoftDeletedOrganizationSubscriptionAction@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    }\n}\n",
        "explanation": "Surface App\\Actions\\Billing\\CreateSoftDeletedOrganizationSubscriptionAction@execute is PROOF_READY but no test file at tests/Unit/CreateSoftDeletedOrganizationSubscriptionActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/Billing/RecordSubscriptionDiscountCodeUsageAction.php::App\\Actions\\Billing\\RecordSubscriptionDiscountCodeUsageAction::execute",
        "fqmn": "App\\Actions\\Billing\\RecordSubscriptionDiscountCodeUsageAction@execute",
        "expected_test_path": "tests/Unit/RecordSubscriptionDiscountCodeUsageActionTest.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\\Actions\\Billing\\RecordSubscriptionDiscountCodeUsageAction;\n\nclass RecordSubscriptionDiscountCodeUsageActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\Billing\\RecordSubscriptionDiscountCodeUsageAction@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\\Actions\\Billing\\RecordSubscriptionDiscountCodeUsageAction@execute is PROOF_READY but no test file at tests/Unit/RecordSubscriptionDiscountCodeUsageActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/EmailTemplates/IsEmailTemplateEnabledForOrganizationAction.php::App\\Actions\\EmailTemplates\\IsEmailTemplateEnabledForOrganizationAction::execute",
        "fqmn": "App\\Actions\\EmailTemplates\\IsEmailTemplateEnabledForOrganizationAction@execute",
        "expected_test_path": "tests/Unit/IsEmailTemplateEnabledForOrganizationActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Actions\\EmailTemplates\\IsEmailTemplateEnabledForOrganizationAction;\n\nclass IsEmailTemplateEnabledForOrganizationActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\EmailTemplates\\IsEmailTemplateEnabledForOrganizationAction@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Actions\\EmailTemplates\\IsEmailTemplateEnabledForOrganizationAction@execute is PROOF_READY but no test file at tests/Unit/IsEmailTemplateEnabledForOrganizationActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/EmailTemplates/RenderEmailTemplateAction.php::App\\Actions\\EmailTemplates\\RenderEmailTemplateAction::execute",
        "fqmn": "App\\Actions\\EmailTemplates\\RenderEmailTemplateAction@execute",
        "expected_test_path": "tests/Unit/RenderEmailTemplateActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Actions\\EmailTemplates\\RenderEmailTemplateAction;\n\nclass RenderEmailTemplateActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\EmailTemplates\\RenderEmailTemplateAction@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Actions\\EmailTemplates\\RenderEmailTemplateAction@execute is PROOF_READY but no test file at tests/Unit/RenderEmailTemplateActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/EmailTemplates/SendEmailTemplateAction.php::App\\Actions\\EmailTemplates\\SendEmailTemplateAction::execute",
        "fqmn": "App\\Actions\\EmailTemplates\\SendEmailTemplateAction@execute",
        "expected_test_path": "tests/Unit/SendEmailTemplateActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Actions\\EmailTemplates\\SendEmailTemplateAction;\n\nclass SendEmailTemplateActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\EmailTemplates\\SendEmailTemplateAction@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Actions\\EmailTemplates\\SendEmailTemplateAction@execute is PROOF_READY but no test file at tests/Unit/SendEmailTemplateActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/EmailTemplates/SendEmailTemplateToManyRecipientsAction.php::App\\Actions\\EmailTemplates\\SendEmailTemplateToManyRecipientsAction::execute",
        "fqmn": "App\\Actions\\EmailTemplates\\SendEmailTemplateToManyRecipientsAction@execute",
        "expected_test_path": "tests/Unit/SendEmailTemplateToManyRecipientsActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Actions\\EmailTemplates\\SendEmailTemplateToManyRecipientsAction;\n\nclass SendEmailTemplateToManyRecipientsActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\EmailTemplates\\SendEmailTemplateToManyRecipientsAction@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Actions\\EmailTemplates\\SendEmailTemplateToManyRecipientsAction@execute is PROOF_READY but no test file at tests/Unit/SendEmailTemplateToManyRecipientsActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/EmailTemplates/SendEmailTemplateToUsersUsingTheirLocaleAction.php::App\\Actions\\EmailTemplates\\SendEmailTemplateToUsersUsingTheirLocaleAction::execute",
        "fqmn": "App\\Actions\\EmailTemplates\\SendEmailTemplateToUsersUsingTheirLocaleAction@execute",
        "expected_test_path": "tests/Unit/SendEmailTemplateToUsersUsingTheirLocaleActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Actions\\EmailTemplates\\SendEmailTemplateToUsersUsingTheirLocaleAction;\n\nclass SendEmailTemplateToUsersUsingTheirLocaleActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\EmailTemplates\\SendEmailTemplateToUsersUsingTheirLocaleAction@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Actions\\EmailTemplates\\SendEmailTemplateToUsersUsingTheirLocaleAction@execute is PROOF_READY but no test file at tests/Unit/SendEmailTemplateToUsersUsingTheirLocaleActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/NotificationPreferences/ClearNotificationPreferenceAction.php::App\\Actions\\NotificationPreferences\\ClearNotificationPreferenceAction::run",
        "fqmn": "App\\Actions\\NotificationPreferences\\ClearNotificationPreferenceAction@run",
        "expected_test_path": "tests/Unit/ClearNotificationPreferenceActionTest.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\\Actions\\NotificationPreferences\\ClearNotificationPreferenceAction;\n\nclass ClearNotificationPreferenceActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\NotificationPreferences\\ClearNotificationPreferenceAction@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\\Actions\\NotificationPreferences\\ClearNotificationPreferenceAction@run is PROOF_READY but no test file at tests/Unit/ClearNotificationPreferenceActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/Outreach/CancelFollowUp.php::App\\Actions\\Outreach\\CancelFollowUp::__invoke",
        "fqmn": "App\\Actions\\Outreach\\CancelFollowUp@__invoke",
        "expected_test_path": "tests/Unit/CancelFollowUpTest.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\\Actions\\Outreach\\CancelFollowUp;\n\nclass CancelFollowUpTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\Outreach\\CancelFollowUp@__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        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Actions\\Outreach\\CancelFollowUp@__invoke is PROOF_READY but no test file at tests/Unit/CancelFollowUpTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/Outreach/CheckFollowUpSafetyAction.php::App\\Actions\\Outreach\\CheckFollowUpSafetyAction::execute",
        "fqmn": "App\\Actions\\Outreach\\CheckFollowUpSafetyAction@execute",
        "expected_test_path": "tests/Unit/CheckFollowUpSafetyActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Actions\\Outreach\\CheckFollowUpSafetyAction;\n\nclass CheckFollowUpSafetyActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\Outreach\\CheckFollowUpSafetyAction@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Actions\\Outreach\\CheckFollowUpSafetyAction@execute is PROOF_READY but no test file at tests/Unit/CheckFollowUpSafetyActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/Outreach/CreateCountryAction.php::App\\Actions\\Outreach\\CreateCountryAction::execute",
        "fqmn": "App\\Actions\\Outreach\\CreateCountryAction@execute",
        "expected_test_path": "tests/Unit/CreateCountryActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Actions\\Outreach\\CreateCountryAction;\n\nclass CreateCountryActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\Outreach\\CreateCountryAction@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Actions\\Outreach\\CreateCountryAction@execute is PROOF_READY but no test file at tests/Unit/CreateCountryActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/Outreach/CreateFollowUpAction.php::App\\Actions\\Outreach\\CreateFollowUpAction::execute",
        "fqmn": "App\\Actions\\Outreach\\CreateFollowUpAction@execute",
        "expected_test_path": "tests/Unit/CreateFollowUpActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Actions\\Outreach\\CreateFollowUpAction;\n\nclass CreateFollowUpActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\Outreach\\CreateFollowUpAction@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Actions\\Outreach\\CreateFollowUpAction@execute is PROOF_READY but no test file at tests/Unit/CreateFollowUpActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/Outreach/CreateLeadAction.php::App\\Actions\\Outreach\\CreateLeadAction::execute",
        "fqmn": "App\\Actions\\Outreach\\CreateLeadAction@execute",
        "expected_test_path": "tests/Unit/CreateLeadActionTest.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\\Actions\\Outreach\\CreateLeadAction;\n\nclass CreateLeadActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\Outreach\\CreateLeadAction@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    }\n}\n",
        "explanation": "Surface App\\Actions\\Outreach\\CreateLeadAction@execute is PROOF_READY but no test file at tests/Unit/CreateLeadActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/Outreach/ImportLeadsAction.php::App\\Actions\\Outreach\\ImportLeadsAction::execute",
        "fqmn": "App\\Actions\\Outreach\\ImportLeadsAction@execute",
        "expected_test_path": "tests/Unit/ImportLeadsActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Actions\\Outreach\\ImportLeadsAction;\n\nclass ImportLeadsActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\Outreach\\ImportLeadsAction@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Actions\\Outreach\\ImportLeadsAction@execute is PROOF_READY but no test file at tests/Unit/ImportLeadsActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/Outreach/TriggerFollowUpNow.php::App\\Actions\\Outreach\\TriggerFollowUpNow::__invoke",
        "fqmn": "App\\Actions\\Outreach\\TriggerFollowUpNow@__invoke",
        "expected_test_path": "tests/Unit/TriggerFollowUpNowTest.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\\Actions\\Outreach\\TriggerFollowUpNow;\n\nclass TriggerFollowUpNowTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\Outreach\\TriggerFollowUpNow@__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        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Actions\\Outreach\\TriggerFollowUpNow@__invoke is PROOF_READY but no test file at tests/Unit/TriggerFollowUpNowTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/OutreachAI/AssignClusterAction.php::App\\Actions\\OutreachAI\\AssignClusterAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\AssignClusterAction@execute",
        "expected_test_path": "tests/Unit/AssignClusterActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Actions\\OutreachAI\\AssignClusterAction;\n\nclass AssignClusterActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\OutreachAI\\AssignClusterAction@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Actions\\OutreachAI\\AssignClusterAction@execute is PROOF_READY but no test file at tests/Unit/AssignClusterActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/OutreachAI/ComputeAttributionAction.php::App\\Actions\\OutreachAI\\ComputeAttributionAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\ComputeAttributionAction@execute",
        "expected_test_path": "tests/Unit/ComputeAttributionActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Actions\\OutreachAI\\ComputeAttributionAction;\n\nclass ComputeAttributionActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\OutreachAI\\ComputeAttributionAction@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Actions\\OutreachAI\\ComputeAttributionAction@execute is PROOF_READY but no test file at tests/Unit/ComputeAttributionActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/OutreachAI/DecideDiscountAction.php::App\\Actions\\OutreachAI\\DecideDiscountAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\DecideDiscountAction@execute",
        "expected_test_path": "tests/Unit/DecideDiscountActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Actions\\OutreachAI\\DecideDiscountAction;\n\nclass DecideDiscountActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\OutreachAI\\DecideDiscountAction@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Actions\\OutreachAI\\DecideDiscountAction@execute is PROOF_READY but no test file at tests/Unit/DecideDiscountActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/OutreachAI/DeriveGoalAction.php::App\\Actions\\OutreachAI\\DeriveGoalAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\DeriveGoalAction@execute",
        "expected_test_path": "tests/Unit/DeriveGoalActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Actions\\OutreachAI\\DeriveGoalAction;\n\nclass DeriveGoalActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\OutreachAI\\DeriveGoalAction@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Actions\\OutreachAI\\DeriveGoalAction@execute is PROOF_READY but no test file at tests/Unit/DeriveGoalActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/OutreachAI/DetectBudgetAction.php::App\\Actions\\OutreachAI\\DetectBudgetAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\DetectBudgetAction@execute",
        "expected_test_path": "tests/Unit/DetectBudgetActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Actions\\OutreachAI\\DetectBudgetAction;\n\nclass DetectBudgetActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\OutreachAI\\DetectBudgetAction@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Actions\\OutreachAI\\DetectBudgetAction@execute is PROOF_READY but no test file at tests/Unit/DetectBudgetActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/OutreachAI/GenerateAIResponderReplyAction.php::App\\Actions\\OutreachAI\\GenerateAIResponderReplyAction::run",
        "fqmn": "App\\Actions\\OutreachAI\\GenerateAIResponderReplyAction@run",
        "expected_test_path": "tests/Unit/GenerateAIResponderReplyActionTest.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\\Actions\\OutreachAI\\GenerateAIResponderReplyAction;\n\nclass GenerateAIResponderReplyActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\OutreachAI\\GenerateAIResponderReplyAction@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\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Actions\\OutreachAI\\GenerateAIResponderReplyAction@run is PROOF_READY but no test file at tests/Unit/GenerateAIResponderReplyActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/OutreachAI/GenerateReplyOutcomeAction.php::App\\Actions\\OutreachAI\\GenerateReplyOutcomeAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\GenerateReplyOutcomeAction@execute",
        "expected_test_path": "tests/Unit/GenerateReplyOutcomeActionTest.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\\Actions\\OutreachAI\\GenerateReplyOutcomeAction;\n\nclass GenerateReplyOutcomeActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\OutreachAI\\GenerateReplyOutcomeAction@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\\Actions\\OutreachAI\\GenerateReplyOutcomeAction@execute is PROOF_READY but no test file at tests/Unit/GenerateReplyOutcomeActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/OutreachAI/GetBudgetStrategyAction.php::App\\Actions\\OutreachAI\\GetBudgetStrategyAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\GetBudgetStrategyAction@execute",
        "expected_test_path": "tests/Unit/GetBudgetStrategyActionTest.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\\Actions\\OutreachAI\\GetBudgetStrategyAction;\n\nclass GetBudgetStrategyActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\OutreachAI\\GetBudgetStrategyAction@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    }\n}\n",
        "explanation": "Surface App\\Actions\\OutreachAI\\GetBudgetStrategyAction@execute is PROOF_READY but no test file at tests/Unit/GetBudgetStrategyActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/OutreachAI/GetClosingActionNextStepAction.php::App\\Actions\\OutreachAI\\GetClosingActionNextStepAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\GetClosingActionNextStepAction@execute",
        "expected_test_path": "tests/Unit/GetClosingActionNextStepActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Actions\\OutreachAI\\GetClosingActionNextStepAction;\n\nclass GetClosingActionNextStepActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\OutreachAI\\GetClosingActionNextStepAction@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Actions\\OutreachAI\\GetClosingActionNextStepAction@execute is PROOF_READY but no test file at tests/Unit/GetClosingActionNextStepActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/OutreachAI/GetClosingStepAction.php::App\\Actions\\OutreachAI\\GetClosingStepAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\GetClosingStepAction@execute",
        "expected_test_path": "tests/Unit/GetClosingStepActionTest.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\\Actions\\OutreachAI\\GetClosingStepAction;\n\nclass GetClosingStepActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\OutreachAI\\GetClosingStepAction@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    }\n}\n",
        "explanation": "Surface App\\Actions\\OutreachAI\\GetClosingStepAction@execute is PROOF_READY but no test file at tests/Unit/GetClosingStepActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/OutreachAI/IssueAIDiscountAction.php::App\\Actions\\OutreachAI\\IssueAIDiscountAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\IssueAIDiscountAction@execute",
        "expected_test_path": "tests/Unit/IssueAIDiscountActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Actions\\OutreachAI\\IssueAIDiscountAction;\n\nclass IssueAIDiscountActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\OutreachAI\\IssueAIDiscountAction@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Actions\\OutreachAI\\IssueAIDiscountAction@execute is PROOF_READY but no test file at tests/Unit/IssueAIDiscountActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/OutreachAI/OutputInsightsAction.php::App\\Actions\\OutreachAI\\OutputInsightsAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\OutputInsightsAction@execute",
        "expected_test_path": "tests/Unit/OutputInsightsActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Actions\\OutreachAI\\OutputInsightsAction;\n\nclass OutputInsightsActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\OutreachAI\\OutputInsightsAction@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Actions\\OutreachAI\\OutputInsightsAction@execute is PROOF_READY but no test file at tests/Unit/OutputInsightsActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/OutreachAI/RecommendPlanAction.php::App\\Actions\\OutreachAI\\RecommendPlanAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\RecommendPlanAction@execute",
        "expected_test_path": "tests/Unit/RecommendPlanActionTest.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\\Actions\\OutreachAI\\RecommendPlanAction;\n\nclass RecommendPlanActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\OutreachAI\\RecommendPlanAction@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    }\n}\n",
        "explanation": "Surface App\\Actions\\OutreachAI\\RecommendPlanAction@execute is PROOF_READY but no test file at tests/Unit/RecommendPlanActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/OutreachAI/RecordFunnelEventAction.php::App\\Actions\\OutreachAI\\RecordFunnelEventAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\RecordFunnelEventAction@execute",
        "expected_test_path": "tests/Unit/RecordFunnelEventActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Actions\\OutreachAI\\RecordFunnelEventAction;\n\nclass RecordFunnelEventActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\OutreachAI\\RecordFunnelEventAction@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Actions\\OutreachAI\\RecordFunnelEventAction@execute is PROOF_READY but no test file at tests/Unit/RecordFunnelEventActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/OutreachAI/SalesAcceleration/AccelerateSalesAccelerationAction.php::App\\Actions\\OutreachAI\\SalesAcceleration\\AccelerateSalesAccelerationAction::run",
        "fqmn": "App\\Actions\\OutreachAI\\SalesAcceleration\\AccelerateSalesAccelerationAction@run",
        "expected_test_path": "tests/Unit/AccelerateSalesAccelerationActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Actions\\OutreachAI\\SalesAcceleration\\AccelerateSalesAccelerationAction;\n\nclass AccelerateSalesAccelerationActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\OutreachAI\\SalesAcceleration\\AccelerateSalesAccelerationAction@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\\Actions\\OutreachAI\\SalesAcceleration\\AccelerateSalesAccelerationAction@run is PROOF_READY but no test file at tests/Unit/AccelerateSalesAccelerationActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/OutreachAI/SalesAcceleration/RunQualificationOutcomeAction.php::App\\Actions\\OutreachAI\\SalesAcceleration\\RunQualificationOutcomeAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\SalesAcceleration\\RunQualificationOutcomeAction@execute",
        "expected_test_path": "tests/Unit/RunQualificationOutcomeActionTest.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\\Actions\\OutreachAI\\SalesAcceleration\\RunQualificationOutcomeAction;\n\nclass RunQualificationOutcomeActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\OutreachAI\\SalesAcceleration\\RunQualificationOutcomeAction@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\\Actions\\OutreachAI\\SalesAcceleration\\RunQualificationOutcomeAction@execute is PROOF_READY but no test file at tests/Unit/RunQualificationOutcomeActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/OutreachAI/SalesAcceleration/RunSalesAccelerationOutcomeAction.php::App\\Actions\\OutreachAI\\SalesAcceleration\\RunSalesAccelerationOutcomeAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\SalesAcceleration\\RunSalesAccelerationOutcomeAction@execute",
        "expected_test_path": "tests/Unit/RunSalesAccelerationOutcomeActionTest.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\\Actions\\OutreachAI\\SalesAcceleration\\RunSalesAccelerationOutcomeAction;\n\nclass RunSalesAccelerationOutcomeActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\OutreachAI\\SalesAcceleration\\RunSalesAccelerationOutcomeAction@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\\Actions\\OutreachAI\\SalesAcceleration\\RunSalesAccelerationOutcomeAction@execute is PROOF_READY but no test file at tests/Unit/RunSalesAccelerationOutcomeActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/OutreachAI/ScoreAffordabilityAction.php::App\\Actions\\OutreachAI\\ScoreAffordabilityAction::execute",
        "fqmn": "App\\Actions\\OutreachAI\\ScoreAffordabilityAction@execute",
        "expected_test_path": "tests/Unit/ScoreAffordabilityActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Actions\\OutreachAI\\ScoreAffordabilityAction;\n\nclass ScoreAffordabilityActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\OutreachAI\\ScoreAffordabilityAction@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Actions\\OutreachAI\\ScoreAffordabilityAction@execute is PROOF_READY but no test file at tests/Unit/ScoreAffordabilityActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/Payments/CreatePaymentDeductionAction.php::App\\Actions\\Payments\\CreatePaymentDeductionAction::execute",
        "fqmn": "App\\Actions\\Payments\\CreatePaymentDeductionAction@execute",
        "expected_test_path": "tests/Unit/CreatePaymentDeductionActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Actions\\Payments\\CreatePaymentDeductionAction;\n\nclass CreatePaymentDeductionActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\Payments\\CreatePaymentDeductionAction@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Actions\\Payments\\CreatePaymentDeductionAction@execute is PROOF_READY but no test file at tests/Unit/CreatePaymentDeductionActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/Payments/RecordPaymentAction.php::App\\Actions\\Payments\\RecordPaymentAction::execute",
        "fqmn": "App\\Actions\\Payments\\RecordPaymentAction@execute",
        "expected_test_path": "tests/Unit/RecordPaymentActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Actions\\Payments\\RecordPaymentAction;\n\nclass RecordPaymentActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\Payments\\RecordPaymentAction@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Actions\\Payments\\RecordPaymentAction@execute is PROOF_READY but no test file at tests/Unit/RecordPaymentActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/Properties/CreateProspectShortlistAction.php::App\\Actions\\Properties\\CreateProspectShortlistAction::execute",
        "fqmn": "App\\Actions\\Properties\\CreateProspectShortlistAction@execute",
        "expected_test_path": "tests/Unit/CreateProspectShortlistActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Actions\\Properties\\CreateProspectShortlistAction;\n\nclass CreateProspectShortlistActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\Properties\\CreateProspectShortlistAction@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Actions\\Properties\\CreateProspectShortlistAction@execute is PROOF_READY but no test file at tests/Unit/CreateProspectShortlistActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/Properties/CreateProspectShortlistUnitAction.php::App\\Actions\\Properties\\CreateProspectShortlistUnitAction::execute",
        "fqmn": "App\\Actions\\Properties\\CreateProspectShortlistUnitAction@execute",
        "expected_test_path": "tests/Unit/CreateProspectShortlistUnitActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Actions\\Properties\\CreateProspectShortlistUnitAction;\n\nclass CreateProspectShortlistUnitActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\Properties\\CreateProspectShortlistUnitAction@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Actions\\Properties\\CreateProspectShortlistUnitAction@execute is PROOF_READY but no test file at tests/Unit/CreateProspectShortlistUnitActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/Properties/IncrementProspectShortlistViewsAction.php::App\\Actions\\Properties\\IncrementProspectShortlistViewsAction::execute",
        "fqmn": "App\\Actions\\Properties\\IncrementProspectShortlistViewsAction@execute",
        "expected_test_path": "tests/Unit/IncrementProspectShortlistViewsActionTest.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\\Actions\\Properties\\IncrementProspectShortlistViewsAction;\n\nclass IncrementProspectShortlistViewsActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\Properties\\IncrementProspectShortlistViewsAction@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->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Actions\\Properties\\IncrementProspectShortlistViewsAction@execute is PROOF_READY but no test file at tests/Unit/IncrementProspectShortlistViewsActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/Properties/UpdateProspectShortlistAction.php::App\\Actions\\Properties\\UpdateProspectShortlistAction::execute",
        "fqmn": "App\\Actions\\Properties\\UpdateProspectShortlistAction@execute",
        "expected_test_path": "tests/Unit/UpdateProspectShortlistActionTest.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\\Actions\\Properties\\UpdateProspectShortlistAction;\n\nclass UpdateProspectShortlistActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\Properties\\UpdateProspectShortlistAction@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    }\n}\n",
        "explanation": "Surface App\\Actions\\Properties\\UpdateProspectShortlistAction@execute is PROOF_READY but no test file at tests/Unit/UpdateProspectShortlistActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/Properties/UpdateProspectShortlistUnitAction.php::App\\Actions\\Properties\\UpdateProspectShortlistUnitAction::execute",
        "fqmn": "App\\Actions\\Properties\\UpdateProspectShortlistUnitAction@execute",
        "expected_test_path": "tests/Unit/UpdateProspectShortlistUnitActionTest.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\\Actions\\Properties\\UpdateProspectShortlistUnitAction;\n\nclass UpdateProspectShortlistUnitActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\Properties\\UpdateProspectShortlistUnitAction@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    }\n}\n",
        "explanation": "Surface App\\Actions\\Properties\\UpdateProspectShortlistUnitAction@execute is PROOF_READY but no test file at tests/Unit/UpdateProspectShortlistUnitActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/PushSubscriptions/ManagePushSubscriptionAction.php::App\\Actions\\PushSubscriptions\\ManagePushSubscriptionAction::execute",
        "fqmn": "App\\Actions\\PushSubscriptions\\ManagePushSubscriptionAction@execute",
        "expected_test_path": "tests/Unit/ManagePushSubscriptionActionTest.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\\Actions\\PushSubscriptions\\ManagePushSubscriptionAction;\n\nclass ManagePushSubscriptionActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\PushSubscriptions\\ManagePushSubscriptionAction@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\\Actions\\PushSubscriptions\\ManagePushSubscriptionAction@execute is PROOF_READY but no test file at tests/Unit/ManagePushSubscriptionActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/SendEmailTemplateAction.php::App\\Actions\\SendEmailTemplateAction::execute",
        "fqmn": "App\\Actions\\SendEmailTemplateAction@execute",
        "expected_test_path": "tests/Unit/SendEmailTemplateActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Actions\\SendEmailTemplateAction;\n\nclass SendEmailTemplateActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\SendEmailTemplateAction@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Actions\\SendEmailTemplateAction@execute is PROOF_READY but no test file at tests/Unit/SendEmailTemplateActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/Users/RestoreUserWithNewEmailAction.php::App\\Actions\\Users\\RestoreUserWithNewEmailAction::execute",
        "fqmn": "App\\Actions\\Users\\RestoreUserWithNewEmailAction@execute",
        "expected_test_path": "tests/Unit/RestoreUserWithNewEmailActionTest.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\\Actions\\Users\\RestoreUserWithNewEmailAction;\n\nclass RestoreUserWithNewEmailActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\Users\\RestoreUserWithNewEmailAction@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    }\n}\n",
        "explanation": "Surface App\\Actions\\Users\\RestoreUserWithNewEmailAction@execute is PROOF_READY but no test file at tests/Unit/RestoreUserWithNewEmailActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/Zoho/SyncZohoCustomerAction.php::App\\Actions\\Zoho\\SyncZohoCustomerAction::execute",
        "fqmn": "App\\Actions\\Zoho\\SyncZohoCustomerAction@execute",
        "expected_test_path": "tests/Unit/SyncZohoCustomerActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Actions\\Zoho\\SyncZohoCustomerAction;\n\nclass SyncZohoCustomerActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\Zoho\\SyncZohoCustomerAction@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Actions\\Zoho\\SyncZohoCustomerAction@execute is PROOF_READY but no test file at tests/Unit/SyncZohoCustomerActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Acti",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Actions/Zoho/SyncZohoInvoiceAction.php::App\\Actions\\Zoho\\SyncZohoInvoiceAction::execute",
        "fqmn": "App\\Actions\\Zoho\\SyncZohoInvoiceAction@execute",
        "expected_test_path": "tests/Unit/SyncZohoInvoiceActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Actions\\Zoho\\SyncZohoInvoiceAction;\n\nclass SyncZohoInvoiceActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Actions\\Zoho\\SyncZohoInvoiceAction@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Actions\\Zoho\\SyncZohoInvoiceAction@execute is PROOF_READY but no test file at tests/Unit/SyncZohoInvoiceActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/AIBr",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/AIBr/Support/Helpers.php::App\\AIBr\\Support\\Helpers::normalizeText",
        "fqmn": "App\\AIBr\\Support\\Helpers@normalizeText",
        "expected_test_path": "tests/Unit/HelpersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\AIBr\\Support\\Helpers;\n\nclass HelpersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\AIBr\\Support\\Helpers@normalizeText\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_normalizetext_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\AIBr\\Support\\Helpers@normalizeText is PROOF_READY but no test file at tests/Unit/HelpersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/AIBr",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/AIBr/Support/TextFilters.php::App\\AIBr\\Support\\TextFilters::sanitize",
        "fqmn": "App\\AIBr\\Support\\TextFilters@sanitize",
        "expected_test_path": "tests/Unit/TextFiltersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\AIBr\\Support\\TextFilters;\n\nclass TextFiltersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\AIBr\\Support\\TextFilters@sanitize\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_sanitize_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\AIBr\\Support\\TextFilters@sanitize is PROOF_READY but no test file at tests/Unit/TextFiltersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/BookingController.php::App\\Api\\Controllers\\BookingController::cancel",
        "fqmn": "App\\Api\\Controllers\\BookingController@cancel",
        "expected_test_path": "tests/Unit/BookingControllerTest.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\\Api\\Controllers\\BookingController;\n\nclass BookingControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\BookingController@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\\Api\\Controllers\\BookingController@cancel is PROOF_READY but no test file at tests/Unit/BookingControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/BookingController.php::App\\Api\\Controllers\\BookingController::convert",
        "fqmn": "App\\Api\\Controllers\\BookingController@convert",
        "expected_test_path": "tests/Unit/BookingControllerTest.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\\Api\\Controllers\\BookingController;\n\nclass BookingControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\BookingController@convert\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_convert_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\BookingController@convert is PROOF_READY but no test file at tests/Unit/BookingControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/BookingController.php::App\\Api\\Controllers\\BookingController::store",
        "fqmn": "App\\Api\\Controllers\\BookingController@store",
        "expected_test_path": "tests/Unit/BookingControllerTest.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\\Api\\Controllers\\BookingController;\n\nclass BookingControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\BookingController@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\\Api\\Controllers\\BookingController@store is PROOF_READY but no test file at tests/Unit/BookingControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/FileController.php::App\\Api\\Controllers\\FileController::bulkUpload",
        "fqmn": "App\\Api\\Controllers\\FileController@bulkUpload",
        "expected_test_path": "tests/Unit/FileControllerTest.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\\Api\\Controllers\\FileController;\n\nclass FileControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\FileController@bulkUpload\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_bulkupload_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\FileController@bulkUpload is PROOF_READY but no test file at tests/Unit/FileControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/FileController.php::App\\Api\\Controllers\\FileController::destroy",
        "fqmn": "App\\Api\\Controllers\\FileController@destroy",
        "expected_test_path": "tests/Unit/FileControllerTest.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\\Api\\Controllers\\FileController;\n\nclass FileControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\FileController@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\\Api\\Controllers\\FileController@destroy is PROOF_READY but no test file at tests/Unit/FileControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/FileController.php::App\\Api\\Controllers\\FileController::download",
        "fqmn": "App\\Api\\Controllers\\FileController@download",
        "expected_test_path": "tests/Unit/FileControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\FileController;\n\nclass FileControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\FileController@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\\Api\\Controllers\\FileController@download is PROOF_READY but no test file at tests/Unit/FileControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/FileController.php::App\\Api\\Controllers\\FileController::index",
        "fqmn": "App\\Api\\Controllers\\FileController@index",
        "expected_test_path": "tests/Unit/FileControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\FileController;\n\nclass FileControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\FileController@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\\Api\\Controllers\\FileController@index is PROOF_READY but no test file at tests/Unit/FileControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/FileController.php::App\\Api\\Controllers\\FileController::show",
        "fqmn": "App\\Api\\Controllers\\FileController@show",
        "expected_test_path": "tests/Unit/FileControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\FileController;\n\nclass FileControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\FileController@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\\Api\\Controllers\\FileController@show is PROOF_READY but no test file at tests/Unit/FileControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/FileController.php::App\\Api\\Controllers\\FileController::stats",
        "fqmn": "App\\Api\\Controllers\\FileController@stats",
        "expected_test_path": "tests/Unit/FileControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\FileController;\n\nclass FileControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\FileController@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\\Api\\Controllers\\FileController@stats is PROOF_READY but no test file at tests/Unit/FileControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/FileController.php::App\\Api\\Controllers\\FileController::upload",
        "fqmn": "App\\Api\\Controllers\\FileController@upload",
        "expected_test_path": "tests/Unit/FileControllerTest.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\\Api\\Controllers\\FileController;\n\nclass FileControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\FileController@upload\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_upload_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\FileController@upload is PROOF_READY but no test file at tests/Unit/FileControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/GatewayController.php::App\\Api\\Controllers\\GatewayController::deliveryStatus",
        "fqmn": "App\\Api\\Controllers\\GatewayController@deliveryStatus",
        "expected_test_path": "tests/Unit/GatewayControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\GatewayController;\n\nclass GatewayControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\GatewayController@deliveryStatus\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_deliverystatus_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\GatewayController@deliveryStatus is PROOF_READY but no test file at tests/Unit/GatewayControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/GatewayController.php::App\\Api\\Controllers\\GatewayController::heartbeat",
        "fqmn": "App\\Api\\Controllers\\GatewayController@heartbeat",
        "expected_test_path": "tests/Unit/GatewayControllerTest.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\\Api\\Controllers\\GatewayController;\n\nclass GatewayControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\GatewayController@heartbeat\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_heartbeat_behaves_correctly(): void\n    {\n\n        // TODO: 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\\Api\\Controllers\\GatewayController@heartbeat is PROOF_READY but no test file at tests/Unit/GatewayControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/GatewayController.php::App\\Api\\Controllers\\GatewayController::register",
        "fqmn": "App\\Api\\Controllers\\GatewayController@register",
        "expected_test_path": "tests/Unit/GatewayControllerTest.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\\Api\\Controllers\\GatewayController;\n\nclass GatewayControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\GatewayController@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        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\GatewayController@register is PROOF_READY but no test file at tests/Unit/GatewayControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/GatewayController.php::App\\Api\\Controllers\\GatewayController::whatsappConfig",
        "fqmn": "App\\Api\\Controllers\\GatewayController@whatsappConfig",
        "expected_test_path": "tests/Unit/GatewayControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\GatewayController;\n\nclass GatewayControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\GatewayController@whatsappConfig\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_whatsappconfig_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\GatewayController@whatsappConfig is PROOF_READY but no test file at tests/Unit/GatewayControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/LandlordController.php::App\\Api\\Controllers\\LandlordController::destroy",
        "fqmn": "App\\Api\\Controllers\\LandlordController@destroy",
        "expected_test_path": "tests/Unit/LandlordControllerTest.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\\Api\\Controllers\\LandlordController;\n\nclass LandlordControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\LandlordController@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\\Api\\Controllers\\LandlordController@destroy is PROOF_READY but no test file at tests/Unit/LandlordControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/LandlordController.php::App\\Api\\Controllers\\LandlordController::index",
        "fqmn": "App\\Api\\Controllers\\LandlordController@index",
        "expected_test_path": "tests/Unit/LandlordControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\LandlordController;\n\nclass LandlordControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\LandlordController@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\\Api\\Controllers\\LandlordController@index is PROOF_READY but no test file at tests/Unit/LandlordControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/LandlordController.php::App\\Api\\Controllers\\LandlordController::resendInvitation",
        "fqmn": "App\\Api\\Controllers\\LandlordController@resendInvitation",
        "expected_test_path": "tests/Unit/LandlordControllerTest.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\\Api\\Controllers\\LandlordController;\n\nclass LandlordControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\LandlordController@resendInvitation\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resendinvitation_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\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\\Api\\Controllers\\LandlordController@resendInvitation is PROOF_READY but no test file at tests/Unit/LandlordControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/LandlordController.php::App\\Api\\Controllers\\LandlordController::show",
        "fqmn": "App\\Api\\Controllers\\LandlordController@show",
        "expected_test_path": "tests/Unit/LandlordControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\LandlordController;\n\nclass LandlordControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\LandlordController@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\\Api\\Controllers\\LandlordController@show is PROOF_READY but no test file at tests/Unit/LandlordControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/LandlordController.php::App\\Api\\Controllers\\LandlordController::stats",
        "fqmn": "App\\Api\\Controllers\\LandlordController@stats",
        "expected_test_path": "tests/Unit/LandlordControllerTest.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\\Api\\Controllers\\LandlordController;\n\nclass LandlordControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\LandlordController@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\\Api\\Controllers\\LandlordController@stats is PROOF_READY but no test file at tests/Unit/LandlordControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/LandlordController.php::App\\Api\\Controllers\\LandlordController::store",
        "fqmn": "App\\Api\\Controllers\\LandlordController@store",
        "expected_test_path": "tests/Unit/LandlordControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\LandlordController;\n\nclass LandlordControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\LandlordController@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        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\LandlordController@store is PROOF_READY but no test file at tests/Unit/LandlordControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/LandlordController.php::App\\Api\\Controllers\\LandlordController::update",
        "fqmn": "App\\Api\\Controllers\\LandlordController@update",
        "expected_test_path": "tests/Unit/LandlordControllerTest.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\\Api\\Controllers\\LandlordController;\n\nclass LandlordControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\LandlordController@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\\Api\\Controllers\\LandlordController@update is PROOF_READY but no test file at tests/Unit/LandlordControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/LandlordDashboardController.php::App\\Api\\Controllers\\LandlordDashboardController::dashboard",
        "fqmn": "App\\Api\\Controllers\\LandlordDashboardController@dashboard",
        "expected_test_path": "tests/Unit/LandlordDashboardControllerTest.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\\Api\\Controllers\\LandlordDashboardController;\n\nclass LandlordDashboardControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\LandlordDashboardController@dashboard\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_dashboard_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\LandlordDashboardController@dashboard is PROOF_READY but no test file at tests/Unit/LandlordDashboardControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/LandlordDashboardController.php::App\\Api\\Controllers\\LandlordDashboardController::leases",
        "fqmn": "App\\Api\\Controllers\\LandlordDashboardController@leases",
        "expected_test_path": "tests/Unit/LandlordDashboardControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\LandlordDashboardController;\n\nclass LandlordDashboardControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\LandlordDashboardController@leases\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_leases_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\LandlordDashboardController@leases is PROOF_READY but no test file at tests/Unit/LandlordDashboardControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/LandlordDashboardController.php::App\\Api\\Controllers\\LandlordDashboardController::properties",
        "fqmn": "App\\Api\\Controllers\\LandlordDashboardController@properties",
        "expected_test_path": "tests/Unit/LandlordDashboardControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\LandlordDashboardController;\n\nclass LandlordDashboardControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\LandlordDashboardController@properties\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_properties_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\LandlordDashboardController@properties is PROOF_READY but no test file at tests/Unit/LandlordDashboardControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/LandlordDashboardController.php::App\\Api\\Controllers\\LandlordDashboardController::transfers",
        "fqmn": "App\\Api\\Controllers\\LandlordDashboardController@transfers",
        "expected_test_path": "tests/Unit/LandlordDashboardControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\LandlordDashboardController;\n\nclass LandlordDashboardControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\LandlordDashboardController@transfers\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_transfers_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\LandlordDashboardController@transfers is PROOF_READY but no test file at tests/Unit/LandlordDashboardControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::active",
        "fqmn": "App\\Api\\Controllers\\LeaseController@active",
        "expected_test_path": "tests/Unit/LeaseControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\LeaseController;\n\nclass LeaseControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\LeaseController@active\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_active_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\LeaseController@active is PROOF_READY but no test file at tests/Unit/LeaseControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::destroy",
        "fqmn": "App\\Api\\Controllers\\LeaseController@destroy",
        "expected_test_path": "tests/Unit/LeaseControllerTest.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\\Api\\Controllers\\LeaseController;\n\nclass LeaseControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\LeaseController@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\\Api\\Controllers\\LeaseController@destroy is PROOF_READY but no test file at tests/Unit/LeaseControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::expired",
        "fqmn": "App\\Api\\Controllers\\LeaseController@expired",
        "expected_test_path": "tests/Unit/LeaseControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\LeaseController;\n\nclass LeaseControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\LeaseController@expired\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_expired_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\LeaseController@expired is PROOF_READY but no test file at tests/Unit/LeaseControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::expiringSoon",
        "fqmn": "App\\Api\\Controllers\\LeaseController@expiringSoon",
        "expected_test_path": "tests/Unit/LeaseControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\LeaseController;\n\nclass LeaseControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\LeaseController@expiringSoon\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_expiringsoon_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\LeaseController@expiringSoon is PROOF_READY but no test file at tests/Unit/LeaseControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::index",
        "fqmn": "App\\Api\\Controllers\\LeaseController@index",
        "expected_test_path": "tests/Unit/LeaseControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\LeaseController;\n\nclass LeaseControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\LeaseController@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\\Api\\Controllers\\LeaseController@index is PROOF_READY but no test file at tests/Unit/LeaseControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::show",
        "fqmn": "App\\Api\\Controllers\\LeaseController@show",
        "expected_test_path": "tests/Unit/LeaseControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\LeaseController;\n\nclass LeaseControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\LeaseController@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\\Api\\Controllers\\LeaseController@show is PROOF_READY but no test file at tests/Unit/LeaseControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::stats",
        "fqmn": "App\\Api\\Controllers\\LeaseController@stats",
        "expected_test_path": "tests/Unit/LeaseControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\LeaseController;\n\nclass LeaseControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\LeaseController@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\\Api\\Controllers\\LeaseController@stats is PROOF_READY but no test file at tests/Unit/LeaseControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::store",
        "fqmn": "App\\Api\\Controllers\\LeaseController@store",
        "expected_test_path": "tests/Unit/LeaseControllerTest.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\\Api\\Controllers\\LeaseController;\n\nclass LeaseControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\LeaseController@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\\Api\\Controllers\\LeaseController@store is PROOF_READY but no test file at tests/Unit/LeaseControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::terminate",
        "fqmn": "App\\Api\\Controllers\\LeaseController@terminate",
        "expected_test_path": "tests/Unit/LeaseControllerTest.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\\Api\\Controllers\\LeaseController;\n\nclass LeaseControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\LeaseController@terminate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_terminate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\LeaseController@terminate is PROOF_READY but no test file at tests/Unit/LeaseControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::upcomingDueDates",
        "fqmn": "App\\Api\\Controllers\\LeaseController@upcomingDueDates",
        "expected_test_path": "tests/Unit/LeaseControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\LeaseController;\n\nclass LeaseControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\LeaseController@upcomingDueDates\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_upcomingduedates_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\LeaseController@upcomingDueDates is PROOF_READY but no test file at tests/Unit/LeaseControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/LeaseController.php::App\\Api\\Controllers\\LeaseController::update",
        "fqmn": "App\\Api\\Controllers\\LeaseController@update",
        "expected_test_path": "tests/Unit/LeaseControllerTest.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\\Api\\Controllers\\LeaseController;\n\nclass LeaseControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\LeaseController@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\\Api\\Controllers\\LeaseController@update is PROOF_READY but no test file at tests/Unit/LeaseControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/OrgDeductionSettingsController.php::App\\Api\\Controllers\\OrgDeductionSettingsController::show",
        "fqmn": "App\\Api\\Controllers\\OrgDeductionSettingsController@show",
        "expected_test_path": "tests/Unit/OrgDeductionSettingsControllerTest.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\\Api\\Controllers\\OrgDeductionSettingsController;\n\nclass OrgDeductionSettingsControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\OrgDeductionSettingsController@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    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\OrgDeductionSettingsController@show is PROOF_READY but no test file at tests/Unit/OrgDeductionSettingsControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/OrgDeductionSettingsController.php::App\\Api\\Controllers\\OrgDeductionSettingsController::update",
        "fqmn": "App\\Api\\Controllers\\OrgDeductionSettingsController@update",
        "expected_test_path": "tests/Unit/OrgDeductionSettingsControllerTest.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\\Api\\Controllers\\OrgDeductionSettingsController;\n\nclass OrgDeductionSettingsControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\OrgDeductionSettingsController@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\\Api\\Controllers\\OrgDeductionSettingsController@update is PROOF_READY but no test file at tests/Unit/OrgDeductionSettingsControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/OrgWhatsAppIntegrationController.php::App\\Api\\Controllers\\OrgWhatsAppIntegrationController::show",
        "fqmn": "App\\Api\\Controllers\\OrgWhatsAppIntegrationController@show",
        "expected_test_path": "tests/Unit/OrgWhatsAppIntegrationControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\OrgWhatsAppIntegrationController;\n\nclass OrgWhatsAppIntegrationControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\OrgWhatsAppIntegrationController@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\\Api\\Controllers\\OrgWhatsAppIntegrationController@show is PROOF_READY but no test file at tests/Unit/OrgWhatsAppIntegrationControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/OrgWhatsAppIntegrationController.php::App\\Api\\Controllers\\OrgWhatsAppIntegrationController::update",
        "fqmn": "App\\Api\\Controllers\\OrgWhatsAppIntegrationController@update",
        "expected_test_path": "tests/Unit/OrgWhatsAppIntegrationControllerTest.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\\Api\\Controllers\\OrgWhatsAppIntegrationController;\n\nclass OrgWhatsAppIntegrationControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\OrgWhatsAppIntegrationController@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\\Api\\Controllers\\OrgWhatsAppIntegrationController@update is PROOF_READY but no test file at tests/Unit/OrgWhatsAppIntegrationControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/PaymentController.php::App\\Api\\Controllers\\PaymentController::createTransfer",
        "fqmn": "App\\Api\\Controllers\\PaymentController@createTransfer",
        "expected_test_path": "tests/Unit/PaymentControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\PaymentController;\n\nclass PaymentControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\PaymentController@createTransfer\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_createtransfer_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\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        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\PaymentController@createTransfer is PROOF_READY but no test file at tests/Unit/PaymentControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/PaymentController.php::App\\Api\\Controllers\\PaymentController::destroy",
        "fqmn": "App\\Api\\Controllers\\PaymentController@destroy",
        "expected_test_path": "tests/Unit/PaymentControllerTest.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\\Api\\Controllers\\PaymentController;\n\nclass PaymentControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\PaymentController@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\\Api\\Controllers\\PaymentController@destroy is PROOF_READY but no test file at tests/Unit/PaymentControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/PaymentController.php::App\\Api\\Controllers\\PaymentController::index",
        "fqmn": "App\\Api\\Controllers\\PaymentController@index",
        "expected_test_path": "tests/Unit/PaymentControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\PaymentController;\n\nclass PaymentControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\PaymentController@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\\Api\\Controllers\\PaymentController@index is PROOF_READY but no test file at tests/Unit/PaymentControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/PaymentController.php::App\\Api\\Controllers\\PaymentController::needingTransfer",
        "fqmn": "App\\Api\\Controllers\\PaymentController@needingTransfer",
        "expected_test_path": "tests/Unit/PaymentControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\PaymentController;\n\nclass PaymentControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\PaymentController@needingTransfer\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_needingtransfer_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\PaymentController@needingTransfer is PROOF_READY but no test file at tests/Unit/PaymentControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/PaymentController.php::App\\Api\\Controllers\\PaymentController::recent",
        "fqmn": "App\\Api\\Controllers\\PaymentController@recent",
        "expected_test_path": "tests/Unit/PaymentControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\PaymentController;\n\nclass PaymentControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\PaymentController@recent\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_recent_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\PaymentController@recent is PROOF_READY but no test file at tests/Unit/PaymentControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/PaymentController.php::App\\Api\\Controllers\\PaymentController::show",
        "fqmn": "App\\Api\\Controllers\\PaymentController@show",
        "expected_test_path": "tests/Unit/PaymentControllerTest.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\\Api\\Controllers\\PaymentController;\n\nclass PaymentControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\PaymentController@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\\Api\\Controllers\\PaymentController@show is PROOF_READY but no test file at tests/Unit/PaymentControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/PaymentController.php::App\\Api\\Controllers\\PaymentController::stats",
        "fqmn": "App\\Api\\Controllers\\PaymentController@stats",
        "expected_test_path": "tests/Unit/PaymentControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\PaymentController;\n\nclass PaymentControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\PaymentController@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\\Api\\Controllers\\PaymentController@stats is PROOF_READY but no test file at tests/Unit/PaymentControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/PaymentController.php::App\\Api\\Controllers\\PaymentController::store",
        "fqmn": "App\\Api\\Controllers\\PaymentController@store",
        "expected_test_path": "tests/Unit/PaymentControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\PaymentController;\n\nclass PaymentControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\PaymentController@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\\Api\\Controllers\\PaymentController@store is PROOF_READY but no test file at tests/Unit/PaymentControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/PaymentController.php::App\\Api\\Controllers\\PaymentController::transfers",
        "fqmn": "App\\Api\\Controllers\\PaymentController@transfers",
        "expected_test_path": "tests/Unit/PaymentControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\PaymentController;\n\nclass PaymentControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\PaymentController@transfers\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_transfers_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\PaymentController@transfers is PROOF_READY but no test file at tests/Unit/PaymentControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/PaymentController.php::App\\Api\\Controllers\\PaymentController::update",
        "fqmn": "App\\Api\\Controllers\\PaymentController@update",
        "expected_test_path": "tests/Unit/PaymentControllerTest.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\\Api\\Controllers\\PaymentController;\n\nclass PaymentControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\PaymentController@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\\Api\\Controllers\\PaymentController@update is PROOF_READY but no test file at tests/Unit/PaymentControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/PaymentProofController.php::App\\Api\\Controllers\\PaymentProofController::approve",
        "fqmn": "App\\Api\\Controllers\\PaymentProofController@approve",
        "expected_test_path": "tests/Unit/PaymentProofControllerTest.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\\Api\\Controllers\\PaymentProofController;\n\nclass PaymentProofControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\PaymentProofController@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\\Api\\Controllers\\PaymentProofController@approve is PROOF_READY but no test file at tests/Unit/PaymentProofControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/PaymentProofController.php::App\\Api\\Controllers\\PaymentProofController::index",
        "fqmn": "App\\Api\\Controllers\\PaymentProofController@index",
        "expected_test_path": "tests/Unit/PaymentProofControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\PaymentProofController;\n\nclass PaymentProofControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\PaymentProofController@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\\Api\\Controllers\\PaymentProofController@index is PROOF_READY but no test file at tests/Unit/PaymentProofControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/PaymentProofController.php::App\\Api\\Controllers\\PaymentProofController::pendingCount",
        "fqmn": "App\\Api\\Controllers\\PaymentProofController@pendingCount",
        "expected_test_path": "tests/Unit/PaymentProofControllerTest.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\\Api\\Controllers\\PaymentProofController;\n\nclass PaymentProofControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\PaymentProofController@pendingCount\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_pendingcount_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\PaymentProofController@pendingCount is PROOF_READY but no test file at tests/Unit/PaymentProofControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/PaymentProofController.php::App\\Api\\Controllers\\PaymentProofController::reject",
        "fqmn": "App\\Api\\Controllers\\PaymentProofController@reject",
        "expected_test_path": "tests/Unit/PaymentProofControllerTest.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\\Api\\Controllers\\PaymentProofController;\n\nclass PaymentProofControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\PaymentProofController@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\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\PaymentProofController@reject is PROOF_READY but no test file at tests/Unit/PaymentProofControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/PaymentProofController.php::App\\Api\\Controllers\\PaymentProofController::requiresReview",
        "fqmn": "App\\Api\\Controllers\\PaymentProofController@requiresReview",
        "expected_test_path": "tests/Unit/PaymentProofControllerTest.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\\Api\\Controllers\\PaymentProofController;\n\nclass PaymentProofControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\PaymentProofController@requiresReview\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_requiresreview_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\PaymentProofController@requiresReview is PROOF_READY but no test file at tests/Unit/PaymentProofControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/PaymentProofController.php::App\\Api\\Controllers\\PaymentProofController::show",
        "fqmn": "App\\Api\\Controllers\\PaymentProofController@show",
        "expected_test_path": "tests/Unit/PaymentProofControllerTest.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\\Api\\Controllers\\PaymentProofController;\n\nclass PaymentProofControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\PaymentProofController@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\\Api\\Controllers\\PaymentProofController@show is PROOF_READY but no test file at tests/Unit/PaymentProofControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/PaymentProofController.php::App\\Api\\Controllers\\PaymentProofController::store",
        "fqmn": "App\\Api\\Controllers\\PaymentProofController@store",
        "expected_test_path": "tests/Unit/PaymentProofControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\PaymentProofController;\n\nclass PaymentProofControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\PaymentProofController@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\\Api\\Controllers\\PaymentProofController@store is PROOF_READY but no test file at tests/Unit/PaymentProofControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/PaymentProofController.php::App\\Api\\Controllers\\PaymentProofController::submit",
        "fqmn": "App\\Api\\Controllers\\PaymentProofController@submit",
        "expected_test_path": "tests/Unit/PaymentProofControllerTest.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\\Api\\Controllers\\PaymentProofController;\n\nclass PaymentProofControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\PaymentProofController@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    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\PaymentProofController@submit is PROOF_READY but no test file at tests/Unit/PaymentProofControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/PropertyController.php::App\\Api\\Controllers\\PropertyController::byType",
        "fqmn": "App\\Api\\Controllers\\PropertyController@byType",
        "expected_test_path": "tests/Unit/PropertyControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\PropertyController;\n\nclass PropertyControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\PropertyController@byType\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_bytype_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\PropertyController@byType is PROOF_READY but no test file at tests/Unit/PropertyControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/PropertyController.php::App\\Api\\Controllers\\PropertyController::destroy",
        "fqmn": "App\\Api\\Controllers\\PropertyController@destroy",
        "expected_test_path": "tests/Unit/PropertyControllerTest.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\\Api\\Controllers\\PropertyController;\n\nclass PropertyControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\PropertyController@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\\Api\\Controllers\\PropertyController@destroy is PROOF_READY but no test file at tests/Unit/PropertyControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/PropertyController.php::App\\Api\\Controllers\\PropertyController::forLandlord",
        "fqmn": "App\\Api\\Controllers\\PropertyController@forLandlord",
        "expected_test_path": "tests/Unit/PropertyControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\PropertyController;\n\nclass PropertyControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\PropertyController@forLandlord\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_forlandlord_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\PropertyController@forLandlord is PROOF_READY but no test file at tests/Unit/PropertyControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/PropertyController.php::App\\Api\\Controllers\\PropertyController::index",
        "fqmn": "App\\Api\\Controllers\\PropertyController@index",
        "expected_test_path": "tests/Unit/PropertyControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\PropertyController;\n\nclass PropertyControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\PropertyController@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\\Api\\Controllers\\PropertyController@index is PROOF_READY but no test file at tests/Unit/PropertyControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/PropertyController.php::App\\Api\\Controllers\\PropertyController::show",
        "fqmn": "App\\Api\\Controllers\\PropertyController@show",
        "expected_test_path": "tests/Unit/PropertyControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\PropertyController;\n\nclass PropertyControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\PropertyController@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\\Api\\Controllers\\PropertyController@show is PROOF_READY but no test file at tests/Unit/PropertyControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/PropertyController.php::App\\Api\\Controllers\\PropertyController::stats",
        "fqmn": "App\\Api\\Controllers\\PropertyController@stats",
        "expected_test_path": "tests/Unit/PropertyControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\PropertyController;\n\nclass PropertyControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\PropertyController@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\\Api\\Controllers\\PropertyController@stats is PROOF_READY but no test file at tests/Unit/PropertyControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/PropertyController.php::App\\Api\\Controllers\\PropertyController::store",
        "fqmn": "App\\Api\\Controllers\\PropertyController@store",
        "expected_test_path": "tests/Unit/PropertyControllerTest.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\\Api\\Controllers\\PropertyController;\n\nclass PropertyControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\PropertyController@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\\Api\\Controllers\\PropertyController@store is PROOF_READY but no test file at tests/Unit/PropertyControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/PropertyController.php::App\\Api\\Controllers\\PropertyController::update",
        "fqmn": "App\\Api\\Controllers\\PropertyController@update",
        "expected_test_path": "tests/Unit/PropertyControllerTest.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\\Api\\Controllers\\PropertyController;\n\nclass PropertyControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\PropertyController@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\\Api\\Controllers\\PropertyController@update is PROOF_READY but no test file at tests/Unit/PropertyControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/ReminderController.php::App\\Api\\Controllers\\ReminderController::__construct",
        "fqmn": "App\\Api\\Controllers\\ReminderController@__construct",
        "expected_test_path": "tests/Unit/ReminderControllerTest.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\\Api\\Controllers\\ReminderController;\n\nclass ReminderControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\ReminderController@__construct\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test___construct_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\ReminderController@__construct is PROOF_READY but no test file at tests/Unit/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/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/ReminderController.php::App\\Api\\Controllers\\ReminderController::byStatus",
        "fqmn": "App\\Api\\Controllers\\ReminderController@byStatus",
        "expected_test_path": "tests/Unit/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\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\ReminderController;\n\nclass ReminderControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\ReminderController@byStatus\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_bystatus_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\ReminderController@byStatus is PROOF_READY but no test file at tests/Unit/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/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/ReminderController.php::App\\Api\\Controllers\\ReminderController::cancel",
        "fqmn": "App\\Api\\Controllers\\ReminderController@cancel",
        "expected_test_path": "tests/Unit/ReminderControllerTest.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\\Api\\Controllers\\ReminderController;\n\nclass ReminderControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\ReminderController@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\\Api\\Controllers\\ReminderController@cancel is PROOF_READY but no test file at tests/Unit/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/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/ReminderController.php::App\\Api\\Controllers\\ReminderController::index",
        "fqmn": "App\\Api\\Controllers\\ReminderController@index",
        "expected_test_path": "tests/Unit/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\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\ReminderController;\n\nclass ReminderControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\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\\Api\\Controllers\\ReminderController@index is PROOF_READY but no test file at tests/Unit/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/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/ReminderController.php::App\\Api\\Controllers\\ReminderController::recent",
        "fqmn": "App\\Api\\Controllers\\ReminderController@recent",
        "expected_test_path": "tests/Unit/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\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\ReminderController;\n\nclass ReminderControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\ReminderController@recent\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_recent_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\ReminderController@recent is PROOF_READY but no test file at tests/Unit/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/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/ReminderController.php::App\\Api\\Controllers\\ReminderController::show",
        "fqmn": "App\\Api\\Controllers\\ReminderController@show",
        "expected_test_path": "tests/Unit/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\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\ReminderController;\n\nclass ReminderControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\ReminderController@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\\Api\\Controllers\\ReminderController@show is PROOF_READY but no test file at tests/Unit/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/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/ReminderController.php::App\\Api\\Controllers\\ReminderController::stats",
        "fqmn": "App\\Api\\Controllers\\ReminderController@stats",
        "expected_test_path": "tests/Unit/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\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\ReminderController;\n\nclass ReminderControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\ReminderController@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\\Api\\Controllers\\ReminderController@stats is PROOF_READY but no test file at tests/Unit/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/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::bulkUpdate",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@bulkUpdate",
        "expected_test_path": "tests/Unit/RentCycleControllerTest.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\\Api\\Controllers\\RentCycleController;\n\nclass RentCycleControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\RentCycleController@bulkUpdate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_bulkupdate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\RentCycleController@bulkUpdate is PROOF_READY but no test file at tests/Unit/RentCycleControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::dueSoon",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@dueSoon",
        "expected_test_path": "tests/Unit/RentCycleControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\RentCycleController;\n\nclass RentCycleControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\RentCycleController@dueSoon\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_duesoon_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\RentCycleController@dueSoon is PROOF_READY but no test file at tests/Unit/RentCycleControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::dueToday",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@dueToday",
        "expected_test_path": "tests/Unit/RentCycleControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\RentCycleController;\n\nclass RentCycleControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\RentCycleController@dueToday\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_duetoday_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\RentCycleController@dueToday is PROOF_READY but no test file at tests/Unit/RentCycleControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::index",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@index",
        "expected_test_path": "tests/Unit/RentCycleControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\RentCycleController;\n\nclass RentCycleControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\RentCycleController@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\\Api\\Controllers\\RentCycleController@index is PROOF_READY but no test file at tests/Unit/RentCycleControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::markOverdue",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@markOverdue",
        "expected_test_path": "tests/Unit/RentCycleControllerTest.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\\Api\\Controllers\\RentCycleController;\n\nclass RentCycleControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\RentCycleController@markOverdue\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_markoverdue_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\RentCycleController@markOverdue is PROOF_READY but no test file at tests/Unit/RentCycleControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::markPaid",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@markPaid",
        "expected_test_path": "tests/Unit/RentCycleControllerTest.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\\Api\\Controllers\\RentCycleController;\n\nclass RentCycleControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\RentCycleController@markPaid\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_markpaid_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\RentCycleController@markPaid is PROOF_READY but no test file at tests/Unit/RentCycleControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::monthlyCollections",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@monthlyCollections",
        "expected_test_path": "tests/Unit/RentCycleControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\RentCycleController;\n\nclass RentCycleControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\RentCycleController@monthlyCollections\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_monthlycollections_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\RentCycleController@monthlyCollections is PROOF_READY but no test file at tests/Unit/RentCycleControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::overdue",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@overdue",
        "expected_test_path": "tests/Unit/RentCycleControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\RentCycleController;\n\nclass RentCycleControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\RentCycleController@overdue\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_overdue_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\RentCycleController@overdue is PROOF_READY but no test file at tests/Unit/RentCycleControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::pending",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@pending",
        "expected_test_path": "tests/Unit/RentCycleControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\RentCycleController;\n\nclass RentCycleControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\RentCycleController@pending\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_pending_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\RentCycleController@pending is PROOF_READY but no test file at tests/Unit/RentCycleControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::show",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@show",
        "expected_test_path": "tests/Unit/RentCycleControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\RentCycleController;\n\nclass RentCycleControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\RentCycleController@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\\Api\\Controllers\\RentCycleController@show is PROOF_READY but no test file at tests/Unit/RentCycleControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::stats",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@stats",
        "expected_test_path": "tests/Unit/RentCycleControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\RentCycleController;\n\nclass RentCycleControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\RentCycleController@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\\Api\\Controllers\\RentCycleController@stats is PROOF_READY but no test file at tests/Unit/RentCycleControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/RentCycleController.php::App\\Api\\Controllers\\RentCycleController::update",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@update",
        "expected_test_path": "tests/Unit/RentCycleControllerTest.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\\Api\\Controllers\\RentCycleController;\n\nclass RentCycleControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\RentCycleController@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\\Api\\Controllers\\RentCycleController@update is PROOF_READY but no test file at tests/Unit/RentCycleControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/ReportController.php::App\\Api\\Controllers\\ReportController::landlordDashboard",
        "fqmn": "App\\Api\\Controllers\\ReportController@landlordDashboard",
        "expected_test_path": "tests/Unit/ReportControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\ReportController;\n\nclass ReportControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\ReportController@landlordDashboard\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_landlorddashboard_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\ReportController@landlordDashboard is PROOF_READY but no test file at tests/Unit/ReportControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/ReportController.php::App\\Api\\Controllers\\ReportController::monthlyCollections",
        "fqmn": "App\\Api\\Controllers\\ReportController@monthlyCollections",
        "expected_test_path": "tests/Unit/ReportControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\ReportController;\n\nclass ReportControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\ReportController@monthlyCollections\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_monthlycollections_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\ReportController@monthlyCollections is PROOF_READY but no test file at tests/Unit/ReportControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/ReportController.php::App\\Api\\Controllers\\ReportController::occupancyTrends",
        "fqmn": "App\\Api\\Controllers\\ReportController@occupancyTrends",
        "expected_test_path": "tests/Unit/ReportControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\ReportController;\n\nclass ReportControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\ReportController@occupancyTrends\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_occupancytrends_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\ReportController@occupancyTrends is PROOF_READY but no test file at tests/Unit/ReportControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/ReportController.php::App\\Api\\Controllers\\ReportController::organizationDashboard",
        "fqmn": "App\\Api\\Controllers\\ReportController@organizationDashboard",
        "expected_test_path": "tests/Unit/ReportControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\ReportController;\n\nclass ReportControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\ReportController@organizationDashboard\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_organizationdashboard_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\ReportController@organizationDashboard is PROOF_READY but no test file at tests/Unit/ReportControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/ReportController.php::App\\Api\\Controllers\\ReportController::tenantDashboard",
        "fqmn": "App\\Api\\Controllers\\ReportController@tenantDashboard",
        "expected_test_path": "tests/Unit/ReportControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\ReportController;\n\nclass ReportControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\ReportController@tenantDashboard\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_tenantdashboard_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\ReportController@tenantDashboard is PROOF_READY but no test file at tests/Unit/ReportControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/ReportController.php::App\\Api\\Controllers\\ReportController::topProperties",
        "fqmn": "App\\Api\\Controllers\\ReportController@topProperties",
        "expected_test_path": "tests/Unit/ReportControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\ReportController;\n\nclass ReportControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\ReportController@topProperties\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_topproperties_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\ReportController@topProperties is PROOF_READY but no test file at tests/Unit/ReportControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/ReportExportController.php::App\\Api\\Controllers\\ReportExportController::exportCollectionReport",
        "fqmn": "App\\Api\\Controllers\\ReportExportController@exportCollectionReport",
        "expected_test_path": "tests/Unit/ReportExportControllerTest.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\\Api\\Controllers\\ReportExportController;\n\nclass ReportExportControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\ReportExportController@exportCollectionReport\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_exportcollectionreport_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\ReportExportController@exportCollectionReport is PROOF_READY but no test file at tests/Unit/ReportExportControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/ReportExportController.php::App\\Api\\Controllers\\ReportExportController::exportFinancialSummary",
        "fqmn": "App\\Api\\Controllers\\ReportExportController@exportFinancialSummary",
        "expected_test_path": "tests/Unit/ReportExportControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\ReportExportController;\n\nclass ReportExportControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\ReportExportController@exportFinancialSummary\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_exportfinancialsummary_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\ReportExportController@exportFinancialSummary is PROOF_READY but no test file at tests/Unit/ReportExportControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/ReportExportController.php::App\\Api\\Controllers\\ReportExportController::exportOverdueReport",
        "fqmn": "App\\Api\\Controllers\\ReportExportController@exportOverdueReport",
        "expected_test_path": "tests/Unit/ReportExportControllerTest.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\\Api\\Controllers\\ReportExportController;\n\nclass ReportExportControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\ReportExportController@exportOverdueReport\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_exportoverduereport_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\ReportExportController@exportOverdueReport is PROOF_READY but no test file at tests/Unit/ReportExportControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/ReportExportController.php::App\\Api\\Controllers\\ReportExportController::exportRentRoll",
        "fqmn": "App\\Api\\Controllers\\ReportExportController@exportRentRoll",
        "expected_test_path": "tests/Unit/ReportExportControllerTest.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\\Api\\Controllers\\ReportExportController;\n\nclass ReportExportControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\ReportExportController@exportRentRoll\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_exportrentroll_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\ReportExportController@exportRentRoll is PROOF_READY but no test file at tests/Unit/ReportExportControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/SubscriptionController.php::App\\Api\\Controllers\\SubscriptionController::current",
        "fqmn": "App\\Api\\Controllers\\SubscriptionController@current",
        "expected_test_path": "tests/Unit/SubscriptionControllerTest.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\\Api\\Controllers\\SubscriptionController;\n\nclass SubscriptionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\SubscriptionController@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\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\SubscriptionController@current is PROOF_READY but no test file at tests/Unit/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/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/SubscriptionController.php::App\\Api\\Controllers\\SubscriptionController::subscribe",
        "fqmn": "App\\Api\\Controllers\\SubscriptionController@subscribe",
        "expected_test_path": "tests/Unit/SubscriptionControllerTest.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\\Api\\Controllers\\SubscriptionController;\n\nclass SubscriptionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\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\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\SubscriptionController@subscribe is PROOF_READY but no test file at tests/Unit/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/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/SubscriptionController.php::App\\Api\\Controllers\\SubscriptionController::tiers",
        "fqmn": "App\\Api\\Controllers\\SubscriptionController@tiers",
        "expected_test_path": "tests/Unit/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\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\SubscriptionController;\n\nclass SubscriptionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\SubscriptionController@tiers\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_tiers_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\SubscriptionController@tiers is PROOF_READY but no test file at tests/Unit/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/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/SubscriptionController.php::App\\Api\\Controllers\\SubscriptionController::topUp",
        "fqmn": "App\\Api\\Controllers\\SubscriptionController@topUp",
        "expected_test_path": "tests/Unit/SubscriptionControllerTest.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\\Api\\Controllers\\SubscriptionController;\n\nclass SubscriptionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\SubscriptionController@topUp\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_topup_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\SubscriptionController@topUp is PROOF_READY but no test file at tests/Unit/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/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/SubscriptionController.php::App\\Api\\Controllers\\SubscriptionController::transactions",
        "fqmn": "App\\Api\\Controllers\\SubscriptionController@transactions",
        "expected_test_path": "tests/Unit/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\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\SubscriptionController;\n\nclass SubscriptionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\SubscriptionController@transactions\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_transactions_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\SubscriptionController@transactions is PROOF_READY but no test file at tests/Unit/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/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/SubscriptionController.php::App\\Api\\Controllers\\SubscriptionController::usage",
        "fqmn": "App\\Api\\Controllers\\SubscriptionController@usage",
        "expected_test_path": "tests/Unit/SubscriptionControllerTest.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\\Api\\Controllers\\SubscriptionController;\n\nclass SubscriptionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\SubscriptionController@usage\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_usage_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\SubscriptionController@usage is PROOF_READY but no test file at tests/Unit/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/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/TenantController.php::App\\Api\\Controllers\\TenantController::destroy",
        "fqmn": "App\\Api\\Controllers\\TenantController@destroy",
        "expected_test_path": "tests/Unit/TenantControllerTest.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\\Api\\Controllers\\TenantController;\n\nclass TenantControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\TenantController@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\\Api\\Controllers\\TenantController@destroy is PROOF_READY but no test file at tests/Unit/TenantControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/TenantController.php::App\\Api\\Controllers\\TenantController::index",
        "fqmn": "App\\Api\\Controllers\\TenantController@index",
        "expected_test_path": "tests/Unit/TenantControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\TenantController;\n\nclass TenantControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\TenantController@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\\Api\\Controllers\\TenantController@index is PROOF_READY but no test file at tests/Unit/TenantControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/TenantController.php::App\\Api\\Controllers\\TenantController::resendInvitation",
        "fqmn": "App\\Api\\Controllers\\TenantController@resendInvitation",
        "expected_test_path": "tests/Unit/TenantControllerTest.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\\Api\\Controllers\\TenantController;\n\nclass TenantControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\TenantController@resendInvitation\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resendinvitation_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\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\\Api\\Controllers\\TenantController@resendInvitation is PROOF_READY but no test file at tests/Unit/TenantControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/TenantController.php::App\\Api\\Controllers\\TenantController::show",
        "fqmn": "App\\Api\\Controllers\\TenantController@show",
        "expected_test_path": "tests/Unit/TenantControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\TenantController;\n\nclass TenantControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\TenantController@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\\Api\\Controllers\\TenantController@show is PROOF_READY but no test file at tests/Unit/TenantControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/TenantController.php::App\\Api\\Controllers\\TenantController::stats",
        "fqmn": "App\\Api\\Controllers\\TenantController@stats",
        "expected_test_path": "tests/Unit/TenantControllerTest.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\\Api\\Controllers\\TenantController;\n\nclass TenantControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\TenantController@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\\Api\\Controllers\\TenantController@stats is PROOF_READY but no test file at tests/Unit/TenantControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/TenantController.php::App\\Api\\Controllers\\TenantController::store",
        "fqmn": "App\\Api\\Controllers\\TenantController@store",
        "expected_test_path": "tests/Unit/TenantControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\TenantController;\n\nclass TenantControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\TenantController@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        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\TenantController@store is PROOF_READY but no test file at tests/Unit/TenantControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/TenantController.php::App\\Api\\Controllers\\TenantController::update",
        "fqmn": "App\\Api\\Controllers\\TenantController@update",
        "expected_test_path": "tests/Unit/TenantControllerTest.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\\Api\\Controllers\\TenantController;\n\nclass TenantControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\TenantController@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\\Api\\Controllers\\TenantController@update is PROOF_READY but no test file at tests/Unit/TenantControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/TenantDashboardController.php::App\\Api\\Controllers\\TenantDashboardController::dashboard",
        "fqmn": "App\\Api\\Controllers\\TenantDashboardController@dashboard",
        "expected_test_path": "tests/Unit/TenantDashboardControllerTest.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\\Api\\Controllers\\TenantDashboardController;\n\nclass TenantDashboardControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\TenantDashboardController@dashboard\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_dashboard_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\TenantDashboardController@dashboard is PROOF_READY but no test file at tests/Unit/TenantDashboardControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/TenantDashboardController.php::App\\Api\\Controllers\\TenantDashboardController::payments",
        "fqmn": "App\\Api\\Controllers\\TenantDashboardController@payments",
        "expected_test_path": "tests/Unit/TenantDashboardControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\TenantDashboardController;\n\nclass TenantDashboardControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\TenantDashboardController@payments\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_payments_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\TenantDashboardController@payments is PROOF_READY but no test file at tests/Unit/TenantDashboardControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/TenantDashboardController.php::App\\Api\\Controllers\\TenantDashboardController::reminders",
        "fqmn": "App\\Api\\Controllers\\TenantDashboardController@reminders",
        "expected_test_path": "tests/Unit/TenantDashboardControllerTest.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\\Api\\Controllers\\TenantDashboardController;\n\nclass TenantDashboardControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\TenantDashboardController@reminders\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_reminders_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\TenantDashboardController@reminders is PROOF_READY but no test file at tests/Unit/TenantDashboardControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/TenantDashboardController.php::App\\Api\\Controllers\\TenantDashboardController::rentCycles",
        "fqmn": "App\\Api\\Controllers\\TenantDashboardController@rentCycles",
        "expected_test_path": "tests/Unit/TenantDashboardControllerTest.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\\Api\\Controllers\\TenantDashboardController;\n\nclass TenantDashboardControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\TenantDashboardController@rentCycles\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_rentcycles_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\TenantDashboardController@rentCycles is PROOF_READY but no test file at tests/Unit/TenantDashboardControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/TransferController.php::App\\Api\\Controllers\\TransferController::bulkComplete",
        "fqmn": "App\\Api\\Controllers\\TransferController@bulkComplete",
        "expected_test_path": "tests/Unit/TransferControllerTest.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\\Api\\Controllers\\TransferController;\n\nclass TransferControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\TransferController@bulkComplete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_bulkcomplete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\TransferController@bulkComplete is PROOF_READY but no test file at tests/Unit/TransferControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/TransferController.php::App\\Api\\Controllers\\TransferController::complete",
        "fqmn": "App\\Api\\Controllers\\TransferController@complete",
        "expected_test_path": "tests/Unit/TransferControllerTest.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\\Api\\Controllers\\TransferController;\n\nclass TransferControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\TransferController@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\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\TransferController@complete is PROOF_READY but no test file at tests/Unit/TransferControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/TransferController.php::App\\Api\\Controllers\\TransferController::fail",
        "fqmn": "App\\Api\\Controllers\\TransferController@fail",
        "expected_test_path": "tests/Unit/TransferControllerTest.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\\Api\\Controllers\\TransferController;\n\nclass TransferControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\TransferController@fail\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_fail_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\TransferController@fail is PROOF_READY but no test file at tests/Unit/TransferControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/TransferController.php::App\\Api\\Controllers\\TransferController::index",
        "fqmn": "App\\Api\\Controllers\\TransferController@index",
        "expected_test_path": "tests/Unit/TransferControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\TransferController;\n\nclass TransferControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\TransferController@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\\Api\\Controllers\\TransferController@index is PROOF_READY but no test file at tests/Unit/TransferControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/TransferController.php::App\\Api\\Controllers\\TransferController::pending",
        "fqmn": "App\\Api\\Controllers\\TransferController@pending",
        "expected_test_path": "tests/Unit/TransferControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\TransferController;\n\nclass TransferControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\TransferController@pending\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_pending_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\TransferController@pending is PROOF_READY but no test file at tests/Unit/TransferControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/TransferController.php::App\\Api\\Controllers\\TransferController::show",
        "fqmn": "App\\Api\\Controllers\\TransferController@show",
        "expected_test_path": "tests/Unit/TransferControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\TransferController;\n\nclass TransferControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\TransferController@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\\Api\\Controllers\\TransferController@show is PROOF_READY but no test file at tests/Unit/TransferControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/TransferController.php::App\\Api\\Controllers\\TransferController::stats",
        "fqmn": "App\\Api\\Controllers\\TransferController@stats",
        "expected_test_path": "tests/Unit/TransferControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\TransferController;\n\nclass TransferControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\TransferController@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\\Api\\Controllers\\TransferController@stats is PROOF_READY but no test file at tests/Unit/TransferControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::assignTenant",
        "fqmn": "App\\Api\\Controllers\\UnitController@assignTenant",
        "expected_test_path": "tests/Unit/UnitControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\UnitController;\n\nclass UnitControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\UnitController@assignTenant\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_assigntenant_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: 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\\Api\\Controllers\\UnitController@assignTenant is PROOF_READY but no test file at tests/Unit/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/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::destroy",
        "fqmn": "App\\Api\\Controllers\\UnitController@destroy",
        "expected_test_path": "tests/Unit/UnitControllerTest.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\\Api\\Controllers\\UnitController;\n\nclass UnitControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\UnitController@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\\Api\\Controllers\\UnitController@destroy is PROOF_READY but no test file at tests/Unit/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/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::index",
        "fqmn": "App\\Api\\Controllers\\UnitController@index",
        "expected_test_path": "tests/Unit/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\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\UnitController;\n\nclass UnitControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\UnitController@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\\Api\\Controllers\\UnitController@index is PROOF_READY but no test file at tests/Unit/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/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::occupied",
        "fqmn": "App\\Api\\Controllers\\UnitController@occupied",
        "expected_test_path": "tests/Unit/UnitControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\UnitController;\n\nclass UnitControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\UnitController@occupied\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_occupied_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: 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\\Api\\Controllers\\UnitController@occupied is PROOF_READY but no test file at tests/Unit/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/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::show",
        "fqmn": "App\\Api\\Controllers\\UnitController@show",
        "expected_test_path": "tests/Unit/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\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\UnitController;\n\nclass UnitControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\UnitController@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\\Api\\Controllers\\UnitController@show is PROOF_READY but no test file at tests/Unit/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/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::stats",
        "fqmn": "App\\Api\\Controllers\\UnitController@stats",
        "expected_test_path": "tests/Unit/UnitControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\UnitController;\n\nclass UnitControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\UnitController@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        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\UnitController@stats is PROOF_READY but no test file at tests/Unit/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/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::store",
        "fqmn": "App\\Api\\Controllers\\UnitController@store",
        "expected_test_path": "tests/Unit/UnitControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\UnitController;\n\nclass UnitControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\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\n\n        // TODO: 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\\Api\\Controllers\\UnitController@store is PROOF_READY but no test file at tests/Unit/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/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::update",
        "fqmn": "App\\Api\\Controllers\\UnitController@update",
        "expected_test_path": "tests/Unit/UnitControllerTest.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\\Api\\Controllers\\UnitController;\n\nclass UnitControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\UnitController@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        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\UnitController@update is PROOF_READY but no test file at tests/Unit/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/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::updateComposition",
        "fqmn": "App\\Api\\Controllers\\UnitController@updateComposition",
        "expected_test_path": "tests/Unit/UnitControllerTest.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\\Api\\Controllers\\UnitController;\n\nclass UnitControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\UnitController@updateComposition\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_updatecomposition_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\UnitController@updateComposition is PROOF_READY but no test file at tests/Unit/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/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::vacant",
        "fqmn": "App\\Api\\Controllers\\UnitController@vacant",
        "expected_test_path": "tests/Unit/UnitControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\UnitController;\n\nclass UnitControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\UnitController@vacant\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_vacant_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: 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\\Api\\Controllers\\UnitController@vacant is PROOF_READY but no test file at tests/Unit/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/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::vacate",
        "fqmn": "App\\Api\\Controllers\\UnitController@vacate",
        "expected_test_path": "tests/Unit/UnitControllerTest.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\\Api\\Controllers\\UnitController;\n\nclass UnitControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\UnitController@vacate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_vacate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\UnitController@vacate is PROOF_READY but no test file at tests/Unit/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/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Controllers/UnitController.php::App\\Api\\Controllers\\UnitController::validateForSharing",
        "fqmn": "App\\Api\\Controllers\\UnitController@validateForSharing",
        "expected_test_path": "tests/Unit/UnitControllerTest.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\\Api\\Controllers\\UnitController;\n\nclass UnitControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\UnitController@validateForSharing\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_validateforsharing_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\UnitController@validateForSharing is PROOF_READY but no test file at tests/Unit/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/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Resources/PropertyResource.php::App\\Api\\Resources\\PropertyResource::toArray",
        "fqmn": "App\\Api\\Resources\\PropertyResource@toArray",
        "expected_test_path": "tests/Unit/PropertyResourceTest.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\\Api\\Resources\\PropertyResource;\n\nclass PropertyResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Resources\\PropertyResource@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\\Api\\Resources\\PropertyResource@toArray is PROOF_READY but no test file at tests/Unit/PropertyResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Resources/RentCycleResource.php::App\\Api\\Resources\\RentCycleResource::toArray",
        "fqmn": "App\\Api\\Resources\\RentCycleResource@toArray",
        "expected_test_path": "tests/Unit/RentCycleResourceTest.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\\Api\\Resources\\RentCycleResource;\n\nclass RentCycleResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Resources\\RentCycleResource@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\\Api\\Resources\\RentCycleResource@toArray is PROOF_READY but no test file at tests/Unit/RentCycleResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Resources/TenantResource.php::App\\Api\\Resources\\TenantResource::toArray",
        "fqmn": "App\\Api\\Resources\\TenantResource@toArray",
        "expected_test_path": "tests/Unit/TenantResourceTest.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\\Api\\Resources\\TenantResource;\n\nclass TenantResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Resources\\TenantResource@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\\Api\\Resources\\TenantResource@toArray is PROOF_READY but no test file at tests/Unit/TenantResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Api/",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Api/Resources/UnitResource.php::App\\Api\\Resources\\UnitResource::toArray",
        "fqmn": "App\\Api\\Resources\\UnitResource@toArray",
        "expected_test_path": "tests/Unit/UnitResourceTest.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\\Api\\Resources\\UnitResource;\n\nclass UnitResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Resources\\UnitResource@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\\Api\\Resources\\UnitResource@toArray is PROOF_READY but no test file at tests/Unit/UnitResourceTest.php is in the MANUAL allowlist. 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/AuditCollectionInbox.php::App\\Console\\Commands\\AuditCollectionInbox::handle",
        "fqmn": "App\\Console\\Commands\\AuditCollectionInbox@handle",
        "expected_test_path": "tests/Unit/AuditCollectionInboxTest.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\\AuditCollectionInbox;\n\nclass AuditCollectionInboxTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\AuditCollectionInbox@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\\AuditCollectionInbox@handle is PROOF_READY but no test file at tests/Unit/AuditCollectionInboxTest.php is in the MANUAL allowlist. 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/AuditSingleActTests.php::App\\Console\\Commands\\AuditSingleActTests::handle",
        "fqmn": "App\\Console\\Commands\\AuditSingleActTests@handle",
        "expected_test_path": "tests/Unit/AuditSingleActTestsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\AuditSingleActTests;\n\nclass AuditSingleActTestsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\AuditSingleActTests@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\\AuditSingleActTests@handle is PROOF_READY but no test file at tests/Unit/AuditSingleActTestsTest.php is in the MANUAL allowlist. 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/AutoStartCampaign.php::App\\Console\\Commands\\AutoStartCampaign::handle",
        "fqmn": "App\\Console\\Commands\\AutoStartCampaign@handle",
        "expected_test_path": "tests/Unit/AutoStartCampaignTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\AutoStartCampaign;\n\nclass AutoStartCampaignTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\AutoStartCampaign@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\\AutoStartCampaign@handle is PROOF_READY but no test file at tests/Unit/AutoStartCampaignTest.php is in the MANUAL allowlist. 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/BackfillDunning.php::App\\Console\\Commands\\BackfillDunning::handle",
        "fqmn": "App\\Console\\Commands\\BackfillDunning@handle",
        "expected_test_path": "tests/Unit/BackfillDunningTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\BackfillDunning;\n\nclass BackfillDunningTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\BackfillDunning@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\\BackfillDunning@handle is PROOF_READY but no test file at tests/Unit/BackfillDunningTest.php is in the MANUAL allowlist. 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/CacheRoutesWithFilament.php::App\\Console\\Commands\\CacheRoutesWithFilament::handle",
        "fqmn": "App\\Console\\Commands\\CacheRoutesWithFilament@handle",
        "expected_test_path": "tests/Unit/CacheRoutesWithFilamentTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\CacheRoutesWithFilament;\n\nclass CacheRoutesWithFilamentTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\CacheRoutesWithFilament@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\\CacheRoutesWithFilament@handle is PROOF_READY but no test file at tests/Unit/CacheRoutesWithFilamentTest.php is in the MANUAL allowlist. 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/ChatbotLoadTestCommand.php::App\\Console\\Commands\\ChatbotLoadTestCommand::handle",
        "fqmn": "App\\Console\\Commands\\ChatbotLoadTestCommand@handle",
        "expected_test_path": "tests/Unit/ChatbotLoadTestCommandTest.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\\ChatbotLoadTestCommand;\n\nclass ChatbotLoadTestCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ChatbotLoadTestCommand@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\\ChatbotLoadTestCommand@handle is PROOF_READY but no test file at tests/Unit/ChatbotLoadTestCommandTest.php is in the MANUAL allowlist. 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/CleanupDunningData.php::App\\Console\\Commands\\CleanupDunningData::handle",
        "fqmn": "App\\Console\\Commands\\CleanupDunningData@handle",
        "expected_test_path": "tests/Unit/CleanupDunningDataTest.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\\CleanupDunningData;\n\nclass CleanupDunningDataTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\CleanupDunningData@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\\CleanupDunningData@handle is PROOF_READY but no test file at tests/Unit/CleanupDunningDataTest.php is in the MANUAL allowlist. 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/CleanupExpiredInvitations.php::App\\Console\\Commands\\CleanupExpiredInvitations::handle",
        "fqmn": "App\\Console\\Commands\\CleanupExpiredInvitations@handle",
        "expected_test_path": "tests/Unit/CleanupExpiredInvitationsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\CleanupExpiredInvitations;\n\nclass CleanupExpiredInvitationsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\CleanupExpiredInvitations@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\\CleanupExpiredInvitations@handle is PROOF_READY but no test file at tests/Unit/CleanupExpiredInvitationsTest.php is in the MANUAL allowlist. 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/CleanupOldVoiceFiles.php::App\\Console\\Commands\\CleanupOldVoiceFiles::handle",
        "fqmn": "App\\Console\\Commands\\CleanupOldVoiceFiles@handle",
        "expected_test_path": "tests/Unit/CleanupOldVoiceFilesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\CleanupOldVoiceFiles;\n\nclass CleanupOldVoiceFilesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\CleanupOldVoiceFiles@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\\CleanupOldVoiceFiles@handle is PROOF_READY but no test file at tests/Unit/CleanupOldVoiceFilesTest.php is in the MANUAL allowlist. 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/CleanupOrphanedFiles.php::App\\Console\\Commands\\CleanupOrphanedFiles::handle",
        "fqmn": "App\\Console\\Commands\\CleanupOrphanedFiles@handle",
        "expected_test_path": "tests/Unit/CleanupOrphanedFilesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\CleanupOrphanedFiles;\n\nclass CleanupOrphanedFilesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\CleanupOrphanedFiles@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\\CleanupOrphanedFiles@handle is PROOF_READY but no test file at tests/Unit/CleanupOrphanedFilesTest.php is in the MANUAL allowlist. 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/CleanupS3Backups.php::App\\Console\\Commands\\CleanupS3Backups::handle",
        "fqmn": "App\\Console\\Commands\\CleanupS3Backups@handle",
        "expected_test_path": "tests/Unit/CleanupS3BackupsTest.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\\CleanupS3Backups;\n\nclass CleanupS3BackupsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\CleanupS3Backups@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\\CleanupS3Backups@handle is PROOF_READY but no test file at tests/Unit/CleanupS3BackupsTest.php is in the MANUAL allowlist. 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/CleanupWebhookEvents.php::App\\Console\\Commands\\CleanupWebhookEvents::handle",
        "fqmn": "App\\Console\\Commands\\CleanupWebhookEvents@handle",
        "expected_test_path": "tests/Unit/CleanupWebhookEventsTest.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\\CleanupWebhookEvents;\n\nclass CleanupWebhookEventsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\CleanupWebhookEvents@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\\CleanupWebhookEvents@handle is PROOF_READY but no test file at tests/Unit/CleanupWebhookEventsTest.php is in the MANUAL allowlist. 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/DebugAiReply.php::App\\Console\\Commands\\DebugAiReply::handle",
        "fqmn": "App\\Console\\Commands\\DebugAiReply@handle",
        "expected_test_path": "tests/Unit/DebugAiReplyTest.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\\DebugAiReply;\n\nclass DebugAiReplyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\DebugAiReply@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\\DebugAiReply@handle is PROOF_READY but no test file at tests/Unit/DebugAiReplyTest.php is in the MANUAL allowlist. 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/DetectUpsellSuccessCommand.php::App\\Console\\Commands\\DetectUpsellSuccessCommand::handle",
        "fqmn": "App\\Console\\Commands\\DetectUpsellSuccessCommand@handle",
        "expected_test_path": "tests/Unit/DetectUpsellSuccessCommandTest.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\\DetectUpsellSuccessCommand;\n\nclass DetectUpsellSuccessCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\DetectUpsellSuccessCommand@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\\DetectUpsellSuccessCommand@handle is PROOF_READY but no test file at tests/Unit/DetectUpsellSuccessCommandTest.php is in the MANUAL allowlist. 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/DevSeedInbound.php::App\\Console\\Commands\\DevSeedInbound::handle",
        "fqmn": "App\\Console\\Commands\\DevSeedInbound@handle",
        "expected_test_path": "tests/Unit/DevSeedInboundTest.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\\DevSeedInbound;\n\nclass DevSeedInboundTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\DevSeedInbound@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\\DevSeedInbound@handle is PROOF_READY but no test file at tests/Unit/DevSeedInboundTest.php is in the MANUAL allowlist. 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_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        // 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/DispatchScheduledClosingAttempts.php::App\\Console\\Commands\\DispatchScheduledClosingAttempts::handle",
        "fqmn": "App\\Console\\Commands\\DispatchScheduledClosingAttempts@handle",
        "expected_test_path": "tests/Unit/DispatchScheduledClosingAttemptsTest.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\\DispatchScheduledClosingAttempts;\n\nclass DispatchScheduledClosingAttemptsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\DispatchScheduledClosingAttempts@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\\DispatchScheduledClosingAttempts@handle is PROOF_READY but no test file at tests/Unit/DispatchScheduledClosingAttemptsTest.php is in the MANUAL allowlist. 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/DunningMetrics.php::App\\Console\\Commands\\DunningMetrics::handle",
        "fqmn": "App\\Console\\Commands\\DunningMetrics@handle",
        "expected_test_path": "tests/Unit/DunningMetricsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\DunningMetrics;\n\nclass DunningMetricsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\DunningMetrics@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\\DunningMetrics@handle is PROOF_READY but no test file at tests/Unit/DunningMetricsTest.php is in the MANUAL allowlist. 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/EscalateMaintenanceTickets.php::App\\Console\\Commands\\EscalateMaintenanceTickets::handle",
        "fqmn": "App\\Console\\Commands\\EscalateMaintenanceTickets@handle",
        "expected_test_path": "tests/Unit/EscalateMaintenanceTicketsTest.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\\EscalateMaintenanceTickets;\n\nclass EscalateMaintenanceTicketsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\EscalateMaintenanceTickets@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\\EscalateMaintenanceTickets@handle is PROOF_READY but no test file at tests/Unit/EscalateMaintenanceTicketsTest.php is in the MANUAL allowlist. 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",
          "assert_event_dispatched"
        ],
        "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        // Event::assertDispatched(<EventClass>::class);\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/FileSystemHealthCheck.php::App\\Console\\Commands\\FileSystemHealthCheck::handle",
        "fqmn": "App\\Console\\Commands\\FileSystemHealthCheck@handle",
        "expected_test_path": "tests/Unit/FileSystemHealthCheckTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\FileSystemHealthCheck;\n\nclass FileSystemHealthCheckTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\FileSystemHealthCheck@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\\FileSystemHealthCheck@handle is PROOF_READY but no test file at tests/Unit/FileSystemHealthCheckTest.php is in the MANUAL allowlist. 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/GenerateMonthlyReports.php::App\\Console\\Commands\\GenerateMonthlyReports::handle",
        "fqmn": "App\\Console\\Commands\\GenerateMonthlyReports@handle",
        "expected_test_path": "tests/Unit/GenerateMonthlyReportsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\GenerateMonthlyReports;\n\nclass GenerateMonthlyReportsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\GenerateMonthlyReports@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\\GenerateMonthlyReports@handle is PROOF_READY but no test file at tests/Unit/GenerateMonthlyReportsTest.php is in the MANUAL allowlist. 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/HardDeleteUserAndOrganization.php::App\\Console\\Commands\\HardDeleteUserAndOrganization::handle",
        "fqmn": "App\\Console\\Commands\\HardDeleteUserAndOrganization@handle",
        "expected_test_path": "tests/Unit/HardDeleteUserAndOrganizationTest.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\\HardDeleteUserAndOrganization;\n\nclass HardDeleteUserAndOrganizationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\HardDeleteUserAndOrganization@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\\HardDeleteUserAndOrganization@handle is PROOF_READY but no test file at tests/Unit/HardDeleteUserAndOrganizationTest.php is in the MANUAL allowlist. 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/InitiatePhase2Rollout.php::App\\Console\\Commands\\InitiatePhase2Rollout::handle",
        "fqmn": "App\\Console\\Commands\\InitiatePhase2Rollout@handle",
        "expected_test_path": "tests/Unit/InitiatePhase2RolloutTest.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\\InitiatePhase2Rollout;\n\nclass InitiatePhase2RolloutTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\InitiatePhase2Rollout@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\\InitiatePhase2Rollout@handle is PROOF_READY but no test file at tests/Unit/InitiatePhase2RolloutTest.php is in the MANUAL allowlist. 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/MarkOverdueRentCycles.php::App\\Console\\Commands\\MarkOverdueRentCycles::handle",
        "fqmn": "App\\Console\\Commands\\MarkOverdueRentCycles@handle",
        "expected_test_path": "tests/Unit/MarkOverdueRentCyclesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\MarkOverdueRentCycles;\n\nclass MarkOverdueRentCyclesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\MarkOverdueRentCycles@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\\MarkOverdueRentCycles@handle is PROOF_READY but no test file at tests/Unit/MarkOverdueRentCyclesTest.php is in the MANUAL allowlist. 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/MatchTapSettlement.php::App\\Console\\Commands\\MatchTapSettlement::handle",
        "fqmn": "App\\Console\\Commands\\MatchTapSettlement@handle",
        "expected_test_path": "tests/Unit/MatchTapSettlementTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\MatchTapSettlement;\n\nclass MatchTapSettlementTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\MatchTapSettlement@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\\MatchTapSettlement@handle is PROOF_READY but no test file at tests/Unit/MatchTapSettlementTest.php is in the MANUAL allowlist. 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/MissingCoverageCommand.php::App\\Console\\Commands\\MissingCoverageCommand::handle",
        "fqmn": "App\\Console\\Commands\\MissingCoverageCommand@handle",
        "expected_test_path": "tests/Unit/MissingCoverageCommandTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\MissingCoverageCommand;\n\nclass MissingCoverageCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\MissingCoverageCommand@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\\MissingCoverageCommand@handle is PROOF_READY but no test file at tests/Unit/MissingCoverageCommandTest.php is in the MANUAL allowlist. 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": [],
        "optional_assertions": [],
        "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\\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        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\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/Outreach/AuditDispatchCommand.php::App\\Console\\Commands\\Outreach\\AuditDispatchCommand::handle",
        "fqmn": "App\\Console\\Commands\\Outreach\\AuditDispatchCommand@handle",
        "expected_test_path": "tests/Unit/AuditDispatchCommandTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Outreach\\AuditDispatchCommand;\n\nclass AuditDispatchCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\Outreach\\AuditDispatchCommand@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\\Outreach\\AuditDispatchCommand@handle is PROOF_READY but no test file at tests/Unit/AuditDispatchCommandTest.php is in the MANUAL allowlist. 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/OutreachAI/ExpireStuckHandoffsCommand.php::App\\Console\\Commands\\OutreachAI\\ExpireStuckHandoffsCommand::handle",
        "fqmn": "App\\Console\\Commands\\OutreachAI\\ExpireStuckHandoffsCommand@handle",
        "expected_test_path": "tests/Unit/ExpireStuckHandoffsCommandTest.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\\OutreachAI\\ExpireStuckHandoffsCommand;\n\nclass ExpireStuckHandoffsCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\OutreachAI\\ExpireStuckHandoffsCommand@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\\OutreachAI\\ExpireStuckHandoffsCommand@handle is PROOF_READY but no test file at tests/Unit/ExpireStuckHandoffsCommandTest.php is in the MANUAL allowlist. 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/OutreachAI/ShowFailures.php::App\\Console\\Commands\\OutreachAI\\ShowFailures::handle",
        "fqmn": "App\\Console\\Commands\\OutreachAI\\ShowFailures@handle",
        "expected_test_path": "tests/Unit/ShowFailuresTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\ShowFailures;\n\nclass ShowFailuresTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\OutreachAI\\ShowFailures@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\\OutreachAI\\ShowFailures@handle is PROOF_READY but no test file at tests/Unit/ShowFailuresTest.php is in the MANUAL allowlist. 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/OutreachRegisterTestLead.php::App\\Console\\Commands\\OutreachRegisterTestLead::handle",
        "fqmn": "App\\Console\\Commands\\OutreachRegisterTestLead@handle",
        "expected_test_path": "tests/Unit/OutreachRegisterTestLeadTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachRegisterTestLead;\n\nclass OutreachRegisterTestLeadTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\OutreachRegisterTestLead@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\\OutreachRegisterTestLead@handle is PROOF_READY but no test file at tests/Unit/OutreachRegisterTestLeadTest.php is in the MANUAL allowlist. 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/PaymentsHealthCheck.php::App\\Console\\Commands\\PaymentsHealthCheck::handle",
        "fqmn": "App\\Console\\Commands\\PaymentsHealthCheck@handle",
        "expected_test_path": "tests/Unit/PaymentsHealthCheckTest.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\\PaymentsHealthCheck;\n\nclass PaymentsHealthCheckTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\PaymentsHealthCheck@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\\PaymentsHealthCheck@handle is PROOF_READY but no test file at tests/Unit/PaymentsHealthCheckTest.php is in the MANUAL allowlist. 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/ProcessDripCampaign.php::App\\Console\\Commands\\ProcessDripCampaign::handle",
        "fqmn": "App\\Console\\Commands\\ProcessDripCampaign@handle",
        "expected_test_path": "tests/Unit/ProcessDripCampaignTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\ProcessDripCampaign;\n\nclass ProcessDripCampaignTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ProcessDripCampaign@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\\ProcessDripCampaign@handle is PROOF_READY but no test file at tests/Unit/ProcessDripCampaignTest.php is in the MANUAL allowlist. 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/ProcessHumanHandoffQueue.php::App\\Console\\Commands\\ProcessHumanHandoffQueue::handle",
        "fqmn": "App\\Console\\Commands\\ProcessHumanHandoffQueue@handle",
        "expected_test_path": "tests/Unit/ProcessHumanHandoffQueueTest.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\\ProcessHumanHandoffQueue;\n\nclass ProcessHumanHandoffQueueTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ProcessHumanHandoffQueue@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\\ProcessHumanHandoffQueue@handle is PROOF_READY but no test file at tests/Unit/ProcessHumanHandoffQueueTest.php is in the MANUAL allowlist. 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/ProcessRemindersCommand.php::App\\Console\\Commands\\ProcessRemindersCommand::handle",
        "fqmn": "App\\Console\\Commands\\ProcessRemindersCommand@handle",
        "expected_test_path": "tests/Unit/ProcessRemindersCommandTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\ProcessRemindersCommand;\n\nclass ProcessRemindersCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ProcessRemindersCommand@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\\ProcessRemindersCommand@handle is PROOF_READY but no test file at tests/Unit/ProcessRemindersCommandTest.php is in the MANUAL allowlist. 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/ProcessSubscriptionNudgesCommand.php::App\\Console\\Commands\\ProcessSubscriptionNudgesCommand::handle",
        "fqmn": "App\\Console\\Commands\\ProcessSubscriptionNudgesCommand@handle",
        "expected_test_path": "tests/Unit/ProcessSubscriptionNudgesCommandTest.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\\ProcessSubscriptionNudgesCommand;\n\nclass ProcessSubscriptionNudgesCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ProcessSubscriptionNudgesCommand@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\\ProcessSubscriptionNudgesCommand@handle is PROOF_READY but no test file at tests/Unit/ProcessSubscriptionNudgesCommandTest.php is in the MANUAL allowlist. 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/ResetFailedCampaignsToday.php::App\\Console\\Commands\\ResetFailedCampaignsToday::handle",
        "fqmn": "App\\Console\\Commands\\ResetFailedCampaignsToday@handle",
        "expected_test_path": "tests/Unit/ResetFailedCampaignsTodayTest.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\\ResetFailedCampaignsToday;\n\nclass ResetFailedCampaignsTodayTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ResetFailedCampaignsToday@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\\ResetFailedCampaignsToday@handle is PROOF_READY but no test file at tests/Unit/ResetFailedCampaignsTodayTest.php is in the MANUAL allowlist. 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/ResetLeadStatus.php::App\\Console\\Commands\\ResetLeadStatus::handle",
        "fqmn": "App\\Console\\Commands\\ResetLeadStatus@handle",
        "expected_test_path": "tests/Unit/ResetLeadStatusTest.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\\ResetLeadStatus;\n\nclass ResetLeadStatusTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ResetLeadStatus@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\\ResetLeadStatus@handle is PROOF_READY but no test file at tests/Unit/ResetLeadStatusTest.php is in the MANUAL allowlist. 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/ResetOutreachMemory.php::App\\Console\\Commands\\ResetOutreachMemory::handle",
        "fqmn": "App\\Console\\Commands\\ResetOutreachMemory@handle",
        "expected_test_path": "tests/Unit/ResetOutreachMemoryTest.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\\ResetOutreachMemory;\n\nclass ResetOutreachMemoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ResetOutreachMemory@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\\ResetOutreachMemory@handle is PROOF_READY but no test file at tests/Unit/ResetOutreachMemoryTest.php is in the MANUAL allowlist. 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/RunAdaptiveLearning.php::App\\Console\\Commands\\RunAdaptiveLearning::handle",
        "fqmn": "App\\Console\\Commands\\RunAdaptiveLearning@handle",
        "expected_test_path": "tests/Unit/RunAdaptiveLearningTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\RunAdaptiveLearning;\n\nclass RunAdaptiveLearningTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\RunAdaptiveLearning@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\\RunAdaptiveLearning@handle is PROOF_READY but no test file at tests/Unit/RunAdaptiveLearningTest.php is in the MANUAL allowlist. 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/RunChurnPreventionChecksCommand.php::App\\Console\\Commands\\RunChurnPreventionChecksCommand::handle",
        "fqmn": "App\\Console\\Commands\\RunChurnPreventionChecksCommand@handle",
        "expected_test_path": "tests/Unit/RunChurnPreventionChecksCommandTest.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\\RunChurnPreventionChecksCommand;\n\nclass RunChurnPreventionChecksCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\RunChurnPreventionChecksCommand@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\\RunChurnPreventionChecksCommand@handle is PROOF_READY but no test file at tests/Unit/RunChurnPreventionChecksCommandTest.php is in the MANUAL allowlist. 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/RunFollowUpsCommand.php::App\\Console\\Commands\\RunFollowUpsCommand::handle",
        "fqmn": "App\\Console\\Commands\\RunFollowUpsCommand@handle",
        "expected_test_path": "tests/Unit/RunFollowUpsCommandTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\RunFollowUpsCommand;\n\nclass RunFollowUpsCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\RunFollowUpsCommand@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        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\RunFollowUpsCommand@handle is PROOF_READY but no test file at tests/Unit/RunFollowUpsCommandTest.php is in the MANUAL allowlist. 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/RunPortalInactivityChecksCommand.php::App\\Console\\Commands\\RunPortalInactivityChecksCommand::handle",
        "fqmn": "App\\Console\\Commands\\RunPortalInactivityChecksCommand@handle",
        "expected_test_path": "tests/Unit/RunPortalInactivityChecksCommandTest.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\\RunPortalInactivityChecksCommand;\n\nclass RunPortalInactivityChecksCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\RunPortalInactivityChecksCommand@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\\RunPortalInactivityChecksCommand@handle is PROOF_READY but no test file at tests/Unit/RunPortalInactivityChecksCommandTest.php is in the MANUAL allowlist. 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/RunScheduledAgencyBackups.php::App\\Console\\Commands\\RunScheduledAgencyBackups::handle",
        "fqmn": "App\\Console\\Commands\\RunScheduledAgencyBackups@handle",
        "expected_test_path": "tests/Unit/RunScheduledAgencyBackupsTest.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\\RunScheduledAgencyBackups;\n\nclass RunScheduledAgencyBackupsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\RunScheduledAgencyBackups@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\\RunScheduledAgencyBackups@handle is PROOF_READY but no test file at tests/Unit/RunScheduledAgencyBackupsTest.php is in the MANUAL allowlist. 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/ScanForReengagementsCommand.php::App\\Console\\Commands\\ScanForReengagementsCommand::handle",
        "fqmn": "App\\Console\\Commands\\ScanForReengagementsCommand@handle",
        "expected_test_path": "tests/Unit/ScanForReengagementsCommandTest.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\\ScanForReengagementsCommand;\n\nclass ScanForReengagementsCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ScanForReengagementsCommand@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\\ScanForReengagementsCommand@handle is PROOF_READY but no test file at tests/Unit/ScanForReengagementsCommandTest.php is in the MANUAL allowlist. 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/ScanScheduledAppointmentsCommand.php::App\\Console\\Commands\\ScanScheduledAppointmentsCommand::handle",
        "fqmn": "App\\Console\\Commands\\ScanScheduledAppointmentsCommand@handle",
        "expected_test_path": "tests/Unit/ScanScheduledAppointmentsCommandTest.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\\ScanScheduledAppointmentsCommand;\n\nclass ScanScheduledAppointmentsCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ScanScheduledAppointmentsCommand@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\\ScanScheduledAppointmentsCommand@handle is PROOF_READY but no test file at tests/Unit/ScanScheduledAppointmentsCommandTest.php is in the MANUAL allowlist. 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/ScheduleOptimizationCycleCommand.php::App\\Console\\Commands\\ScheduleOptimizationCycleCommand::handle",
        "fqmn": "App\\Console\\Commands\\ScheduleOptimizationCycleCommand@handle",
        "expected_test_path": "tests/Unit/ScheduleOptimizationCycleCommandTest.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\\ScheduleOptimizationCycleCommand;\n\nclass ScheduleOptimizationCycleCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ScheduleOptimizationCycleCommand@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\\ScheduleOptimizationCycleCommand@handle is PROOF_READY but no test file at tests/Unit/ScheduleOptimizationCycleCommandTest.php is in the MANUAL allowlist. 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/ScheduleUpcomingReminders.php::App\\Console\\Commands\\ScheduleUpcomingReminders::handle",
        "fqmn": "App\\Console\\Commands\\ScheduleUpcomingReminders@handle",
        "expected_test_path": "tests/Unit/ScheduleUpcomingRemindersTest.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\\ScheduleUpcomingReminders;\n\nclass ScheduleUpcomingRemindersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ScheduleUpcomingReminders@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\\ScheduleUpcomingReminders@handle is PROOF_READY but no test file at tests/Unit/ScheduleUpcomingRemindersTest.php is in the MANUAL allowlist. 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/SecurityScanCommand.php::App\\Console\\Commands\\SecurityScanCommand::handle",
        "fqmn": "App\\Console\\Commands\\SecurityScanCommand@handle",
        "expected_test_path": "tests/Unit/SecurityScanCommandTest.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\\SecurityScanCommand;\n\nclass SecurityScanCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\SecurityScanCommand@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\\SecurityScanCommand@handle is PROOF_READY but no test file at tests/Unit/SecurityScanCommandTest.php is in the MANUAL allowlist. 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/SendInvitationReminders.php::App\\Console\\Commands\\SendInvitationReminders::handle",
        "fqmn": "App\\Console\\Commands\\SendInvitationReminders@handle",
        "expected_test_path": "tests/Unit/SendInvitationRemindersTest.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\\SendInvitationReminders;\n\nclass SendInvitationRemindersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\SendInvitationReminders@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\\SendInvitationReminders@handle is PROOF_READY but no test file at tests/Unit/SendInvitationRemindersTest.php is in the MANUAL allowlist. 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/SetConversationMode.php::App\\Console\\Commands\\SetConversationMode::handle",
        "fqmn": "App\\Console\\Commands\\SetConversationMode@handle",
        "expected_test_path": "tests/Unit/SetConversationModeTest.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\\SetConversationMode;\n\nclass SetConversationModeTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\SetConversationMode@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\\SetConversationMode@handle is PROOF_READY but no test file at tests/Unit/SetConversationModeTest.php is in the MANUAL allowlist. 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/ShowOutreachTranscript.php::App\\Console\\Commands\\ShowOutreachTranscript::handle",
        "fqmn": "App\\Console\\Commands\\ShowOutreachTranscript@handle",
        "expected_test_path": "tests/Unit/ShowOutreachTranscriptTest.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\\ShowOutreachTranscript;\n\nclass ShowOutreachTranscriptTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ShowOutreachTranscript@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\\ShowOutreachTranscript@handle is PROOF_READY but no test file at tests/Unit/ShowOutreachTranscriptTest.php is in the MANUAL allowlist. 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/SimulateOutreachConversation.php::App\\Console\\Commands\\SimulateOutreachConversation::handle",
        "fqmn": "App\\Console\\Commands\\SimulateOutreachConversation@handle",
        "expected_test_path": "tests/Unit/SimulateOutreachConversationTest.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\\SimulateOutreachConversation;\n\nclass SimulateOutreachConversationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\SimulateOutreachConversation@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\\SimulateOutreachConversation@handle is PROOF_READY but no test file at tests/Unit/SimulateOutreachConversationTest.php is in the MANUAL allowlist. 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/SubscriptionConsistencyCheckCommand.php::App\\Console\\Commands\\SubscriptionConsistencyCheckCommand::handle",
        "fqmn": "App\\Console\\Commands\\SubscriptionConsistencyCheckCommand@handle",
        "expected_test_path": "tests/Unit/SubscriptionConsistencyCheckCommandTest.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\\SubscriptionConsistencyCheckCommand;\n\nclass SubscriptionConsistencyCheckCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\SubscriptionConsistencyCheckCommand@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\\SubscriptionConsistencyCheckCommand@handle is PROOF_READY but no test file at tests/Unit/SubscriptionConsistencyCheckCommandTest.php is in the MANUAL allowlist. 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/SyncInvoicesToBrotions.php::App\\Console\\Commands\\SyncInvoicesToBrotions::handle",
        "fqmn": "App\\Console\\Commands\\SyncInvoicesToBrotions@handle",
        "expected_test_path": "tests/Unit/SyncInvoicesToBrotionsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\SyncInvoicesToBrotions;\n\nclass SyncInvoicesToBrotionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\SyncInvoicesToBrotions@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\\SyncInvoicesToBrotions@handle is PROOF_READY but no test file at tests/Unit/SyncInvoicesToBrotionsTest.php is in the MANUAL allowlist. 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/SyncMarketingTemplates.php::App\\Console\\Commands\\SyncMarketingTemplates::handle",
        "fqmn": "App\\Console\\Commands\\SyncMarketingTemplates@handle",
        "expected_test_path": "tests/Unit/SyncMarketingTemplatesTest.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\\SyncMarketingTemplates;\n\nclass SyncMarketingTemplatesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\SyncMarketingTemplates@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\\SyncMarketingTemplates@handle is PROOF_READY but no test file at tests/Unit/SyncMarketingTemplatesTest.php is in the MANUAL allowlist. 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/SyncWhatsAppTemplates.php::App\\Console\\Commands\\SyncWhatsAppTemplates::handle",
        "fqmn": "App\\Console\\Commands\\SyncWhatsAppTemplates@handle",
        "expected_test_path": "tests/Unit/SyncWhatsAppTemplatesTest.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\\SyncWhatsAppTemplates;\n\nclass SyncWhatsAppTemplatesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\SyncWhatsAppTemplates@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\\SyncWhatsAppTemplates@handle is PROOF_READY but no test file at tests/Unit/SyncWhatsAppTemplatesTest.php is in the MANUAL allowlist. 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/TestIpinfo.php::App\\Console\\Commands\\TestIpinfo::handle",
        "fqmn": "App\\Console\\Commands\\TestIpinfo@handle",
        "expected_test_path": "tests/Unit/TestIpinfoTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written",
          "assert_exception_thrown",
          "assert_http_called"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\TestIpinfo;\n\nclass TestIpinfoTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\TestIpinfo@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        // $this->expectException(<ExceptionClass>::class);\n        // Http::assertSent(fn ($req) => $req->url() === '<url>');\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\TestIpinfo@handle is PROOF_READY but no test file at tests/Unit/TestIpinfoTest.php is in the MANUAL allowlist. 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/TestQueuesCommand.php::App\\Console\\Commands\\TestQueuesCommand::handle",
        "fqmn": "App\\Console\\Commands\\TestQueuesCommand@handle",
        "expected_test_path": "tests/Unit/TestQueuesCommandTest.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\\TestQueuesCommand;\n\nclass TestQueuesCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\TestQueuesCommand@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\\TestQueuesCommand@handle is PROOF_READY but no test file at tests/Unit/TestQueuesCommandTest.php is in the MANUAL allowlist. 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/TestZohoDirectInvoice.php::App\\Console\\Commands\\TestZohoDirectInvoice::handle",
        "fqmn": "App\\Console\\Commands\\TestZohoDirectInvoice@handle",
        "expected_test_path": "tests/Unit/TestZohoDirectInvoiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\TestZohoDirectInvoice;\n\nclass TestZohoDirectInvoiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\TestZohoDirectInvoice@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\\TestZohoDirectInvoice@handle is PROOF_READY but no test file at tests/Unit/TestZohoDirectInvoiceTest.php is in the MANUAL allowlist. 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/UpdateTemplateStatsCommand.php::App\\Console\\Commands\\UpdateTemplateStatsCommand::handle",
        "fqmn": "App\\Console\\Commands\\UpdateTemplateStatsCommand@handle",
        "expected_test_path": "tests/Unit/UpdateTemplateStatsCommandTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\UpdateTemplateStatsCommand;\n\nclass UpdateTemplateStatsCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\UpdateTemplateStatsCommand@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\\UpdateTemplateStatsCommand@handle is PROOF_READY but no test file at tests/Unit/UpdateTemplateStatsCommandTest.php is in the MANUAL allowlist. 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/VerifyNavigationOrder.php::App\\Console\\Commands\\VerifyNavigationOrder::handle",
        "fqmn": "App\\Console\\Commands\\VerifyNavigationOrder@handle",
        "expected_test_path": "tests/Unit/VerifyNavigationOrderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\VerifyNavigationOrder;\n\nclass VerifyNavigationOrderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\VerifyNavigationOrder@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\\VerifyNavigationOrder@handle is PROOF_READY but no test file at tests/Unit/VerifyNavigationOrderTest.php is in the MANUAL allowlist. 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/ViewABTestResultsCommand.php::App\\Console\\Commands\\ViewABTestResultsCommand::handle",
        "fqmn": "App\\Console\\Commands\\ViewABTestResultsCommand@handle",
        "expected_test_path": "tests/Unit/ViewABTestResultsCommandTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\ViewABTestResultsCommand;\n\nclass ViewABTestResultsCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ViewABTestResultsCommand@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\\ViewABTestResultsCommand@handle is PROOF_READY but no test file at tests/Unit/ViewABTestResultsCommandTest.php is in the MANUAL allowlist. 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/ViewPredictionExplanationCommand.php::App\\Console\\Commands\\ViewPredictionExplanationCommand::handle",
        "fqmn": "App\\Console\\Commands\\ViewPredictionExplanationCommand@handle",
        "expected_test_path": "tests/Unit/ViewPredictionExplanationCommandTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\ViewPredictionExplanationCommand;\n\nclass ViewPredictionExplanationCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ViewPredictionExplanationCommand@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\\ViewPredictionExplanationCommand@handle is PROOF_READY but no test file at tests/Unit/ViewPredictionExplanationCommandTest.php is in the MANUAL allowlist. 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/ViewPredictionStatsCommand.php::App\\Console\\Commands\\ViewPredictionStatsCommand::handle",
        "fqmn": "App\\Console\\Commands\\ViewPredictionStatsCommand@handle",
        "expected_test_path": "tests/Unit/ViewPredictionStatsCommandTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\ViewPredictionStatsCommand;\n\nclass ViewPredictionStatsCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ViewPredictionStatsCommand@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\\ViewPredictionStatsCommand@handle is PROOF_READY but no test file at tests/Unit/ViewPredictionStatsCommandTest.php is in the MANUAL allowlist. 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/WhatsAppAuthCheck.php::App\\Console\\Commands\\WhatsAppAuthCheck::handle",
        "fqmn": "App\\Console\\Commands\\WhatsAppAuthCheck@handle",
        "expected_test_path": "tests/Unit/WhatsAppAuthCheckTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\WhatsAppAuthCheck;\n\nclass WhatsAppAuthCheckTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\WhatsAppAuthCheck@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\\Console\\Commands\\WhatsAppAuthCheck@handle is PROOF_READY but no test file at tests/Unit/WhatsAppAuthCheckTest.php is in the MANUAL allowlist. 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/WhatsAppListContent.php::App\\Console\\Commands\\WhatsAppListContent::handle",
        "fqmn": "App\\Console\\Commands\\WhatsAppListContent@handle",
        "expected_test_path": "tests/Unit/WhatsAppListContentTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\WhatsAppListContent;\n\nclass WhatsAppListContentTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\WhatsAppListContent@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\\WhatsAppListContent@handle is PROOF_READY but no test file at tests/Unit/WhatsAppListContentTest.php is in the MANUAL allowlist. 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/WhatsAppProvision.php::App\\Console\\Commands\\WhatsAppProvision::handle",
        "fqmn": "App\\Console\\Commands\\WhatsAppProvision@handle",
        "expected_test_path": "tests/Unit/WhatsAppProvisionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\WhatsAppProvision;\n\nclass WhatsAppProvisionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\WhatsAppProvision@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\\WhatsAppProvision@handle is PROOF_READY but no test file at tests/Unit/WhatsAppProvisionTest.php is in the MANUAL allowlist. 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/WhatsAppPushTemplates.php::App\\Console\\Commands\\WhatsAppPushTemplates::handle",
        "fqmn": "App\\Console\\Commands\\WhatsAppPushTemplates@handle",
        "expected_test_path": "tests/Unit/WhatsAppPushTemplatesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\WhatsAppPushTemplates;\n\nclass WhatsAppPushTemplatesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\WhatsAppPushTemplates@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\\WhatsAppPushTemplates@handle is PROOF_READY but no test file at tests/Unit/WhatsAppPushTemplatesTest.php is in the MANUAL allowlist. 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/WhatsAppStatus.php::App\\Console\\Commands\\WhatsAppStatus::handle",
        "fqmn": "App\\Console\\Commands\\WhatsAppStatus@handle",
        "expected_test_path": "tests/Unit/WhatsAppStatusTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\WhatsAppStatus;\n\nclass WhatsAppStatusTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\WhatsAppStatus@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\\WhatsAppStatus@handle is PROOF_READY but no test file at tests/Unit/WhatsAppStatusTest.php is in the MANUAL allowlist. 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/WhatsAppTemplatePush.php::App\\Console\\Commands\\WhatsAppTemplatePush::handle",
        "fqmn": "App\\Console\\Commands\\WhatsAppTemplatePush@handle",
        "expected_test_path": "tests/Unit/WhatsAppTemplatePushTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\WhatsAppTemplatePush;\n\nclass WhatsAppTemplatePushTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\WhatsAppTemplatePush@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\\WhatsAppTemplatePush@handle is PROOF_READY but no test file at tests/Unit/WhatsAppTemplatePushTest.php is in the MANUAL allowlist. 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/WhatsAppTemplatesList.php::App\\Console\\Commands\\WhatsAppTemplatesList::handle",
        "fqmn": "App\\Console\\Commands\\WhatsAppTemplatesList@handle",
        "expected_test_path": "tests/Unit/WhatsAppTemplatesListTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\WhatsAppTemplatesList;\n\nclass WhatsAppTemplatesListTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\WhatsAppTemplatesList@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\\Console\\Commands\\WhatsAppTemplatesList@handle is PROOF_READY but no test file at tests/Unit/WhatsAppTemplatesListTest.php is in the MANUAL allowlist. 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/WhatsAppTemplatesSync.php::App\\Console\\Commands\\WhatsAppTemplatesSync::handle",
        "fqmn": "App\\Console\\Commands\\WhatsAppTemplatesSync@handle",
        "expected_test_path": "tests/Unit/WhatsAppTemplatesSyncTest.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\\WhatsAppTemplatesSync;\n\nclass WhatsAppTemplatesSyncTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\WhatsAppTemplatesSync@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\\WhatsAppTemplatesSync@handle is PROOF_READY but no test file at tests/Unit/WhatsAppTemplatesSyncTest.php is in the MANUAL allowlist. 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/WhatsAppTest360Dialog.php::App\\Console\\Commands\\WhatsAppTest360Dialog::handle",
        "fqmn": "App\\Console\\Commands\\WhatsAppTest360Dialog@handle",
        "expected_test_path": "tests/Unit/WhatsAppTest360DialogTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\WhatsAppTest360Dialog;\n\nclass WhatsAppTest360DialogTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\WhatsAppTest360Dialog@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\\WhatsAppTest360Dialog@handle is PROOF_READY but no test file at tests/Unit/WhatsAppTest360DialogTest.php is in the MANUAL allowlist. 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/WhatsAppTestSend.php::App\\Console\\Commands\\WhatsAppTestSend::handle",
        "fqmn": "App\\Console\\Commands\\WhatsAppTestSend@handle",
        "expected_test_path": "tests/Unit/WhatsAppTestSendTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\WhatsAppTestSend;\n\nclass WhatsAppTestSendTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\WhatsAppTestSend@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\\WhatsAppTestSend@handle is PROOF_READY but no test file at tests/Unit/WhatsAppTestSendTest.php is in the MANUAL allowlist. 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/WhatsAppTestTemplate.php::App\\Console\\Commands\\WhatsAppTestTemplate::handle",
        "fqmn": "App\\Console\\Commands\\WhatsAppTestTemplate@handle",
        "expected_test_path": "tests/Unit/WhatsAppTestTemplateTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\WhatsAppTestTemplate;\n\nclass WhatsAppTestTemplateTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\WhatsAppTestTemplate@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\\WhatsAppTestTemplate@handle is PROOF_READY but no test file at tests/Unit/WhatsAppTestTemplateTest.php is in the MANUAL allowlist. 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/ZohoFindOrphans.php::App\\Console\\Commands\\ZohoFindOrphans::handle",
        "fqmn": "App\\Console\\Commands\\ZohoFindOrphans@handle",
        "expected_test_path": "tests/Unit/ZohoFindOrphansTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\ZohoFindOrphans;\n\nclass ZohoFindOrphansTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ZohoFindOrphans@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\\ZohoFindOrphans@handle is PROOF_READY but no test file at tests/Unit/ZohoFindOrphansTest.php is in the MANUAL allowlist. 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/ZohoReconAll.php::App\\Console\\Commands\\ZohoReconAll::handle",
        "fqmn": "App\\Console\\Commands\\ZohoReconAll@handle",
        "expected_test_path": "tests/Unit/ZohoReconAllTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\ZohoReconAll;\n\nclass ZohoReconAllTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ZohoReconAll@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\\ZohoReconAll@handle is PROOF_READY but no test file at tests/Unit/ZohoReconAllTest.php is in the MANUAL allowlist. 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/ZohoReconInvoice.php::App\\Console\\Commands\\ZohoReconInvoice::handle",
        "fqmn": "App\\Console\\Commands\\ZohoReconInvoice@handle",
        "expected_test_path": "tests/Unit/ZohoReconInvoiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\ZohoReconInvoice;\n\nclass ZohoReconInvoiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ZohoReconInvoice@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\\ZohoReconInvoice@handle is PROOF_READY but no test file at tests/Unit/ZohoReconInvoiceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::canCreate",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@canCreate",
        "expected_test_path": "tests/Unit/AgencyUserResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\AgencyUserResource;\n\nclass AgencyUserResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\AgencyUserResource@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\\Agencies\\Resources\\AgencyUserResource@canCreate is PROOF_READY but no test file at tests/Unit/AgencyUserResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::canView",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@canView",
        "expected_test_path": "tests/Unit/AgencyUserResourceTest.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\\Agencies\\Resources\\AgencyUserResource;\n\nclass AgencyUserResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\AgencyUserResource@canView\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_canview_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Agencies\\Resources\\AgencyUserResource@canView is PROOF_READY but no test file at tests/Unit/AgencyUserResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::canViewAny",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@canViewAny",
        "expected_test_path": "tests/Unit/AgencyUserResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\AgencyUserResource;\n\nclass AgencyUserResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\AgencyUserResource@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\\Agencies\\Resources\\AgencyUserResource@canViewAny is PROOF_READY but no test file at tests/Unit/AgencyUserResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::getHeading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading",
        "expected_test_path": "tests/Unit/AgencyUserResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\AgencyUserResource;\n\nclass AgencyUserResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\AgencyUserResource@getHeading\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getheading_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\AgencyUserResource@getHeading is PROOF_READY but no test file at tests/Unit/AgencyUserResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::getLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getLabel",
        "expected_test_path": "tests/Unit/AgencyUserResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\AgencyUserResource;\n\nclass AgencyUserResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\AgencyUserResource@getLabel\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getlabel_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\AgencyUserResource@getLabel is PROOF_READY but no test file at tests/Unit/AgencyUserResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getModelLabel",
        "expected_test_path": "tests/Unit/AgencyUserResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\AgencyUserResource;\n\nclass AgencyUserResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\AgencyUserResource@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\\Agencies\\Resources\\AgencyUserResource@getModelLabel is PROOF_READY but no test file at tests/Unit/AgencyUserResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::getNavigationGroup",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getNavigationGroup",
        "expected_test_path": "tests/Unit/AgencyUserResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\AgencyUserResource;\n\nclass AgencyUserResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\AgencyUserResource@getNavigationGroup\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getnavigationgroup_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\AgencyUserResource@getNavigationGroup is PROOF_READY but no test file at tests/Unit/AgencyUserResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/AgencyUserResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\AgencyUserResource;\n\nclass AgencyUserResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\AgencyUserResource@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\\Agencies\\Resources\\AgencyUserResource@getPluralModelLabel is PROOF_READY but no test file at tests/Unit/AgencyUserResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@getTitle",
        "expected_test_path": "tests/Unit/AgencyUserResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\AgencyUserResource;\n\nclass AgencyUserResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\AgencyUserResource@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\AgencyUserResource@getTitle is PROOF_READY but no test file at tests/Unit/AgencyUserResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::mutateFormDataBeforeCreate",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@mutateFormDataBeforeCreate",
        "expected_test_path": "tests/Unit/AgencyUserResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\AgencyUserResource;\n\nclass AgencyUserResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\AgencyUserResource@mutateFormDataBeforeCreate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_mutateformdatabeforecreate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\AgencyUserResource@mutateFormDataBeforeCreate is PROOF_READY but no test file at tests/Unit/AgencyUserResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/AgencyUserResource.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource::organizationHasSeatCapacity",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource@organizationHasSeatCapacity",
        "expected_test_path": "tests/Unit/AgencyUserResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\AgencyUserResource;\n\nclass AgencyUserResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\AgencyUserResource@organizationHasSeatCapacity\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_organizationhasseatcapacity_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\AgencyUserResource@organizationHasSeatCapacity is PROOF_READY but no test file at tests/Unit/AgencyUserResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/AgencyUserResource/Pages/CreateAgencyUser.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\CreateAgencyUser::getHeading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\CreateAgencyUser@getHeading",
        "expected_test_path": "tests/Unit/CreateAgencyUserTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\AgencyUserResource\\Pages\\CreateAgencyUser;\n\nclass CreateAgencyUserTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\CreateAgencyUser@getHeading\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getheading_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\AgencyUserResource\\Pages\\CreateAgencyUser@getHeading is PROOF_READY but no test file at tests/Unit/CreateAgencyUserTest.php is in the MANUAL allowlist. 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/Agencies/Resources/AgencyUserResource/Pages/CreateAgencyUser.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\CreateAgencyUser::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\CreateAgencyUser@getTitle",
        "expected_test_path": "tests/Unit/CreateAgencyUserTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\AgencyUserResource\\Pages\\CreateAgencyUser;\n\nclass CreateAgencyUserTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\CreateAgencyUser@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\AgencyUserResource\\Pages\\CreateAgencyUser@getTitle is PROOF_READY but no test file at tests/Unit/CreateAgencyUserTest.php is in the MANUAL allowlist. 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/Agencies/Resources/AgencyUserResource/Pages/EditAgencyUser.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\EditAgencyUser::getHeading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\EditAgencyUser@getHeading",
        "expected_test_path": "tests/Unit/EditAgencyUserTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\AgencyUserResource\\Pages\\EditAgencyUser;\n\nclass EditAgencyUserTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\EditAgencyUser@getHeading\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getheading_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\AgencyUserResource\\Pages\\EditAgencyUser@getHeading is PROOF_READY but no test file at tests/Unit/EditAgencyUserTest.php is in the MANUAL allowlist. 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/Agencies/Resources/AgencyUserResource/Pages/EditAgencyUser.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\EditAgencyUser::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\EditAgencyUser@getTitle",
        "expected_test_path": "tests/Unit/EditAgencyUserTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\AgencyUserResource\\Pages\\EditAgencyUser;\n\nclass EditAgencyUserTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\EditAgencyUser@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\AgencyUserResource\\Pages\\EditAgencyUser@getTitle is PROOF_READY but no test file at tests/Unit/EditAgencyUserTest.php is in the MANUAL allowlist. 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/Agencies/Resources/AgencyUserResource/Pages/ViewAgencyUser.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\ViewAgencyUser::getHeading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\ViewAgencyUser@getHeading",
        "expected_test_path": "tests/Unit/ViewAgencyUserTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\AgencyUserResource\\Pages\\ViewAgencyUser;\n\nclass ViewAgencyUserTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\ViewAgencyUser@getHeading\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getheading_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\AgencyUserResource\\Pages\\ViewAgencyUser@getHeading is PROOF_READY but no test file at tests/Unit/ViewAgencyUserTest.php is in the MANUAL allowlist. 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/Agencies/Resources/AgencyUserResource/Pages/ViewAgencyUser.php::App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\ViewAgencyUser::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\ViewAgencyUser@getTitle",
        "expected_test_path": "tests/Unit/ViewAgencyUserTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\AgencyUserResource\\Pages\\ViewAgencyUser;\n\nclass ViewAgencyUserTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\AgencyUserResource\\Pages\\ViewAgencyUser@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\AgencyUserResource\\Pages\\ViewAgencyUser@getTitle is PROOF_READY but no test file at tests/Unit/ViewAgencyUserTest.php is in the MANUAL allowlist. 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/Agencies/Resources/FileResource.php::App\\Domains\\Agencies\\Resources\\FileResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\FileResource@form",
        "expected_test_path": "tests/Unit/FileResourceTest.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\\Domains\\Agencies\\Resources\\FileResource;\n\nclass FileResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\FileResource@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\n        // TODO: set up test data 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\\Agencies\\Resources\\FileResource@form is PROOF_READY but no test file at tests/Unit/FileResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/FileResource.php::App\\Domains\\Agencies\\Resources\\FileResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\FileResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/FileResourceTest.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\\Agencies\\Resources\\FileResource;\n\nclass FileResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\FileResource@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\n\n        // TODO: set up test data 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\\Agencies\\Resources\\FileResource@getEloquentQuery is PROOF_READY but no test file at tests/Unit/FileResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/FileResource.php::App\\Domains\\Agencies\\Resources\\FileResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\FileResource@getModelLabel",
        "expected_test_path": "tests/Unit/FileResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\FileResource;\n\nclass FileResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\FileResource@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\\Agencies\\Resources\\FileResource@getModelLabel is PROOF_READY but no test file at tests/Unit/FileResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/FileResource.php::App\\Domains\\Agencies\\Resources\\FileResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\FileResource@getNavigationLabel",
        "expected_test_path": "tests/Unit/FileResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\FileResource;\n\nclass FileResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\FileResource@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\\Agencies\\Resources\\FileResource@getNavigationLabel is PROOF_READY but no test file at tests/Unit/FileResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/FileResource.php::App\\Domains\\Agencies\\Resources\\FileResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\FileResource@getPages",
        "expected_test_path": "tests/Unit/FileResourceTest.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\\Agencies\\Resources\\FileResource;\n\nclass FileResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\FileResource@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\\Agencies\\Resources\\FileResource@getPages is PROOF_READY but no test file at tests/Unit/FileResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/FileResource.php::App\\Domains\\Agencies\\Resources\\FileResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\FileResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/FileResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\FileResource;\n\nclass FileResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\FileResource@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\\Agencies\\Resources\\FileResource@getPluralModelLabel is PROOF_READY but no test file at tests/Unit/FileResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/FileResource.php::App\\Domains\\Agencies\\Resources\\FileResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\FileResource@table",
        "expected_test_path": "tests/Unit/FileResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_http_called"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Agencies\\Resources\\FileResource;\n\nclass FileResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\FileResource@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        // Http::assertSent(fn ($req) => $req->url() === '<url>');\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Agencies\\Resources\\FileResource@table is PROOF_READY but no test file at tests/Unit/FileResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LabourResource.php::App\\Domains\\Agencies\\Resources\\LabourResource::mutateFormDataBeforeCreate",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LabourResource@mutateFormDataBeforeCreate",
        "expected_test_path": "tests/Unit/LabourResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\LabourResource;\n\nclass LabourResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LabourResource@mutateFormDataBeforeCreate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_mutateformdatabeforecreate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\LabourResource@mutateFormDataBeforeCreate is PROOF_READY but no test file at tests/Unit/LabourResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LabourResource/Pages/CreateLabour.php::App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\CreateLabour::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\CreateLabour@getTitle",
        "expected_test_path": "tests/Unit/CreateLabourTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\LabourResource\\Pages\\CreateLabour;\n\nclass CreateLabourTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\CreateLabour@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\LabourResource\\Pages\\CreateLabour@getTitle is PROOF_READY but no test file at tests/Unit/CreateLabourTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LabourResource/Pages/EditLabour.php::App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\EditLabour::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\EditLabour@getTitle",
        "expected_test_path": "tests/Unit/EditLabourTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\LabourResource\\Pages\\EditLabour;\n\nclass EditLabourTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\EditLabour@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\LabourResource\\Pages\\EditLabour@getTitle is PROOF_READY but no test file at tests/Unit/EditLabourTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LabourResource/Pages/ListLabours.php::App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ListLabours::getBreadcrumb",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ListLabours@getBreadcrumb",
        "expected_test_path": "tests/Unit/ListLaboursTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\LabourResource\\Pages\\ListLabours;\n\nclass ListLaboursTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ListLabours@getBreadcrumb\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getbreadcrumb_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\LabourResource\\Pages\\ListLabours@getBreadcrumb is PROOF_READY but no test file at tests/Unit/ListLaboursTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LabourResource/Pages/ListLabours.php::App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ListLabours::getHeading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ListLabours@getHeading",
        "expected_test_path": "tests/Unit/ListLaboursTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\LabourResource\\Pages\\ListLabours;\n\nclass ListLaboursTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ListLabours@getHeading\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getheading_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\LabourResource\\Pages\\ListLabours@getHeading is PROOF_READY but no test file at tests/Unit/ListLaboursTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LabourResource/Pages/ListLabours.php::App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ListLabours::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ListLabours@getTitle",
        "expected_test_path": "tests/Unit/ListLaboursTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\LabourResource\\Pages\\ListLabours;\n\nclass ListLaboursTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ListLabours@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\LabourResource\\Pages\\ListLabours@getTitle is PROOF_READY but no test file at tests/Unit/ListLaboursTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LabourResource/Pages/ViewLabour.php::App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ViewLabour::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ViewLabour@getTitle",
        "expected_test_path": "tests/Unit/ViewLabourTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\LabourResource\\Pages\\ViewLabour;\n\nclass ViewLabourTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LabourResource\\Pages\\ViewLabour@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\LabourResource\\Pages\\ViewLabour@getTitle is PROOF_READY but no test file at tests/Unit/ViewLabourTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LandlordResource.php::App\\Domains\\Agencies\\Resources\\LandlordResource::canCreate",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource@canCreate",
        "expected_test_path": "tests/Unit/LandlordResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\LandlordResource;\n\nclass LandlordResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LandlordResource@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\\Agencies\\Resources\\LandlordResource@canCreate is PROOF_READY but no test file at tests/Unit/LandlordResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LandlordResource.php::App\\Domains\\Agencies\\Resources\\LandlordResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource@form",
        "expected_test_path": "tests/Unit/LandlordResourceTest.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\\Domains\\Agencies\\Resources\\LandlordResource;\n\nclass LandlordResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LandlordResource@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\n        // TODO: set up test data 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\\Agencies\\Resources\\LandlordResource@form is PROOF_READY but no test file at tests/Unit/LandlordResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LandlordResource.php::App\\Domains\\Agencies\\Resources\\LandlordResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/LandlordResourceTest.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\\Agencies\\Resources\\LandlordResource;\n\nclass LandlordResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LandlordResource@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\n\n        // TODO: set up test data 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\\Agencies\\Resources\\LandlordResource@getEloquentQuery is PROOF_READY but no test file at tests/Unit/LandlordResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LandlordResource.php::App\\Domains\\Agencies\\Resources\\LandlordResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource@getModelLabel",
        "expected_test_path": "tests/Unit/LandlordResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\LandlordResource;\n\nclass LandlordResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LandlordResource@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\\Agencies\\Resources\\LandlordResource@getModelLabel is PROOF_READY but no test file at tests/Unit/LandlordResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LandlordResource.php::App\\Domains\\Agencies\\Resources\\LandlordResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource@getNavigationLabel",
        "expected_test_path": "tests/Unit/LandlordResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\LandlordResource;\n\nclass LandlordResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LandlordResource@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\\Agencies\\Resources\\LandlordResource@getNavigationLabel is PROOF_READY but no test file at tests/Unit/LandlordResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LandlordResource.php::App\\Domains\\Agencies\\Resources\\LandlordResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource@getPages",
        "expected_test_path": "tests/Unit/LandlordResourceTest.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\\Agencies\\Resources\\LandlordResource;\n\nclass LandlordResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LandlordResource@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\\Agencies\\Resources\\LandlordResource@getPages is PROOF_READY but no test file at tests/Unit/LandlordResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LandlordResource.php::App\\Domains\\Agencies\\Resources\\LandlordResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/LandlordResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\LandlordResource;\n\nclass LandlordResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LandlordResource@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\\Agencies\\Resources\\LandlordResource@getPluralModelLabel is PROOF_READY but no test file at tests/Unit/LandlordResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LandlordResource.php::App\\Domains\\Agencies\\Resources\\LandlordResource::getRelations",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource@getRelations",
        "expected_test_path": "tests/Unit/LandlordResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\LandlordResource;\n\nclass LandlordResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LandlordResource@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\LandlordResource@getRelations is PROOF_READY but no test file at tests/Unit/LandlordResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LandlordResource/Pages/CreateLandlord.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\CreateLandlord::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\CreateLandlord@getTitle",
        "expected_test_path": "tests/Unit/CreateLandlordTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\LandlordResource\\Pages\\CreateLandlord;\n\nclass CreateLandlordTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\CreateLandlord@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\LandlordResource\\Pages\\CreateLandlord@getTitle is PROOF_READY but no test file at tests/Unit/CreateLandlordTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LandlordResource/Pages/EditLandlord.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\EditLandlord::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\EditLandlord@getTitle",
        "expected_test_path": "tests/Unit/EditLandlordTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\LandlordResource\\Pages\\EditLandlord;\n\nclass EditLandlordTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\EditLandlord@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\LandlordResource\\Pages\\EditLandlord@getTitle is PROOF_READY but no test file at tests/Unit/EditLandlordTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LandlordResource/Pages/ListLandlords.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ListLandlords::getBreadcrumb",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ListLandlords@getBreadcrumb",
        "expected_test_path": "tests/Unit/ListLandlordsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\LandlordResource\\Pages\\ListLandlords;\n\nclass ListLandlordsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ListLandlords@getBreadcrumb\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getbreadcrumb_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\LandlordResource\\Pages\\ListLandlords@getBreadcrumb is PROOF_READY but no test file at tests/Unit/ListLandlordsTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LandlordResource/Pages/ListLandlords.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ListLandlords::getHeading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ListLandlords@getHeading",
        "expected_test_path": "tests/Unit/ListLandlordsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\LandlordResource\\Pages\\ListLandlords;\n\nclass ListLandlordsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ListLandlords@getHeading\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getheading_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\LandlordResource\\Pages\\ListLandlords@getHeading is PROOF_READY but no test file at tests/Unit/ListLandlordsTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LandlordResource/Pages/ListLandlords.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ListLandlords::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ListLandlords@getTitle",
        "expected_test_path": "tests/Unit/ListLandlordsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\LandlordResource\\Pages\\ListLandlords;\n\nclass ListLandlordsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ListLandlords@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\LandlordResource\\Pages\\ListLandlords@getTitle is PROOF_READY but no test file at tests/Unit/ListLandlordsTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LandlordResource/Pages/ViewLandlord.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ViewLandlord::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ViewLandlord@getTitle",
        "expected_test_path": "tests/Unit/ViewLandlordTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\LandlordResource\\Pages\\ViewLandlord;\n\nclass ViewLandlordTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LandlordResource\\Pages\\ViewLandlord@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\LandlordResource\\Pages\\ViewLandlord@getTitle is PROOF_READY but no test file at tests/Unit/ViewLandlordTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LandlordResource/RelationManagers/DocumentsRelationManager.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@form",
        "expected_test_path": "tests/Unit/DocumentsRelationManagerTest.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\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager;\n\nclass DocumentsRelationManagerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@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\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@form is PROOF_READY but no test file at tests/Unit/DocumentsRelationManagerTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LandlordResource/RelationManagers/DocumentsRelationManager.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@getTitle",
        "expected_test_path": "tests/Unit/DocumentsRelationManagerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager;\n\nclass DocumentsRelationManagerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@getTitle is PROOF_READY but no test file at tests/Unit/DocumentsRelationManagerTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LandlordResource/RelationManagers/DocumentsRelationManager.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@table",
        "expected_test_path": "tests/Unit/DocumentsRelationManagerTest.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\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager;\n\nclass DocumentsRelationManagerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@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\\Agencies\\Resources\\LandlordResource\\RelationManagers\\DocumentsRelationManager@table is PROOF_READY but no test file at tests/Unit/DocumentsRelationManagerTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LandlordResource/RelationManagers/PropertiesRelationManager.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@getTitle",
        "expected_test_path": "tests/Unit/PropertiesRelationManagerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager;\n\nclass PropertiesRelationManagerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@getTitle is PROOF_READY but no test file at tests/Unit/PropertiesRelationManagerTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LandlordResource/RelationManagers/PropertiesRelationManager.php::App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@table",
        "expected_test_path": "tests/Unit/PropertiesRelationManagerTest.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\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager;\n\nclass PropertiesRelationManagerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@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\\Agencies\\Resources\\LandlordResource\\RelationManagers\\PropertiesRelationManager@table is PROOF_READY but no test file at tests/Unit/PropertiesRelationManagerTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LeaseCycleResource.php::App\\Domains\\Agencies\\Resources\\LeaseCycleResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@form",
        "expected_test_path": "tests/Unit/LeaseCycleResourceTest.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\\Agencies\\Resources\\LeaseCycleResource;\n\nclass LeaseCycleResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LeaseCycleResource@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\\Agencies\\Resources\\LeaseCycleResource@form is PROOF_READY but no test file at tests/Unit/LeaseCycleResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LeaseCycleResource.php::App\\Domains\\Agencies\\Resources\\LeaseCycleResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/LeaseCycleResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\LeaseCycleResource;\n\nclass LeaseCycleResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LeaseCycleResource@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\\Agencies\\Resources\\LeaseCycleResource@getEloquentQuery is PROOF_READY but no test file at tests/Unit/LeaseCycleResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LeaseCycleResource.php::App\\Domains\\Agencies\\Resources\\LeaseCycleResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@getModelLabel",
        "expected_test_path": "tests/Unit/LeaseCycleResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\LeaseCycleResource;\n\nclass LeaseCycleResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LeaseCycleResource@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\\Agencies\\Resources\\LeaseCycleResource@getModelLabel is PROOF_READY but no test file at tests/Unit/LeaseCycleResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LeaseCycleResource.php::App\\Domains\\Agencies\\Resources\\LeaseCycleResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@getPages",
        "expected_test_path": "tests/Unit/LeaseCycleResourceTest.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\\Agencies\\Resources\\LeaseCycleResource;\n\nclass LeaseCycleResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LeaseCycleResource@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\\Agencies\\Resources\\LeaseCycleResource@getPages is PROOF_READY but no test file at tests/Unit/LeaseCycleResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LeaseCycleResource.php::App\\Domains\\Agencies\\Resources\\LeaseCycleResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/LeaseCycleResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\LeaseCycleResource;\n\nclass LeaseCycleResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LeaseCycleResource@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\\Agencies\\Resources\\LeaseCycleResource@getPluralModelLabel is PROOF_READY but no test file at tests/Unit/LeaseCycleResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LeaseCycleResource.php::App\\Domains\\Agencies\\Resources\\LeaseCycleResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation",
        "expected_test_path": "tests/Unit/LeaseCycleResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\LeaseCycleResource;\n\nclass LeaseCycleResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LeaseCycleResource@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\\Agencies\\Resources\\LeaseCycleResource@shouldRegisterNavigation is PROOF_READY but no test file at tests/Unit/LeaseCycleResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LeaseCycleResource.php::App\\Domains\\Agencies\\Resources\\LeaseCycleResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseCycleResource@table",
        "expected_test_path": "tests/Unit/LeaseCycleResourceTest.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\\Agencies\\Resources\\LeaseCycleResource;\n\nclass LeaseCycleResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LeaseCycleResource@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\\Agencies\\Resources\\LeaseCycleResource@table is PROOF_READY but no test file at tests/Unit/LeaseCycleResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LeaseResource.php::App\\Domains\\Agencies\\Resources\\LeaseResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource@form",
        "expected_test_path": "tests/Unit/LeaseResourceTest.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\\Agencies\\Resources\\LeaseResource;\n\nclass LeaseResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LeaseResource@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\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\Agencies\\Resources\\LeaseResource@form is PROOF_READY but no test file at tests/Unit/LeaseResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LeaseResource.php::App\\Domains\\Agencies\\Resources\\LeaseResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/LeaseResourceTest.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\\Agencies\\Resources\\LeaseResource;\n\nclass LeaseResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LeaseResource@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\n\n        // TODO: set up test data 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\\Agencies\\Resources\\LeaseResource@getEloquentQuery is PROOF_READY but no test file at tests/Unit/LeaseResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LeaseResource.php::App\\Domains\\Agencies\\Resources\\LeaseResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource@getModelLabel",
        "expected_test_path": "tests/Unit/LeaseResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\LeaseResource;\n\nclass LeaseResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LeaseResource@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\\Agencies\\Resources\\LeaseResource@getModelLabel is PROOF_READY but no test file at tests/Unit/LeaseResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LeaseResource.php::App\\Domains\\Agencies\\Resources\\LeaseResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource@getNavigationLabel",
        "expected_test_path": "tests/Unit/LeaseResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\LeaseResource;\n\nclass LeaseResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LeaseResource@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\\Agencies\\Resources\\LeaseResource@getNavigationLabel is PROOF_READY but no test file at tests/Unit/LeaseResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LeaseResource.php::App\\Domains\\Agencies\\Resources\\LeaseResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource@getPages",
        "expected_test_path": "tests/Unit/LeaseResourceTest.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\\Agencies\\Resources\\LeaseResource;\n\nclass LeaseResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LeaseResource@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\\Agencies\\Resources\\LeaseResource@getPages is PROOF_READY but no test file at tests/Unit/LeaseResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LeaseResource.php::App\\Domains\\Agencies\\Resources\\LeaseResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/LeaseResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\LeaseResource;\n\nclass LeaseResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LeaseResource@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\\Agencies\\Resources\\LeaseResource@getPluralModelLabel is PROOF_READY but no test file at tests/Unit/LeaseResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LeaseResource.php::App\\Domains\\Agencies\\Resources\\LeaseResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource@table",
        "expected_test_path": "tests/Unit/LeaseResourceTest.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\\Agencies\\Resources\\LeaseResource;\n\nclass LeaseResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LeaseResource@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\\Agencies\\Resources\\LeaseResource@table is PROOF_READY but no test file at tests/Unit/LeaseResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LeaseResource/Pages/Bookings.php::App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings::canAccess",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings@canAccess",
        "expected_test_path": "tests/Unit/BookingsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings;\n\nclass BookingsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings@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\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings@canAccess is PROOF_READY but no test file at tests/Unit/BookingsTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LeaseResource/Pages/Bookings.php::App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings@getNavigationLabel",
        "expected_test_path": "tests/Unit/BookingsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings;\n\nclass BookingsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings@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\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings@getNavigationLabel is PROOF_READY but no test file at tests/Unit/BookingsTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LeaseResource/Pages/Bookings.php::App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings@getTitle",
        "expected_test_path": "tests/Unit/BookingsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings;\n\nclass BookingsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings@getTitle is PROOF_READY but no test file at tests/Unit/BookingsTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LeaseResource/Pages/Bookings.php::App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings@table",
        "expected_test_path": "tests/Unit/BookingsTest.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\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings;\n\nclass BookingsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings@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\\Agencies\\Resources\\LeaseResource\\Pages\\Bookings@table is PROOF_READY but no test file at tests/Unit/BookingsTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LeaseResource/Pages/CreateLease.php::App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\CreateLease::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\CreateLease@getTitle",
        "expected_test_path": "tests/Unit/CreateLeaseTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\LeaseResource\\Pages\\CreateLease;\n\nclass CreateLeaseTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\CreateLease@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\LeaseResource\\Pages\\CreateLease@getTitle is PROOF_READY but no test file at tests/Unit/CreateLeaseTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LeaseResource/Pages/EditLease.php::App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\EditLease::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\EditLease@getTitle",
        "expected_test_path": "tests/Unit/EditLeaseTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\LeaseResource\\Pages\\EditLease;\n\nclass EditLeaseTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\EditLease@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\LeaseResource\\Pages\\EditLease@getTitle is PROOF_READY but no test file at tests/Unit/EditLeaseTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LeaseResource/Pages/ListLeases.php::App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ListLeases::getSubheading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ListLeases@getSubheading",
        "expected_test_path": "tests/Unit/ListLeasesTest.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\\Agencies\\Resources\\LeaseResource\\Pages\\ListLeases;\n\nclass ListLeasesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ListLeases@getSubheading\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getsubheading_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Agencies\\Resources\\LeaseResource\\Pages\\ListLeases@getSubheading is PROOF_READY but no test file at tests/Unit/ListLeasesTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LeaseResource/Pages/ListLeases.php::App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ListLeases::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ListLeases@getTitle",
        "expected_test_path": "tests/Unit/ListLeasesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\LeaseResource\\Pages\\ListLeases;\n\nclass ListLeasesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ListLeases@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\LeaseResource\\Pages\\ListLeases@getTitle is PROOF_READY but no test file at tests/Unit/ListLeasesTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LeaseResource/Pages/ViewLease.php::App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ViewLease::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ViewLease@getTitle",
        "expected_test_path": "tests/Unit/ViewLeaseTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\LeaseResource\\Pages\\ViewLease;\n\nclass ViewLeaseTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ViewLease@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\LeaseResource\\Pages\\ViewLease@getTitle is PROOF_READY but no test file at tests/Unit/ViewLeaseTest.php is in the MANUAL allowlist. 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/Agencies/Resources/LeaseResource/Pages/ViewLease.php::App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ViewLease::infolist",
        "fqmn": "App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ViewLease@infolist",
        "expected_test_path": "tests/Unit/ViewLeaseTest.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\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ViewLease;\n\nclass ViewLeaseTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\LeaseResource\\Pages\\ViewLease@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\n        // TODO: set up test data 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\\Agencies\\Resources\\LeaseResource\\Pages\\ViewLease@infolist is PROOF_READY but no test file at tests/Unit/ViewLeaseTest.php is in the MANUAL allowlist. 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/Agencies/Resources/MaintenanceSlaResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@form",
        "expected_test_path": "tests/Unit/MaintenanceSlaResourceTest.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\\Agencies\\Resources\\MaintenanceSlaResource;\n\nclass MaintenanceSlaResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@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\\Agencies\\Resources\\MaintenanceSlaResource@form is PROOF_READY but no test file at tests/Unit/MaintenanceSlaResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/MaintenanceSlaResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/MaintenanceSlaResourceTest.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\\Agencies\\Resources\\MaintenanceSlaResource;\n\nclass MaintenanceSlaResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@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\n\n        // TODO: set up test data 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\\Agencies\\Resources\\MaintenanceSlaResource@getEloquentQuery is PROOF_READY but no test file at tests/Unit/MaintenanceSlaResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/MaintenanceSlaResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@getModelLabel",
        "expected_test_path": "tests/Unit/MaintenanceSlaResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\MaintenanceSlaResource;\n\nclass MaintenanceSlaResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@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\\Agencies\\Resources\\MaintenanceSlaResource@getModelLabel is PROOF_READY but no test file at tests/Unit/MaintenanceSlaResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/MaintenanceSlaResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@getNavigationLabel",
        "expected_test_path": "tests/Unit/MaintenanceSlaResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\MaintenanceSlaResource;\n\nclass MaintenanceSlaResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@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\\Agencies\\Resources\\MaintenanceSlaResource@getNavigationLabel is PROOF_READY but no test file at tests/Unit/MaintenanceSlaResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/MaintenanceSlaResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@getPages",
        "expected_test_path": "tests/Unit/MaintenanceSlaResourceTest.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\\Agencies\\Resources\\MaintenanceSlaResource;\n\nclass MaintenanceSlaResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@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\\Agencies\\Resources\\MaintenanceSlaResource@getPages is PROOF_READY but no test file at tests/Unit/MaintenanceSlaResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/MaintenanceSlaResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/MaintenanceSlaResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\MaintenanceSlaResource;\n\nclass MaintenanceSlaResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@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\\Agencies\\Resources\\MaintenanceSlaResource@getPluralModelLabel is PROOF_READY but no test file at tests/Unit/MaintenanceSlaResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/MaintenanceSlaResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource::infolist",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@infolist",
        "expected_test_path": "tests/Unit/MaintenanceSlaResourceTest.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\\Agencies\\Resources\\MaintenanceSlaResource;\n\nclass MaintenanceSlaResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@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\\Agencies\\Resources\\MaintenanceSlaResource@infolist is PROOF_READY but no test file at tests/Unit/MaintenanceSlaResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/MaintenanceSlaResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation",
        "expected_test_path": "tests/Unit/MaintenanceSlaResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\MaintenanceSlaResource;\n\nclass MaintenanceSlaResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@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\\Agencies\\Resources\\MaintenanceSlaResource@shouldRegisterNavigation is PROOF_READY but no test file at tests/Unit/MaintenanceSlaResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/MaintenanceSlaResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@table",
        "expected_test_path": "tests/Unit/MaintenanceSlaResourceTest.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\\Agencies\\Resources\\MaintenanceSlaResource;\n\nclass MaintenanceSlaResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource@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\\Agencies\\Resources\\MaintenanceSlaResource@table is PROOF_READY but no test file at tests/Unit/MaintenanceSlaResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/MaintenanceSlaResource/Pages/CreateMaintenanceSla.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource\\Pages\\CreateMaintenanceSla::getHeading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource\\Pages\\CreateMaintenanceSla@getHeading",
        "expected_test_path": "tests/Unit/CreateMaintenanceSlaTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\MaintenanceSlaResource\\Pages\\CreateMaintenanceSla;\n\nclass CreateMaintenanceSlaTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource\\Pages\\CreateMaintenanceSla@getHeading\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getheading_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\MaintenanceSlaResource\\Pages\\CreateMaintenanceSla@getHeading is PROOF_READY but no test file at tests/Unit/CreateMaintenanceSlaTest.php is in the MANUAL allowlist. 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/Agencies/Resources/MaintenanceSlaResource/Pages/CreateMaintenanceSla.php::App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource\\Pages\\CreateMaintenanceSla::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource\\Pages\\CreateMaintenanceSla@getTitle",
        "expected_test_path": "tests/Unit/CreateMaintenanceSlaTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\MaintenanceSlaResource\\Pages\\CreateMaintenanceSla;\n\nclass CreateMaintenanceSlaTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\MaintenanceSlaResource\\Pages\\CreateMaintenanceSla@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\MaintenanceSlaResource\\Pages\\CreateMaintenanceSla@getTitle is PROOF_READY but no test file at tests/Unit/CreateMaintenanceSlaTest.php is in the MANUAL allowlist. 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/Agencies/Resources/MaintenanceSuggestionResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@form",
        "expected_test_path": "tests/Unit/MaintenanceSuggestionResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\MaintenanceSuggestionResource;\n\nclass MaintenanceSuggestionResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@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\\Agencies\\Resources\\MaintenanceSuggestionResource@form is PROOF_READY but no test file at tests/Unit/MaintenanceSuggestionResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/MaintenanceSuggestionResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/MaintenanceSuggestionResourceTest.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\\Agencies\\Resources\\MaintenanceSuggestionResource;\n\nclass MaintenanceSuggestionResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@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\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\Agencies\\Resources\\MaintenanceSuggestionResource@getEloquentQuery is PROOF_READY but no test file at tests/Unit/MaintenanceSuggestionResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/MaintenanceSuggestionResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@getModelLabel",
        "expected_test_path": "tests/Unit/MaintenanceSuggestionResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\MaintenanceSuggestionResource;\n\nclass MaintenanceSuggestionResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@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\\Agencies\\Resources\\MaintenanceSuggestionResource@getModelLabel is PROOF_READY but no test file at tests/Unit/MaintenanceSuggestionResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/MaintenanceSuggestionResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@getNavigationLabel",
        "expected_test_path": "tests/Unit/MaintenanceSuggestionResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\MaintenanceSuggestionResource;\n\nclass MaintenanceSuggestionResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@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\\Agencies\\Resources\\MaintenanceSuggestionResource@getNavigationLabel is PROOF_READY but no test file at tests/Unit/MaintenanceSuggestionResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/MaintenanceSuggestionResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@getPages",
        "expected_test_path": "tests/Unit/MaintenanceSuggestionResourceTest.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\\Agencies\\Resources\\MaintenanceSuggestionResource;\n\nclass MaintenanceSuggestionResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@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\\Agencies\\Resources\\MaintenanceSuggestionResource@getPages is PROOF_READY but no test file at tests/Unit/MaintenanceSuggestionResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/MaintenanceSuggestionResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/MaintenanceSuggestionResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\MaintenanceSuggestionResource;\n\nclass MaintenanceSuggestionResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@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\\Agencies\\Resources\\MaintenanceSuggestionResource@getPluralModelLabel is PROOF_READY but no test file at tests/Unit/MaintenanceSuggestionResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/MaintenanceSuggestionResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@shouldRegisterNavigation",
        "expected_test_path": "tests/Unit/MaintenanceSuggestionResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\MaintenanceSuggestionResource;\n\nclass MaintenanceSuggestionResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@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\\Agencies\\Resources\\MaintenanceSuggestionResource@shouldRegisterNavigation is PROOF_READY but no test file at tests/Unit/MaintenanceSuggestionResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/MaintenanceSuggestionResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@table",
        "expected_test_path": "tests/Unit/MaintenanceSuggestionResourceTest.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\\Agencies\\Resources\\MaintenanceSuggestionResource;\n\nclass MaintenanceSuggestionResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\MaintenanceSuggestionResource@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\\Agencies\\Resources\\MaintenanceSuggestionResource@table is PROOF_READY but no test file at tests/Unit/MaintenanceSuggestionResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/MaintenanceTicketResource/Actions/ExportTicketsAction.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\Actions\\ExportTicketsAction::getDefaultName",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\Actions\\ExportTicketsAction@getDefaultName",
        "expected_test_path": "tests/Unit/ExportTicketsActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\MaintenanceTicketResource\\Actions\\ExportTicketsAction;\n\nclass ExportTicketsActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\Actions\\ExportTicketsAction@getDefaultName\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getdefaultname_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\MaintenanceTicketResource\\Actions\\ExportTicketsAction@getDefaultName is PROOF_READY but no test file at tests/Unit/ExportTicketsActionTest.php is in the MANUAL allowlist. 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/Agencies/Resources/MaintenanceTicketResource/Pages/CreateMaintenanceTicket.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\Pages\\CreateMaintenanceTicket::getHeading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\Pages\\CreateMaintenanceTicket@getHeading",
        "expected_test_path": "tests/Unit/CreateMaintenanceTicketTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\MaintenanceTicketResource\\Pages\\CreateMaintenanceTicket;\n\nclass CreateMaintenanceTicketTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\Pages\\CreateMaintenanceTicket@getHeading\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getheading_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\MaintenanceTicketResource\\Pages\\CreateMaintenanceTicket@getHeading is PROOF_READY but no test file at tests/Unit/CreateMaintenanceTicketTest.php is in the MANUAL allowlist. 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/Agencies/Resources/MaintenanceTicketResource/Pages/CreateMaintenanceTicket.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\Pages\\CreateMaintenanceTicket::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\Pages\\CreateMaintenanceTicket@getTitle",
        "expected_test_path": "tests/Unit/CreateMaintenanceTicketTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\MaintenanceTicketResource\\Pages\\CreateMaintenanceTicket;\n\nclass CreateMaintenanceTicketTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\Pages\\CreateMaintenanceTicket@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\MaintenanceTicketResource\\Pages\\CreateMaintenanceTicket@getTitle is PROOF_READY but no test file at tests/Unit/CreateMaintenanceTicketTest.php is in the MANUAL allowlist. 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/Agencies/Resources/MaintenanceTicketResource/RelationManagers/CommentsRelationManager.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\CommentsRelationManager::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\CommentsRelationManager@form",
        "expected_test_path": "tests/Unit/CommentsRelationManagerTest.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\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\CommentsRelationManager;\n\nclass CommentsRelationManagerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\CommentsRelationManager@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\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\CommentsRelationManager@form is PROOF_READY but no test file at tests/Unit/CommentsRelationManagerTest.php is in the MANUAL allowlist. 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/Agencies/Resources/MaintenanceTicketResource/RelationManagers/CommentsRelationManager.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\CommentsRelationManager::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\CommentsRelationManager@table",
        "expected_test_path": "tests/Unit/CommentsRelationManagerTest.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\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\CommentsRelationManager;\n\nclass CommentsRelationManagerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\CommentsRelationManager@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\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\CommentsRelationManager@table is PROOF_READY but no test file at tests/Unit/CommentsRelationManagerTest.php is in the MANUAL allowlist. 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/Agencies/Resources/MaintenanceTicketResource/RelationManagers/MediaRelationManager.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\MediaRelationManager::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\MediaRelationManager@form",
        "expected_test_path": "tests/Unit/MediaRelationManagerTest.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\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\MediaRelationManager;\n\nclass MediaRelationManagerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\MediaRelationManager@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\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\MediaRelationManager@form is PROOF_READY but no test file at tests/Unit/MediaRelationManagerTest.php is in the MANUAL allowlist. 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/Agencies/Resources/MaintenanceTicketResource/RelationManagers/MediaRelationManager.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\MediaRelationManager::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\MediaRelationManager@table",
        "expected_test_path": "tests/Unit/MediaRelationManagerTest.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\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\MediaRelationManager;\n\nclass MediaRelationManagerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\MediaRelationManager@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\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\MediaRelationManager@table is PROOF_READY but no test file at tests/Unit/MediaRelationManagerTest.php is in the MANUAL allowlist. 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/Agencies/Resources/MaintenanceTicketResource/RelationManagers/SlaLogsRelationManager.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SlaLogsRelationManager::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SlaLogsRelationManager@form",
        "expected_test_path": "tests/Unit/SlaLogsRelationManagerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SlaLogsRelationManager;\n\nclass SlaLogsRelationManagerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SlaLogsRelationManager@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\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SlaLogsRelationManager@form is PROOF_READY but no test file at tests/Unit/SlaLogsRelationManagerTest.php is in the MANUAL allowlist. 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/Agencies/Resources/MaintenanceTicketResource/RelationManagers/SlaLogsRelationManager.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SlaLogsRelationManager::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SlaLogsRelationManager@table",
        "expected_test_path": "tests/Unit/SlaLogsRelationManagerTest.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\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SlaLogsRelationManager;\n\nclass SlaLogsRelationManagerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SlaLogsRelationManager@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\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SlaLogsRelationManager@table is PROOF_READY but no test file at tests/Unit/SlaLogsRelationManagerTest.php is in the MANUAL allowlist. 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/Agencies/Resources/MaintenanceTicketResource/RelationManagers/SuggestionsRelationManager.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SuggestionsRelationManager::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SuggestionsRelationManager@form",
        "expected_test_path": "tests/Unit/SuggestionsRelationManagerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SuggestionsRelationManager;\n\nclass SuggestionsRelationManagerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SuggestionsRelationManager@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\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SuggestionsRelationManager@form is PROOF_READY but no test file at tests/Unit/SuggestionsRelationManagerTest.php is in the MANUAL allowlist. 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/Agencies/Resources/MaintenanceTicketResource/RelationManagers/SuggestionsRelationManager.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SuggestionsRelationManager::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SuggestionsRelationManager@table",
        "expected_test_path": "tests/Unit/SuggestionsRelationManagerTest.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\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SuggestionsRelationManager;\n\nclass SuggestionsRelationManagerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SuggestionsRelationManager@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\\Agencies\\Resources\\MaintenanceTicketResource\\RelationManagers\\SuggestionsRelationManager@table is PROOF_READY but no test file at tests/Unit/SuggestionsRelationManagerTest.php is in the MANUAL allowlist. 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/Agencies/Resources/MaintenanceTicketSlaLogResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@form",
        "expected_test_path": "tests/Unit/MaintenanceTicketSlaLogResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\MaintenanceTicketSlaLogResource;\n\nclass MaintenanceTicketSlaLogResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@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\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@form is PROOF_READY but no test file at tests/Unit/MaintenanceTicketSlaLogResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/MaintenanceTicketSlaLogResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/MaintenanceTicketSlaLogResourceTest.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\\Agencies\\Resources\\MaintenanceTicketSlaLogResource;\n\nclass MaintenanceTicketSlaLogResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@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\n\n        // TODO: set up test data 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\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@getEloquentQuery is PROOF_READY but no test file at tests/Unit/MaintenanceTicketSlaLogResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/MaintenanceTicketSlaLogResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@getModelLabel",
        "expected_test_path": "tests/Unit/MaintenanceTicketSlaLogResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\MaintenanceTicketSlaLogResource;\n\nclass MaintenanceTicketSlaLogResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@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\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@getModelLabel is PROOF_READY but no test file at tests/Unit/MaintenanceTicketSlaLogResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/MaintenanceTicketSlaLogResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@getNavigationLabel",
        "expected_test_path": "tests/Unit/MaintenanceTicketSlaLogResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\MaintenanceTicketSlaLogResource;\n\nclass MaintenanceTicketSlaLogResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@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\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@getNavigationLabel is PROOF_READY but no test file at tests/Unit/MaintenanceTicketSlaLogResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/MaintenanceTicketSlaLogResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@getPages",
        "expected_test_path": "tests/Unit/MaintenanceTicketSlaLogResourceTest.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\\Agencies\\Resources\\MaintenanceTicketSlaLogResource;\n\nclass MaintenanceTicketSlaLogResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@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\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@getPages is PROOF_READY but no test file at tests/Unit/MaintenanceTicketSlaLogResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/MaintenanceTicketSlaLogResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/MaintenanceTicketSlaLogResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\MaintenanceTicketSlaLogResource;\n\nclass MaintenanceTicketSlaLogResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@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\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@getPluralModelLabel is PROOF_READY but no test file at tests/Unit/MaintenanceTicketSlaLogResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/MaintenanceTicketSlaLogResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@shouldRegisterNavigation",
        "expected_test_path": "tests/Unit/MaintenanceTicketSlaLogResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\MaintenanceTicketSlaLogResource;\n\nclass MaintenanceTicketSlaLogResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@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\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@shouldRegisterNavigation is PROOF_READY but no test file at tests/Unit/MaintenanceTicketSlaLogResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/MaintenanceTicketSlaLogResource.php::App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@table",
        "expected_test_path": "tests/Unit/MaintenanceTicketSlaLogResourceTest.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\\Agencies\\Resources\\MaintenanceTicketSlaLogResource;\n\nclass MaintenanceTicketSlaLogResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@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\\Agencies\\Resources\\MaintenanceTicketSlaLogResource@table is PROOF_READY but no test file at tests/Unit/MaintenanceTicketSlaLogResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/NotificationCenterResource.php::App\\Domains\\Agencies\\Resources\\NotificationCenterResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationCenterResource@form",
        "expected_test_path": "tests/Unit/NotificationCenterResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\NotificationCenterResource;\n\nclass NotificationCenterResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\NotificationCenterResource@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\\Agencies\\Resources\\NotificationCenterResource@form is PROOF_READY but no test file at tests/Unit/NotificationCenterResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/NotificationCenterResource.php::App\\Domains\\Agencies\\Resources\\NotificationCenterResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationCenterResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/NotificationCenterResourceTest.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\\Agencies\\Resources\\NotificationCenterResource;\n\nclass NotificationCenterResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\NotificationCenterResource@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\n\n        // TODO: set up test data 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\\Agencies\\Resources\\NotificationCenterResource@getEloquentQuery is PROOF_READY but no test file at tests/Unit/NotificationCenterResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/NotificationCenterResource.php::App\\Domains\\Agencies\\Resources\\NotificationCenterResource::getLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationCenterResource@getLabel",
        "expected_test_path": "tests/Unit/NotificationCenterResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\NotificationCenterResource;\n\nclass NotificationCenterResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\NotificationCenterResource@getLabel\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getlabel_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\NotificationCenterResource@getLabel is PROOF_READY but no test file at tests/Unit/NotificationCenterResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/NotificationCenterResource.php::App\\Domains\\Agencies\\Resources\\NotificationCenterResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationCenterResource@getPages",
        "expected_test_path": "tests/Unit/NotificationCenterResourceTest.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\\Agencies\\Resources\\NotificationCenterResource;\n\nclass NotificationCenterResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\NotificationCenterResource@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\\Agencies\\Resources\\NotificationCenterResource@getPages is PROOF_READY but no test file at tests/Unit/NotificationCenterResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/NotificationCenterResource.php::App\\Domains\\Agencies\\Resources\\NotificationCenterResource::getPluralLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationCenterResource@getPluralLabel",
        "expected_test_path": "tests/Unit/NotificationCenterResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\NotificationCenterResource;\n\nclass NotificationCenterResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\NotificationCenterResource@getPluralLabel\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getplurallabel_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\NotificationCenterResource@getPluralLabel is PROOF_READY but no test file at tests/Unit/NotificationCenterResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/NotificationCenterResource.php::App\\Domains\\Agencies\\Resources\\NotificationCenterResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationCenterResource@shouldRegisterNavigation",
        "expected_test_path": "tests/Unit/NotificationCenterResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\NotificationCenterResource;\n\nclass NotificationCenterResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\NotificationCenterResource@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\\Agencies\\Resources\\NotificationCenterResource@shouldRegisterNavigation is PROOF_READY but no test file at tests/Unit/NotificationCenterResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/NotificationCenterResource.php::App\\Domains\\Agencies\\Resources\\NotificationCenterResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\NotificationCenterResource@table",
        "expected_test_path": "tests/Unit/NotificationCenterResourceTest.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\\Agencies\\Resources\\NotificationCenterResource;\n\nclass NotificationCenterResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\NotificationCenterResource@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\\Agencies\\Resources\\NotificationCenterResource@table is PROOF_READY but no test file at tests/Unit/NotificationCenterResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/Pages/ManageAgencyUsers.php::App\\Domains\\Agencies\\Resources\\Pages\\ManageAgencyUsers::getHeading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\Pages\\ManageAgencyUsers@getHeading",
        "expected_test_path": "tests/Unit/ManageAgencyUsersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\Pages\\ManageAgencyUsers;\n\nclass ManageAgencyUsersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\Pages\\ManageAgencyUsers@getHeading\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getheading_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\Pages\\ManageAgencyUsers@getHeading is PROOF_READY but no test file at tests/Unit/ManageAgencyUsersTest.php is in the MANUAL allowlist. 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/Agencies/Resources/Pages/ManageAgencyUsers.php::App\\Domains\\Agencies\\Resources\\Pages\\ManageAgencyUsers::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\Pages\\ManageAgencyUsers@getTitle",
        "expected_test_path": "tests/Unit/ManageAgencyUsersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\Pages\\ManageAgencyUsers;\n\nclass ManageAgencyUsersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\Pages\\ManageAgencyUsers@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\Pages\\ManageAgencyUsers@getTitle is PROOF_READY but no test file at tests/Unit/ManageAgencyUsersTest.php is in the MANUAL allowlist. 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/Agencies/Resources/PaymentResource/Pages/CreatePayment.php::App\\Domains\\Agencies\\Resources\\PaymentResource\\Pages\\CreatePayment::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource\\Pages\\CreatePayment@getTitle",
        "expected_test_path": "tests/Unit/CreatePaymentTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\PaymentResource\\Pages\\CreatePayment;\n\nclass CreatePaymentTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\PaymentResource\\Pages\\CreatePayment@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\PaymentResource\\Pages\\CreatePayment@getTitle is PROOF_READY but no test file at tests/Unit/CreatePaymentTest.php is in the MANUAL allowlist. 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/Agencies/Resources/PaymentResource/Pages/EditPayment.php::App\\Domains\\Agencies\\Resources\\PaymentResource\\Pages\\EditPayment::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource\\Pages\\EditPayment@getTitle",
        "expected_test_path": "tests/Unit/EditPaymentTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\PaymentResource\\Pages\\EditPayment;\n\nclass EditPaymentTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\PaymentResource\\Pages\\EditPayment@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\PaymentResource\\Pages\\EditPayment@getTitle is PROOF_READY but no test file at tests/Unit/EditPaymentTest.php is in the MANUAL allowlist. 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/Agencies/Resources/PaymentResource/Pages/ViewPayment.php::App\\Domains\\Agencies\\Resources\\PaymentResource\\Pages\\ViewPayment::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource\\Pages\\ViewPayment@getTitle",
        "expected_test_path": "tests/Unit/ViewPaymentTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\PaymentResource\\Pages\\ViewPayment;\n\nclass ViewPaymentTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\PaymentResource\\Pages\\ViewPayment@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\PaymentResource\\Pages\\ViewPayment@getTitle is PROOF_READY but no test file at tests/Unit/ViewPaymentTest.php is in the MANUAL allowlist. 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/Agencies/Resources/PaymentResource/RelationManagers/PaymentProofsRelationManager.php::App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager@form",
        "expected_test_path": "tests/Unit/PaymentProofsRelationManagerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager;\n\nclass PaymentProofsRelationManagerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager@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\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager@form is PROOF_READY but no test file at tests/Unit/PaymentProofsRelationManagerTest.php is in the MANUAL allowlist. 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/Agencies/Resources/PaymentResource/RelationManagers/PaymentProofsRelationManager.php::App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager@getModelLabel",
        "expected_test_path": "tests/Unit/PaymentProofsRelationManagerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager;\n\nclass PaymentProofsRelationManagerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager@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\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager@getModelLabel is PROOF_READY but no test file at tests/Unit/PaymentProofsRelationManagerTest.php is in the MANUAL allowlist. 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/Agencies/Resources/PaymentResource/RelationManagers/PaymentProofsRelationManager.php::App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager@getPluralModelLabel",
        "expected_test_path": "tests/Unit/PaymentProofsRelationManagerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager;\n\nclass PaymentProofsRelationManagerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager@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\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager@getPluralModelLabel is PROOF_READY but no test file at tests/Unit/PaymentProofsRelationManagerTest.php is in the MANUAL allowlist. 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/Agencies/Resources/PaymentResource/RelationManagers/PaymentProofsRelationManager.php::App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager@getTitle",
        "expected_test_path": "tests/Unit/PaymentProofsRelationManagerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager;\n\nclass PaymentProofsRelationManagerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager@getTitle is PROOF_READY but no test file at tests/Unit/PaymentProofsRelationManagerTest.php is in the MANUAL allowlist. 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/Agencies/Resources/PaymentResource/RelationManagers/PaymentProofsRelationManager.php::App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager@table",
        "expected_test_path": "tests/Unit/PaymentProofsRelationManagerTest.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\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager;\n\nclass PaymentProofsRelationManagerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager@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\\Agencies\\Resources\\PaymentResource\\RelationManagers\\PaymentProofsRelationManager@table is PROOF_READY but no test file at tests/Unit/PaymentProofsRelationManagerTest.php is in the MANUAL allowlist. 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/Agencies/Resources/PropertyResource.php::App\\Domains\\Agencies\\Resources\\PropertyResource::canCreate",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@canCreate",
        "expected_test_path": "tests/Unit/PropertyResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\PropertyResource;\n\nclass PropertyResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\PropertyResource@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\\Agencies\\Resources\\PropertyResource@canCreate is PROOF_READY but no test file at tests/Unit/PropertyResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/PropertyResource.php::App\\Domains\\Agencies\\Resources\\PropertyResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@form",
        "expected_test_path": "tests/Unit/PropertyResourceTest.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\\Agencies\\Resources\\PropertyResource;\n\nclass PropertyResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\PropertyResource@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\n        // TODO: 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\\Agencies\\Resources\\PropertyResource@form is PROOF_READY but no test file at tests/Unit/PropertyResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/PropertyResource.php::App\\Domains\\Agencies\\Resources\\PropertyResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/PropertyResourceTest.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\\Agencies\\Resources\\PropertyResource;\n\nclass PropertyResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\PropertyResource@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\n\n        // TODO: set up test data 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\\Agencies\\Resources\\PropertyResource@getEloquentQuery is PROOF_READY but no test file at tests/Unit/PropertyResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/PropertyResource.php::App\\Domains\\Agencies\\Resources\\PropertyResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@getModelLabel",
        "expected_test_path": "tests/Unit/PropertyResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\PropertyResource;\n\nclass PropertyResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\PropertyResource@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\\Agencies\\Resources\\PropertyResource@getModelLabel is PROOF_READY but no test file at tests/Unit/PropertyResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/PropertyResource.php::App\\Domains\\Agencies\\Resources\\PropertyResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@getNavigationLabel",
        "expected_test_path": "tests/Unit/PropertyResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\PropertyResource;\n\nclass PropertyResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\PropertyResource@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\\Agencies\\Resources\\PropertyResource@getNavigationLabel is PROOF_READY but no test file at tests/Unit/PropertyResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/PropertyResource.php::App\\Domains\\Agencies\\Resources\\PropertyResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@getPages",
        "expected_test_path": "tests/Unit/PropertyResourceTest.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\\Agencies\\Resources\\PropertyResource;\n\nclass PropertyResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\PropertyResource@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\\Agencies\\Resources\\PropertyResource@getPages is PROOF_READY but no test file at tests/Unit/PropertyResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/PropertyResource.php::App\\Domains\\Agencies\\Resources\\PropertyResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/PropertyResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\PropertyResource;\n\nclass PropertyResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\PropertyResource@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\\Agencies\\Resources\\PropertyResource@getPluralModelLabel is PROOF_READY but no test file at tests/Unit/PropertyResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/PropertyResource.php::App\\Domains\\Agencies\\Resources\\PropertyResource::getRelations",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@getRelations",
        "expected_test_path": "tests/Unit/PropertyResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\PropertyResource;\n\nclass PropertyResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\PropertyResource@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\PropertyResource@getRelations is PROOF_READY but no test file at tests/Unit/PropertyResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/PropertyResource.php::App\\Domains\\Agencies\\Resources\\PropertyResource::infolist",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@infolist",
        "expected_test_path": "tests/Unit/PropertyResourceTest.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\\Domains\\Agencies\\Resources\\PropertyResource;\n\nclass PropertyResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\PropertyResource@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\n        // TODO: set up test data 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\\Agencies\\Resources\\PropertyResource@infolist is PROOF_READY but no test file at tests/Unit/PropertyResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/PropertyResource.php::App\\Domains\\Agencies\\Resources\\PropertyResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource@table",
        "expected_test_path": "tests/Unit/PropertyResourceTest.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\\Agencies\\Resources\\PropertyResource;\n\nclass PropertyResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\PropertyResource@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\\Agencies\\Resources\\PropertyResource@table is PROOF_READY but no test file at tests/Unit/PropertyResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/PropertyResource/Pages/CreateProperty.php::App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\CreateProperty::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\CreateProperty@getTitle",
        "expected_test_path": "tests/Unit/CreatePropertyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\PropertyResource\\Pages\\CreateProperty;\n\nclass CreatePropertyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\CreateProperty@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\PropertyResource\\Pages\\CreateProperty@getTitle is PROOF_READY but no test file at tests/Unit/CreatePropertyTest.php is in the MANUAL allowlist. 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/Agencies/Resources/PropertyResource/Pages/EditProperty.php::App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\EditProperty::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\EditProperty@getTitle",
        "expected_test_path": "tests/Unit/EditPropertyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\PropertyResource\\Pages\\EditProperty;\n\nclass EditPropertyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\EditProperty@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\PropertyResource\\Pages\\EditProperty@getTitle is PROOF_READY but no test file at tests/Unit/EditPropertyTest.php is in the MANUAL allowlist. 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/Agencies/Resources/PropertyResource/Pages/ListProperties.php::App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\ListProperties::getSubheading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\ListProperties@getSubheading",
        "expected_test_path": "tests/Unit/ListPropertiesTest.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\\Agencies\\Resources\\PropertyResource\\Pages\\ListProperties;\n\nclass ListPropertiesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\ListProperties@getSubheading\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getsubheading_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Agencies\\Resources\\PropertyResource\\Pages\\ListProperties@getSubheading is PROOF_READY but no test file at tests/Unit/ListPropertiesTest.php is in the MANUAL allowlist. 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/Agencies/Resources/PropertyResource/Pages/ListProperties.php::App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\ListProperties::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\ListProperties@getTitle",
        "expected_test_path": "tests/Unit/ListPropertiesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\PropertyResource\\Pages\\ListProperties;\n\nclass ListPropertiesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\PropertyResource\\Pages\\ListProperties@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\PropertyResource\\Pages\\ListProperties@getTitle is PROOF_READY but no test file at tests/Unit/ListPropertiesTest.php is in the MANUAL allowlist. 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/Agencies/Resources/PropertyResource/RelationManagers/FilesRelationManager.php::App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\FilesRelationManager::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\FilesRelationManager@form",
        "expected_test_path": "tests/Unit/FilesRelationManagerTest.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\\Agencies\\Resources\\PropertyResource\\RelationManagers\\FilesRelationManager;\n\nclass FilesRelationManagerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\FilesRelationManager@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\\Agencies\\Resources\\PropertyResource\\RelationManagers\\FilesRelationManager@form is PROOF_READY but no test file at tests/Unit/FilesRelationManagerTest.php is in the MANUAL allowlist. 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/Agencies/Resources/PropertyResource/RelationManagers/FilesRelationManager.php::App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\FilesRelationManager::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\FilesRelationManager@getTitle",
        "expected_test_path": "tests/Unit/FilesRelationManagerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\PropertyResource\\RelationManagers\\FilesRelationManager;\n\nclass FilesRelationManagerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\FilesRelationManager@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\PropertyResource\\RelationManagers\\FilesRelationManager@getTitle is PROOF_READY but no test file at tests/Unit/FilesRelationManagerTest.php is in the MANUAL allowlist. 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/Agencies/Resources/PropertyResource/RelationManagers/FilesRelationManager.php::App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\FilesRelationManager::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\FilesRelationManager@table",
        "expected_test_path": "tests/Unit/FilesRelationManagerTest.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\\Agencies\\Resources\\PropertyResource\\RelationManagers\\FilesRelationManager;\n\nclass FilesRelationManagerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\FilesRelationManager@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\\Agencies\\Resources\\PropertyResource\\RelationManagers\\FilesRelationManager@table is PROOF_READY but no test file at tests/Unit/FilesRelationManagerTest.php is in the MANUAL allowlist. 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/Agencies/Resources/PropertyResource/RelationManagers/UnitsRelationManager.php::App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\UnitsRelationManager::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\UnitsRelationManager@form",
        "expected_test_path": "tests/Unit/UnitsRelationManagerTest.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\\Agencies\\Resources\\PropertyResource\\RelationManagers\\UnitsRelationManager;\n\nclass UnitsRelationManagerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\UnitsRelationManager@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\\Agencies\\Resources\\PropertyResource\\RelationManagers\\UnitsRelationManager@form is PROOF_READY but no test file at tests/Unit/UnitsRelationManagerTest.php is in the MANUAL allowlist. 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/Agencies/Resources/PropertyResource/RelationManagers/UnitsRelationManager.php::App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\UnitsRelationManager::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\UnitsRelationManager@getTitle",
        "expected_test_path": "tests/Unit/UnitsRelationManagerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\PropertyResource\\RelationManagers\\UnitsRelationManager;\n\nclass UnitsRelationManagerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\UnitsRelationManager@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\PropertyResource\\RelationManagers\\UnitsRelationManager@getTitle is PROOF_READY but no test file at tests/Unit/UnitsRelationManagerTest.php is in the MANUAL allowlist. 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/Agencies/Resources/PropertyResource/RelationManagers/UnitsRelationManager.php::App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\UnitsRelationManager::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\UnitsRelationManager@table",
        "expected_test_path": "tests/Unit/UnitsRelationManagerTest.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\\Agencies\\Resources\\PropertyResource\\RelationManagers\\UnitsRelationManager;\n\nclass UnitsRelationManagerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\PropertyResource\\RelationManagers\\UnitsRelationManager@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\\Agencies\\Resources\\PropertyResource\\RelationManagers\\UnitsRelationManager@table is PROOF_READY but no test file at tests/Unit/UnitsRelationManagerTest.php is in the MANUAL allowlist. 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/Agencies/Resources/ReminderTemplateResource.php::App\\Domains\\Agencies\\Resources\\ReminderTemplateResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@form",
        "expected_test_path": "tests/Unit/ReminderTemplateResourceTest.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\\Domains\\Agencies\\Resources\\ReminderTemplateResource;\n\nclass ReminderTemplateResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@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\n        // TODO: set up test data 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\\Agencies\\Resources\\ReminderTemplateResource@form is PROOF_READY but no test file at tests/Unit/ReminderTemplateResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/ReminderTemplateResource.php::App\\Domains\\Agencies\\Resources\\ReminderTemplateResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/ReminderTemplateResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\ReminderTemplateResource;\n\nclass ReminderTemplateResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@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\\Agencies\\Resources\\ReminderTemplateResource@getEloquentQuery is PROOF_READY but no test file at tests/Unit/ReminderTemplateResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/ReminderTemplateResource.php::App\\Domains\\Agencies\\Resources\\ReminderTemplateResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@getModelLabel",
        "expected_test_path": "tests/Unit/ReminderTemplateResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\ReminderTemplateResource;\n\nclass ReminderTemplateResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@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\\Agencies\\Resources\\ReminderTemplateResource@getModelLabel is PROOF_READY but no test file at tests/Unit/ReminderTemplateResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/ReminderTemplateResource.php::App\\Domains\\Agencies\\Resources\\ReminderTemplateResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@getPages",
        "expected_test_path": "tests/Unit/ReminderTemplateResourceTest.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\\Agencies\\Resources\\ReminderTemplateResource;\n\nclass ReminderTemplateResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@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\\Agencies\\Resources\\ReminderTemplateResource@getPages is PROOF_READY but no test file at tests/Unit/ReminderTemplateResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/ReminderTemplateResource.php::App\\Domains\\Agencies\\Resources\\ReminderTemplateResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/ReminderTemplateResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\ReminderTemplateResource;\n\nclass ReminderTemplateResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@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\\Agencies\\Resources\\ReminderTemplateResource@getPluralModelLabel is PROOF_READY but no test file at tests/Unit/ReminderTemplateResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/ReminderTemplateResource.php::App\\Domains\\Agencies\\Resources\\ReminderTemplateResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@shouldRegisterNavigation",
        "expected_test_path": "tests/Unit/ReminderTemplateResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\ReminderTemplateResource;\n\nclass ReminderTemplateResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@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\\Agencies\\Resources\\ReminderTemplateResource@shouldRegisterNavigation is PROOF_READY but no test file at tests/Unit/ReminderTemplateResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/ReminderTemplateResource.php::App\\Domains\\Agencies\\Resources\\ReminderTemplateResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@table",
        "expected_test_path": "tests/Unit/ReminderTemplateResourceTest.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\\Agencies\\Resources\\ReminderTemplateResource;\n\nclass ReminderTemplateResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\ReminderTemplateResource@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\\Agencies\\Resources\\ReminderTemplateResource@table is PROOF_READY but no test file at tests/Unit/ReminderTemplateResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/RentCycleResource.php::App\\Domains\\Agencies\\Resources\\RentCycleResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource@form",
        "expected_test_path": "tests/Unit/RentCycleResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\RentCycleResource;\n\nclass RentCycleResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\RentCycleResource@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\\Agencies\\Resources\\RentCycleResource@form is PROOF_READY but no test file at tests/Unit/RentCycleResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/RentCycleResource.php::App\\Domains\\Agencies\\Resources\\RentCycleResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/RentCycleResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\RentCycleResource;\n\nclass RentCycleResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\RentCycleResource@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\\Agencies\\Resources\\RentCycleResource@getEloquentQuery is PROOF_READY but no test file at tests/Unit/RentCycleResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/RentCycleResource.php::App\\Domains\\Agencies\\Resources\\RentCycleResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource@getModelLabel",
        "expected_test_path": "tests/Unit/RentCycleResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\RentCycleResource;\n\nclass RentCycleResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\RentCycleResource@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\\Agencies\\Resources\\RentCycleResource@getModelLabel is PROOF_READY but no test file at tests/Unit/RentCycleResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/RentCycleResource.php::App\\Domains\\Agencies\\Resources\\RentCycleResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource@getNavigationLabel",
        "expected_test_path": "tests/Unit/RentCycleResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\RentCycleResource;\n\nclass RentCycleResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\RentCycleResource@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\\Agencies\\Resources\\RentCycleResource@getNavigationLabel is PROOF_READY but no test file at tests/Unit/RentCycleResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/RentCycleResource.php::App\\Domains\\Agencies\\Resources\\RentCycleResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource@getPages",
        "expected_test_path": "tests/Unit/RentCycleResourceTest.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\\Agencies\\Resources\\RentCycleResource;\n\nclass RentCycleResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\RentCycleResource@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\\Agencies\\Resources\\RentCycleResource@getPages is PROOF_READY but no test file at tests/Unit/RentCycleResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/RentCycleResource.php::App\\Domains\\Agencies\\Resources\\RentCycleResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/RentCycleResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\RentCycleResource;\n\nclass RentCycleResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\RentCycleResource@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\\Agencies\\Resources\\RentCycleResource@getPluralModelLabel is PROOF_READY but no test file at tests/Unit/RentCycleResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/RentCycleResource.php::App\\Domains\\Agencies\\Resources\\RentCycleResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource@table",
        "expected_test_path": "tests/Unit/RentCycleResourceTest.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\\Agencies\\Resources\\RentCycleResource;\n\nclass RentCycleResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\RentCycleResource@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\\Agencies\\Resources\\RentCycleResource@table is PROOF_READY but no test file at tests/Unit/RentCycleResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/RentCycleResource/Pages/ListRentCycles.php::App\\Domains\\Agencies\\Resources\\RentCycleResource\\Pages\\ListRentCycles::getDefaultActiveTab",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource\\Pages\\ListRentCycles@getDefaultActiveTab",
        "expected_test_path": "tests/Unit/ListRentCyclesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\RentCycleResource\\Pages\\ListRentCycles;\n\nclass ListRentCyclesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\RentCycleResource\\Pages\\ListRentCycles@getDefaultActiveTab\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getdefaultactivetab_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\RentCycleResource\\Pages\\ListRentCycles@getDefaultActiveTab is PROOF_READY but no test file at tests/Unit/ListRentCyclesTest.php is in the MANUAL allowlist. 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/Agencies/Resources/RentCycleResource/Pages/ListRentCycles.php::App\\Domains\\Agencies\\Resources\\RentCycleResource\\Pages\\ListRentCycles::getTabs",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource\\Pages\\ListRentCycles@getTabs",
        "expected_test_path": "tests/Unit/ListRentCyclesTest.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\\Agencies\\Resources\\RentCycleResource\\Pages\\ListRentCycles;\n\nclass ListRentCyclesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\RentCycleResource\\Pages\\ListRentCycles@getTabs\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettabs_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Agencies\\Resources\\RentCycleResource\\Pages\\ListRentCycles@getTabs is PROOF_READY but no test file at tests/Unit/ListRentCyclesTest.php is in the MANUAL allowlist. 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/Agencies/Resources/RentCycleResource/Pages/ViewRentCycle.php::App\\Domains\\Agencies\\Resources\\RentCycleResource\\Pages\\ViewRentCycle::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\RentCycleResource\\Pages\\ViewRentCycle@getTitle",
        "expected_test_path": "tests/Unit/ViewRentCycleTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\RentCycleResource\\Pages\\ViewRentCycle;\n\nclass ViewRentCycleTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\RentCycleResource\\Pages\\ViewRentCycle@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\RentCycleResource\\Pages\\ViewRentCycle@getTitle is PROOF_READY but no test file at tests/Unit/ViewRentCycleTest.php is in the MANUAL allowlist. 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/Agencies/Resources/SupportTicketResource.php::App\\Domains\\Agencies\\Resources\\SupportTicketResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource@form",
        "expected_test_path": "tests/Unit/SupportTicketResourceTest.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\\Agencies\\Resources\\SupportTicketResource;\n\nclass SupportTicketResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\SupportTicketResource@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\\Agencies\\Resources\\SupportTicketResource@form is PROOF_READY but no test file at tests/Unit/SupportTicketResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/SupportTicketResource.php::App\\Domains\\Agencies\\Resources\\SupportTicketResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/SupportTicketResourceTest.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\\Agencies\\Resources\\SupportTicketResource;\n\nclass SupportTicketResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\SupportTicketResource@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\n\n        // TODO: set up test data 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\\Agencies\\Resources\\SupportTicketResource@getEloquentQuery is PROOF_READY but no test file at tests/Unit/SupportTicketResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/SupportTicketResource.php::App\\Domains\\Agencies\\Resources\\SupportTicketResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource@getModelLabel",
        "expected_test_path": "tests/Unit/SupportTicketResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\SupportTicketResource;\n\nclass SupportTicketResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\SupportTicketResource@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\\Agencies\\Resources\\SupportTicketResource@getModelLabel is PROOF_READY but no test file at tests/Unit/SupportTicketResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/SupportTicketResource.php::App\\Domains\\Agencies\\Resources\\SupportTicketResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource@getNavigationLabel",
        "expected_test_path": "tests/Unit/SupportTicketResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\SupportTicketResource;\n\nclass SupportTicketResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\SupportTicketResource@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\\Agencies\\Resources\\SupportTicketResource@getNavigationLabel is PROOF_READY but no test file at tests/Unit/SupportTicketResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/SupportTicketResource.php::App\\Domains\\Agencies\\Resources\\SupportTicketResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource@getPages",
        "expected_test_path": "tests/Unit/SupportTicketResourceTest.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\\Agencies\\Resources\\SupportTicketResource;\n\nclass SupportTicketResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\SupportTicketResource@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\\Agencies\\Resources\\SupportTicketResource@getPages is PROOF_READY but no test file at tests/Unit/SupportTicketResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/SupportTicketResource.php::App\\Domains\\Agencies\\Resources\\SupportTicketResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/SupportTicketResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\SupportTicketResource;\n\nclass SupportTicketResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\SupportTicketResource@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\\Agencies\\Resources\\SupportTicketResource@getPluralModelLabel is PROOF_READY but no test file at tests/Unit/SupportTicketResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/SupportTicketResource.php::App\\Domains\\Agencies\\Resources\\SupportTicketResource::infolist",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource@infolist",
        "expected_test_path": "tests/Unit/SupportTicketResourceTest.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\\Agencies\\Resources\\SupportTicketResource;\n\nclass SupportTicketResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\SupportTicketResource@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\\Agencies\\Resources\\SupportTicketResource@infolist is PROOF_READY but no test file at tests/Unit/SupportTicketResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/SupportTicketResource.php::App\\Domains\\Agencies\\Resources\\SupportTicketResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource@table",
        "expected_test_path": "tests/Unit/SupportTicketResourceTest.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\\Agencies\\Resources\\SupportTicketResource;\n\nclass SupportTicketResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\SupportTicketResource@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\\Agencies\\Resources\\SupportTicketResource@table is PROOF_READY but no test file at tests/Unit/SupportTicketResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/SupportTicketResource/Pages/ListSupportTickets.php::App\\Domains\\Agencies\\Resources\\SupportTicketResource\\Pages\\ListSupportTickets::getSubheading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\SupportTicketResource\\Pages\\ListSupportTickets@getSubheading",
        "expected_test_path": "tests/Unit/ListSupportTicketsTest.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\\Agencies\\Resources\\SupportTicketResource\\Pages\\ListSupportTickets;\n\nclass ListSupportTicketsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\SupportTicketResource\\Pages\\ListSupportTickets@getSubheading\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getsubheading_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Agencies\\Resources\\SupportTicketResource\\Pages\\ListSupportTickets@getSubheading is PROOF_READY but no test file at tests/Unit/ListSupportTicketsTest.php is in the MANUAL allowlist. 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/Agencies/Resources/TenantResource.php::App\\Domains\\Agencies\\Resources\\TenantResource::canCreate",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource@canCreate",
        "expected_test_path": "tests/Unit/TenantResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\TenantResource;\n\nclass TenantResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\TenantResource@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\\Agencies\\Resources\\TenantResource@canCreate is PROOF_READY but no test file at tests/Unit/TenantResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/TenantResource.php::App\\Domains\\Agencies\\Resources\\TenantResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource@form",
        "expected_test_path": "tests/Unit/TenantResourceTest.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\\Domains\\Agencies\\Resources\\TenantResource;\n\nclass TenantResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\TenantResource@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\n        // TODO: set up test data 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\\Agencies\\Resources\\TenantResource@form is PROOF_READY but no test file at tests/Unit/TenantResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/TenantResource.php::App\\Domains\\Agencies\\Resources\\TenantResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/TenantResourceTest.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\\Agencies\\Resources\\TenantResource;\n\nclass TenantResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\TenantResource@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\n\n        // TODO: set up test data 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\\Agencies\\Resources\\TenantResource@getEloquentQuery is PROOF_READY but no test file at tests/Unit/TenantResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/TenantResource.php::App\\Domains\\Agencies\\Resources\\TenantResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource@getModelLabel",
        "expected_test_path": "tests/Unit/TenantResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\TenantResource;\n\nclass TenantResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\TenantResource@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\\Agencies\\Resources\\TenantResource@getModelLabel is PROOF_READY but no test file at tests/Unit/TenantResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/TenantResource.php::App\\Domains\\Agencies\\Resources\\TenantResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource@getNavigationLabel",
        "expected_test_path": "tests/Unit/TenantResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\TenantResource;\n\nclass TenantResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\TenantResource@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\\Agencies\\Resources\\TenantResource@getNavigationLabel is PROOF_READY but no test file at tests/Unit/TenantResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/TenantResource.php::App\\Domains\\Agencies\\Resources\\TenantResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource@getPages",
        "expected_test_path": "tests/Unit/TenantResourceTest.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\\Agencies\\Resources\\TenantResource;\n\nclass TenantResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\TenantResource@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\\Agencies\\Resources\\TenantResource@getPages is PROOF_READY but no test file at tests/Unit/TenantResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/TenantResource.php::App\\Domains\\Agencies\\Resources\\TenantResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/TenantResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\TenantResource;\n\nclass TenantResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\TenantResource@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\\Agencies\\Resources\\TenantResource@getPluralModelLabel is PROOF_READY but no test file at tests/Unit/TenantResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/TenantResource.php::App\\Domains\\Agencies\\Resources\\TenantResource::getRelations",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource@getRelations",
        "expected_test_path": "tests/Unit/TenantResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\TenantResource;\n\nclass TenantResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\TenantResource@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\TenantResource@getRelations is PROOF_READY but no test file at tests/Unit/TenantResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/TenantResource.php::App\\Domains\\Agencies\\Resources\\TenantResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource@table",
        "expected_test_path": "tests/Unit/TenantResourceTest.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\\Domains\\Agencies\\Resources\\TenantResource;\n\nclass TenantResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\TenantResource@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        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Agencies\\Resources\\TenantResource@table is PROOF_READY but no test file at tests/Unit/TenantResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/TenantResource/Pages/CreateTenant.php::App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\CreateTenant::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\CreateTenant@getTitle",
        "expected_test_path": "tests/Unit/CreateTenantTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\TenantResource\\Pages\\CreateTenant;\n\nclass CreateTenantTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\CreateTenant@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\TenantResource\\Pages\\CreateTenant@getTitle is PROOF_READY but no test file at tests/Unit/CreateTenantTest.php is in the MANUAL allowlist. 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/Agencies/Resources/TenantResource/Pages/EditTenant.php::App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\EditTenant::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\EditTenant@getTitle",
        "expected_test_path": "tests/Unit/EditTenantTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\TenantResource\\Pages\\EditTenant;\n\nclass EditTenantTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\EditTenant@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\TenantResource\\Pages\\EditTenant@getTitle is PROOF_READY but no test file at tests/Unit/EditTenantTest.php is in the MANUAL allowlist. 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/Agencies/Resources/TenantResource/Pages/ListTenants.php::App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\ListTenants::getSubheading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\ListTenants@getSubheading",
        "expected_test_path": "tests/Unit/ListTenantsTest.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\\Agencies\\Resources\\TenantResource\\Pages\\ListTenants;\n\nclass ListTenantsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\ListTenants@getSubheading\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getsubheading_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Agencies\\Resources\\TenantResource\\Pages\\ListTenants@getSubheading is PROOF_READY but no test file at tests/Unit/ListTenantsTest.php is in the MANUAL allowlist. 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/Agencies/Resources/TenantResource/Pages/ListTenants.php::App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\ListTenants::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\ListTenants@getTitle",
        "expected_test_path": "tests/Unit/ListTenantsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\TenantResource\\Pages\\ListTenants;\n\nclass ListTenantsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\ListTenants@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\TenantResource\\Pages\\ListTenants@getTitle is PROOF_READY but no test file at tests/Unit/ListTenantsTest.php is in the MANUAL allowlist. 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/Agencies/Resources/TenantResource/Pages/ViewTenant.php::App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\ViewTenant::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\ViewTenant@getTitle",
        "expected_test_path": "tests/Unit/ViewTenantTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\TenantResource\\Pages\\ViewTenant;\n\nclass ViewTenantTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\TenantResource\\Pages\\ViewTenant@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\TenantResource\\Pages\\ViewTenant@getTitle is PROOF_READY but no test file at tests/Unit/ViewTenantTest.php is in the MANUAL allowlist. 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/Agencies/Resources/TransferResource.php::App\\Domains\\Agencies\\Resources\\TransferResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource@form",
        "expected_test_path": "tests/Unit/TransferResourceTest.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\\Agencies\\Resources\\TransferResource;\n\nclass TransferResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\TransferResource@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\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\Agencies\\Resources\\TransferResource@form is PROOF_READY but no test file at tests/Unit/TransferResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/TransferResource.php::App\\Domains\\Agencies\\Resources\\TransferResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/TransferResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\TransferResource;\n\nclass TransferResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\TransferResource@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\\Agencies\\Resources\\TransferResource@getEloquentQuery is PROOF_READY but no test file at tests/Unit/TransferResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/TransferResource.php::App\\Domains\\Agencies\\Resources\\TransferResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource@getModelLabel",
        "expected_test_path": "tests/Unit/TransferResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\TransferResource;\n\nclass TransferResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\TransferResource@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\\Agencies\\Resources\\TransferResource@getModelLabel is PROOF_READY but no test file at tests/Unit/TransferResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/TransferResource.php::App\\Domains\\Agencies\\Resources\\TransferResource::getNavigationGroup",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource@getNavigationGroup",
        "expected_test_path": "tests/Unit/TransferResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\TransferResource;\n\nclass TransferResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\TransferResource@getNavigationGroup\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getnavigationgroup_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\TransferResource@getNavigationGroup is PROOF_READY but no test file at tests/Unit/TransferResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/TransferResource.php::App\\Domains\\Agencies\\Resources\\TransferResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource@getPages",
        "expected_test_path": "tests/Unit/TransferResourceTest.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\\Agencies\\Resources\\TransferResource;\n\nclass TransferResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\TransferResource@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\\Agencies\\Resources\\TransferResource@getPages is PROOF_READY but no test file at tests/Unit/TransferResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/TransferResource.php::App\\Domains\\Agencies\\Resources\\TransferResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/TransferResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\TransferResource;\n\nclass TransferResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\TransferResource@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\\Agencies\\Resources\\TransferResource@getPluralModelLabel is PROOF_READY but no test file at tests/Unit/TransferResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/TransferResource.php::App\\Domains\\Agencies\\Resources\\TransferResource::getRelations",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource@getRelations",
        "expected_test_path": "tests/Unit/TransferResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\TransferResource;\n\nclass TransferResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\TransferResource@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\TransferResource@getRelations is PROOF_READY but no test file at tests/Unit/TransferResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/TransferResource.php::App\\Domains\\Agencies\\Resources\\TransferResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource@table",
        "expected_test_path": "tests/Unit/TransferResourceTest.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\\Agencies\\Resources\\TransferResource;\n\nclass TransferResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\TransferResource@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\\Agencies\\Resources\\TransferResource@table is PROOF_READY but no test file at tests/Unit/TransferResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/TransferResource/Actions/ExportLandlordStatementAction.php::App\\Domains\\Agencies\\Resources\\TransferResource\\Actions\\ExportLandlordStatementAction::getDefaultName",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource\\Actions\\ExportLandlordStatementAction@getDefaultName",
        "expected_test_path": "tests/Unit/ExportLandlordStatementActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\TransferResource\\Actions\\ExportLandlordStatementAction;\n\nclass ExportLandlordStatementActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\TransferResource\\Actions\\ExportLandlordStatementAction@getDefaultName\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getdefaultname_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\TransferResource\\Actions\\ExportLandlordStatementAction@getDefaultName is PROOF_READY but no test file at tests/Unit/ExportLandlordStatementActionTest.php is in the MANUAL allowlist. 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/Agencies/Resources/TransferResource/Pages/ListTransfers.php::App\\Domains\\Agencies\\Resources\\TransferResource\\Pages\\ListTransfers::getSubheading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\TransferResource\\Pages\\ListTransfers@getSubheading",
        "expected_test_path": "tests/Unit/ListTransfersTest.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\\Agencies\\Resources\\TransferResource\\Pages\\ListTransfers;\n\nclass ListTransfersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\TransferResource\\Pages\\ListTransfers@getSubheading\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getsubheading_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Agencies\\Resources\\TransferResource\\Pages\\ListTransfers@getSubheading is PROOF_READY but no test file at tests/Unit/ListTransfersTest.php is in the MANUAL allowlist. 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/Agencies/Resources/UnitResource.php::App\\Domains\\Agencies\\Resources\\UnitResource::canCreate",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@canCreate",
        "expected_test_path": "tests/Unit/UnitResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\UnitResource;\n\nclass UnitResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\UnitResource@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\\Agencies\\Resources\\UnitResource@canCreate is PROOF_READY but no test file at tests/Unit/UnitResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/UnitResource.php::App\\Domains\\Agencies\\Resources\\UnitResource::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@form",
        "expected_test_path": "tests/Unit/UnitResourceTest.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\\Domains\\Agencies\\Resources\\UnitResource;\n\nclass UnitResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\UnitResource@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\n        // TODO: set up test data 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\\Agencies\\Resources\\UnitResource@form is PROOF_READY but no test file at tests/Unit/UnitResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/UnitResource.php::App\\Domains\\Agencies\\Resources\\UnitResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/UnitResourceTest.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\\Agencies\\Resources\\UnitResource;\n\nclass UnitResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\UnitResource@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\n\n        // TODO: set up test data 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\\Agencies\\Resources\\UnitResource@getEloquentQuery is PROOF_READY but no test file at tests/Unit/UnitResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/UnitResource.php::App\\Domains\\Agencies\\Resources\\UnitResource::getModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@getModelLabel",
        "expected_test_path": "tests/Unit/UnitResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\UnitResource;\n\nclass UnitResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\UnitResource@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\\Agencies\\Resources\\UnitResource@getModelLabel is PROOF_READY but no test file at tests/Unit/UnitResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/UnitResource.php::App\\Domains\\Agencies\\Resources\\UnitResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@getNavigationLabel",
        "expected_test_path": "tests/Unit/UnitResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\UnitResource;\n\nclass UnitResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\UnitResource@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\\Agencies\\Resources\\UnitResource@getNavigationLabel is PROOF_READY but no test file at tests/Unit/UnitResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/UnitResource.php::App\\Domains\\Agencies\\Resources\\UnitResource::getPages",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@getPages",
        "expected_test_path": "tests/Unit/UnitResourceTest.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\\Agencies\\Resources\\UnitResource;\n\nclass UnitResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\UnitResource@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\\Agencies\\Resources\\UnitResource@getPages is PROOF_READY but no test file at tests/Unit/UnitResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/UnitResource.php::App\\Domains\\Agencies\\Resources\\UnitResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/UnitResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\UnitResource;\n\nclass UnitResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\UnitResource@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\\Agencies\\Resources\\UnitResource@getPluralModelLabel is PROOF_READY but no test file at tests/Unit/UnitResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/UnitResource.php::App\\Domains\\Agencies\\Resources\\UnitResource::getRelations",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@getRelations",
        "expected_test_path": "tests/Unit/UnitResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\UnitResource;\n\nclass UnitResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\UnitResource@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\UnitResource@getRelations is PROOF_READY but no test file at tests/Unit/UnitResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/UnitResource.php::App\\Domains\\Agencies\\Resources\\UnitResource::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource@table",
        "expected_test_path": "tests/Unit/UnitResourceTest.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\\Domains\\Agencies\\Resources\\UnitResource;\n\nclass UnitResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\UnitResource@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    }\n}\n",
        "explanation": "Surface App\\Domains\\Agencies\\Resources\\UnitResource@table is PROOF_READY but no test file at tests/Unit/UnitResourceTest.php is in the MANUAL allowlist. 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/Agencies/Resources/UnitResource/Pages/ListUnits.php::App\\Domains\\Agencies\\Resources\\UnitResource\\Pages\\ListUnits::getSubheading",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource\\Pages\\ListUnits@getSubheading",
        "expected_test_path": "tests/Unit/ListUnitsTest.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\\Agencies\\Resources\\UnitResource\\Pages\\ListUnits;\n\nclass ListUnitsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\UnitResource\\Pages\\ListUnits@getSubheading\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getsubheading_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Agencies\\Resources\\UnitResource\\Pages\\ListUnits@getSubheading is PROOF_READY but no test file at tests/Unit/ListUnitsTest.php is in the MANUAL allowlist. 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/Agencies/Resources/UnitResource/Pages/ViewUnit.php::App\\Domains\\Agencies\\Resources\\UnitResource\\Pages\\ViewUnit::infolist",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource\\Pages\\ViewUnit@infolist",
        "expected_test_path": "tests/Unit/ViewUnitTest.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\\Agencies\\Resources\\UnitResource\\Pages\\ViewUnit;\n\nclass ViewUnitTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\UnitResource\\Pages\\ViewUnit@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\\Agencies\\Resources\\UnitResource\\Pages\\ViewUnit@infolist is PROOF_READY but no test file at tests/Unit/ViewUnitTest.php is in the MANUAL allowlist. 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/Agencies/Resources/UnitResource/RelationManagers/FilesRelationManager.php::App\\Domains\\Agencies\\Resources\\UnitResource\\RelationManagers\\FilesRelationManager::form",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource\\RelationManagers\\FilesRelationManager@form",
        "expected_test_path": "tests/Unit/FilesRelationManagerTest.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\\Agencies\\Resources\\UnitResource\\RelationManagers\\FilesRelationManager;\n\nclass FilesRelationManagerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\UnitResource\\RelationManagers\\FilesRelationManager@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\\Agencies\\Resources\\UnitResource\\RelationManagers\\FilesRelationManager@form is PROOF_READY but no test file at tests/Unit/FilesRelationManagerTest.php is in the MANUAL allowlist. 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/Agencies/Resources/UnitResource/RelationManagers/FilesRelationManager.php::App\\Domains\\Agencies\\Resources\\UnitResource\\RelationManagers\\FilesRelationManager::getTitle",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource\\RelationManagers\\FilesRelationManager@getTitle",
        "expected_test_path": "tests/Unit/FilesRelationManagerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Agencies\\Resources\\UnitResource\\RelationManagers\\FilesRelationManager;\n\nclass FilesRelationManagerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\UnitResource\\RelationManagers\\FilesRelationManager@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Agencies\\Resources\\UnitResource\\RelationManagers\\FilesRelationManager@getTitle is PROOF_READY but no test file at tests/Unit/FilesRelationManagerTest.php is in the MANUAL allowlist. 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/Agencies/Resources/UnitResource/RelationManagers/FilesRelationManager.php::App\\Domains\\Agencies\\Resources\\UnitResource\\RelationManagers\\FilesRelationManager::table",
        "fqmn": "App\\Domains\\Agencies\\Resources\\UnitResource\\RelationManagers\\FilesRelationManager@table",
        "expected_test_path": "tests/Unit/FilesRelationManagerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_http_called"
        ],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Agencies\\Resources\\UnitResource\\RelationManagers\\FilesRelationManager;\n\nclass FilesRelationManagerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Agencies\\Resources\\UnitResource\\RelationManagers\\FilesRelationManager@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        // Http::assertSent(fn ($req) => $req->url() === '<url>');\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Agencies\\Resources\\UnitResource\\RelationManagers\\FilesRelationManager@table is PROOF_READY but no test file at tests/Unit/FilesRelationManagerTest.php is in the MANUAL allowlist. 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/Billing/Actions/GenerateCreditTopUpInvoiceAction.php::App\\Domains\\Billing\\Actions\\GenerateCreditTopUpInvoiceAction::execute",
        "fqmn": "App\\Domains\\Billing\\Actions\\GenerateCreditTopUpInvoiceAction@execute",
        "expected_test_path": "tests/Unit/GenerateCreditTopUpInvoiceActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Billing\\Actions\\GenerateCreditTopUpInvoiceAction;\n\nclass GenerateCreditTopUpInvoiceActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Billing\\Actions\\GenerateCreditTopUpInvoiceAction@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Billing\\Actions\\GenerateCreditTopUpInvoiceAction@execute is PROOF_READY but no test file at tests/Unit/GenerateCreditTopUpInvoiceActionTest.php is in the MANUAL allowlist. 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/Billing/Actions/GenerateMessagePackageInvoiceAction.php::App\\Domains\\Billing\\Actions\\GenerateMessagePackageInvoiceAction::execute",
        "fqmn": "App\\Domains\\Billing\\Actions\\GenerateMessagePackageInvoiceAction@execute",
        "expected_test_path": "tests/Unit/GenerateMessagePackageInvoiceActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Billing\\Actions\\GenerateMessagePackageInvoiceAction;\n\nclass GenerateMessagePackageInvoiceActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Billing\\Actions\\GenerateMessagePackageInvoiceAction@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Billing\\Actions\\GenerateMessagePackageInvoiceAction@execute is PROOF_READY but no test file at tests/Unit/GenerateMessagePackageInvoiceActionTest.php is in the MANUAL allowlist. 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/Billing/Actions/GenerateSubscriptionInvoiceAction.php::App\\Domains\\Billing\\Actions\\GenerateSubscriptionInvoiceAction::execute",
        "fqmn": "App\\Domains\\Billing\\Actions\\GenerateSubscriptionInvoiceAction@execute",
        "expected_test_path": "tests/Unit/GenerateSubscriptionInvoiceActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Billing\\Actions\\GenerateSubscriptionInvoiceAction;\n\nclass GenerateSubscriptionInvoiceActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Billing\\Actions\\GenerateSubscriptionInvoiceAction@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Billing\\Actions\\GenerateSubscriptionInvoiceAction@execute is PROOF_READY but no test file at tests/Unit/GenerateSubscriptionInvoiceActionTest.php is in the MANUAL allowlist. 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/Billing/DTO/TaxBreakdown.php::App\\Domains\\Billing\\DTO\\TaxBreakdown::zero",
        "fqmn": "App\\Domains\\Billing\\DTO\\TaxBreakdown@zero",
        "expected_test_path": "tests/Unit/TaxBreakdownTest.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\\Billing\\DTO\\TaxBreakdown;\n\nclass TaxBreakdownTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Billing\\DTO\\TaxBreakdown@zero\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_zero_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Billing\\DTO\\TaxBreakdown@zero is PROOF_READY but no test file at tests/Unit/TaxBreakdownTest.php is in the MANUAL allowlist. 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/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::allForOrganization",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@allForOrganization",
        "expected_test_path": "tests/Unit/FileRepositoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Files\\Repositories\\FileRepository;\n\nclass FileRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Files\\Repositories\\FileRepository@allForOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_allfororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Files\\Repositories\\FileRepository@allForOrganization is PROOF_READY but no test file at tests/Unit/FileRepositoryTest.php is in the MANUAL allowlist. 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/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::countByTypeForOrganization",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@countByTypeForOrganization",
        "expected_test_path": "tests/Unit/FileRepositoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Files\\Repositories\\FileRepository;\n\nclass FileRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Files\\Repositories\\FileRepository@countByTypeForOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_countbytypefororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Files\\Repositories\\FileRepository@countByTypeForOrganization is PROOF_READY but no test file at tests/Unit/FileRepositoryTest.php is in the MANUAL allowlist. 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/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::countForOrganization",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@countForOrganization",
        "expected_test_path": "tests/Unit/FileRepositoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Files\\Repositories\\FileRepository;\n\nclass FileRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Files\\Repositories\\FileRepository@countForOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_countfororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Files\\Repositories\\FileRepository@countForOrganization is PROOF_READY but no test file at tests/Unit/FileRepositoryTest.php is in the MANUAL allowlist. 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/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::findForOrganization",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@findForOrganization",
        "expected_test_path": "tests/Unit/FileRepositoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Files\\Repositories\\FileRepository;\n\nclass FileRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Files\\Repositories\\FileRepository@findForOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_findfororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Files\\Repositories\\FileRepository@findForOrganization is PROOF_READY but no test file at tests/Unit/FileRepositoryTest.php is in the MANUAL allowlist. 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/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::getByMimeTypeForOrganization",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@getByMimeTypeForOrganization",
        "expected_test_path": "tests/Unit/FileRepositoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Files\\Repositories\\FileRepository;\n\nclass FileRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Files\\Repositories\\FileRepository@getByMimeTypeForOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getbymimetypefororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Files\\Repositories\\FileRepository@getByMimeTypeForOrganization is PROOF_READY but no test file at tests/Unit/FileRepositoryTest.php is in the MANUAL allowlist. 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/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::getByTypeForOrganization",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@getByTypeForOrganization",
        "expected_test_path": "tests/Unit/FileRepositoryTest.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\\Files\\Repositories\\FileRepository;\n\nclass FileRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Files\\Repositories\\FileRepository@getByTypeForOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getbytypefororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Files\\Repositories\\FileRepository@getByTypeForOrganization is PROOF_READY but no test file at tests/Unit/FileRepositoryTest.php is in the MANUAL allowlist. 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/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::getByUploaderForOrganization",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@getByUploaderForOrganization",
        "expected_test_path": "tests/Unit/FileRepositoryTest.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\\Files\\Repositories\\FileRepository;\n\nclass FileRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Files\\Repositories\\FileRepository@getByUploaderForOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getbyuploaderfororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Files\\Repositories\\FileRepository@getByUploaderForOrganization is PROOF_READY but no test file at tests/Unit/FileRepositoryTest.php is in the MANUAL allowlist. 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/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::getForEntity",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@getForEntity",
        "expected_test_path": "tests/Unit/FileRepositoryTest.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\\Files\\Repositories\\FileRepository;\n\nclass FileRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Files\\Repositories\\FileRepository@getForEntity\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getforentity_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Files\\Repositories\\FileRepository@getForEntity is PROOF_READY but no test file at tests/Unit/FileRepositoryTest.php is in the MANUAL allowlist. 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/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::getLargeFiles",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@getLargeFiles",
        "expected_test_path": "tests/Unit/FileRepositoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Files\\Repositories\\FileRepository;\n\nclass FileRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Files\\Repositories\\FileRepository@getLargeFiles\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getlargefiles_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Files\\Repositories\\FileRepository@getLargeFiles is PROOF_READY but no test file at tests/Unit/FileRepositoryTest.php is in the MANUAL allowlist. 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/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::getOrphanedFiles",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@getOrphanedFiles",
        "expected_test_path": "tests/Unit/FileRepositoryTest.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\\Files\\Repositories\\FileRepository;\n\nclass FileRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Files\\Repositories\\FileRepository@getOrphanedFiles\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getorphanedfiles_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Files\\Repositories\\FileRepository@getOrphanedFiles is PROOF_READY but no test file at tests/Unit/FileRepositoryTest.php is in the MANUAL allowlist. 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/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::getRecentForOrganization",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@getRecentForOrganization",
        "expected_test_path": "tests/Unit/FileRepositoryTest.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\\Files\\Repositories\\FileRepository;\n\nclass FileRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Files\\Repositories\\FileRepository@getRecentForOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getrecentfororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Files\\Repositories\\FileRepository@getRecentForOrganization is PROOF_READY but no test file at tests/Unit/FileRepositoryTest.php is in the MANUAL allowlist. 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/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::getTotalStorageForOrganization",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@getTotalStorageForOrganization",
        "expected_test_path": "tests/Unit/FileRepositoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Files\\Repositories\\FileRepository;\n\nclass FileRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Files\\Repositories\\FileRepository@getTotalStorageForOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettotalstoragefororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Files\\Repositories\\FileRepository@getTotalStorageForOrganization is PROOF_READY but no test file at tests/Unit/FileRepositoryTest.php is in the MANUAL allowlist. 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/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::paginatedForOrganization",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@paginatedForOrganization",
        "expected_test_path": "tests/Unit/FileRepositoryTest.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\\Files\\Repositories\\FileRepository;\n\nclass FileRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Files\\Repositories\\FileRepository@paginatedForOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_paginatedfororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Files\\Repositories\\FileRepository@paginatedForOrganization is PROOF_READY but no test file at tests/Unit/FileRepositoryTest.php is in the MANUAL allowlist. 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/Files/Repositories/FileRepository.php::App\\Domains\\Files\\Repositories\\FileRepository::search",
        "fqmn": "App\\Domains\\Files\\Repositories\\FileRepository@search",
        "expected_test_path": "tests/Unit/FileRepositoryTest.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\\Files\\Repositories\\FileRepository;\n\nclass FileRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Files\\Repositories\\FileRepository@search\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_search_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Files\\Repositories\\FileRepository@search is PROOF_READY but no test file at tests/Unit/FileRepositoryTest.php is in the MANUAL allowlist. 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/Files/Resources/FileResource.php::App\\Domains\\Files\\Resources\\FileResource::form",
        "fqmn": "App\\Domains\\Files\\Resources\\FileResource@form",
        "expected_test_path": "tests/Unit/FileResourceTest.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\\Files\\Resources\\FileResource;\n\nclass FileResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Files\\Resources\\FileResource@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\\Files\\Resources\\FileResource@form is PROOF_READY but no test file at tests/Unit/FileResourceTest.php is in the MANUAL allowlist. 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/Files/Resources/FileResource.php::App\\Domains\\Files\\Resources\\FileResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Files\\Resources\\FileResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/FileResourceTest.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\\Files\\Resources\\FileResource;\n\nclass FileResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Files\\Resources\\FileResource@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\n\n        // TODO: set up test data 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\\Files\\Resources\\FileResource@getEloquentQuery is PROOF_READY but no test file at tests/Unit/FileResourceTest.php is in the MANUAL allowlist. 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/Files/Resources/FileResource.php::App\\Domains\\Files\\Resources\\FileResource::getModelLabel",
        "fqmn": "App\\Domains\\Files\\Resources\\FileResource@getModelLabel",
        "expected_test_path": "tests/Unit/FileResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Files\\Resources\\FileResource;\n\nclass FileResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Files\\Resources\\FileResource@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\\Files\\Resources\\FileResource@getModelLabel is PROOF_READY but no test file at tests/Unit/FileResourceTest.php is in the MANUAL allowlist. 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/Files/Resources/FileResource.php::App\\Domains\\Files\\Resources\\FileResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Files\\Resources\\FileResource@getNavigationLabel",
        "expected_test_path": "tests/Unit/FileResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Files\\Resources\\FileResource;\n\nclass FileResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Files\\Resources\\FileResource@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\\Files\\Resources\\FileResource@getNavigationLabel is PROOF_READY but no test file at tests/Unit/FileResourceTest.php is in the MANUAL allowlist. 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/Files/Resources/FileResource.php::App\\Domains\\Files\\Resources\\FileResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Files\\Resources\\FileResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/FileResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Files\\Resources\\FileResource;\n\nclass FileResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Files\\Resources\\FileResource@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\\Files\\Resources\\FileResource@getPluralModelLabel is PROOF_READY but no test file at tests/Unit/FileResourceTest.php is in the MANUAL allowlist. 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/Files/Resources/FileResource.php::App\\Domains\\Files\\Resources\\FileResource::table",
        "fqmn": "App\\Domains\\Files\\Resources\\FileResource@table",
        "expected_test_path": "tests/Unit/FileResourceTest.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\\Files\\Resources\\FileResource;\n\nclass FileResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Files\\Resources\\FileResource@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\\Files\\Resources\\FileResource@table is PROOF_READY but no test file at tests/Unit/FileResourceTest.php is in the MANUAL allowlist. 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/Files/Services/FileSecurityService.php::App\\Domains\\Files\\Services\\FileSecurityService::scanForVirus",
        "fqmn": "App\\Domains\\Files\\Services\\FileSecurityService@scanForVirus",
        "expected_test_path": "tests/Feature/FileSecurityServiceTest.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\\Domains\\Files\\Services\\FileSecurityService;\n\nclass FileSecurityServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Files\\Services\\FileSecurityService@scanForVirus\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_scanforvirus_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: 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\\Files\\Services\\FileSecurityService@scanForVirus is PROOF_READY but no test file at tests/Feature/FileSecurityServiceTest.php is in the MANUAL allowlist. 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/Imports/Constants/CsvImportSchema.php::App\\Domains\\Imports\\Constants\\CsvImportSchema::allSchemas",
        "fqmn": "App\\Domains\\Imports\\Constants\\CsvImportSchema@allSchemas",
        "expected_test_path": "tests/Unit/CsvImportSchemaTest.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\\Imports\\Constants\\CsvImportSchema;\n\nclass CsvImportSchemaTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Imports\\Constants\\CsvImportSchema@allSchemas\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_allschemas_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Imports\\Constants\\CsvImportSchema@allSchemas is PROOF_READY but no test file at tests/Unit/CsvImportSchemaTest.php is in the MANUAL allowlist. 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/Landlords/Actions/GetLandlordOverviewWidgetStatsAction.php::App\\Domains\\Landlords\\Actions\\GetLandlordOverviewWidgetStatsAction::execute",
        "fqmn": "App\\Domains\\Landlords\\Actions\\GetLandlordOverviewWidgetStatsAction@execute",
        "expected_test_path": "tests/Unit/GetLandlordOverviewWidgetStatsActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Landlords\\Actions\\GetLandlordOverviewWidgetStatsAction;\n\nclass GetLandlordOverviewWidgetStatsActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Landlords\\Actions\\GetLandlordOverviewWidgetStatsAction@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Landlords\\Actions\\GetLandlordOverviewWidgetStatsAction@execute is PROOF_READY but no test file at tests/Unit/GetLandlordOverviewWidgetStatsActionTest.php is in the MANUAL allowlist. 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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::allForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@allForOrganization",
        "expected_test_path": "tests/Unit/LeaseRepositoryTest.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\\Leases\\Repositories\\LeaseRepository;\n\nclass LeaseRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Leases\\Repositories\\LeaseRepository@allForOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_allfororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Leases\\Repositories\\LeaseRepository@allForOrganization is PROOF_READY but no test file at tests/Unit/LeaseRepositoryTest.php is in the MANUAL allowlist. 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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::countActiveForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@countActiveForOrganization",
        "expected_test_path": "tests/Unit/LeaseRepositoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Leases\\Repositories\\LeaseRepository;\n\nclass LeaseRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Leases\\Repositories\\LeaseRepository@countActiveForOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_countactivefororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Leases\\Repositories\\LeaseRepository@countActiveForOrganization is PROOF_READY but no test file at tests/Unit/LeaseRepositoryTest.php is in the MANUAL allowlist. 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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::countForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@countForOrganization",
        "expected_test_path": "tests/Unit/LeaseRepositoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Leases\\Repositories\\LeaseRepository;\n\nclass LeaseRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Leases\\Repositories\\LeaseRepository@countForOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_countfororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Leases\\Repositories\\LeaseRepository@countForOrganization is PROOF_READY but no test file at tests/Unit/LeaseRepositoryTest.php is in the MANUAL allowlist. 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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::findForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@findForOrganization",
        "expected_test_path": "tests/Unit/LeaseRepositoryTest.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\\Leases\\Repositories\\LeaseRepository;\n\nclass LeaseRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Leases\\Repositories\\LeaseRepository@findForOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_findfororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Leases\\Repositories\\LeaseRepository@findForOrganization is PROOF_READY but no test file at tests/Unit/LeaseRepositoryTest.php is in the MANUAL allowlist. 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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::findOrFailForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@findOrFailForOrganization",
        "expected_test_path": "tests/Unit/LeaseRepositoryTest.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\\Leases\\Repositories\\LeaseRepository;\n\nclass LeaseRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Leases\\Repositories\\LeaseRepository@findOrFailForOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_findorfailfororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Leases\\Repositories\\LeaseRepository@findOrFailForOrganization is PROOF_READY but no test file at tests/Unit/LeaseRepositoryTest.php is in the MANUAL allowlist. 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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::getActiveForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@getActiveForOrganization",
        "expected_test_path": "tests/Unit/LeaseRepositoryTest.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\\Leases\\Repositories\\LeaseRepository;\n\nclass LeaseRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Leases\\Repositories\\LeaseRepository@getActiveForOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getactivefororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Leases\\Repositories\\LeaseRepository@getActiveForOrganization is PROOF_READY but no test file at tests/Unit/LeaseRepositoryTest.php is in the MANUAL allowlist. 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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::getCurrentLeaseForTenant",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@getCurrentLeaseForTenant",
        "expected_test_path": "tests/Unit/LeaseRepositoryTest.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\\Leases\\Repositories\\LeaseRepository;\n\nclass LeaseRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Leases\\Repositories\\LeaseRepository@getCurrentLeaseForTenant\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getcurrentleasefortenant_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Leases\\Repositories\\LeaseRepository@getCurrentLeaseForTenant is PROOF_READY but no test file at tests/Unit/LeaseRepositoryTest.php is in the MANUAL allowlist. 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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::getCurrentLeaseForUnit",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@getCurrentLeaseForUnit",
        "expected_test_path": "tests/Unit/LeaseRepositoryTest.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\\Leases\\Repositories\\LeaseRepository;\n\nclass LeaseRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Leases\\Repositories\\LeaseRepository@getCurrentLeaseForUnit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getcurrentleaseforunit_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Leases\\Repositories\\LeaseRepository@getCurrentLeaseForUnit is PROOF_READY but no test file at tests/Unit/LeaseRepositoryTest.php is in the MANUAL allowlist. 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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::getExpiredForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@getExpiredForOrganization",
        "expected_test_path": "tests/Unit/LeaseRepositoryTest.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\\Leases\\Repositories\\LeaseRepository;\n\nclass LeaseRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Leases\\Repositories\\LeaseRepository@getExpiredForOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getexpiredfororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Leases\\Repositories\\LeaseRepository@getExpiredForOrganization is PROOF_READY but no test file at tests/Unit/LeaseRepositoryTest.php is in the MANUAL allowlist. 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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::getExpiringSoon",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@getExpiringSoon",
        "expected_test_path": "tests/Unit/LeaseRepositoryTest.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\\Leases\\Repositories\\LeaseRepository;\n\nclass LeaseRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Leases\\Repositories\\LeaseRepository@getExpiringSoon\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getexpiringsoon_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Leases\\Repositories\\LeaseRepository@getExpiringSoon is PROOF_READY but no test file at tests/Unit/LeaseRepositoryTest.php is in the MANUAL allowlist. 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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::getForLandlord",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@getForLandlord",
        "expected_test_path": "tests/Unit/LeaseRepositoryTest.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\\Leases\\Repositories\\LeaseRepository;\n\nclass LeaseRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Leases\\Repositories\\LeaseRepository@getForLandlord\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getforlandlord_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Leases\\Repositories\\LeaseRepository@getForLandlord is PROOF_READY but no test file at tests/Unit/LeaseRepositoryTest.php is in the MANUAL allowlist. 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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::getForTenant",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@getForTenant",
        "expected_test_path": "tests/Unit/LeaseRepositoryTest.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\\Leases\\Repositories\\LeaseRepository;\n\nclass LeaseRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Leases\\Repositories\\LeaseRepository@getForTenant\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getfortenant_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Leases\\Repositories\\LeaseRepository@getForTenant is PROOF_READY but no test file at tests/Unit/LeaseRepositoryTest.php is in the MANUAL allowlist. 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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::getStartingSoon",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@getStartingSoon",
        "expected_test_path": "tests/Unit/LeaseRepositoryTest.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\\Leases\\Repositories\\LeaseRepository;\n\nclass LeaseRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Leases\\Repositories\\LeaseRepository@getStartingSoon\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getstartingsoon_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Leases\\Repositories\\LeaseRepository@getStartingSoon is PROOF_READY but no test file at tests/Unit/LeaseRepositoryTest.php is in the MANUAL allowlist. 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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::paginatedForOrganization",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@paginatedForOrganization",
        "expected_test_path": "tests/Unit/LeaseRepositoryTest.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\\Leases\\Repositories\\LeaseRepository;\n\nclass LeaseRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Leases\\Repositories\\LeaseRepository@paginatedForOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_paginatedfororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Leases\\Repositories\\LeaseRepository@paginatedForOrganization is PROOF_READY but no test file at tests/Unit/LeaseRepositoryTest.php is in the MANUAL allowlist. 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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::search",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@search",
        "expected_test_path": "tests/Unit/LeaseRepositoryTest.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\\Leases\\Repositories\\LeaseRepository;\n\nclass LeaseRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Leases\\Repositories\\LeaseRepository@search\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_search_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Leases\\Repositories\\LeaseRepository@search is PROOF_READY but no test file at tests/Unit/LeaseRepositoryTest.php is in the MANUAL allowlist. 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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::tenantHasActiveLease",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@tenantHasActiveLease",
        "expected_test_path": "tests/Unit/LeaseRepositoryTest.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\\Leases\\Repositories\\LeaseRepository;\n\nclass LeaseRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Leases\\Repositories\\LeaseRepository@tenantHasActiveLease\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_tenanthasactivelease_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Leases\\Repositories\\LeaseRepository@tenantHasActiveLease is PROOF_READY but no test file at tests/Unit/LeaseRepositoryTest.php is in the MANUAL allowlist. 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/Leases/Repositories/LeaseRepository.php::App\\Domains\\Leases\\Repositories\\LeaseRepository::unitHasActiveLease",
        "fqmn": "App\\Domains\\Leases\\Repositories\\LeaseRepository@unitHasActiveLease",
        "expected_test_path": "tests/Unit/LeaseRepositoryTest.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\\Leases\\Repositories\\LeaseRepository;\n\nclass LeaseRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Leases\\Repositories\\LeaseRepository@unitHasActiveLease\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_unithasactivelease_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Leases\\Repositories\\LeaseRepository@unitHasActiveLease is PROOF_READY but no test file at tests/Unit/LeaseRepositoryTest.php is in the MANUAL allowlist. 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/Maintenance/Actions/AssignSlaToTicketAction.php::App\\Domains\\Maintenance\\Actions\\AssignSlaToTicketAction::execute",
        "fqmn": "App\\Domains\\Maintenance\\Actions\\AssignSlaToTicketAction@execute",
        "expected_test_path": "tests/Unit/AssignSlaToTicketActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Maintenance\\Actions\\AssignSlaToTicketAction;\n\nclass AssignSlaToTicketActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Maintenance\\Actions\\AssignSlaToTicketAction@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Maintenance\\Actions\\AssignSlaToTicketAction@execute is PROOF_READY but no test file at tests/Unit/AssignSlaToTicketActionTest.php is in the MANUAL allowlist. 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/Maintenance/Jobs/AggregateMaintenanceMetricsJob.php::App\\Domains\\Maintenance\\Jobs\\AggregateMaintenanceMetricsJob::handle",
        "fqmn": "App\\Domains\\Maintenance\\Jobs\\AggregateMaintenanceMetricsJob@handle",
        "expected_test_path": "tests/Feature/AggregateMaintenanceMetricsJobTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Maintenance\\Jobs\\AggregateMaintenanceMetricsJob;\n\nclass AggregateMaintenanceMetricsJobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Maintenance\\Jobs\\AggregateMaintenanceMetricsJob@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\\Domains\\Maintenance\\Jobs\\AggregateMaintenanceMetricsJob@handle is PROOF_READY but no test file at tests/Feature/AggregateMaintenanceMetricsJobTest.php is in the MANUAL allowlist. 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/Maintenance/Jobs/CheckMaintenanceSLAsJob.php::App\\Domains\\Maintenance\\Jobs\\CheckMaintenanceSLAsJob::handle",
        "fqmn": "App\\Domains\\Maintenance\\Jobs\\CheckMaintenanceSLAsJob@handle",
        "expected_test_path": "tests/Feature/CheckMaintenanceSLAsJobTest.php",
        "intent": null,
        "intent_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\\Maintenance\\Jobs\\CheckMaintenanceSLAsJob;\n\nclass CheckMaintenanceSLAsJobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Maintenance\\Jobs\\CheckMaintenanceSLAsJob@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\\Domains\\Maintenance\\Jobs\\CheckMaintenanceSLAsJob@handle is PROOF_READY but no test file at tests/Feature/CheckMaintenanceSLAsJobTest.php is in the MANUAL allowlist. 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/Maintenance/Services/MaintenanceSlaService.php::App\\Domains\\Maintenance\\Services\\MaintenanceSlaService::assignSlaToTicket",
        "fqmn": "App\\Domains\\Maintenance\\Services\\MaintenanceSlaService@assignSlaToTicket",
        "expected_test_path": "tests/Feature/MaintenanceSlaServiceTest.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\\Domains\\Maintenance\\Services\\MaintenanceSlaService;\n\nclass MaintenanceSlaServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Maintenance\\Services\\MaintenanceSlaService@assignSlaToTicket\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_assignslatoticket_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\Maintenance\\Services\\MaintenanceSlaService@assignSlaToTicket is PROOF_READY but no test file at tests/Feature/MaintenanceSlaServiceTest.php is in the MANUAL allowlist. 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/Maintenance/Services/MaintenanceSlaService.php::App\\Domains\\Maintenance\\Services\\MaintenanceSlaService::pauseSla",
        "fqmn": "App\\Domains\\Maintenance\\Services\\MaintenanceSlaService@pauseSla",
        "expected_test_path": "tests/Feature/MaintenanceSlaServiceTest.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\\Domains\\Maintenance\\Services\\MaintenanceSlaService;\n\nclass MaintenanceSlaServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Maintenance\\Services\\MaintenanceSlaService@pauseSla\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_pausesla_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\Maintenance\\Services\\MaintenanceSlaService@pauseSla is PROOF_READY but no test file at tests/Feature/MaintenanceSlaServiceTest.php is in the MANUAL allowlist. 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/Maintenance/Services/MaintenanceSlaService.php::App\\Domains\\Maintenance\\Services\\MaintenanceSlaService::resumeSla",
        "fqmn": "App\\Domains\\Maintenance\\Services\\MaintenanceSlaService@resumeSla",
        "expected_test_path": "tests/Feature/MaintenanceSlaServiceTest.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\\Domains\\Maintenance\\Services\\MaintenanceSlaService;\n\nclass MaintenanceSlaServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Maintenance\\Services\\MaintenanceSlaService@resumeSla\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resumesla_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\Maintenance\\Services\\MaintenanceSlaService@resumeSla is PROOF_READY but no test file at tests/Feature/MaintenanceSlaServiceTest.php is in the MANUAL allowlist. 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/Outreach/Services/BillingService.php::App\\Domains\\Outreach\\Services\\BillingService::getCampaignCostBreakdown",
        "fqmn": "App\\Domains\\Outreach\\Services\\BillingService@getCampaignCostBreakdown",
        "expected_test_path": "tests/Feature/BillingServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Outreach\\Services\\BillingService;\n\nclass BillingServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Outreach\\Services\\BillingService@getCampaignCostBreakdown\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getcampaigncostbreakdown_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Outreach\\Services\\BillingService@getCampaignCostBreakdown is PROOF_READY but no test file at tests/Feature/BillingServiceTest.php is in the MANUAL allowlist. 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/Outreach/Services/BillingService.php::App\\Domains\\Outreach\\Services\\BillingService::getConversationCosts",
        "fqmn": "App\\Domains\\Outreach\\Services\\BillingService@getConversationCosts",
        "expected_test_path": "tests/Feature/BillingServiceTest.php",
        "intent": null,
        "intent_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\\Outreach\\Services\\BillingService;\n\nclass BillingServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Outreach\\Services\\BillingService@getConversationCosts\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getconversationcosts_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Outreach\\Services\\BillingService@getConversationCosts is PROOF_READY but no test file at tests/Feature/BillingServiceTest.php is in the MANUAL allowlist. 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/Outreach/Services/BillingService.php::App\\Domains\\Outreach\\Services\\BillingService::getConversationTypes",
        "fqmn": "App\\Domains\\Outreach\\Services\\BillingService@getConversationTypes",
        "expected_test_path": "tests/Feature/BillingServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Outreach\\Services\\BillingService;\n\nclass BillingServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Outreach\\Services\\BillingService@getConversationTypes\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getconversationtypes_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Outreach\\Services\\BillingService@getConversationTypes is PROOF_READY but no test file at tests/Feature/BillingServiceTest.php is in the MANUAL allowlist. 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/Outreach/Services/BillingService.php::App\\Domains\\Outreach\\Services\\BillingService::getCostOptimization",
        "fqmn": "App\\Domains\\Outreach\\Services\\BillingService@getCostOptimization",
        "expected_test_path": "tests/Feature/BillingServiceTest.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\\Domains\\Outreach\\Services\\BillingService;\n\nclass BillingServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Outreach\\Services\\BillingService@getCostOptimization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getcostoptimization_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\Outreach\\Services\\BillingService@getCostOptimization is PROOF_READY but no test file at tests/Feature/BillingServiceTest.php is in the MANUAL allowlist. 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/Outreach/Webhooks/WhatsAppWebhookController.php::App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController::handle",
        "fqmn": "App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController@handle",
        "expected_test_path": "tests/Unit/WhatsAppWebhookControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [
          "assert_cache_written",
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController;\n\nclass WhatsAppWebhookControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController@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        // $this->assertTrue(Cache::has('<key>'));\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController@handle is PROOF_READY but no test file at tests/Unit/WhatsAppWebhookControllerTest.php is in the MANUAL allowlist. 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/Payments/Actions/ApplyDeductionsAction.php::App\\Domains\\Payments\\Actions\\ApplyDeductionsAction::execute",
        "fqmn": "App\\Domains\\Payments\\Actions\\ApplyDeductionsAction@execute",
        "expected_test_path": "tests/Unit/ApplyDeductionsActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Payments\\Actions\\ApplyDeductionsAction;\n\nclass ApplyDeductionsActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Payments\\Actions\\ApplyDeductionsAction@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Payments\\Actions\\ApplyDeductionsAction@execute is PROOF_READY but no test file at tests/Unit/ApplyDeductionsActionTest.php is in the MANUAL allowlist. 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/Payments/Actions/CreateTransactionAction.php::App\\Domains\\Payments\\Actions\\CreateTransactionAction::execute",
        "fqmn": "App\\Domains\\Payments\\Actions\\CreateTransactionAction@execute",
        "expected_test_path": "tests/Unit/CreateTransactionActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Payments\\Actions\\CreateTransactionAction;\n\nclass CreateTransactionActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Payments\\Actions\\CreateTransactionAction@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Payments\\Actions\\CreateTransactionAction@execute is PROOF_READY but no test file at tests/Unit/CreateTransactionActionTest.php is in the MANUAL allowlist. 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/Payments/Actions/RecordPaymentAction.php::App\\Domains\\Payments\\Actions\\RecordPaymentAction::execute",
        "fqmn": "App\\Domains\\Payments\\Actions\\RecordPaymentAction@execute",
        "expected_test_path": "tests/Unit/RecordPaymentActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Payments\\Actions\\RecordPaymentAction;\n\nclass RecordPaymentActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Payments\\Actions\\RecordPaymentAction@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Payments\\Actions\\RecordPaymentAction@execute is PROOF_READY but no test file at tests/Unit/RecordPaymentActionTest.php is in the MANUAL allowlist. 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/Payments/Actions/VoidPaymentDeductionsAction.php::App\\Domains\\Payments\\Actions\\VoidPaymentDeductionsAction::execute",
        "fqmn": "App\\Domains\\Payments\\Actions\\VoidPaymentDeductionsAction@execute",
        "expected_test_path": "tests/Unit/VoidPaymentDeductionsActionTest.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\\Payments\\Actions\\VoidPaymentDeductionsAction;\n\nclass VoidPaymentDeductionsActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Payments\\Actions\\VoidPaymentDeductionsAction@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    }\n}\n",
        "explanation": "Surface App\\Domains\\Payments\\Actions\\VoidPaymentDeductionsAction@execute is PROOF_READY but no test file at tests/Unit/VoidPaymentDeductionsActionTest.php is in the MANUAL allowlist. 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/Payments/Listeners/RecordForfeitedBookingRevenue.php::App\\Domains\\Payments\\Listeners\\RecordForfeitedBookingRevenue::handle",
        "fqmn": "App\\Domains\\Payments\\Listeners\\RecordForfeitedBookingRevenue@handle",
        "expected_test_path": "tests/Feature/RecordForfeitedBookingRevenueTest.php",
        "intent": null,
        "intent_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\\Payments\\Listeners\\RecordForfeitedBookingRevenue;\n\nclass RecordForfeitedBookingRevenueTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Payments\\Listeners\\RecordForfeitedBookingRevenue@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\\Domains\\Payments\\Listeners\\RecordForfeitedBookingRevenue@handle is PROOF_READY but no test file at tests/Feature/RecordForfeitedBookingRevenueTest.php is in the MANUAL allowlist. 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/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::allForOrganization",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@allForOrganization",
        "expected_test_path": "tests/Unit/PaymentRepositoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Payments\\Repositories\\PaymentRepository;\n\nclass PaymentRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Payments\\Repositories\\PaymentRepository@allForOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_allfororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Payments\\Repositories\\PaymentRepository@allForOrganization is PROOF_READY but no test file at tests/Unit/PaymentRepositoryTest.php is in the MANUAL allowlist. 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/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::countForOrganization",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@countForOrganization",
        "expected_test_path": "tests/Unit/PaymentRepositoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Payments\\Repositories\\PaymentRepository;\n\nclass PaymentRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Payments\\Repositories\\PaymentRepository@countForOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_countfororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Payments\\Repositories\\PaymentRepository@countForOrganization is PROOF_READY but no test file at tests/Unit/PaymentRepositoryTest.php is in the MANUAL allowlist. 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/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::findForOrganization",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@findForOrganization",
        "expected_test_path": "tests/Unit/PaymentRepositoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Payments\\Repositories\\PaymentRepository;\n\nclass PaymentRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Payments\\Repositories\\PaymentRepository@findForOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_findfororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Payments\\Repositories\\PaymentRepository@findForOrganization is PROOF_READY but no test file at tests/Unit/PaymentRepositoryTest.php is in the MANUAL allowlist. 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/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::getByMethodForOrganization",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@getByMethodForOrganization",
        "expected_test_path": "tests/Unit/PaymentRepositoryTest.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\\Payments\\Repositories\\PaymentRepository;\n\nclass PaymentRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Payments\\Repositories\\PaymentRepository@getByMethodForOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getbymethodfororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Payments\\Repositories\\PaymentRepository@getByMethodForOrganization is PROOF_READY but no test file at tests/Unit/PaymentRepositoryTest.php is in the MANUAL allowlist. 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/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::getByStatusForOrganization",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@getByStatusForOrganization",
        "expected_test_path": "tests/Unit/PaymentRepositoryTest.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\\Payments\\Repositories\\PaymentRepository;\n\nclass PaymentRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Payments\\Repositories\\PaymentRepository@getByStatusForOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getbystatusfororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Payments\\Repositories\\PaymentRepository@getByStatusForOrganization is PROOF_READY but no test file at tests/Unit/PaymentRepositoryTest.php is in the MANUAL allowlist. 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/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::getForLandlord",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@getForLandlord",
        "expected_test_path": "tests/Unit/PaymentRepositoryTest.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\\Payments\\Repositories\\PaymentRepository;\n\nclass PaymentRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Payments\\Repositories\\PaymentRepository@getForLandlord\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getforlandlord_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\Payments\\Repositories\\PaymentRepository@getForLandlord is PROOF_READY but no test file at tests/Unit/PaymentRepositoryTest.php is in the MANUAL allowlist. 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/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::getForTenant",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@getForTenant",
        "expected_test_path": "tests/Unit/PaymentRepositoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Payments\\Repositories\\PaymentRepository;\n\nclass PaymentRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Payments\\Repositories\\PaymentRepository@getForTenant\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getfortenant_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Payments\\Repositories\\PaymentRepository@getForTenant is PROOF_READY but no test file at tests/Unit/PaymentRepositoryTest.php is in the MANUAL allowlist. 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/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::getInDateRangeForOrganization",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@getInDateRangeForOrganization",
        "expected_test_path": "tests/Unit/PaymentRepositoryTest.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\\Payments\\Repositories\\PaymentRepository;\n\nclass PaymentRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Payments\\Repositories\\PaymentRepository@getInDateRangeForOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getindaterangefororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Payments\\Repositories\\PaymentRepository@getInDateRangeForOrganization is PROOF_READY but no test file at tests/Unit/PaymentRepositoryTest.php is in the MANUAL allowlist. 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/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::getNeedingTransfer",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@getNeedingTransfer",
        "expected_test_path": "tests/Unit/PaymentRepositoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Payments\\Repositories\\PaymentRepository;\n\nclass PaymentRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Payments\\Repositories\\PaymentRepository@getNeedingTransfer\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getneedingtransfer_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Payments\\Repositories\\PaymentRepository@getNeedingTransfer is PROOF_READY but no test file at tests/Unit/PaymentRepositoryTest.php is in the MANUAL allowlist. 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/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::getRecentForOrganization",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@getRecentForOrganization",
        "expected_test_path": "tests/Unit/PaymentRepositoryTest.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\\Payments\\Repositories\\PaymentRepository;\n\nclass PaymentRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Payments\\Repositories\\PaymentRepository@getRecentForOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getrecentfororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Payments\\Repositories\\PaymentRepository@getRecentForOrganization is PROOF_READY but no test file at tests/Unit/PaymentRepositoryTest.php is in the MANUAL allowlist. 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/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::paginatedForOrganization",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@paginatedForOrganization",
        "expected_test_path": "tests/Unit/PaymentRepositoryTest.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\\Payments\\Repositories\\PaymentRepository;\n\nclass PaymentRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Payments\\Repositories\\PaymentRepository@paginatedForOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_paginatedfororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Payments\\Repositories\\PaymentRepository@paginatedForOrganization is PROOF_READY but no test file at tests/Unit/PaymentRepositoryTest.php is in the MANUAL allowlist. 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/Payments/Repositories/PaymentRepository.php::App\\Domains\\Payments\\Repositories\\PaymentRepository::search",
        "fqmn": "App\\Domains\\Payments\\Repositories\\PaymentRepository@search",
        "expected_test_path": "tests/Unit/PaymentRepositoryTest.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\\Payments\\Repositories\\PaymentRepository;\n\nclass PaymentRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Payments\\Repositories\\PaymentRepository@search\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_search_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Payments\\Repositories\\PaymentRepository@search is PROOF_READY but no test file at tests/Unit/PaymentRepositoryTest.php is in the MANUAL allowlist. 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/Payments/Services/PaymentProof/CachedPaymentProofAnalyzer.php::App\\Domains\\Payments\\Services\\PaymentProof\\CachedPaymentProofAnalyzer::analyze",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentProof\\CachedPaymentProofAnalyzer@analyze",
        "expected_test_path": "tests/Feature/CachedPaymentProofAnalyzerTest.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\\Payments\\Services\\PaymentProof\\CachedPaymentProofAnalyzer;\n\nclass CachedPaymentProofAnalyzerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Payments\\Services\\PaymentProof\\CachedPaymentProofAnalyzer@analyze\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_analyze_behaves_correctly(): void\n    {\n\n        // TODO: 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\\Payments\\Services\\PaymentProof\\CachedPaymentProofAnalyzer@analyze is PROOF_READY but no test file at tests/Feature/CachedPaymentProofAnalyzerTest.php is in the MANUAL allowlist. 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/Payments/Services/PaymentProof/OpenAIPaymentProofAnalyzer.php::App\\Domains\\Payments\\Services\\PaymentProof\\OpenAIPaymentProofAnalyzer::analyze",
        "fqmn": "App\\Domains\\Payments\\Services\\PaymentProof\\OpenAIPaymentProofAnalyzer@analyze",
        "expected_test_path": "tests/Feature/OpenAIPaymentProofAnalyzerTest.php",
        "intent": null,
        "intent_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\\Payments\\Services\\PaymentProof\\OpenAIPaymentProofAnalyzer;\n\nclass OpenAIPaymentProofAnalyzerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Payments\\Services\\PaymentProof\\OpenAIPaymentProofAnalyzer@analyze\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_analyze_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Payments\\Services\\PaymentProof\\OpenAIPaymentProofAnalyzer@analyze is PROOF_READY but no test file at tests/Feature/OpenAIPaymentProofAnalyzerTest.php is in the MANUAL allowlist. 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/Payments/Services/WalletService.php::App\\Domains\\Payments\\Services\\WalletService::applyEntry",
        "fqmn": "App\\Domains\\Payments\\Services\\WalletService@applyEntry",
        "expected_test_path": "tests/Feature/WalletServiceTest.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\\Domains\\Payments\\Services\\WalletService;\n\nclass WalletServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Payments\\Services\\WalletService@applyEntry\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_applyentry_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\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\\Domains\\Payments\\Services\\WalletService@applyEntry is PROOF_READY but no test file at tests/Feature/WalletServiceTest.php is in the MANUAL allowlist. 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/Payments/Services/WalletService.php::App\\Domains\\Payments\\Services\\WalletService::getOperatingWallet",
        "fqmn": "App\\Domains\\Payments\\Services\\WalletService@getOperatingWallet",
        "expected_test_path": "tests/Feature/WalletServiceTest.php",
        "intent": null,
        "intent_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\\Payments\\Services\\WalletService;\n\nclass WalletServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Payments\\Services\\WalletService@getOperatingWallet\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getoperatingwallet_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Payments\\Services\\WalletService@getOperatingWallet is PROOF_READY but no test file at tests/Feature/WalletServiceTest.php is in the MANUAL allowlist. 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/Payments/Services/WalletService.php::App\\Domains\\Payments\\Services\\WalletService::getTrustWallet",
        "fqmn": "App\\Domains\\Payments\\Services\\WalletService@getTrustWallet",
        "expected_test_path": "tests/Feature/WalletServiceTest.php",
        "intent": null,
        "intent_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\\Payments\\Services\\WalletService;\n\nclass WalletServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Payments\\Services\\WalletService@getTrustWallet\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettrustwallet_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Payments\\Services\\WalletService@getTrustWallet is PROOF_READY but no test file at tests/Feature/WalletServiceTest.php is in the MANUAL allowlist. 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/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::allForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@allForOrganization",
        "expected_test_path": "tests/Unit/LandlordRepositoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\People\\Repositories\\LandlordRepository;\n\nclass LandlordRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\People\\Repositories\\LandlordRepository@allForOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_allfororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\People\\Repositories\\LandlordRepository@allForOrganization is PROOF_READY but no test file at tests/Unit/LandlordRepositoryTest.php is in the MANUAL allowlist. 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/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::countActiveForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@countActiveForOrganization",
        "expected_test_path": "tests/Unit/LandlordRepositoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\People\\Repositories\\LandlordRepository;\n\nclass LandlordRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\People\\Repositories\\LandlordRepository@countActiveForOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_countactivefororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\People\\Repositories\\LandlordRepository@countActiveForOrganization is PROOF_READY but no test file at tests/Unit/LandlordRepositoryTest.php is in the MANUAL allowlist. 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/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::countForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@countForOrganization",
        "expected_test_path": "tests/Unit/LandlordRepositoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\People\\Repositories\\LandlordRepository;\n\nclass LandlordRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\People\\Repositories\\LandlordRepository@countForOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_countfororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\People\\Repositories\\LandlordRepository@countForOrganization is PROOF_READY but no test file at tests/Unit/LandlordRepositoryTest.php is in the MANUAL allowlist. 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/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::delete",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@delete",
        "expected_test_path": "tests/Unit/LandlordRepositoryTest.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\\People\\Repositories\\LandlordRepository;\n\nclass LandlordRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\People\\Repositories\\LandlordRepository@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\\Domains\\People\\Repositories\\LandlordRepository@delete is PROOF_READY but no test file at tests/Unit/LandlordRepositoryTest.php is in the MANUAL allowlist. 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/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::emailExistsInOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@emailExistsInOrganization",
        "expected_test_path": "tests/Unit/LandlordRepositoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\People\\Repositories\\LandlordRepository;\n\nclass LandlordRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\People\\Repositories\\LandlordRepository@emailExistsInOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_emailexistsinorganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\People\\Repositories\\LandlordRepository@emailExistsInOrganization is PROOF_READY but no test file at tests/Unit/LandlordRepositoryTest.php is in the MANUAL allowlist. 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/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::findByEmailForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@findByEmailForOrganization",
        "expected_test_path": "tests/Unit/LandlordRepositoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\People\\Repositories\\LandlordRepository;\n\nclass LandlordRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\People\\Repositories\\LandlordRepository@findByEmailForOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_findbyemailfororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\People\\Repositories\\LandlordRepository@findByEmailForOrganization is PROOF_READY but no test file at tests/Unit/LandlordRepositoryTest.php is in the MANUAL allowlist. 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/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::findForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@findForOrganization",
        "expected_test_path": "tests/Unit/LandlordRepositoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\People\\Repositories\\LandlordRepository;\n\nclass LandlordRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\People\\Repositories\\LandlordRepository@findForOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_findfororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\People\\Repositories\\LandlordRepository@findForOrganization is PROOF_READY but no test file at tests/Unit/LandlordRepositoryTest.php is in the MANUAL allowlist. 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/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::findOrFailForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@findOrFailForOrganization",
        "expected_test_path": "tests/Unit/LandlordRepositoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\People\\Repositories\\LandlordRepository;\n\nclass LandlordRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\People\\Repositories\\LandlordRepository@findOrFailForOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_findorfailfororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\People\\Repositories\\LandlordRepository@findOrFailForOrganization is PROOF_READY but no test file at tests/Unit/LandlordRepositoryTest.php is in the MANUAL allowlist. 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/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::getActiveForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@getActiveForOrganization",
        "expected_test_path": "tests/Unit/LandlordRepositoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\People\\Repositories\\LandlordRepository;\n\nclass LandlordRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\People\\Repositories\\LandlordRepository@getActiveForOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getactivefororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\People\\Repositories\\LandlordRepository@getActiveForOrganization is PROOF_READY but no test file at tests/Unit/LandlordRepositoryTest.php is in the MANUAL allowlist. 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/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::paginatedForOrganization",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@paginatedForOrganization",
        "expected_test_path": "tests/Unit/LandlordRepositoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\People\\Repositories\\LandlordRepository;\n\nclass LandlordRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\People\\Repositories\\LandlordRepository@paginatedForOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_paginatedfororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\People\\Repositories\\LandlordRepository@paginatedForOrganization is PROOF_READY but no test file at tests/Unit/LandlordRepositoryTest.php is in the MANUAL allowlist. 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/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::search",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@search",
        "expected_test_path": "tests/Unit/LandlordRepositoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\People\\Repositories\\LandlordRepository;\n\nclass LandlordRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\People\\Repositories\\LandlordRepository@search\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_search_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\People\\Repositories\\LandlordRepository@search is PROOF_READY but no test file at tests/Unit/LandlordRepositoryTest.php is in the MANUAL allowlist. 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/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::store",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@store",
        "expected_test_path": "tests/Unit/LandlordRepositoryTest.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\\People\\Repositories\\LandlordRepository;\n\nclass LandlordRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\People\\Repositories\\LandlordRepository@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        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Domains\\People\\Repositories\\LandlordRepository@store is PROOF_READY but no test file at tests/Unit/LandlordRepositoryTest.php is in the MANUAL allowlist. 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/People/Repositories/LandlordRepository.php::App\\Domains\\People\\Repositories\\LandlordRepository::update",
        "fqmn": "App\\Domains\\People\\Repositories\\LandlordRepository@update",
        "expected_test_path": "tests/Unit/LandlordRepositoryTest.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\\Domains\\People\\Repositories\\LandlordRepository;\n\nclass LandlordRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\People\\Repositories\\LandlordRepository@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        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Domains\\People\\Repositories\\LandlordRepository@update is PROOF_READY but no test file at tests/Unit/LandlordRepositoryTest.php is in the MANUAL allowlist. 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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::allForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@allForOrganization",
        "expected_test_path": "tests/Unit/UnitRepositoryTest.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\\Properties\\Repositories\\UnitRepository;\n\nclass UnitRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Properties\\Repositories\\UnitRepository@allForOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_allfororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Properties\\Repositories\\UnitRepository@allForOrganization is PROOF_READY but no test file at tests/Unit/UnitRepositoryTest.php is in the MANUAL allowlist. 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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::assignTenant",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@assignTenant",
        "expected_test_path": "tests/Unit/UnitRepositoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched"
        ],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Properties\\Repositories\\UnitRepository;\n\nclass UnitRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Properties\\Repositories\\UnitRepository@assignTenant\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_assigntenant_behaves_correctly(): void\n    {\n\n        // 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\\Domains\\Properties\\Repositories\\UnitRepository@assignTenant is PROOF_READY but no test file at tests/Unit/UnitRepositoryTest.php is in the MANUAL allowlist. 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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::codeExistsInProperty",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@codeExistsInProperty",
        "expected_test_path": "tests/Unit/UnitRepositoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Properties\\Repositories\\UnitRepository;\n\nclass UnitRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Properties\\Repositories\\UnitRepository@codeExistsInProperty\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_codeexistsinproperty_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Properties\\Repositories\\UnitRepository@codeExistsInProperty is PROOF_READY but no test file at tests/Unit/UnitRepositoryTest.php is in the MANUAL allowlist. 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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::countForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@countForOrganization",
        "expected_test_path": "tests/Unit/UnitRepositoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Properties\\Repositories\\UnitRepository;\n\nclass UnitRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Properties\\Repositories\\UnitRepository@countForOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_countfororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Properties\\Repositories\\UnitRepository@countForOrganization is PROOF_READY but no test file at tests/Unit/UnitRepositoryTest.php is in the MANUAL allowlist. 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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::delete",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@delete",
        "expected_test_path": "tests/Unit/UnitRepositoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write",
          "assert_event_dispatched"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Properties\\Repositories\\UnitRepository;\n\nclass UnitRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Properties\\Repositories\\UnitRepository@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        // Event::assertDispatched(<EventClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Properties\\Repositories\\UnitRepository@delete is PROOF_READY but no test file at tests/Unit/UnitRepositoryTest.php is in the MANUAL allowlist. 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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::findForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@findForOrganization",
        "expected_test_path": "tests/Unit/UnitRepositoryTest.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\\Properties\\Repositories\\UnitRepository;\n\nclass UnitRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Properties\\Repositories\\UnitRepository@findForOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_findfororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Properties\\Repositories\\UnitRepository@findForOrganization is PROOF_READY but no test file at tests/Unit/UnitRepositoryTest.php is in the MANUAL allowlist. 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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::findOrFailForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@findOrFailForOrganization",
        "expected_test_path": "tests/Unit/UnitRepositoryTest.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\\Properties\\Repositories\\UnitRepository;\n\nclass UnitRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Properties\\Repositories\\UnitRepository@findOrFailForOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_findorfailfororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Properties\\Repositories\\UnitRepository@findOrFailForOrganization is PROOF_READY but no test file at tests/Unit/UnitRepositoryTest.php is in the MANUAL allowlist. 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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::getByStatusForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@getByStatusForOrganization",
        "expected_test_path": "tests/Unit/UnitRepositoryTest.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\\Properties\\Repositories\\UnitRepository;\n\nclass UnitRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Properties\\Repositories\\UnitRepository@getByStatusForOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getbystatusfororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Properties\\Repositories\\UnitRepository@getByStatusForOrganization is PROOF_READY but no test file at tests/Unit/UnitRepositoryTest.php is in the MANUAL allowlist. 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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::getForProperty",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@getForProperty",
        "expected_test_path": "tests/Unit/UnitRepositoryTest.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\\Properties\\Repositories\\UnitRepository;\n\nclass UnitRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Properties\\Repositories\\UnitRepository@getForProperty\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getforproperty_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Properties\\Repositories\\UnitRepository@getForProperty is PROOF_READY but no test file at tests/Unit/UnitRepositoryTest.php is in the MANUAL allowlist. 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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::getForTenant",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@getForTenant",
        "expected_test_path": "tests/Unit/UnitRepositoryTest.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\\Properties\\Repositories\\UnitRepository;\n\nclass UnitRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Properties\\Repositories\\UnitRepository@getForTenant\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getfortenant_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Properties\\Repositories\\UnitRepository@getForTenant is PROOF_READY but no test file at tests/Unit/UnitRepositoryTest.php is in the MANUAL allowlist. 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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::getOccupiedForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@getOccupiedForOrganization",
        "expected_test_path": "tests/Unit/UnitRepositoryTest.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\\Properties\\Repositories\\UnitRepository;\n\nclass UnitRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Properties\\Repositories\\UnitRepository@getOccupiedForOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getoccupiedfororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Properties\\Repositories\\UnitRepository@getOccupiedForOrganization is PROOF_READY but no test file at tests/Unit/UnitRepositoryTest.php is in the MANUAL allowlist. 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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::getStatisticsForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@getStatisticsForOrganization",
        "expected_test_path": "tests/Unit/UnitRepositoryTest.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\\Properties\\Repositories\\UnitRepository;\n\nclass UnitRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Properties\\Repositories\\UnitRepository@getStatisticsForOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getstatisticsfororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Properties\\Repositories\\UnitRepository@getStatisticsForOrganization is PROOF_READY but no test file at tests/Unit/UnitRepositoryTest.php is in the MANUAL allowlist. 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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::getVacantForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@getVacantForOrganization",
        "expected_test_path": "tests/Unit/UnitRepositoryTest.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\\Properties\\Repositories\\UnitRepository;\n\nclass UnitRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Properties\\Repositories\\UnitRepository@getVacantForOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getvacantfororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Properties\\Repositories\\UnitRepository@getVacantForOrganization is PROOF_READY but no test file at tests/Unit/UnitRepositoryTest.php is in the MANUAL allowlist. 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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::paginatedForOrganization",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@paginatedForOrganization",
        "expected_test_path": "tests/Unit/UnitRepositoryTest.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\\Properties\\Repositories\\UnitRepository;\n\nclass UnitRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Properties\\Repositories\\UnitRepository@paginatedForOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_paginatedfororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Properties\\Repositories\\UnitRepository@paginatedForOrganization is PROOF_READY but no test file at tests/Unit/UnitRepositoryTest.php is in the MANUAL allowlist. 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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::search",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@search",
        "expected_test_path": "tests/Unit/UnitRepositoryTest.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\\Properties\\Repositories\\UnitRepository;\n\nclass UnitRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Properties\\Repositories\\UnitRepository@search\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_search_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Properties\\Repositories\\UnitRepository@search is PROOF_READY but no test file at tests/Unit/UnitRepositoryTest.php is in the MANUAL allowlist. 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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::store",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@store",
        "expected_test_path": "tests/Unit/UnitRepositoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched"
        ],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Properties\\Repositories\\UnitRepository;\n\nclass UnitRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Properties\\Repositories\\UnitRepository@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        // Event::assertDispatched(<EventClass>::class);\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Properties\\Repositories\\UnitRepository@store is PROOF_READY but no test file at tests/Unit/UnitRepositoryTest.php is in the MANUAL allowlist. 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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::update",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@update",
        "expected_test_path": "tests/Unit/UnitRepositoryTest.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\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Properties\\Repositories\\UnitRepository;\n\nclass UnitRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Properties\\Repositories\\UnitRepository@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        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Properties\\Repositories\\UnitRepository@update is PROOF_READY but no test file at tests/Unit/UnitRepositoryTest.php is in the MANUAL allowlist. 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/Properties/Repositories/UnitRepository.php::App\\Domains\\Properties\\Repositories\\UnitRepository::vacateUnit",
        "fqmn": "App\\Domains\\Properties\\Repositories\\UnitRepository@vacateUnit",
        "expected_test_path": "tests/Unit/UnitRepositoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched"
        ],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Properties\\Repositories\\UnitRepository;\n\nclass UnitRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Properties\\Repositories\\UnitRepository@vacateUnit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_vacateunit_behaves_correctly(): void\n    {\n\n        // 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\\Domains\\Properties\\Repositories\\UnitRepository@vacateUnit is PROOF_READY but no test file at tests/Unit/UnitRepositoryTest.php is in the MANUAL allowlist. 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/Reminders/Actions/CancelRemindersForRentCycleAction.php::App\\Domains\\Reminders\\Actions\\CancelRemindersForRentCycleAction::execute",
        "fqmn": "App\\Domains\\Reminders\\Actions\\CancelRemindersForRentCycleAction@execute",
        "expected_test_path": "tests/Unit/CancelRemindersForRentCycleActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Reminders\\Actions\\CancelRemindersForRentCycleAction;\n\nclass CancelRemindersForRentCycleActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Reminders\\Actions\\CancelRemindersForRentCycleAction@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Reminders\\Actions\\CancelRemindersForRentCycleAction@execute is PROOF_READY but no test file at tests/Unit/CancelRemindersForRentCycleActionTest.php is in the MANUAL allowlist. 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/Reminders/Actions/MapReminderTypeToTemplateTypeAction.php::App\\Domains\\Reminders\\Actions\\MapReminderTypeToTemplateTypeAction::execute",
        "fqmn": "App\\Domains\\Reminders\\Actions\\MapReminderTypeToTemplateTypeAction@execute",
        "expected_test_path": "tests/Unit/MapReminderTypeToTemplateTypeActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Reminders\\Actions\\MapReminderTypeToTemplateTypeAction;\n\nclass MapReminderTypeToTemplateTypeActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Reminders\\Actions\\MapReminderTypeToTemplateTypeAction@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Reminders\\Actions\\MapReminderTypeToTemplateTypeAction@execute is PROOF_READY but no test file at tests/Unit/MapReminderTypeToTemplateTypeActionTest.php is in the MANUAL allowlist. 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/Reminders/Actions/ProcessDueRemindersAction.php::App\\Domains\\Reminders\\Actions\\ProcessDueRemindersAction::run",
        "fqmn": "App\\Domains\\Reminders\\Actions\\ProcessDueRemindersAction@run",
        "expected_test_path": "tests/Unit/ProcessDueRemindersActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Reminders\\Actions\\ProcessDueRemindersAction;\n\nclass ProcessDueRemindersActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Reminders\\Actions\\ProcessDueRemindersAction@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\\Domains\\Reminders\\Actions\\ProcessDueRemindersAction@run is PROOF_READY but no test file at tests/Unit/ProcessDueRemindersActionTest.php is in the MANUAL allowlist. 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/Reminders/Actions/ScheduleRemindersForRentCycleAction.php::App\\Domains\\Reminders\\Actions\\ScheduleRemindersForRentCycleAction::execute",
        "fqmn": "App\\Domains\\Reminders\\Actions\\ScheduleRemindersForRentCycleAction@execute",
        "expected_test_path": "tests/Unit/ScheduleRemindersForRentCycleActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Reminders\\Actions\\ScheduleRemindersForRentCycleAction;\n\nclass ScheduleRemindersForRentCycleActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Reminders\\Actions\\ScheduleRemindersForRentCycleAction@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Reminders\\Actions\\ScheduleRemindersForRentCycleAction@execute is PROOF_READY but no test file at tests/Unit/ScheduleRemindersForRentCycleActionTest.php is in the MANUAL allowlist. 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/Reminders/Services/ReminderStateMachine.php::App\\Domains\\Reminders\\Services\\ReminderStateMachine::canTransition",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderStateMachine@canTransition",
        "expected_test_path": "tests/Feature/ReminderStateMachineTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Reminders\\Services\\ReminderStateMachine;\n\nclass ReminderStateMachineTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Reminders\\Services\\ReminderStateMachine@canTransition\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_cantransition_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Reminders\\Services\\ReminderStateMachine@canTransition is PROOF_READY but no test file at tests/Feature/ReminderStateMachineTest.php is in the MANUAL allowlist. 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/Reminders/Services/ReminderStateMachine.php::App\\Domains\\Reminders\\Services\\ReminderStateMachine::getAllowedTransitions",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderStateMachine@getAllowedTransitions",
        "expected_test_path": "tests/Feature/ReminderStateMachineTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Reminders\\Services\\ReminderStateMachine;\n\nclass ReminderStateMachineTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Reminders\\Services\\ReminderStateMachine@getAllowedTransitions\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getallowedtransitions_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Reminders\\Services\\ReminderStateMachine@getAllowedTransitions is PROOF_READY but no test file at tests/Feature/ReminderStateMachineTest.php is in the MANUAL allowlist. 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/Reminders/Services/ReminderStateMachine.php::App\\Domains\\Reminders\\Services\\ReminderStateMachine::transition",
        "fqmn": "App\\Domains\\Reminders\\Services\\ReminderStateMachine@transition",
        "expected_test_path": "tests/Feature/ReminderStateMachineTest.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\\Domains\\Reminders\\Services\\ReminderStateMachine;\n\nclass ReminderStateMachineTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Reminders\\Services\\ReminderStateMachine@transition\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_transition_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\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\\Domains\\Reminders\\Services\\ReminderStateMachine@transition is PROOF_READY but no test file at tests/Feature/ReminderStateMachineTest.php is in the MANUAL allowlist. 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/Reports/Resources/ReportResource.php::App\\Domains\\Reports\\Resources\\ReportResource::getModelLabel",
        "fqmn": "App\\Domains\\Reports\\Resources\\ReportResource@getModelLabel",
        "expected_test_path": "tests/Unit/ReportResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Reports\\Resources\\ReportResource;\n\nclass ReportResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Reports\\Resources\\ReportResource@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\\Reports\\Resources\\ReportResource@getModelLabel is PROOF_READY but no test file at tests/Unit/ReportResourceTest.php is in the MANUAL allowlist. 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/Reports/Resources/ReportResource.php::App\\Domains\\Reports\\Resources\\ReportResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Reports\\Resources\\ReportResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/ReportResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Reports\\Resources\\ReportResource;\n\nclass ReportResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Reports\\Resources\\ReportResource@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\\Reports\\Resources\\ReportResource@getPluralModelLabel is PROOF_READY but no test file at tests/Unit/ReportResourceTest.php is in the MANUAL allowlist. 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/Reports/Services/DashboardService.php::App\\Domains\\Reports\\Services\\DashboardService::getAgencyIncomeStats",
        "fqmn": "App\\Domains\\Reports\\Services\\DashboardService@getAgencyIncomeStats",
        "expected_test_path": "tests/Feature/DashboardServiceTest.php",
        "intent": null,
        "intent_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\\Reports\\Services\\DashboardService;\n\nclass DashboardServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Reports\\Services\\DashboardService@getAgencyIncomeStats\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getagencyincomestats_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Reports\\Services\\DashboardService@getAgencyIncomeStats is PROOF_READY but no test file at tests/Feature/DashboardServiceTest.php is in the MANUAL allowlist. 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/Reports/Services/DashboardService.php::App\\Domains\\Reports\\Services\\DashboardService::getCollectionTrend",
        "fqmn": "App\\Domains\\Reports\\Services\\DashboardService@getCollectionTrend",
        "expected_test_path": "tests/Feature/DashboardServiceTest.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\\Domains\\Reports\\Services\\DashboardService;\n\nclass DashboardServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Reports\\Services\\DashboardService@getCollectionTrend\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getcollectiontrend_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\Reports\\Services\\DashboardService@getCollectionTrend is PROOF_READY but no test file at tests/Feature/DashboardServiceTest.php is in the MANUAL allowlist. 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/Reports/Services/DashboardService.php::App\\Domains\\Reports\\Services\\DashboardService::getPerformanceIndicators",
        "fqmn": "App\\Domains\\Reports\\Services\\DashboardService@getPerformanceIndicators",
        "expected_test_path": "tests/Feature/DashboardServiceTest.php",
        "intent": null,
        "intent_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\\Reports\\Services\\DashboardService;\n\nclass DashboardServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Reports\\Services\\DashboardService@getPerformanceIndicators\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getperformanceindicators_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Reports\\Services\\DashboardService@getPerformanceIndicators is PROOF_READY but no test file at tests/Feature/DashboardServiceTest.php is in the MANUAL allowlist. 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/Reports/Services/DashboardService.php::App\\Domains\\Reports\\Services\\DashboardService::getQuickStats",
        "fqmn": "App\\Domains\\Reports\\Services\\DashboardService@getQuickStats",
        "expected_test_path": "tests/Feature/DashboardServiceTest.php",
        "intent": null,
        "intent_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\\Reports\\Services\\DashboardService;\n\nclass DashboardServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Reports\\Services\\DashboardService@getQuickStats\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getquickstats_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Reports\\Services\\DashboardService@getQuickStats is PROOF_READY but no test file at tests/Feature/DashboardServiceTest.php is in the MANUAL allowlist. 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/Reports/Services/ReportExportService.php::App\\Domains\\Reports\\Services\\ReportExportService::exportCollectionReport",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportExportService@exportCollectionReport",
        "expected_test_path": "tests/Feature/ReportExportServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Reports\\Services\\ReportExportService;\n\nclass ReportExportServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Reports\\Services\\ReportExportService@exportCollectionReport\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_exportcollectionreport_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Reports\\Services\\ReportExportService@exportCollectionReport is PROOF_READY but no test file at tests/Feature/ReportExportServiceTest.php is in the MANUAL allowlist. 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/Reports/Services/ReportExportService.php::App\\Domains\\Reports\\Services\\ReportExportService::exportFinancialSummary",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportExportService@exportFinancialSummary",
        "expected_test_path": "tests/Feature/ReportExportServiceTest.php",
        "intent": null,
        "intent_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\\Reports\\Services\\ReportExportService;\n\nclass ReportExportServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Reports\\Services\\ReportExportService@exportFinancialSummary\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_exportfinancialsummary_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Reports\\Services\\ReportExportService@exportFinancialSummary is PROOF_READY but no test file at tests/Feature/ReportExportServiceTest.php is in the MANUAL allowlist. 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/Reports/Services/ReportExportService.php::App\\Domains\\Reports\\Services\\ReportExportService::exportOverdueReport",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportExportService@exportOverdueReport",
        "expected_test_path": "tests/Feature/ReportExportServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Reports\\Services\\ReportExportService;\n\nclass ReportExportServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Reports\\Services\\ReportExportService@exportOverdueReport\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_exportoverduereport_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Reports\\Services\\ReportExportService@exportOverdueReport is PROOF_READY but no test file at tests/Feature/ReportExportServiceTest.php is in the MANUAL allowlist. 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/Reports/Services/ReportExportService.php::App\\Domains\\Reports\\Services\\ReportExportService::exportRentRoll",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportExportService@exportRentRoll",
        "expected_test_path": "tests/Feature/ReportExportServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Reports\\Services\\ReportExportService;\n\nclass ReportExportServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Reports\\Services\\ReportExportService@exportRentRoll\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_exportrentroll_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Reports\\Services\\ReportExportService@exportRentRoll is PROOF_READY but no test file at tests/Feature/ReportExportServiceTest.php is in the MANUAL allowlist. 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/Reports/Services/ReportExportService.php::App\\Domains\\Reports\\Services\\ReportExportService::getCollectionReportHeaders",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportExportService@getCollectionReportHeaders",
        "expected_test_path": "tests/Feature/ReportExportServiceTest.php",
        "intent": null,
        "intent_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\\Reports\\Services\\ReportExportService;\n\nclass ReportExportServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Reports\\Services\\ReportExportService@getCollectionReportHeaders\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getcollectionreportheaders_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Reports\\Services\\ReportExportService@getCollectionReportHeaders is PROOF_READY but no test file at tests/Feature/ReportExportServiceTest.php is in the MANUAL allowlist. 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/Reports/Services/ReportExportService.php::App\\Domains\\Reports\\Services\\ReportExportService::getOverdueReportHeaders",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportExportService@getOverdueReportHeaders",
        "expected_test_path": "tests/Feature/ReportExportServiceTest.php",
        "intent": null,
        "intent_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\\Reports\\Services\\ReportExportService;\n\nclass ReportExportServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Reports\\Services\\ReportExportService@getOverdueReportHeaders\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getoverduereportheaders_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Reports\\Services\\ReportExportService@getOverdueReportHeaders is PROOF_READY but no test file at tests/Feature/ReportExportServiceTest.php is in the MANUAL allowlist. 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/Reports/Services/ReportExportService.php::App\\Domains\\Reports\\Services\\ReportExportService::getRentRollHeaders",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportExportService@getRentRollHeaders",
        "expected_test_path": "tests/Feature/ReportExportServiceTest.php",
        "intent": null,
        "intent_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\\Reports\\Services\\ReportExportService;\n\nclass ReportExportServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Reports\\Services\\ReportExportService@getRentRollHeaders\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getrentrollheaders_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Reports\\Services\\ReportExportService@getRentRollHeaders is PROOF_READY but no test file at tests/Feature/ReportExportServiceTest.php is in the MANUAL allowlist. 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/Reports/Services/ReportService.php::App\\Domains\\Reports\\Services\\ReportService::getLandlordSummary",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportService@getLandlordSummary",
        "expected_test_path": "tests/Feature/ReportServiceTest.php",
        "intent": null,
        "intent_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\\Reports\\Services\\ReportService;\n\nclass ReportServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Reports\\Services\\ReportService@getLandlordSummary\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getlandlordsummary_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Reports\\Services\\ReportService@getLandlordSummary is PROOF_READY but no test file at tests/Feature/ReportServiceTest.php is in the MANUAL allowlist. 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/Reports/Services/ReportService.php::App\\Domains\\Reports\\Services\\ReportService::getMonthlyCollections",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportService@getMonthlyCollections",
        "expected_test_path": "tests/Feature/ReportServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Reports\\Services\\ReportService;\n\nclass ReportServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Reports\\Services\\ReportService@getMonthlyCollections\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getmonthlycollections_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Reports\\Services\\ReportService@getMonthlyCollections is PROOF_READY but no test file at tests/Feature/ReportServiceTest.php is in the MANUAL allowlist. 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/Reports/Services/ReportService.php::App\\Domains\\Reports\\Services\\ReportService::getOccupancyTrends",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportService@getOccupancyTrends",
        "expected_test_path": "tests/Feature/ReportServiceTest.php",
        "intent": null,
        "intent_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\\Reports\\Services\\ReportService;\n\nclass ReportServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Reports\\Services\\ReportService@getOccupancyTrends\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getoccupancytrends_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Reports\\Services\\ReportService@getOccupancyTrends is PROOF_READY but no test file at tests/Feature/ReportServiceTest.php is in the MANUAL allowlist. 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/Reports/Services/ReportService.php::App\\Domains\\Reports\\Services\\ReportService::getOrganizationSummary",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportService@getOrganizationSummary",
        "expected_test_path": "tests/Feature/ReportServiceTest.php",
        "intent": null,
        "intent_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\\Reports\\Services\\ReportService;\n\nclass ReportServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Reports\\Services\\ReportService@getOrganizationSummary\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getorganizationsummary_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Reports\\Services\\ReportService@getOrganizationSummary is PROOF_READY but no test file at tests/Feature/ReportServiceTest.php is in the MANUAL allowlist. 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/Reports/Services/ReportService.php::App\\Domains\\Reports\\Services\\ReportService::getTenantSummary",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportService@getTenantSummary",
        "expected_test_path": "tests/Feature/ReportServiceTest.php",
        "intent": null,
        "intent_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\\Reports\\Services\\ReportService;\n\nclass ReportServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Reports\\Services\\ReportService@getTenantSummary\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettenantsummary_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Reports\\Services\\ReportService@getTenantSummary is PROOF_READY but no test file at tests/Feature/ReportServiceTest.php is in the MANUAL allowlist. 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/Reports/Services/ReportService.php::App\\Domains\\Reports\\Services\\ReportService::getTopProperties",
        "fqmn": "App\\Domains\\Reports\\Services\\ReportService@getTopProperties",
        "expected_test_path": "tests/Feature/ReportServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Reports\\Services\\ReportService;\n\nclass ReportServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Reports\\Services\\ReportService@getTopProperties\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettopproperties_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Reports\\Services\\ReportService@getTopProperties is PROOF_READY but no test file at tests/Feature/ReportServiceTest.php is in the MANUAL allowlist. 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::canCreate",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@canCreate",
        "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@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\\Sales\\Resources\\MyCommissionsResource@canCreate 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::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::getEloquentQuery",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getEloquentQuery",
        "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@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\n\n        // TODO: set up test data 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@getEloquentQuery 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::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/MyCommissionsResource/Pages/ViewCommission.php::App\\Domains\\Sales\\Resources\\MyCommissionsResource\\Pages\\ViewCommission::infolist",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource\\Pages\\ViewCommission@infolist",
        "expected_test_path": "tests/Unit/ViewCommissionTest.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\\Pages\\ViewCommission;\n\nclass ViewCommissionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Sales\\Resources\\MyCommissionsResource\\Pages\\ViewCommission@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\\Sales\\Resources\\MyCommissionsResource\\Pages\\ViewCommission@infolist is PROOF_READY but no test file at tests/Unit/ViewCommissionTest.php is in the MANUAL allowlist. 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/MyInvoicesResource.php::App\\Domains\\Sales\\Resources\\MyInvoicesResource::canCreate",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyInvoicesResource@canCreate",
        "expected_test_path": "tests/Unit/MyInvoicesResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\MyInvoicesResource;\n\nclass MyInvoicesResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Sales\\Resources\\MyInvoicesResource@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\\Sales\\Resources\\MyInvoicesResource@canCreate is PROOF_READY but no test file at tests/Unit/MyInvoicesResourceTest.php is in the MANUAL allowlist. 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/MyInvoicesResource.php::App\\Domains\\Sales\\Resources\\MyInvoicesResource::form",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyInvoicesResource@form",
        "expected_test_path": "tests/Unit/MyInvoicesResourceTest.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\\MyInvoicesResource;\n\nclass MyInvoicesResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Sales\\Resources\\MyInvoicesResource@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\\MyInvoicesResource@form is PROOF_READY but no test file at tests/Unit/MyInvoicesResourceTest.php is in the MANUAL allowlist. 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/MyInvoicesResource.php::App\\Domains\\Sales\\Resources\\MyInvoicesResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyInvoicesResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/MyInvoicesResourceTest.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\\Sales\\Resources\\MyInvoicesResource;\n\nclass MyInvoicesResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Sales\\Resources\\MyInvoicesResource@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\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\Sales\\Resources\\MyInvoicesResource@getEloquentQuery is PROOF_READY but no test file at tests/Unit/MyInvoicesResourceTest.php is in the MANUAL allowlist. 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/MyInvoicesResource.php::App\\Domains\\Sales\\Resources\\MyInvoicesResource::getModelLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyInvoicesResource@getModelLabel",
        "expected_test_path": "tests/Unit/MyInvoicesResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\MyInvoicesResource;\n\nclass MyInvoicesResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Sales\\Resources\\MyInvoicesResource@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\\MyInvoicesResource@getModelLabel is PROOF_READY but no test file at tests/Unit/MyInvoicesResourceTest.php is in the MANUAL allowlist. 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/MyInvoicesResource.php::App\\Domains\\Sales\\Resources\\MyInvoicesResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyInvoicesResource@getNavigationLabel",
        "expected_test_path": "tests/Unit/MyInvoicesResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\MyInvoicesResource;\n\nclass MyInvoicesResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Sales\\Resources\\MyInvoicesResource@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\\MyInvoicesResource@getNavigationLabel is PROOF_READY but no test file at tests/Unit/MyInvoicesResourceTest.php is in the MANUAL allowlist. 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/MyInvoicesResource.php::App\\Domains\\Sales\\Resources\\MyInvoicesResource::getPages",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyInvoicesResource@getPages",
        "expected_test_path": "tests/Unit/MyInvoicesResourceTest.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\\MyInvoicesResource;\n\nclass MyInvoicesResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Sales\\Resources\\MyInvoicesResource@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\\MyInvoicesResource@getPages is PROOF_READY but no test file at tests/Unit/MyInvoicesResourceTest.php is in the MANUAL allowlist. 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/MyInvoicesResource.php::App\\Domains\\Sales\\Resources\\MyInvoicesResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyInvoicesResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/MyInvoicesResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\MyInvoicesResource;\n\nclass MyInvoicesResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Sales\\Resources\\MyInvoicesResource@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\\MyInvoicesResource@getPluralModelLabel is PROOF_READY but no test file at tests/Unit/MyInvoicesResourceTest.php is in the MANUAL allowlist. 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/MyInvoicesResource.php::App\\Domains\\Sales\\Resources\\MyInvoicesResource::table",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyInvoicesResource@table",
        "expected_test_path": "tests/Unit/MyInvoicesResourceTest.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\\MyInvoicesResource;\n\nclass MyInvoicesResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Sales\\Resources\\MyInvoicesResource@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\\MyInvoicesResource@table is PROOF_READY but no test file at tests/Unit/MyInvoicesResourceTest.php is in the MANUAL allowlist. 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/MyOrganizationsResource.php::App\\Domains\\Sales\\Resources\\MyOrganizationsResource::canCreate",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@canCreate",
        "expected_test_path": "tests/Unit/MyOrganizationsResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\MyOrganizationsResource;\n\nclass MyOrganizationsResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Sales\\Resources\\MyOrganizationsResource@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\\Sales\\Resources\\MyOrganizationsResource@canCreate is PROOF_READY but no test file at tests/Unit/MyOrganizationsResourceTest.php is in the MANUAL allowlist. 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/MyOrganizationsResource.php::App\\Domains\\Sales\\Resources\\MyOrganizationsResource::form",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@form",
        "expected_test_path": "tests/Unit/MyOrganizationsResourceTest.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\\MyOrganizationsResource;\n\nclass MyOrganizationsResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Sales\\Resources\\MyOrganizationsResource@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\\MyOrganizationsResource@form is PROOF_READY but no test file at tests/Unit/MyOrganizationsResourceTest.php is in the MANUAL allowlist. 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/MyOrganizationsResource.php::App\\Domains\\Sales\\Resources\\MyOrganizationsResource::getEloquentQuery",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/MyOrganizationsResourceTest.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\\MyOrganizationsResource;\n\nclass MyOrganizationsResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Sales\\Resources\\MyOrganizationsResource@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\n\n        // TODO: set up test data 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\\MyOrganizationsResource@getEloquentQuery is PROOF_READY but no test file at tests/Unit/MyOrganizationsResourceTest.php is in the MANUAL allowlist. 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/MyOrganizationsResource.php::App\\Domains\\Sales\\Resources\\MyOrganizationsResource::getModelLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@getModelLabel",
        "expected_test_path": "tests/Unit/MyOrganizationsResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\MyOrganizationsResource;\n\nclass MyOrganizationsResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Sales\\Resources\\MyOrganizationsResource@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\\MyOrganizationsResource@getModelLabel is PROOF_READY but no test file at tests/Unit/MyOrganizationsResourceTest.php is in the MANUAL allowlist. 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/MyOrganizationsResource.php::App\\Domains\\Sales\\Resources\\MyOrganizationsResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@getNavigationLabel",
        "expected_test_path": "tests/Unit/MyOrganizationsResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\MyOrganizationsResource;\n\nclass MyOrganizationsResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Sales\\Resources\\MyOrganizationsResource@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\\MyOrganizationsResource@getNavigationLabel is PROOF_READY but no test file at tests/Unit/MyOrganizationsResourceTest.php is in the MANUAL allowlist. 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/MyOrganizationsResource.php::App\\Domains\\Sales\\Resources\\MyOrganizationsResource::getPages",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@getPages",
        "expected_test_path": "tests/Unit/MyOrganizationsResourceTest.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\\MyOrganizationsResource;\n\nclass MyOrganizationsResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Sales\\Resources\\MyOrganizationsResource@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\\MyOrganizationsResource@getPages is PROOF_READY but no test file at tests/Unit/MyOrganizationsResourceTest.php is in the MANUAL allowlist. 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/MyOrganizationsResource.php::App\\Domains\\Sales\\Resources\\MyOrganizationsResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/MyOrganizationsResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\MyOrganizationsResource;\n\nclass MyOrganizationsResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Sales\\Resources\\MyOrganizationsResource@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\\MyOrganizationsResource@getPluralModelLabel is PROOF_READY but no test file at tests/Unit/MyOrganizationsResourceTest.php is in the MANUAL allowlist. 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/MyOrganizationsResource.php::App\\Domains\\Sales\\Resources\\MyOrganizationsResource::table",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyOrganizationsResource@table",
        "expected_test_path": "tests/Unit/MyOrganizationsResourceTest.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\\MyOrganizationsResource;\n\nclass MyOrganizationsResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Sales\\Resources\\MyOrganizationsResource@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\\MyOrganizationsResource@table is PROOF_READY but no test file at tests/Unit/MyOrganizationsResourceTest.php is in the MANUAL allowlist. 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/AuditLogResource.php::App\\Domains\\SuperAdmin\\Resources\\AuditLogResource::canViewAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\AuditLogResource@canViewAny",
        "expected_test_path": "tests/Unit/AuditLogResourceTest.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\\AuditLogResource;\n\nclass AuditLogResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\AuditLogResource@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\\Domains\\SuperAdmin\\Resources\\AuditLogResource@canViewAny is PROOF_READY but no test file at tests/Unit/AuditLogResourceTest.php is in the MANUAL allowlist. 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/AuditLogResource.php::App\\Domains\\SuperAdmin\\Resources\\AuditLogResource::getEloquentQuery",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\AuditLogResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/AuditLogResourceTest.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\\AuditLogResource;\n\nclass AuditLogResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\AuditLogResource@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\n\n        // TODO: set up test data 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\\AuditLogResource@getEloquentQuery is PROOF_READY but no test file at tests/Unit/AuditLogResourceTest.php is in the MANUAL allowlist. 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/AuditLogResource.php::App\\Domains\\SuperAdmin\\Resources\\AuditLogResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\AuditLogResource@getPages",
        "expected_test_path": "tests/Unit/AuditLogResourceTest.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\\AuditLogResource;\n\nclass AuditLogResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\AuditLogResource@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\\AuditLogResource@getPages is PROOF_READY but no test file at tests/Unit/AuditLogResourceTest.php is in the MANUAL allowlist. 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/AuditLogResource.php::App\\Domains\\SuperAdmin\\Resources\\AuditLogResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\AuditLogResource@shouldRegisterNavigation",
        "expected_test_path": "tests/Unit/AuditLogResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\AuditLogResource;\n\nclass AuditLogResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\AuditLogResource@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\\AuditLogResource@shouldRegisterNavigation is PROOF_READY but no test file at tests/Unit/AuditLogResourceTest.php is in the MANUAL allowlist. 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/AuditLogResource.php::App\\Domains\\SuperAdmin\\Resources\\AuditLogResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\AuditLogResource@table",
        "expected_test_path": "tests/Unit/AuditLogResourceTest.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\\AuditLogResource;\n\nclass AuditLogResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\AuditLogResource@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\\AuditLogResource@table is PROOF_READY but no test file at tests/Unit/AuditLogResourceTest.php is in the MANUAL allowlist. 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/AuditLogResource/Pages/ListAudit.php::App\\Domains\\SuperAdmin\\Resources\\AuditLogResource\\Pages\\ListAudit::getTitle",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\AuditLogResource\\Pages\\ListAudit@getTitle",
        "expected_test_path": "tests/Unit/ListAuditTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\AuditLogResource\\Pages\\ListAudit;\n\nclass ListAuditTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\AuditLogResource\\Pages\\ListAudit@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\AuditLogResource\\Pages\\ListAudit@getTitle is PROOF_READY but no test file at tests/Unit/ListAuditTest.php is in the MANUAL allowlist. 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/BillingAdminActionsResource.php::App\\Domains\\SuperAdmin\\Resources\\BillingAdminActionsResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingAdminActionsResource@getPages",
        "expected_test_path": "tests/Unit/BillingAdminActionsResourceTest.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\\BillingAdminActionsResource;\n\nclass BillingAdminActionsResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\BillingAdminActionsResource@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\\BillingAdminActionsResource@getPages is PROOF_READY but no test file at tests/Unit/BillingAdminActionsResourceTest.php is in the MANUAL allowlist. 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/BillingAdminActionsResource/Pages/ListBillingAdminActions.php::App\\Domains\\SuperAdmin\\Resources\\BillingAdminActionsResource\\Pages\\ListBillingAdminActions::getTitle",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingAdminActionsResource\\Pages\\ListBillingAdminActions@getTitle",
        "expected_test_path": "tests/Unit/ListBillingAdminActionsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\BillingAdminActionsResource\\Pages\\ListBillingAdminActions;\n\nclass ListBillingAdminActionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\BillingAdminActionsResource\\Pages\\ListBillingAdminActions@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\BillingAdminActionsResource\\Pages\\ListBillingAdminActions@getTitle is PROOF_READY but no test file at tests/Unit/ListBillingAdminActionsTest.php is in the MANUAL allowlist. 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/Pages/ListBillingEventLogEntries.php::App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource\\Pages\\ListBillingEventLogEntries::getTitle",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource\\Pages\\ListBillingEventLogEntries@getTitle",
        "expected_test_path": "tests/Unit/ListBillingEventLogEntriesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Pages\\ListBillingEventLogEntries;\n\nclass ListBillingEventLogEntriesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource\\Pages\\ListBillingEventLogEntries@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Pages\\ListBillingEventLogEntries@getTitle is PROOF_READY but no test file at tests/Unit/ListBillingEventLogEntriesTest.php is in the MANUAL allowlist. 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/BillingReconciliationResource.php::App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource::canViewAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource@canViewAny",
        "expected_test_path": "tests/Unit/BillingReconciliationResourceTest.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\\BillingReconciliationResource;\n\nclass BillingReconciliationResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource@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\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource@canViewAny is PROOF_READY but no test file at tests/Unit/BillingReconciliationResourceTest.php is in the MANUAL allowlist. 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/BillingReconciliationResource.php::App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource@form",
        "expected_test_path": "tests/Unit/BillingReconciliationResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\BillingReconciliationResource;\n\nclass BillingReconciliationResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource@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\\BillingReconciliationResource@form is PROOF_READY but no test file at tests/Unit/BillingReconciliationResourceTest.php is in the MANUAL allowlist. 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/BillingReconciliationResource.php::App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource@getPages",
        "expected_test_path": "tests/Unit/BillingReconciliationResourceTest.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\\BillingReconciliationResource;\n\nclass BillingReconciliationResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource@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\\BillingReconciliationResource@getPages is PROOF_READY but no test file at tests/Unit/BillingReconciliationResourceTest.php is in the MANUAL allowlist. 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/BillingReconciliationResource.php::App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource@shouldRegisterNavigation",
        "expected_test_path": "tests/Unit/BillingReconciliationResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\BillingReconciliationResource;\n\nclass BillingReconciliationResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource@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\\BillingReconciliationResource@shouldRegisterNavigation is PROOF_READY but no test file at tests/Unit/BillingReconciliationResourceTest.php is in the MANUAL allowlist. 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/BillingReconciliationResource/Pages/BillingReconciliation.php::App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource\\Pages\\BillingReconciliation::mount",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource\\Pages\\BillingReconciliation@mount",
        "expected_test_path": "tests/Unit/BillingReconciliationTest.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\\BillingReconciliationResource\\Pages\\BillingReconciliation;\n\nclass BillingReconciliationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\BillingReconciliationResource\\Pages\\BillingReconciliation@mount\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_mount_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\BillingReconciliationResource\\Pages\\BillingReconciliation@mount is PROOF_READY but no test file at tests/Unit/BillingReconciliationTest.php is in the MANUAL allowlist. 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/DiscountCodeResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource@form",
        "expected_test_path": "tests/Unit/DiscountCodeResourceTest.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\\DiscountCodeResource;\n\nclass DiscountCodeResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource@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\\DiscountCodeResource@form is PROOF_READY but no test file at tests/Unit/DiscountCodeResourceTest.php is in the MANUAL allowlist. 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/DiscountCodeResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource@getPages",
        "expected_test_path": "tests/Unit/DiscountCodeResourceTest.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\\DiscountCodeResource;\n\nclass DiscountCodeResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource@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\\DiscountCodeResource@getPages is PROOF_READY but no test file at tests/Unit/DiscountCodeResourceTest.php is in the MANUAL allowlist. 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/DiscountCodeResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource::getRelations",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource@getRelations",
        "expected_test_path": "tests/Unit/DiscountCodeResourceTest.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\\DiscountCodeResource;\n\nclass DiscountCodeResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource@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\\DiscountCodeResource@getRelations is PROOF_READY but no test file at tests/Unit/DiscountCodeResourceTest.php is in the MANUAL allowlist. 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/DiscountCodeResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource@shouldRegisterNavigation",
        "expected_test_path": "tests/Unit/DiscountCodeResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\DiscountCodeResource;\n\nclass DiscountCodeResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource@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\\DiscountCodeResource@shouldRegisterNavigation is PROOF_READY but no test file at tests/Unit/DiscountCodeResourceTest.php is in the MANUAL allowlist. 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/DiscountCodeResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource@table",
        "expected_test_path": "tests/Unit/DiscountCodeResourceTest.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\\DiscountCodeResource;\n\nclass DiscountCodeResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource@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\\DiscountCodeResource@table is PROOF_READY but no test file at tests/Unit/DiscountCodeResourceTest.php is in the MANUAL allowlist. 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/DiscountCodeResource/RelationManagers/UsagesRelationManager.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource\\RelationManagers\\UsagesRelationManager::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource\\RelationManagers\\UsagesRelationManager@form",
        "expected_test_path": "tests/Unit/UsagesRelationManagerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\DiscountCodeResource\\RelationManagers\\UsagesRelationManager;\n\nclass UsagesRelationManagerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource\\RelationManagers\\UsagesRelationManager@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\\DiscountCodeResource\\RelationManagers\\UsagesRelationManager@form is PROOF_READY but no test file at tests/Unit/UsagesRelationManagerTest.php is in the MANUAL allowlist. 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/DiscountCodeResource/RelationManagers/UsagesRelationManager.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource\\RelationManagers\\UsagesRelationManager::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource\\RelationManagers\\UsagesRelationManager@table",
        "expected_test_path": "tests/Unit/UsagesRelationManagerTest.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\\DiscountCodeResource\\RelationManagers\\UsagesRelationManager;\n\nclass UsagesRelationManagerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\DiscountCodeResource\\RelationManagers\\UsagesRelationManager@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\\DiscountCodeResource\\RelationManagers\\UsagesRelationManager@table is PROOF_READY but no test file at tests/Unit/UsagesRelationManagerTest.php is in the MANUAL allowlist. 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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::canCreate",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@canCreate",
        "expected_test_path": "tests/Unit/DiscountCodeUsageResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\DiscountCodeUsageResource;\n\nclass DiscountCodeUsageResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@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\\DiscountCodeUsageResource@canCreate is PROOF_READY but no test file at tests/Unit/DiscountCodeUsageResourceTest.php is in the MANUAL allowlist. 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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::canDelete",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@canDelete",
        "expected_test_path": "tests/Unit/DiscountCodeUsageResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\DiscountCodeUsageResource;\n\nclass DiscountCodeUsageResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@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\\DiscountCodeUsageResource@canDelete is PROOF_READY but no test file at tests/Unit/DiscountCodeUsageResourceTest.php is in the MANUAL allowlist. 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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::canDeleteAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@canDeleteAny",
        "expected_test_path": "tests/Unit/DiscountCodeUsageResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\DiscountCodeUsageResource;\n\nclass DiscountCodeUsageResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@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\\DiscountCodeUsageResource@canDeleteAny is PROOF_READY but no test file at tests/Unit/DiscountCodeUsageResourceTest.php is in the MANUAL allowlist. 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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::canEdit",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@canEdit",
        "expected_test_path": "tests/Unit/DiscountCodeUsageResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\DiscountCodeUsageResource;\n\nclass DiscountCodeUsageResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@canEdit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_canedit_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\DiscountCodeUsageResource@canEdit is PROOF_READY but no test file at tests/Unit/DiscountCodeUsageResourceTest.php is in the MANUAL allowlist. 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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::canView",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@canView",
        "expected_test_path": "tests/Unit/DiscountCodeUsageResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\DiscountCodeUsageResource;\n\nclass DiscountCodeUsageResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@canView\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_canview_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\DiscountCodeUsageResource@canView is PROOF_READY but no test file at tests/Unit/DiscountCodeUsageResourceTest.php is in the MANUAL allowlist. 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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::canViewAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@canViewAny",
        "expected_test_path": "tests/Unit/DiscountCodeUsageResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\DiscountCodeUsageResource;\n\nclass DiscountCodeUsageResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@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\\DiscountCodeUsageResource@canViewAny is PROOF_READY but no test file at tests/Unit/DiscountCodeUsageResourceTest.php is in the MANUAL allowlist. 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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@form",
        "expected_test_path": "tests/Unit/DiscountCodeUsageResourceTest.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\\DiscountCodeUsageResource;\n\nclass DiscountCodeUsageResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@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\\DiscountCodeUsageResource@form is PROOF_READY but no test file at tests/Unit/DiscountCodeUsageResourceTest.php is in the MANUAL allowlist. 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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::getEloquentQuery",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/DiscountCodeUsageResourceTest.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\\DiscountCodeUsageResource;\n\nclass DiscountCodeUsageResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@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\n\n        // TODO: set up test data 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\\DiscountCodeUsageResource@getEloquentQuery is PROOF_READY but no test file at tests/Unit/DiscountCodeUsageResourceTest.php is in the MANUAL allowlist. 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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@getPages",
        "expected_test_path": "tests/Unit/DiscountCodeUsageResourceTest.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\\DiscountCodeUsageResource;\n\nclass DiscountCodeUsageResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@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\\DiscountCodeUsageResource@getPages is PROOF_READY but no test file at tests/Unit/DiscountCodeUsageResourceTest.php is in the MANUAL allowlist. 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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::getRelations",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@getRelations",
        "expected_test_path": "tests/Unit/DiscountCodeUsageResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\DiscountCodeUsageResource;\n\nclass DiscountCodeUsageResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\DiscountCodeUsageResource@getRelations is PROOF_READY but no test file at tests/Unit/DiscountCodeUsageResourceTest.php is in the MANUAL allowlist. 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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@shouldRegisterNavigation",
        "expected_test_path": "tests/Unit/DiscountCodeUsageResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\DiscountCodeUsageResource;\n\nclass DiscountCodeUsageResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@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\\DiscountCodeUsageResource@shouldRegisterNavigation is PROOF_READY but no test file at tests/Unit/DiscountCodeUsageResourceTest.php is in the MANUAL allowlist. 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/DiscountCodeUsageResource.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@table",
        "expected_test_path": "tests/Unit/DiscountCodeUsageResourceTest.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\\DiscountCodeUsageResource;\n\nclass DiscountCodeUsageResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource@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\\DiscountCodeUsageResource@table is PROOF_READY but no test file at tests/Unit/DiscountCodeUsageResourceTest.php is in the MANUAL allowlist. 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/DiscountCodeUsageResource/Pages/ViewDiscountCodeUsage.php::App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource\\Pages\\ViewDiscountCodeUsage::infolist",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource\\Pages\\ViewDiscountCodeUsage@infolist",
        "expected_test_path": "tests/Unit/ViewDiscountCodeUsageTest.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\\DiscountCodeUsageResource\\Pages\\ViewDiscountCodeUsage;\n\nclass ViewDiscountCodeUsageTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\DiscountCodeUsageResource\\Pages\\ViewDiscountCodeUsage@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\\DiscountCodeUsageResource\\Pages\\ViewDiscountCodeUsage@infolist is PROOF_READY but no test file at tests/Unit/ViewDiscountCodeUsageTest.php is in the MANUAL allowlist. 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/GlobalUserResource.php::App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource@form",
        "expected_test_path": "tests/Unit/GlobalUserResourceTest.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\\GlobalUserResource;\n\nclass GlobalUserResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource@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\\GlobalUserResource@form is PROOF_READY but no test file at tests/Unit/GlobalUserResourceTest.php is in the MANUAL allowlist. 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/GlobalUserResource.php::App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource@getPages",
        "expected_test_path": "tests/Unit/GlobalUserResourceTest.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\\GlobalUserResource;\n\nclass GlobalUserResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource@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\\GlobalUserResource@getPages is PROOF_READY but no test file at tests/Unit/GlobalUserResourceTest.php is in the MANUAL allowlist. 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/GlobalUserResource.php::App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource@shouldRegisterNavigation",
        "expected_test_path": "tests/Unit/GlobalUserResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\GlobalUserResource;\n\nclass GlobalUserResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource@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\\GlobalUserResource@shouldRegisterNavigation is PROOF_READY but no test file at tests/Unit/GlobalUserResourceTest.php is in the MANUAL allowlist. 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/GlobalUserResource.php::App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource@table",
        "expected_test_path": "tests/Unit/GlobalUserResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_http_called"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource;\n\nclass GlobalUserResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource@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        // Http::assertSent(fn ($req) => $req->url() === '<url>');\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource@table is PROOF_READY but no test file at tests/Unit/GlobalUserResourceTest.php is in the MANUAL allowlist. 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/GlobalUserResource/Pages/ListUsers.php::App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource\\Pages\\ListUsers::getTitle",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource\\Pages\\ListUsers@getTitle",
        "expected_test_path": "tests/Unit/ListUsersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\GlobalUserResource\\Pages\\ListUsers;\n\nclass ListUsersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\GlobalUserResource\\Pages\\ListUsers@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\GlobalUserResource\\Pages\\ListUsers@getTitle is PROOF_READY but no test file at tests/Unit/ListUsersTest.php is in the MANUAL allowlist. 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/LeadResource.php::App\\Domains\\SuperAdmin\\Resources\\LeadResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\LeadResource@form",
        "expected_test_path": "tests/Unit/LeadResourceTest.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\\LeadResource;\n\nclass LeadResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\LeadResource@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\\LeadResource@form is PROOF_READY but no test file at tests/Unit/LeadResourceTest.php is in the MANUAL allowlist. 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/LeadResource.php::App\\Domains\\SuperAdmin\\Resources\\LeadResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\LeadResource@getPages",
        "expected_test_path": "tests/Unit/LeadResourceTest.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\\LeadResource;\n\nclass LeadResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\LeadResource@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\\LeadResource@getPages is PROOF_READY but no test file at tests/Unit/LeadResourceTest.php is in the MANUAL allowlist. 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/LeadResource.php::App\\Domains\\SuperAdmin\\Resources\\LeadResource::getRelations",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\LeadResource@getRelations",
        "expected_test_path": "tests/Unit/LeadResourceTest.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\\LeadResource;\n\nclass LeadResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\LeadResource@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\\LeadResource@getRelations is PROOF_READY but no test file at tests/Unit/LeadResourceTest.php is in the MANUAL allowlist. 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/LeadResource.php::App\\Domains\\SuperAdmin\\Resources\\LeadResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\LeadResource@table",
        "expected_test_path": "tests/Unit/LeadResourceTest.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\\LeadResource;\n\nclass LeadResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\LeadResource@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\\LeadResource@table is PROOF_READY but no test file at tests/Unit/LeadResourceTest.php is in the MANUAL allowlist. 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/MessagePackageResource.php::App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource@form",
        "expected_test_path": "tests/Unit/MessagePackageResourceTest.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\\MessagePackageResource;\n\nclass MessagePackageResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource@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\\MessagePackageResource@form is PROOF_READY but no test file at tests/Unit/MessagePackageResourceTest.php is in the MANUAL allowlist. 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/MessagePackageResource.php::App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource@getPages",
        "expected_test_path": "tests/Unit/MessagePackageResourceTest.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\\MessagePackageResource;\n\nclass MessagePackageResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource@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\\MessagePackageResource@getPages is PROOF_READY but no test file at tests/Unit/MessagePackageResourceTest.php is in the MANUAL allowlist. 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/MessagePackageResource.php::App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource::getRelations",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource@getRelations",
        "expected_test_path": "tests/Unit/MessagePackageResourceTest.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\\MessagePackageResource;\n\nclass MessagePackageResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource@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\\MessagePackageResource@getRelations is PROOF_READY but no test file at tests/Unit/MessagePackageResourceTest.php is in the MANUAL allowlist. 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/MessagePackageResource.php::App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource@shouldRegisterNavigation",
        "expected_test_path": "tests/Unit/MessagePackageResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\MessagePackageResource;\n\nclass MessagePackageResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource@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\\MessagePackageResource@shouldRegisterNavigation is PROOF_READY but no test file at tests/Unit/MessagePackageResourceTest.php is in the MANUAL allowlist. 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/MessagePackageResource.php::App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource@table",
        "expected_test_path": "tests/Unit/MessagePackageResourceTest.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\\MessagePackageResource;\n\nclass MessagePackageResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\MessagePackageResource@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\\MessagePackageResource@table is PROOF_READY but no test file at tests/Unit/MessagePackageResourceTest.php is in the MANUAL allowlist. 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/NotificationInsightsResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource::canViewAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource@canViewAny",
        "expected_test_path": "tests/Unit/NotificationInsightsResourceTest.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\\NotificationInsightsResource;\n\nclass NotificationInsightsResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource@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\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource@canViewAny is PROOF_READY but no test file at tests/Unit/NotificationInsightsResourceTest.php is in the MANUAL allowlist. 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/NotificationInsightsResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource@form",
        "expected_test_path": "tests/Unit/NotificationInsightsResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\NotificationInsightsResource;\n\nclass NotificationInsightsResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource@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\\NotificationInsightsResource@form is PROOF_READY but no test file at tests/Unit/NotificationInsightsResourceTest.php is in the MANUAL allowlist. 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/NotificationInsightsResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource::getEloquentQuery",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/NotificationInsightsResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\NotificationInsightsResource;\n\nclass NotificationInsightsResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource@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\\NotificationInsightsResource@getEloquentQuery is PROOF_READY but no test file at tests/Unit/NotificationInsightsResourceTest.php is in the MANUAL allowlist. 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/NotificationInsightsResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource@getPages",
        "expected_test_path": "tests/Unit/NotificationInsightsResourceTest.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\\NotificationInsightsResource;\n\nclass NotificationInsightsResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource@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\\NotificationInsightsResource@getPages is PROOF_READY but no test file at tests/Unit/NotificationInsightsResourceTest.php is in the MANUAL allowlist. 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/NotificationInsightsResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource@shouldRegisterNavigation",
        "expected_test_path": "tests/Unit/NotificationInsightsResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\NotificationInsightsResource;\n\nclass NotificationInsightsResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource@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\\NotificationInsightsResource@shouldRegisterNavigation is PROOF_READY but no test file at tests/Unit/NotificationInsightsResourceTest.php is in the MANUAL allowlist. 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/NotificationInsightsResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource@table",
        "expected_test_path": "tests/Unit/NotificationInsightsResourceTest.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\\NotificationInsightsResource;\n\nclass NotificationInsightsResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\NotificationInsightsResource@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\\NotificationInsightsResource@table is PROOF_READY but no test file at tests/Unit/NotificationInsightsResourceTest.php is in the MANUAL allowlist. 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/OrganizationManagementResource.php::App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource@form",
        "expected_test_path": "tests/Unit/OrganizationManagementResourceTest.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\\OrganizationManagementResource;\n\nclass OrganizationManagementResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource@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\\OrganizationManagementResource@form is PROOF_READY but no test file at tests/Unit/OrganizationManagementResourceTest.php is in the MANUAL allowlist. 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/OrganizationManagementResource.php::App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource::getEloquentQuery",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/OrganizationManagementResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OrganizationManagementResource;\n\nclass OrganizationManagementResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource@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\\OrganizationManagementResource@getEloquentQuery is PROOF_READY but no test file at tests/Unit/OrganizationManagementResourceTest.php is in the MANUAL allowlist. 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/OrganizationManagementResource.php::App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource@getPages",
        "expected_test_path": "tests/Unit/OrganizationManagementResourceTest.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\\OrganizationManagementResource;\n\nclass OrganizationManagementResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource@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\\OrganizationManagementResource@getPages is PROOF_READY but no test file at tests/Unit/OrganizationManagementResourceTest.php is in the MANUAL allowlist. 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/OrganizationManagementResource.php::App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource@shouldRegisterNavigation",
        "expected_test_path": "tests/Unit/OrganizationManagementResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OrganizationManagementResource;\n\nclass OrganizationManagementResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource@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\\OrganizationManagementResource@shouldRegisterNavigation is PROOF_READY but no test file at tests/Unit/OrganizationManagementResourceTest.php is in the MANUAL allowlist. 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/OrganizationManagementResource.php::App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource@table",
        "expected_test_path": "tests/Unit/OrganizationManagementResourceTest.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\\OrganizationManagementResource;\n\nclass OrganizationManagementResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\OrganizationManagementResource@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\\OrganizationManagementResource@table is PROOF_READY but no test file at tests/Unit/OrganizationManagementResourceTest.php is in the MANUAL allowlist. 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::canCreate",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@canCreate",
        "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@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\\SalesCommissionResource@canCreate 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::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": [],
        "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\n        // TODO: set up test data 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::getEloquentQuery",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getEloquentQuery",
        "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@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\n\n        // TODO: set up test data 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@getEloquentQuery 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::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": [],
        "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\n        // TODO: set up test data 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/SubscriptionBillingTimelineResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource::canViewAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@canViewAny",
        "expected_test_path": "tests/Unit/SubscriptionBillingTimelineResourceTest.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\\SubscriptionBillingTimelineResource;\n\nclass SubscriptionBillingTimelineResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@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\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@canViewAny is PROOF_READY but no test file at tests/Unit/SubscriptionBillingTimelineResourceTest.php is in the MANUAL allowlist. 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/SubscriptionBillingTimelineResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource::getModelLabel",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@getModelLabel",
        "expected_test_path": "tests/Unit/SubscriptionBillingTimelineResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\SubscriptionBillingTimelineResource;\n\nclass SubscriptionBillingTimelineResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@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\\SubscriptionBillingTimelineResource@getModelLabel is PROOF_READY but no test file at tests/Unit/SubscriptionBillingTimelineResourceTest.php is in the MANUAL allowlist. 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/SubscriptionBillingTimelineResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@getPages",
        "expected_test_path": "tests/Unit/SubscriptionBillingTimelineResourceTest.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\\SubscriptionBillingTimelineResource;\n\nclass SubscriptionBillingTimelineResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@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\\SubscriptionBillingTimelineResource@getPages is PROOF_READY but no test file at tests/Unit/SubscriptionBillingTimelineResourceTest.php is in the MANUAL allowlist. 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/SubscriptionBillingTimelineResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/SubscriptionBillingTimelineResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\SubscriptionBillingTimelineResource;\n\nclass SubscriptionBillingTimelineResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@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\\SubscriptionBillingTimelineResource@getPluralModelLabel is PROOF_READY but no test file at tests/Unit/SubscriptionBillingTimelineResourceTest.php is in the MANUAL allowlist. 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/SubscriptionBillingTimelineResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource::getRelations",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@getRelations",
        "expected_test_path": "tests/Unit/SubscriptionBillingTimelineResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\SubscriptionBillingTimelineResource;\n\nclass SubscriptionBillingTimelineResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\SubscriptionBillingTimelineResource@getRelations is PROOF_READY but no test file at tests/Unit/SubscriptionBillingTimelineResourceTest.php is in the MANUAL allowlist. 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/SubscriptionBillingTimelineResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@shouldRegisterNavigation",
        "expected_test_path": "tests/Unit/SubscriptionBillingTimelineResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\SubscriptionBillingTimelineResource;\n\nclass SubscriptionBillingTimelineResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@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\\SubscriptionBillingTimelineResource@shouldRegisterNavigation is PROOF_READY but no test file at tests/Unit/SubscriptionBillingTimelineResourceTest.php is in the MANUAL allowlist. 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/SubscriptionBillingTimelineResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@table",
        "expected_test_path": "tests/Unit/SubscriptionBillingTimelineResourceTest.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\\SubscriptionBillingTimelineResource;\n\nclass SubscriptionBillingTimelineResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\SubscriptionBillingTimelineResource@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\\SubscriptionBillingTimelineResource@table is PROOF_READY but no test file at tests/Unit/SubscriptionBillingTimelineResourceTest.php is in the MANUAL allowlist. 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/SubscriptionTierResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@form",
        "expected_test_path": "tests/Unit/SubscriptionTierResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [
          "assert_http_called"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource;\n\nclass SubscriptionTierResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@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\n        // TODO: set up test data here\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        // Http::assertSent(fn ($req) => $req->url() === '<url>');\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@form is PROOF_READY but no test file at tests/Unit/SubscriptionTierResourceTest.php is in the MANUAL allowlist. 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/SubscriptionTierResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource::getModelLabel",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@getModelLabel",
        "expected_test_path": "tests/Unit/SubscriptionTierResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\SubscriptionTierResource;\n\nclass SubscriptionTierResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@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\\SubscriptionTierResource@getModelLabel is PROOF_READY but no test file at tests/Unit/SubscriptionTierResourceTest.php is in the MANUAL allowlist. 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/SubscriptionTierResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@getPages",
        "expected_test_path": "tests/Unit/SubscriptionTierResourceTest.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\\SubscriptionTierResource;\n\nclass SubscriptionTierResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@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\\SubscriptionTierResource@getPages is PROOF_READY but no test file at tests/Unit/SubscriptionTierResourceTest.php is in the MANUAL allowlist. 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/SubscriptionTierResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/SubscriptionTierResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\SubscriptionTierResource;\n\nclass SubscriptionTierResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@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\\SubscriptionTierResource@getPluralModelLabel is PROOF_READY but no test file at tests/Unit/SubscriptionTierResourceTest.php is in the MANUAL allowlist. 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/SubscriptionTierResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource::getRelations",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@getRelations",
        "expected_test_path": "tests/Unit/SubscriptionTierResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\SubscriptionTierResource;\n\nclass SubscriptionTierResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\SubscriptionTierResource@getRelations is PROOF_READY but no test file at tests/Unit/SubscriptionTierResourceTest.php is in the MANUAL allowlist. 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/SubscriptionTierResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@shouldRegisterNavigation",
        "expected_test_path": "tests/Unit/SubscriptionTierResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\SubscriptionTierResource;\n\nclass SubscriptionTierResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@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\\SubscriptionTierResource@shouldRegisterNavigation is PROOF_READY but no test file at tests/Unit/SubscriptionTierResourceTest.php is in the MANUAL allowlist. 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/SubscriptionTierResource.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@table",
        "expected_test_path": "tests/Unit/SubscriptionTierResourceTest.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\\SubscriptionTierResource;\n\nclass SubscriptionTierResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource@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\\SubscriptionTierResource@table is PROOF_READY but no test file at tests/Unit/SubscriptionTierResourceTest.php is in the MANUAL allowlist. 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/SubscriptionTierResource/Pages/ManageTiers.php::App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource\\Pages\\ManageTiers::getTitle",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource\\Pages\\ManageTiers@getTitle",
        "expected_test_path": "tests/Unit/ManageTiersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\SubscriptionTierResource\\Pages\\ManageTiers;\n\nclass ManageTiersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\SubscriptionTierResource\\Pages\\ManageTiers@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\SubscriptionTierResource\\Pages\\ManageTiers@getTitle is PROOF_READY but no test file at tests/Unit/ManageTiersTest.php is in the MANUAL allowlist. 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/SupportTicketResource.php::App\\Domains\\SuperAdmin\\Resources\\SupportTicketResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SupportTicketResource@form",
        "expected_test_path": "tests/Unit/SupportTicketResourceTest.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\\SupportTicketResource;\n\nclass SupportTicketResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\SupportTicketResource@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\\SupportTicketResource@form is PROOF_READY but no test file at tests/Unit/SupportTicketResourceTest.php is in the MANUAL allowlist. 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/SupportTicketResource.php::App\\Domains\\SuperAdmin\\Resources\\SupportTicketResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SupportTicketResource@getPages",
        "expected_test_path": "tests/Unit/SupportTicketResourceTest.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\\SupportTicketResource;\n\nclass SupportTicketResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\SupportTicketResource@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\\SupportTicketResource@getPages is PROOF_READY but no test file at tests/Unit/SupportTicketResourceTest.php is in the MANUAL allowlist. 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/SupportTicketResource.php::App\\Domains\\SuperAdmin\\Resources\\SupportTicketResource::getRelations",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SupportTicketResource@getRelations",
        "expected_test_path": "tests/Unit/SupportTicketResourceTest.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\\SupportTicketResource;\n\nclass SupportTicketResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\SupportTicketResource@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\\SupportTicketResource@getRelations is PROOF_READY but no test file at tests/Unit/SupportTicketResourceTest.php is in the MANUAL allowlist. 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/SupportTicketResource.php::App\\Domains\\SuperAdmin\\Resources\\SupportTicketResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SupportTicketResource@table",
        "expected_test_path": "tests/Unit/SupportTicketResourceTest.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\\SupportTicketResource;\n\nclass SupportTicketResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\SupportTicketResource@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\\SupportTicketResource@table is PROOF_READY but no test file at tests/Unit/SupportTicketResourceTest.php is in the MANUAL allowlist. 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/TrackingLinkResource/Pages/ViewTrackingLink.php::App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource\\Pages\\ViewTrackingLink::infolist",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource\\Pages\\ViewTrackingLink@infolist",
        "expected_test_path": "tests/Unit/ViewTrackingLinkTest.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\\TrackingLinkResource\\Pages\\ViewTrackingLink;\n\nclass ViewTrackingLinkTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\TrackingLinkResource\\Pages\\ViewTrackingLink@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\\TrackingLinkResource\\Pages\\ViewTrackingLink@infolist is PROOF_READY but no test file at tests/Unit/ViewTrackingLinkTest.php is in the MANUAL allowlist. 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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::canCreate",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@canCreate",
        "expected_test_path": "tests/Unit/TrackingResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\TrackingResource;\n\nclass TrackingResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\TrackingResource@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\\TrackingResource@canCreate is PROOF_READY but no test file at tests/Unit/TrackingResourceTest.php is in the MANUAL allowlist. 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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::canDelete",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@canDelete",
        "expected_test_path": "tests/Unit/TrackingResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\TrackingResource;\n\nclass TrackingResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\TrackingResource@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\\TrackingResource@canDelete is PROOF_READY but no test file at tests/Unit/TrackingResourceTest.php is in the MANUAL allowlist. 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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::canDeleteAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@canDeleteAny",
        "expected_test_path": "tests/Unit/TrackingResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\TrackingResource;\n\nclass TrackingResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\TrackingResource@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\\TrackingResource@canDeleteAny is PROOF_READY but no test file at tests/Unit/TrackingResourceTest.php is in the MANUAL allowlist. 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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::canEdit",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@canEdit",
        "expected_test_path": "tests/Unit/TrackingResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\TrackingResource;\n\nclass TrackingResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\TrackingResource@canEdit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_canedit_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\TrackingResource@canEdit is PROOF_READY but no test file at tests/Unit/TrackingResourceTest.php is in the MANUAL allowlist. 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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::canView",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@canView",
        "expected_test_path": "tests/Unit/TrackingResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\TrackingResource;\n\nclass TrackingResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\TrackingResource@canView\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_canview_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\TrackingResource@canView is PROOF_READY but no test file at tests/Unit/TrackingResourceTest.php is in the MANUAL allowlist. 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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::canViewAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@canViewAny",
        "expected_test_path": "tests/Unit/TrackingResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\TrackingResource;\n\nclass TrackingResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\TrackingResource@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\\TrackingResource@canViewAny is PROOF_READY but no test file at tests/Unit/TrackingResourceTest.php is in the MANUAL allowlist. 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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@form",
        "expected_test_path": "tests/Unit/TrackingResourceTest.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\\TrackingResource;\n\nclass TrackingResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\TrackingResource@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\\TrackingResource@form is PROOF_READY but no test file at tests/Unit/TrackingResourceTest.php is in the MANUAL allowlist. 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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@getPages",
        "expected_test_path": "tests/Unit/TrackingResourceTest.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\\TrackingResource;\n\nclass TrackingResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\TrackingResource@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\\TrackingResource@getPages is PROOF_READY but no test file at tests/Unit/TrackingResourceTest.php is in the MANUAL allowlist. 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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::getRelations",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@getRelations",
        "expected_test_path": "tests/Unit/TrackingResourceTest.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\\TrackingResource;\n\nclass TrackingResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\TrackingResource@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\\TrackingResource@getRelations is PROOF_READY but no test file at tests/Unit/TrackingResourceTest.php is in the MANUAL allowlist. 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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@shouldRegisterNavigation",
        "expected_test_path": "tests/Unit/TrackingResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\TrackingResource;\n\nclass TrackingResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\TrackingResource@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\\TrackingResource@shouldRegisterNavigation is PROOF_READY but no test file at tests/Unit/TrackingResourceTest.php is in the MANUAL allowlist. 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/TrackingResource.php::App\\Domains\\SuperAdmin\\Resources\\TrackingResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\TrackingResource@table",
        "expected_test_path": "tests/Unit/TrackingResourceTest.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\\TrackingResource;\n\nclass TrackingResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\TrackingResource@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\\TrackingResource@table is PROOF_READY but no test file at tests/Unit/TrackingResourceTest.php is in the MANUAL allowlist. 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/WebhookEventAttemptResource.php::App\\Domains\\SuperAdmin\\Resources\\WebhookEventAttemptResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\WebhookEventAttemptResource@getPages",
        "expected_test_path": "tests/Unit/WebhookEventAttemptResourceTest.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\\WebhookEventAttemptResource;\n\nclass WebhookEventAttemptResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\WebhookEventAttemptResource@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\\WebhookEventAttemptResource@getPages is PROOF_READY but no test file at tests/Unit/WebhookEventAttemptResourceTest.php is in the MANUAL allowlist. 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/WebhookEventAttemptResource/Pages/ListWebhookEventAttempts.php::App\\Domains\\SuperAdmin\\Resources\\WebhookEventAttemptResource\\Pages\\ListWebhookEventAttempts::getTitle",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\WebhookEventAttemptResource\\Pages\\ListWebhookEventAttempts@getTitle",
        "expected_test_path": "tests/Unit/ListWebhookEventAttemptsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\WebhookEventAttemptResource\\Pages\\ListWebhookEventAttempts;\n\nclass ListWebhookEventAttemptsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\WebhookEventAttemptResource\\Pages\\ListWebhookEventAttempts@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\WebhookEventAttemptResource\\Pages\\ListWebhookEventAttempts@getTitle is PROOF_READY but no test file at tests/Unit/ListWebhookEventAttemptsTest.php is in the MANUAL allowlist. 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/WebhookEventResource.php::App\\Domains\\SuperAdmin\\Resources\\WebhookEventResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\WebhookEventResource@getPages",
        "expected_test_path": "tests/Unit/WebhookEventResourceTest.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\\WebhookEventResource;\n\nclass WebhookEventResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\WebhookEventResource@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\\WebhookEventResource@getPages is PROOF_READY but no test file at tests/Unit/WebhookEventResourceTest.php is in the MANUAL allowlist. 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/WebhookEventResource/Pages/ListWebhookEvents.php::App\\Domains\\SuperAdmin\\Resources\\WebhookEventResource\\Pages\\ListWebhookEvents::getTitle",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\WebhookEventResource\\Pages\\ListWebhookEvents@getTitle",
        "expected_test_path": "tests/Unit/ListWebhookEventsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\WebhookEventResource\\Pages\\ListWebhookEvents;\n\nclass ListWebhookEventsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\WebhookEventResource\\Pages\\ListWebhookEvents@getTitle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettitle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\WebhookEventResource\\Pages\\ListWebhookEvents@getTitle is PROOF_READY but no test file at tests/Unit/ListWebhookEventsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Help",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Helpers/CurrencyHelper.php::App\\Helpers\\CurrencyHelper::getCurrency",
        "fqmn": "App\\Helpers\\CurrencyHelper@getCurrency",
        "expected_test_path": "tests/Unit/CurrencyHelperTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Helpers\\CurrencyHelper;\n\nclass CurrencyHelperTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Helpers\\CurrencyHelper@getCurrency\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getcurrency_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Helpers\\CurrencyHelper@getCurrency is PROOF_READY but no test file at tests/Unit/CurrencyHelperTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Help",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Helpers/CurrencyHelper.php::App\\Helpers\\CurrencyHelper::getOrganizationCurrency",
        "fqmn": "App\\Helpers\\CurrencyHelper@getOrganizationCurrency",
        "expected_test_path": "tests/Unit/CurrencyHelperTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Helpers\\CurrencyHelper;\n\nclass CurrencyHelperTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Helpers\\CurrencyHelper@getOrganizationCurrency\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getorganizationcurrency_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Helpers\\CurrencyHelper@getOrganizationCurrency is PROOF_READY but no test file at tests/Unit/CurrencyHelperTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Admin/PlanVersionController.php::App\\Http\\Controllers\\Admin\\PlanVersionController::index",
        "fqmn": "App\\Http\\Controllers\\Admin\\PlanVersionController@index",
        "expected_test_path": "tests/Feature/PlanVersionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Admin\\PlanVersionController;\n\nclass PlanVersionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Admin\\PlanVersionController@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\\Admin\\PlanVersionController@index 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/Admin/PlanVersionController.php::App\\Http\\Controllers\\Admin\\PlanVersionController::show",
        "fqmn": "App\\Http\\Controllers\\Admin\\PlanVersionController@show",
        "expected_test_path": "tests/Feature/PlanVersionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Admin\\PlanVersionController;\n\nclass PlanVersionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Admin\\PlanVersionController@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\\Admin\\PlanVersionController@show 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/Admin/PlanVersionController.php::App\\Http\\Controllers\\Admin\\PlanVersionController::store",
        "fqmn": "App\\Http\\Controllers\\Admin\\PlanVersionController@store",
        "expected_test_path": "tests/Feature/PlanVersionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Admin\\PlanVersionController;\n\nclass PlanVersionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Admin\\PlanVersionController@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\\Admin\\PlanVersionController@store 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/Admin/PlanVersionController.php::App\\Http\\Controllers\\Admin\\PlanVersionController::update",
        "fqmn": "App\\Http\\Controllers\\Admin\\PlanVersionController@update",
        "expected_test_path": "tests/Feature/PlanVersionControllerTest.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\\Admin\\PlanVersionController;\n\nclass PlanVersionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Admin\\PlanVersionController@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\\Admin\\PlanVersionController@update 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/Admin/PlanVersionFeatureController.php::App\\Http\\Controllers\\Admin\\PlanVersionFeatureController::store",
        "fqmn": "App\\Http\\Controllers\\Admin\\PlanVersionFeatureController@store",
        "expected_test_path": "tests/Feature/PlanVersionFeatureControllerTest.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\\Admin\\PlanVersionFeatureController;\n\nclass PlanVersionFeatureControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Admin\\PlanVersionFeatureController@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\\Admin\\PlanVersionFeatureController@store is PROOF_READY but no test file at tests/Feature/PlanVersionFeatureControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Admin/PlanVersionFeatureController.php::App\\Http\\Controllers\\Admin\\PlanVersionFeatureController::update",
        "fqmn": "App\\Http\\Controllers\\Admin\\PlanVersionFeatureController@update",
        "expected_test_path": "tests/Feature/PlanVersionFeatureControllerTest.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\\Admin\\PlanVersionFeatureController;\n\nclass PlanVersionFeatureControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Admin\\PlanVersionFeatureController@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\\Admin\\PlanVersionFeatureController@update is PROOF_READY but no test file at tests/Feature/PlanVersionFeatureControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Admin/ZohoController.php::App\\Http\\Controllers\\Admin\\ZohoController::__construct",
        "fqmn": "App\\Http\\Controllers\\Admin\\ZohoController@__construct",
        "expected_test_path": "tests/Feature/ZohoControllerTest.php",
        "intent": null,
        "intent_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\\Admin\\ZohoController;\n\nclass ZohoControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Admin\\ZohoController@__construct\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test___construct_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\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\\Admin\\ZohoController@__construct is PROOF_READY but no test file at tests/Feature/ZohoControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Admin/ZohoController.php::App\\Http\\Controllers\\Admin\\ZohoController::callback",
        "fqmn": "App\\Http\\Controllers\\Admin\\ZohoController@callback",
        "expected_test_path": "tests/Feature/ZohoControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_http_called"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Admin\\ZohoController;\n\nclass ZohoControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Admin\\ZohoController@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        // Http::assertSent(fn ($req) => $req->url() === '<url>');\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Admin\\ZohoController@callback is PROOF_READY but no test file at tests/Feature/ZohoControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Admin/ZohoController.php::App\\Http\\Controllers\\Admin\\ZohoController::connect",
        "fqmn": "App\\Http\\Controllers\\Admin\\ZohoController@connect",
        "expected_test_path": "tests/Feature/ZohoControllerTest.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\\Admin\\ZohoController;\n\nclass ZohoControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Admin\\ZohoController@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\\Admin\\ZohoController@connect is PROOF_READY but no test file at tests/Feature/ZohoControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Admin/ZohoController.php::App\\Http\\Controllers\\Admin\\ZohoController::index",
        "fqmn": "App\\Http\\Controllers\\Admin\\ZohoController@index",
        "expected_test_path": "tests/Feature/ZohoControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Admin\\ZohoController;\n\nclass ZohoControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Admin\\ZohoController@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\\Admin\\ZohoController@index is PROOF_READY but no test file at tests/Feature/ZohoControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/AgencyWhatsAppProfileController.php::App\\Http\\Controllers\\AgencyWhatsAppProfileController::show",
        "fqmn": "App\\Http\\Controllers\\AgencyWhatsAppProfileController@show",
        "expected_test_path": "tests/Feature/AgencyWhatsAppProfileControllerTest.php",
        "intent": null,
        "intent_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\\AgencyWhatsAppProfileController;\n\nclass AgencyWhatsAppProfileControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\AgencyWhatsAppProfileController@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\\AgencyWhatsAppProfileController@show is PROOF_READY but no test file at tests/Feature/AgencyWhatsAppProfileControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/AgencyWhatsAppProfileController.php::App\\Http\\Controllers\\AgencyWhatsAppProfileController::sync",
        "fqmn": "App\\Http\\Controllers\\AgencyWhatsAppProfileController@sync",
        "expected_test_path": "tests/Feature/AgencyWhatsAppProfileControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\AgencyWhatsAppProfileController;\n\nclass AgencyWhatsAppProfileControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\AgencyWhatsAppProfileController@sync\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_sync_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\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\\AgencyWhatsAppProfileController@sync is PROOF_READY but no test file at tests/Feature/AgencyWhatsAppProfileControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/AgencyWhatsAppProfileController.php::App\\Http\\Controllers\\AgencyWhatsAppProfileController::update",
        "fqmn": "App\\Http\\Controllers\\AgencyWhatsAppProfileController@update",
        "expected_test_path": "tests/Feature/AgencyWhatsAppProfileControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\AgencyWhatsAppProfileController;\n\nclass AgencyWhatsAppProfileControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\AgencyWhatsAppProfileController@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\\AgencyWhatsAppProfileController@update is PROOF_READY but no test file at tests/Feature/AgencyWhatsAppProfileControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceDigestPreferencesController.php::App\\Http\\Controllers\\Api\\MaintenanceDigestPreferencesController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceDigestPreferencesController@show",
        "expected_test_path": "tests/Feature/MaintenanceDigestPreferencesControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\MaintenanceDigestPreferencesController;\n\nclass MaintenanceDigestPreferencesControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\MaintenanceDigestPreferencesController@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\\MaintenanceDigestPreferencesController@show is PROOF_READY but no test file at tests/Feature/MaintenanceDigestPreferencesControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceDigestPreferencesController.php::App\\Http\\Controllers\\Api\\MaintenanceDigestPreferencesController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceDigestPreferencesController@update",
        "expected_test_path": "tests/Feature/MaintenanceDigestPreferencesControllerTest.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\\MaintenanceDigestPreferencesController;\n\nclass MaintenanceDigestPreferencesControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\MaintenanceDigestPreferencesController@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\\MaintenanceDigestPreferencesController@update is PROOF_READY but no test file at tests/Feature/MaintenanceDigestPreferencesControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceMetricsController.php::App\\Http\\Controllers\\Api\\MaintenanceMetricsController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceMetricsController@index",
        "expected_test_path": "tests/Feature/MaintenanceMetricsControllerTest.php",
        "intent": null,
        "intent_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\\MaintenanceMetricsController;\n\nclass MaintenanceMetricsControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\MaintenanceMetricsController@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\\MaintenanceMetricsController@index is PROOF_READY but no test file at tests/Feature/MaintenanceMetricsControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceSlaController.php::App\\Http\\Controllers\\Api\\MaintenanceSlaController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceSlaController@destroy",
        "expected_test_path": "tests/Feature/MaintenanceSlaControllerTest.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\\MaintenanceSlaController;\n\nclass MaintenanceSlaControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\MaintenanceSlaController@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\\MaintenanceSlaController@destroy is PROOF_READY but no test file at tests/Feature/MaintenanceSlaControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceSlaController.php::App\\Http\\Controllers\\Api\\MaintenanceSlaController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceSlaController@index",
        "expected_test_path": "tests/Feature/MaintenanceSlaControllerTest.php",
        "intent": null,
        "intent_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\\MaintenanceSlaController;\n\nclass MaintenanceSlaControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\MaintenanceSlaController@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\\MaintenanceSlaController@index is PROOF_READY but no test file at tests/Feature/MaintenanceSlaControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceSlaController.php::App\\Http\\Controllers\\Api\\MaintenanceSlaController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceSlaController@show",
        "expected_test_path": "tests/Feature/MaintenanceSlaControllerTest.php",
        "intent": null,
        "intent_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\\MaintenanceSlaController;\n\nclass MaintenanceSlaControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\MaintenanceSlaController@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\\MaintenanceSlaController@show is PROOF_READY but no test file at tests/Feature/MaintenanceSlaControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceSlaController.php::App\\Http\\Controllers\\Api\\MaintenanceSlaController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceSlaController@store",
        "expected_test_path": "tests/Feature/MaintenanceSlaControllerTest.php",
        "intent": null,
        "intent_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\\MaintenanceSlaController;\n\nclass MaintenanceSlaControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\MaintenanceSlaController@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\\MaintenanceSlaController@store is PROOF_READY but no test file at tests/Feature/MaintenanceSlaControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceSlaController.php::App\\Http\\Controllers\\Api\\MaintenanceSlaController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceSlaController@update",
        "expected_test_path": "tests/Feature/MaintenanceSlaControllerTest.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\\MaintenanceSlaController;\n\nclass MaintenanceSlaControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\MaintenanceSlaController@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\\MaintenanceSlaController@update is PROOF_READY but no test file at tests/Feature/MaintenanceSlaControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::addComment",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@addComment",
        "expected_test_path": "tests/Feature/MaintenanceTicketControllerTest.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\\MaintenanceTicketController;\n\nclass MaintenanceTicketControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\MaintenanceTicketController@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\\MaintenanceTicketController@addComment is PROOF_READY but no test file at tests/Feature/MaintenanceTicketControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::approve",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@approve",
        "expected_test_path": "tests/Feature/MaintenanceTicketControllerTest.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\\MaintenanceTicketController;\n\nclass MaintenanceTicketControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\MaintenanceTicketController@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\\MaintenanceTicketController@approve is PROOF_READY but no test file at tests/Feature/MaintenanceTicketControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::assign",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@assign",
        "expected_test_path": "tests/Feature/MaintenanceTicketControllerTest.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\\MaintenanceTicketController;\n\nclass MaintenanceTicketControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\MaintenanceTicketController@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        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\MaintenanceTicketController@assign is PROOF_READY but no test file at tests/Feature/MaintenanceTicketControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::complete",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@complete",
        "expected_test_path": "tests/Feature/MaintenanceTicketControllerTest.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\\MaintenanceTicketController;\n\nclass MaintenanceTicketControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\MaintenanceTicketController@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\\MaintenanceTicketController@complete is PROOF_READY but no test file at tests/Feature/MaintenanceTicketControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@index",
        "expected_test_path": "tests/Feature/MaintenanceTicketControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\MaintenanceTicketController;\n\nclass MaintenanceTicketControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\MaintenanceTicketController@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\\MaintenanceTicketController@index is PROOF_READY but no test file at tests/Feature/MaintenanceTicketControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::reopen",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@reopen",
        "expected_test_path": "tests/Feature/MaintenanceTicketControllerTest.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\\MaintenanceTicketController;\n\nclass MaintenanceTicketControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\MaintenanceTicketController@reopen\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_reopen_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\MaintenanceTicketController@reopen is PROOF_READY but no test file at tests/Feature/MaintenanceTicketControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::reviewSuggestion",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@reviewSuggestion",
        "expected_test_path": "tests/Feature/MaintenanceTicketControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\MaintenanceTicketController;\n\nclass MaintenanceTicketControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\MaintenanceTicketController@reviewSuggestion\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_reviewsuggestion_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\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\\MaintenanceTicketController@reviewSuggestion is PROOF_READY but no test file at tests/Feature/MaintenanceTicketControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@show",
        "expected_test_path": "tests/Feature/MaintenanceTicketControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\MaintenanceTicketController;\n\nclass MaintenanceTicketControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\MaintenanceTicketController@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\\MaintenanceTicketController@show is PROOF_READY but no test file at tests/Feature/MaintenanceTicketControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::slaLogs",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@slaLogs",
        "expected_test_path": "tests/Feature/MaintenanceTicketControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\MaintenanceTicketController;\n\nclass MaintenanceTicketControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\MaintenanceTicketController@slaLogs\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_slalogs_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\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\\MaintenanceTicketController@slaLogs is PROOF_READY but no test file at tests/Feature/MaintenanceTicketControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@store",
        "expected_test_path": "tests/Feature/MaintenanceTicketControllerTest.php",
        "intent": null,
        "intent_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\\MaintenanceTicketController;\n\nclass MaintenanceTicketControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\MaintenanceTicketController@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\\MaintenanceTicketController@store is PROOF_READY but no test file at tests/Feature/MaintenanceTicketControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::suggestions",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@suggestions",
        "expected_test_path": "tests/Feature/MaintenanceTicketControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\MaintenanceTicketController;\n\nclass MaintenanceTicketControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\MaintenanceTicketController@suggestions\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_suggestions_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\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\\MaintenanceTicketController@suggestions is PROOF_READY but no test file at tests/Feature/MaintenanceTicketControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::updateStatus",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@updateStatus",
        "expected_test_path": "tests/Feature/MaintenanceTicketControllerTest.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\\MaintenanceTicketController;\n\nclass MaintenanceTicketControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\MaintenanceTicketController@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        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\MaintenanceTicketController@updateStatus is PROOF_READY but no test file at tests/Feature/MaintenanceTicketControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/MaintenanceTicketController.php::App\\Http\\Controllers\\Api\\MaintenanceTicketController::uploadQuote",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@uploadQuote",
        "expected_test_path": "tests/Feature/MaintenanceTicketControllerTest.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\\MaintenanceTicketController;\n\nclass MaintenanceTicketControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\MaintenanceTicketController@uploadQuote\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_uploadquote_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\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\\MaintenanceTicketController@uploadQuote is PROOF_READY but no test file at tests/Feature/MaintenanceTicketControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to 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/MobileDashboardController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileDashboardController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileDashboardController@index",
        "expected_test_path": "tests/Feature/MobileDashboardControllerTest.php",
        "intent": null,
        "intent_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\\MobileDashboardController;\n\nclass MobileDashboardControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileDashboardController@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\\MobileDashboardController@index is PROOF_READY but no test file at tests/Feature/MobileDashboardControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to 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/MobileForgotPasswordController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileForgotPasswordController::sendResetLink",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileForgotPasswordController@sendResetLink",
        "expected_test_path": "tests/Feature/MobileForgotPasswordControllerTest.php",
        "intent": null,
        "intent_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\\MobileForgotPasswordController;\n\nclass MobileForgotPasswordControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileForgotPasswordController@sendResetLink\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_sendresetlink_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\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\\MobileForgotPasswordController@sendResetLink is PROOF_READY but no test file at tests/Feature/MobileForgotPasswordControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to 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/MobilePaymentController.php::App\\Http\\Controllers\\Api\\Mobile\\MobilePaymentController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobilePaymentController@index",
        "expected_test_path": "tests/Feature/MobilePaymentControllerTest.php",
        "intent": null,
        "intent_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\\MobilePaymentController;\n\nclass MobilePaymentControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobilePaymentController@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\\MobilePaymentController@index is PROOF_READY but no test file at tests/Feature/MobilePaymentControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to 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/MobilePeopleController.php::App\\Http\\Controllers\\Api\\Mobile\\MobilePeopleController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobilePeopleController@index",
        "expected_test_path": "tests/Feature/MobilePeopleControllerTest.php",
        "intent": null,
        "intent_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\\MobilePeopleController;\n\nclass MobilePeopleControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobilePeopleController@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\\MobilePeopleController@index is PROOF_READY but no test file at tests/Feature/MobilePeopleControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to 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/MobilePersonDetailController.php::App\\Http\\Controllers\\Api\\Mobile\\MobilePersonDetailController::properties",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobilePersonDetailController@properties",
        "expected_test_path": "tests/Feature/MobilePersonDetailControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\MobilePersonDetailController;\n\nclass MobilePersonDetailControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobilePersonDetailController@properties\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_properties_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\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\\MobilePersonDetailController@properties is PROOF_READY but no test file at tests/Feature/MobilePersonDetailControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to 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/MobilePropertyController.php::App\\Http\\Controllers\\Api\\Mobile\\MobilePropertyController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobilePropertyController@index",
        "expected_test_path": "tests/Feature/MobilePropertyControllerTest.php",
        "intent": null,
        "intent_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\\MobilePropertyController;\n\nclass MobilePropertyControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobilePropertyController@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\\MobilePropertyController@index is PROOF_READY but no test file at tests/Feature/MobilePropertyControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to 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/MobileUnitController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileUnitController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileUnitController@index",
        "expected_test_path": "tests/Feature/MobileUnitControllerTest.php",
        "intent": null,
        "intent_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\\MobileUnitController;\n\nclass MobileUnitControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileUnitController@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\\MobileUnitController@index is PROOF_READY but no test file at tests/Feature/MobileUnitControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/OutreachAI/PredictionController.php::App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController::getABTestStats",
        "fqmn": "App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController@getABTestStats",
        "expected_test_path": "tests/Feature/PredictionControllerTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\PredictionController;\n\nclass PredictionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController@getABTestStats\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getabteststats_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\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\\OutreachAI\\PredictionController@getABTestStats is PROOF_READY but no test file at tests/Feature/PredictionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/OutreachAI/PredictionController.php::App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController::getFeatureImportance",
        "fqmn": "App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController@getFeatureImportance",
        "expected_test_path": "tests/Feature/PredictionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\PredictionController;\n\nclass PredictionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController@getFeatureImportance\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getfeatureimportance_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\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\\OutreachAI\\PredictionController@getFeatureImportance is PROOF_READY but no test file at tests/Feature/PredictionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/OutreachAI/PredictionController.php::App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController::getHistory",
        "fqmn": "App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController@getHistory",
        "expected_test_path": "tests/Feature/PredictionControllerTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\PredictionController;\n\nclass PredictionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController@getHistory\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gethistory_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\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\\OutreachAI\\PredictionController@getHistory is PROOF_READY but no test file at tests/Feature/PredictionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/OutreachAI/PredictionController.php::App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController::getLatest",
        "fqmn": "App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController@getLatest",
        "expected_test_path": "tests/Feature/PredictionControllerTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\PredictionController;\n\nclass PredictionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController@getLatest\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getlatest_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\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\\OutreachAI\\PredictionController@getLatest is PROOF_READY but no test file at tests/Feature/PredictionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/AppController.php::App\\Http\\Controllers\\AppController::index",
        "fqmn": "App\\Http\\Controllers\\AppController@index",
        "expected_test_path": "tests/Feature/AppControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\AppController;\n\nclass AppControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\AppController@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\\AppController@index is PROOF_READY but no test file at tests/Feature/AppControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/AuthController.php::App\\Http\\Controllers\\Auth\\AuthController::login",
        "fqmn": "App\\Http\\Controllers\\Auth\\AuthController@login",
        "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\\Auth\\AuthController;\n\nclass AuthControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\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\\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/Auth/AuthController.php::App\\Http\\Controllers\\Auth\\AuthController::logout",
        "fqmn": "App\\Http\\Controllers\\Auth\\AuthController@logout",
        "expected_test_path": "tests/Feature/AuthControllerTest.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\\AuthController;\n\nclass AuthControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\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\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\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/Auth/AuthController.php::App\\Http\\Controllers\\Auth\\AuthController::register",
        "fqmn": "App\\Http\\Controllers\\Auth\\AuthController@register",
        "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\\Auth\\AuthController;\n\nclass AuthControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\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        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\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\\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/Auth/AuthController.php::App\\Http\\Controllers\\Auth\\AuthController::showRegister",
        "fqmn": "App\\Http\\Controllers\\Auth\\AuthController@showRegister",
        "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\\Auth\\AuthController;\n\nclass AuthControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\AuthController@showRegister\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_showregister_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\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\\AuthController@showRegister 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/Auth/PasswordResetController.php::App\\Http\\Controllers\\Auth\\PasswordResetController::reset",
        "fqmn": "App\\Http\\Controllers\\Auth\\PasswordResetController@reset",
        "expected_test_path": "tests/Feature/PasswordResetControllerTest.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\\PasswordResetController;\n\nclass PasswordResetControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\PasswordResetController@reset\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_reset_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\PasswordResetController@reset is PROOF_READY but no test file at tests/Feature/PasswordResetControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/PasswordResetController.php::App\\Http\\Controllers\\Auth\\PasswordResetController::sendResetLinkEmail",
        "fqmn": "App\\Http\\Controllers\\Auth\\PasswordResetController@sendResetLinkEmail",
        "expected_test_path": "tests/Feature/PasswordResetControllerTest.php",
        "intent": null,
        "intent_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\\PasswordResetController;\n\nclass PasswordResetControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\PasswordResetController@sendResetLinkEmail\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_sendresetlinkemail_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\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\\PasswordResetController@sendResetLinkEmail is PROOF_READY but no test file at tests/Feature/PasswordResetControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/PasswordResetController.php::App\\Http\\Controllers\\Auth\\PasswordResetController::showForgotPassword",
        "fqmn": "App\\Http\\Controllers\\Auth\\PasswordResetController@showForgotPassword",
        "expected_test_path": "tests/Feature/PasswordResetControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\PasswordResetController;\n\nclass PasswordResetControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\PasswordResetController@showForgotPassword\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_showforgotpassword_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\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\\PasswordResetController@showForgotPassword is PROOF_READY but no test file at tests/Feature/PasswordResetControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/PasswordResetController.php::App\\Http\\Controllers\\Auth\\PasswordResetController::showResetForm",
        "fqmn": "App\\Http\\Controllers\\Auth\\PasswordResetController@showResetForm",
        "expected_test_path": "tests/Feature/PasswordResetControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\PasswordResetController;\n\nclass PasswordResetControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\PasswordResetController@showResetForm\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_showresetform_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\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\\PasswordResetController@showResetForm is PROOF_READY but no test file at tests/Feature/PasswordResetControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/VerificationController.php::App\\Http\\Controllers\\Auth\\VerificationController::resend",
        "fqmn": "App\\Http\\Controllers\\Auth\\VerificationController@resend",
        "expected_test_path": "tests/Feature/VerificationControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\VerificationController;\n\nclass VerificationControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\VerificationController@resend\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resend_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\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\\VerificationController@resend is PROOF_READY but no test file at tests/Feature/VerificationControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/VerificationController.php::App\\Http\\Controllers\\Auth\\VerificationController::showResendForm",
        "fqmn": "App\\Http\\Controllers\\Auth\\VerificationController@showResendForm",
        "expected_test_path": "tests/Feature/VerificationControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\VerificationController;\n\nclass VerificationControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\VerificationController@showResendForm\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_showresendform_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\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\\VerificationController@showResendForm is PROOF_READY but no test file at tests/Feature/VerificationControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/VerificationController.php::App\\Http\\Controllers\\Auth\\VerificationController::verify",
        "fqmn": "App\\Http\\Controllers\\Auth\\VerificationController@verify",
        "expected_test_path": "tests/Feature/VerificationControllerTest.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\\VerificationController;\n\nclass VerificationControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\VerificationController@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\n        // 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\\VerificationController@verify is PROOF_READY but no test file at tests/Feature/VerificationControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/InvitationController.php::App\\Http\\Controllers\\InvitationController::accept",
        "fqmn": "App\\Http\\Controllers\\InvitationController@accept",
        "expected_test_path": "tests/Feature/InvitationControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\InvitationController;\n\nclass InvitationControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\InvitationController@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\\InvitationController@accept is PROOF_READY but no test file at tests/Feature/InvitationControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/InvitationController.php::App\\Http\\Controllers\\InvitationController::destroy",
        "fqmn": "App\\Http\\Controllers\\InvitationController@destroy",
        "expected_test_path": "tests/Feature/InvitationControllerTest.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\\InvitationController;\n\nclass InvitationControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\InvitationController@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\\InvitationController@destroy is PROOF_READY but no test file at tests/Feature/InvitationControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/InvitationController.php::App\\Http\\Controllers\\InvitationController::index",
        "fqmn": "App\\Http\\Controllers\\InvitationController@index",
        "expected_test_path": "tests/Feature/InvitationControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\InvitationController;\n\nclass InvitationControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\InvitationController@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\\InvitationController@index is PROOF_READY but no test file at tests/Feature/InvitationControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/InvitationController.php::App\\Http\\Controllers\\InvitationController::show",
        "fqmn": "App\\Http\\Controllers\\InvitationController@show",
        "expected_test_path": "tests/Feature/InvitationControllerTest.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\\InvitationController;\n\nclass InvitationControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\InvitationController@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    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\InvitationController@show is PROOF_READY but no test file at tests/Feature/InvitationControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/InvitationController.php::App\\Http\\Controllers\\InvitationController::store",
        "fqmn": "App\\Http\\Controllers\\InvitationController@store",
        "expected_test_path": "tests/Feature/InvitationControllerTest.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\\InvitationController;\n\nclass InvitationControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\InvitationController@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\\InvitationController@store is PROOF_READY but no test file at tests/Feature/InvitationControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Landing/PlansController.php::App\\Http\\Controllers\\Landing\\PlansController::index",
        "fqmn": "App\\Http\\Controllers\\Landing\\PlansController@index",
        "expected_test_path": "tests/Feature/PlansControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Landing\\PlansController;\n\nclass PlansControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Landing\\PlansController@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\\Landing\\PlansController@index is PROOF_READY but no test file at tests/Feature/PlansControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/LeadController.php::App\\Http\\Controllers\\LeadController::store",
        "fqmn": "App\\Http\\Controllers\\LeadController@store",
        "expected_test_path": "tests/Feature/LeadControllerTest.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\\LeadController;\n\nclass LeadControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\LeadController@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->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\LeadController@store is PROOF_READY but no test file at tests/Feature/LeadControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/LocaleController.php::App\\Http\\Controllers\\LocaleController::post",
        "fqmn": "App\\Http\\Controllers\\LocaleController@post",
        "expected_test_path": "tests/Feature/LocaleControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\LocaleController;\n\nclass LocaleControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\LocaleController@post\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_post_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\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\\LocaleController@post is PROOF_READY but no test file at tests/Feature/LocaleControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/LocaleController.php::App\\Http\\Controllers\\LocaleController::switch",
        "fqmn": "App\\Http\\Controllers\\LocaleController@switch",
        "expected_test_path": "tests/Feature/LocaleControllerTest.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\\LocaleController;\n\nclass LocaleControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\LocaleController@switch\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_switch_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\LocaleController@switch is PROOF_READY but no test file at tests/Feature/LocaleControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/OrgWhatsAppOnboardingController.php::App\\Http\\Controllers\\OrgWhatsAppOnboardingController::selectNumber",
        "fqmn": "App\\Http\\Controllers\\OrgWhatsAppOnboardingController@selectNumber",
        "expected_test_path": "tests/Feature/OrgWhatsAppOnboardingControllerTest.php",
        "intent": null,
        "intent_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\\OrgWhatsAppOnboardingController;\n\nclass OrgWhatsAppOnboardingControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\OrgWhatsAppOnboardingController@selectNumber\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_selectnumber_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\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\\OrgWhatsAppOnboardingController@selectNumber is PROOF_READY but no test file at tests/Feature/OrgWhatsAppOnboardingControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/OrgWhatsAppOnboardingController.php::App\\Http\\Controllers\\OrgWhatsAppOnboardingController::start",
        "fqmn": "App\\Http\\Controllers\\OrgWhatsAppOnboardingController@start",
        "expected_test_path": "tests/Feature/OrgWhatsAppOnboardingControllerTest.php",
        "intent": null,
        "intent_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\\OrgWhatsAppOnboardingController;\n\nclass OrgWhatsAppOnboardingControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\OrgWhatsAppOnboardingController@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\\OrgWhatsAppOnboardingController@start is PROOF_READY but no test file at tests/Feature/OrgWhatsAppOnboardingControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Outreach/FollowUpMetricsController.php::App\\Http\\Controllers\\Outreach\\FollowUpMetricsController::index",
        "fqmn": "App\\Http\\Controllers\\Outreach\\FollowUpMetricsController@index",
        "expected_test_path": "tests/Feature/FollowUpMetricsControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Outreach\\FollowUpMetricsController;\n\nclass FollowUpMetricsControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Outreach\\FollowUpMetricsController@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\\Outreach\\FollowUpMetricsController@index is PROOF_READY but no test file at tests/Feature/FollowUpMetricsControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Outreach/FollowUpMetricsController.php::App\\Http\\Controllers\\Outreach\\FollowUpMetricsController::priorities",
        "fqmn": "App\\Http\\Controllers\\Outreach\\FollowUpMetricsController@priorities",
        "expected_test_path": "tests/Feature/FollowUpMetricsControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Outreach\\FollowUpMetricsController;\n\nclass FollowUpMetricsControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Outreach\\FollowUpMetricsController@priorities\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_priorities_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\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\\Outreach\\FollowUpMetricsController@priorities is PROOF_READY but no test file at tests/Feature/FollowUpMetricsControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Settings/WhatsAppSettingsController.php::App\\Http\\Controllers\\Settings\\WhatsAppSettingsController::provision",
        "fqmn": "App\\Http\\Controllers\\Settings\\WhatsAppSettingsController@provision",
        "expected_test_path": "tests/Feature/WhatsAppSettingsControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Settings\\WhatsAppSettingsController;\n\nclass WhatsAppSettingsControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\WhatsAppSettingsController@provision\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_provision_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\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\\Settings\\WhatsAppSettingsController@provision is PROOF_READY but no test file at tests/Feature/WhatsAppSettingsControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Settings/WhatsAppSettingsController.php::App\\Http\\Controllers\\Settings\\WhatsAppSettingsController::show",
        "fqmn": "App\\Http\\Controllers\\Settings\\WhatsAppSettingsController@show",
        "expected_test_path": "tests/Feature/WhatsAppSettingsControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Settings\\WhatsAppSettingsController;\n\nclass WhatsAppSettingsControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\WhatsAppSettingsController@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\\Settings\\WhatsAppSettingsController@show is PROOF_READY but no test file at tests/Feature/WhatsAppSettingsControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Settings/WhatsAppSettingsController.php::App\\Http\\Controllers\\Settings\\WhatsAppSettingsController::test",
        "fqmn": "App\\Http\\Controllers\\Settings\\WhatsAppSettingsController@test",
        "expected_test_path": "tests/Feature/WhatsAppSettingsControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Settings\\WhatsAppSettingsController;\n\nclass WhatsAppSettingsControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\WhatsAppSettingsController@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\\Settings\\WhatsAppSettingsController@test is PROOF_READY but no test file at tests/Feature/WhatsAppSettingsControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Settings/WhatsAppSettingsController.php::App\\Http\\Controllers\\Settings\\WhatsAppSettingsController::update",
        "fqmn": "App\\Http\\Controllers\\Settings\\WhatsAppSettingsController@update",
        "expected_test_path": "tests/Feature/WhatsAppSettingsControllerTest.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\\Settings\\WhatsAppSettingsController;\n\nclass WhatsAppSettingsControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\WhatsAppSettingsController@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\\Settings\\WhatsAppSettingsController@update is PROOF_READY but no test file at tests/Feature/WhatsAppSettingsControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/TenantPaymentController.php::App\\Http\\Controllers\\TenantPaymentController::initiate",
        "fqmn": "App\\Http\\Controllers\\TenantPaymentController@initiate",
        "expected_test_path": "tests/Feature/TenantPaymentControllerTest.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\\TenantPaymentController;\n\nclass TenantPaymentControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\TenantPaymentController@initiate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_initiate_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\TenantPaymentController@initiate is PROOF_READY but no test file at tests/Feature/TenantPaymentControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/TenantPaymentController.php::App\\Http\\Controllers\\TenantPaymentController::success",
        "fqmn": "App\\Http\\Controllers\\TenantPaymentController@success",
        "expected_test_path": "tests/Feature/TenantPaymentControllerTest.php",
        "intent": null,
        "intent_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\\TenantPaymentController;\n\nclass TenantPaymentControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\TenantPaymentController@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        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\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\\TenantPaymentController@success is PROOF_READY but no test file at tests/Feature/TenantPaymentControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Testing/DashboardPerformanceIndicatorsController.php::App\\Http\\Controllers\\Testing\\DashboardPerformanceIndicatorsController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\DashboardPerformanceIndicatorsController@__invoke",
        "expected_test_path": "tests/Feature/DashboardPerformanceIndicatorsControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Testing\\DashboardPerformanceIndicatorsController;\n\nclass DashboardPerformanceIndicatorsControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Testing\\DashboardPerformanceIndicatorsController@__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\\Testing\\DashboardPerformanceIndicatorsController@__invoke is PROOF_READY but no test file at tests/Feature/DashboardPerformanceIndicatorsControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Testing/DashboardQuickStatsController.php::App\\Http\\Controllers\\Testing\\DashboardQuickStatsController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\DashboardQuickStatsController@__invoke",
        "expected_test_path": "tests/Feature/DashboardQuickStatsControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Testing\\DashboardQuickStatsController;\n\nclass DashboardQuickStatsControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Testing\\DashboardQuickStatsController@__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\\Testing\\DashboardQuickStatsController@__invoke is PROOF_READY but no test file at tests/Feature/DashboardQuickStatsControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Testing/LandlordOverviewStatsController.php::App\\Http\\Controllers\\Testing\\LandlordOverviewStatsController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\LandlordOverviewStatsController@__invoke",
        "expected_test_path": "tests/Feature/LandlordOverviewStatsControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Testing\\LandlordOverviewStatsController;\n\nclass LandlordOverviewStatsControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Testing\\LandlordOverviewStatsController@__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\\Testing\\LandlordOverviewStatsController@__invoke is PROOF_READY but no test file at tests/Feature/LandlordOverviewStatsControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Testing/OutreachConversationInboundController.php::App\\Http\\Controllers\\Testing\\OutreachConversationInboundController::store",
        "fqmn": "App\\Http\\Controllers\\Testing\\OutreachConversationInboundController@store",
        "expected_test_path": "tests/Feature/OutreachConversationInboundControllerTest.php",
        "intent": null,
        "intent_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\\Testing\\OutreachConversationInboundController;\n\nclass OutreachConversationInboundControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Testing\\OutreachConversationInboundController@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\\Testing\\OutreachConversationInboundController@store is PROOF_READY but no test file at tests/Feature/OutreachConversationInboundControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Testing/OutreachKnowledgeValidateController.php::App\\Http\\Controllers\\Testing\\OutreachKnowledgeValidateController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\OutreachKnowledgeValidateController@__invoke",
        "expected_test_path": "tests/Feature/OutreachKnowledgeValidateControllerTest.php",
        "intent": null,
        "intent_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\\Testing\\OutreachKnowledgeValidateController;\n\nclass OutreachKnowledgeValidateControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Testing\\OutreachKnowledgeValidateController@__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\\Testing\\OutreachKnowledgeValidateController@__invoke is PROOF_READY but no test file at tests/Feature/OutreachKnowledgeValidateControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Testing/OutreachPricingSuggestController.php::App\\Http\\Controllers\\Testing\\OutreachPricingSuggestController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\OutreachPricingSuggestController@__invoke",
        "expected_test_path": "tests/Feature/OutreachPricingSuggestControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Testing\\OutreachPricingSuggestController;\n\nclass OutreachPricingSuggestControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Testing\\OutreachPricingSuggestController@__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\\Testing\\OutreachPricingSuggestController@__invoke is PROOF_READY but no test file at tests/Feature/OutreachPricingSuggestControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Testing/RecordAnonymousDiscountCodeUsageController.php::App\\Http\\Controllers\\Testing\\RecordAnonymousDiscountCodeUsageController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\RecordAnonymousDiscountCodeUsageController@__invoke",
        "expected_test_path": "tests/Feature/RecordAnonymousDiscountCodeUsageControllerTest.php",
        "intent": null,
        "intent_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\\Testing\\RecordAnonymousDiscountCodeUsageController;\n\nclass RecordAnonymousDiscountCodeUsageControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Testing\\RecordAnonymousDiscountCodeUsageController@__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\\Testing\\RecordAnonymousDiscountCodeUsageController@__invoke is PROOF_READY but no test file at tests/Feature/RecordAnonymousDiscountCodeUsageControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Testing/RecordSubscriptionDiscountCodeUsageController.php::App\\Http\\Controllers\\Testing\\RecordSubscriptionDiscountCodeUsageController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\RecordSubscriptionDiscountCodeUsageController@__invoke",
        "expected_test_path": "tests/Feature/RecordSubscriptionDiscountCodeUsageControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Testing\\RecordSubscriptionDiscountCodeUsageController;\n\nclass RecordSubscriptionDiscountCodeUsageControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Testing\\RecordSubscriptionDiscountCodeUsageController@__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\\Testing\\RecordSubscriptionDiscountCodeUsageController@__invoke is PROOF_READY but no test file at tests/Feature/RecordSubscriptionDiscountCodeUsageControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/TrackingController.php::App\\Http\\Controllers\\TrackingController::redirect",
        "fqmn": "App\\Http\\Controllers\\TrackingController@redirect",
        "expected_test_path": "tests/Feature/TrackingControllerTest.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\\TrackingController;\n\nclass TrackingControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\TrackingController@redirect\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_redirect_behaves_correctly(): void\n    {\n\n        // 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\\TrackingController@redirect is PROOF_READY but no test file at tests/Feature/TrackingControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/VerificationController.php::App\\Http\\Controllers\\VerificationController::check",
        "fqmn": "App\\Http\\Controllers\\VerificationController@check",
        "expected_test_path": "tests/Feature/VerificationControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\VerificationController;\n\nclass VerificationControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\VerificationController@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\\Http\\Controllers\\VerificationController@check is PROOF_READY but no test file at tests/Feature/VerificationControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/VerificationController.php::App\\Http\\Controllers\\VerificationController::start",
        "fqmn": "App\\Http\\Controllers\\VerificationController@start",
        "expected_test_path": "tests/Feature/VerificationControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\VerificationController;\n\nclass VerificationControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\VerificationController@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\\Http\\Controllers\\VerificationController@start is PROOF_READY but no test file at tests/Feature/VerificationControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Web/FeaturePreviewController.php::App\\Http\\Controllers\\Web\\FeaturePreviewController::start",
        "fqmn": "App\\Http\\Controllers\\Web\\FeaturePreviewController@start",
        "expected_test_path": "tests/Feature/FeaturePreviewControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Web\\FeaturePreviewController;\n\nclass FeaturePreviewControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Web\\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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\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\\Web\\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/Web/GuestRenewalController.php::App\\Http\\Controllers\\Web\\GuestRenewalController::process",
        "fqmn": "App\\Http\\Controllers\\Web\\GuestRenewalController@process",
        "expected_test_path": "tests/Feature/GuestRenewalControllerTest.php",
        "intent": null,
        "intent_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\\Web\\GuestRenewalController;\n\nclass GuestRenewalControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Web\\GuestRenewalController@process\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_process_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\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\\Web\\GuestRenewalController@process is PROOF_READY but no test file at tests/Feature/GuestRenewalControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Web/GuestRenewalController.php::App\\Http\\Controllers\\Web\\GuestRenewalController::show",
        "fqmn": "App\\Http\\Controllers\\Web\\GuestRenewalController@show",
        "expected_test_path": "tests/Feature/GuestRenewalControllerTest.php",
        "intent": null,
        "intent_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\\Web\\GuestRenewalController;\n\nclass GuestRenewalControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Web\\GuestRenewalController@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\\Web\\GuestRenewalController@show is PROOF_READY but no test file at tests/Feature/GuestRenewalControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Web/LandlordStatementController.php::App\\Http\\Controllers\\Web\\LandlordStatementController::download",
        "fqmn": "App\\Http\\Controllers\\Web\\LandlordStatementController@download",
        "expected_test_path": "tests/Feature/LandlordStatementControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Web\\LandlordStatementController;\n\nclass LandlordStatementControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Web\\LandlordStatementController@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\\Web\\LandlordStatementController@download is PROOF_READY but no test file at tests/Feature/LandlordStatementControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Web/ProspectShortlistController.php::App\\Http\\Controllers\\Web\\ProspectShortlistController::show",
        "fqmn": "App\\Http\\Controllers\\Web\\ProspectShortlistController@show",
        "expected_test_path": "tests/Feature/ProspectShortlistControllerTest.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\\Web\\ProspectShortlistController;\n\nclass ProspectShortlistControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Web\\ProspectShortlistController@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        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Web\\ProspectShortlistController@show is PROOF_READY but no test file at tests/Feature/ProspectShortlistControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Web/SubscriptionController.php::App\\Http\\Controllers\\Web\\SubscriptionController::__construct",
        "fqmn": "App\\Http\\Controllers\\Web\\SubscriptionController@__construct",
        "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\\Web\\SubscriptionController;\n\nclass SubscriptionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Web\\SubscriptionController@__construct\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test___construct_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\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\\Web\\SubscriptionController@__construct 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/Web/SubscriptionController.php::App\\Http\\Controllers\\Web\\SubscriptionController::failure",
        "fqmn": "App\\Http\\Controllers\\Web\\SubscriptionController@failure",
        "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\\Web\\SubscriptionController;\n\nclass SubscriptionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Web\\SubscriptionController@failure\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_failure_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\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\\Web\\SubscriptionController@failure 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/Web/SubscriptionController.php::App\\Http\\Controllers\\Web\\SubscriptionController::index",
        "fqmn": "App\\Http\\Controllers\\Web\\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\\Web\\SubscriptionController;\n\nclass SubscriptionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Web\\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\\Web\\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/Web/SubscriptionController.php::App\\Http\\Controllers\\Web\\SubscriptionController::subscribe",
        "fqmn": "App\\Http\\Controllers\\Web\\SubscriptionController@subscribe",
        "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\\Web\\SubscriptionController;\n\nclass SubscriptionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Web\\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\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\Web\\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/Web/SubscriptionController.php::App\\Http\\Controllers\\Web\\SubscriptionController::success",
        "fqmn": "App\\Http\\Controllers\\Web\\SubscriptionController@success",
        "expected_test_path": "tests/Feature/SubscriptionControllerTest.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\\Web\\SubscriptionController;\n\nclass SubscriptionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Web\\SubscriptionController@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        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Web\\SubscriptionController@success 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/Webhooks/Dialog360StatusWebhookController.php::App\\Http\\Controllers\\Webhooks\\Dialog360StatusWebhookController::handle",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\Dialog360StatusWebhookController@handle",
        "expected_test_path": "tests/Feature/Dialog360StatusWebhookControllerTest.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\\Webhooks\\Dialog360StatusWebhookController;\n\nclass Dialog360StatusWebhookControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Webhooks\\Dialog360StatusWebhookController@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\\Http\\Controllers\\Webhooks\\Dialog360StatusWebhookController@handle is PROOF_READY but no test file at tests/Feature/Dialog360StatusWebhookControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Webhooks/Dialog360WebhookController.php::App\\Http\\Controllers\\Webhooks\\Dialog360WebhookController::handle",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\Dialog360WebhookController@handle",
        "expected_test_path": "tests/Feature/Dialog360WebhookControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Webhooks\\Dialog360WebhookController;\n\nclass Dialog360WebhookControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Webhooks\\Dialog360WebhookController@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->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Webhooks\\Dialog360WebhookController@handle is PROOF_READY but no test file at tests/Feature/Dialog360WebhookControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Webhooks/TapSettlementWebhookController.php::App\\Http\\Controllers\\Webhooks\\TapSettlementWebhookController::handle",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\TapSettlementWebhookController@handle",
        "expected_test_path": "tests/Feature/TapSettlementWebhookControllerTest.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\\Webhooks\\TapSettlementWebhookController;\n\nclass TapSettlementWebhookControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Webhooks\\TapSettlementWebhookController@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\\Webhooks\\TapSettlementWebhookController@handle is PROOF_READY but no test file at tests/Feature/TapSettlementWebhookControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Webhooks/TwilioWebhookController.php::App\\Http\\Controllers\\Webhooks\\TwilioWebhookController::inbound",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\TwilioWebhookController@inbound",
        "expected_test_path": "tests/Feature/TwilioWebhookControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Webhooks\\TwilioWebhookController;\n\nclass TwilioWebhookControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Webhooks\\TwilioWebhookController@inbound\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_inbound_behaves_correctly(): void\n    {\n\n        // 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->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Webhooks\\TwilioWebhookController@inbound is PROOF_READY but no test file at tests/Feature/TwilioWebhookControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Webhooks/TwilioWebhookController.php::App\\Http\\Controllers\\Webhooks\\TwilioWebhookController::incomingMessage",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\TwilioWebhookController@incomingMessage",
        "expected_test_path": "tests/Feature/TwilioWebhookControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Webhooks\\TwilioWebhookController;\n\nclass TwilioWebhookControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Webhooks\\TwilioWebhookController@incomingMessage\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_incomingmessage_behaves_correctly(): void\n    {\n\n        // 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->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Webhooks\\TwilioWebhookController@incomingMessage is PROOF_READY but no test file at tests/Feature/TwilioWebhookControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Webhooks/TwilioWebhookController.php::App\\Http\\Controllers\\Webhooks\\TwilioWebhookController::status",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\TwilioWebhookController@status",
        "expected_test_path": "tests/Feature/TwilioWebhookControllerTest.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\\Webhooks\\TwilioWebhookController;\n\nclass TwilioWebhookControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Webhooks\\TwilioWebhookController@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    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Webhooks\\TwilioWebhookController@status is PROOF_READY but no test file at tests/Feature/TwilioWebhookControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Webhooks/ZeptoWebhookController.php::App\\Http\\Controllers\\Webhooks\\ZeptoWebhookController::handleBounce",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\ZeptoWebhookController@handleBounce",
        "expected_test_path": "tests/Feature/ZeptoWebhookControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Webhooks\\ZeptoWebhookController;\n\nclass ZeptoWebhookControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Webhooks\\ZeptoWebhookController@handleBounce\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handlebounce_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\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\\Webhooks\\ZeptoWebhookController@handleBounce is PROOF_READY but no test file at tests/Feature/ZeptoWebhookControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Webhooks/ZohoWebhookController.php::App\\Http\\Controllers\\Webhooks\\ZohoWebhookController::handleCustomer",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\ZohoWebhookController@handleCustomer",
        "expected_test_path": "tests/Feature/ZohoWebhookControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Webhooks\\ZohoWebhookController;\n\nclass ZohoWebhookControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Webhooks\\ZohoWebhookController@handleCustomer\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handlecustomer_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\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\\Webhooks\\ZohoWebhookController@handleCustomer is PROOF_READY but no test file at tests/Feature/ZohoWebhookControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Webhooks/ZohoWebhookController.php::App\\Http\\Controllers\\Webhooks\\ZohoWebhookController::handleError",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\ZohoWebhookController@handleError",
        "expected_test_path": "tests/Feature/ZohoWebhookControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Webhooks\\ZohoWebhookController;\n\nclass ZohoWebhookControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Webhooks\\ZohoWebhookController@handleError\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handleerror_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\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\\Webhooks\\ZohoWebhookController@handleError is PROOF_READY but no test file at tests/Feature/ZohoWebhookControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Webhooks/ZohoWebhookController.php::App\\Http\\Controllers\\Webhooks\\ZohoWebhookController::handleInvoice",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\ZohoWebhookController@handleInvoice",
        "expected_test_path": "tests/Feature/ZohoWebhookControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Webhooks\\ZohoWebhookController;\n\nclass ZohoWebhookControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Webhooks\\ZohoWebhookController@handleInvoice\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handleinvoice_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\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\\Webhooks\\ZohoWebhookController@handleInvoice is PROOF_READY but no test file at tests/Feature/ZohoWebhookControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Admin/StorePlanVersionFeatureRequest.php::App\\Http\\Requests\\Admin\\StorePlanVersionFeatureRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Admin\\StorePlanVersionFeatureRequest@authorize",
        "expected_test_path": "tests/Feature/StorePlanVersionFeatureRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Admin\\StorePlanVersionFeatureRequest;\n\nclass StorePlanVersionFeatureRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Admin\\StorePlanVersionFeatureRequest@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\\Admin\\StorePlanVersionFeatureRequest@authorize is PROOF_READY but no test file at tests/Feature/StorePlanVersionFeatureRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Admin/StorePlanVersionFeatureRequest.php::App\\Http\\Requests\\Admin\\StorePlanVersionFeatureRequest::rules",
        "fqmn": "App\\Http\\Requests\\Admin\\StorePlanVersionFeatureRequest@rules",
        "expected_test_path": "tests/Feature/StorePlanVersionFeatureRequestTest.php",
        "intent": null,
        "intent_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\\Admin\\StorePlanVersionFeatureRequest;\n\nclass StorePlanVersionFeatureRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Admin\\StorePlanVersionFeatureRequest@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\\Admin\\StorePlanVersionFeatureRequest@rules is PROOF_READY but no test file at tests/Feature/StorePlanVersionFeatureRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Admin/UpdatePlanVersionFeatureRequest.php::App\\Http\\Requests\\Admin\\UpdatePlanVersionFeatureRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Admin\\UpdatePlanVersionFeatureRequest@authorize",
        "expected_test_path": "tests/Feature/UpdatePlanVersionFeatureRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Admin\\UpdatePlanVersionFeatureRequest;\n\nclass UpdatePlanVersionFeatureRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Admin\\UpdatePlanVersionFeatureRequest@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\\Admin\\UpdatePlanVersionFeatureRequest@authorize is PROOF_READY but no test file at tests/Feature/UpdatePlanVersionFeatureRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Admin/UpdatePlanVersionFeatureRequest.php::App\\Http\\Requests\\Admin\\UpdatePlanVersionFeatureRequest::rules",
        "fqmn": "App\\Http\\Requests\\Admin\\UpdatePlanVersionFeatureRequest@rules",
        "expected_test_path": "tests/Feature/UpdatePlanVersionFeatureRequestTest.php",
        "intent": null,
        "intent_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\\Admin\\UpdatePlanVersionFeatureRequest;\n\nclass UpdatePlanVersionFeatureRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Admin\\UpdatePlanVersionFeatureRequest@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\\Admin\\UpdatePlanVersionFeatureRequest@rules is PROOF_READY but no test file at tests/Feature/UpdatePlanVersionFeatureRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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::attributes",
        "fqmn": "App\\Http\\Requests\\Auth\\LoginRequest@attributes",
        "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@attributes\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_attributes_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\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@attributes 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::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::messages",
        "fqmn": "App\\Http\\Requests\\Auth\\LoginRequest@messages",
        "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@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\\Auth\\LoginRequest@messages 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/ResendVerificationRequest.php::App\\Http\\Requests\\Auth\\ResendVerificationRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Auth\\ResendVerificationRequest@authorize",
        "expected_test_path": "tests/Feature/ResendVerificationRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\ResendVerificationRequest;\n\nclass ResendVerificationRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Auth\\ResendVerificationRequest@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\\ResendVerificationRequest@authorize is PROOF_READY but no test file at tests/Feature/ResendVerificationRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/ResendVerificationRequest.php::App\\Http\\Requests\\Auth\\ResendVerificationRequest::rules",
        "fqmn": "App\\Http\\Requests\\Auth\\ResendVerificationRequest@rules",
        "expected_test_path": "tests/Feature/ResendVerificationRequestTest.php",
        "intent": null,
        "intent_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\\ResendVerificationRequest;\n\nclass ResendVerificationRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Auth\\ResendVerificationRequest@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\\ResendVerificationRequest@rules is PROOF_READY but no test file at tests/Feature/ResendVerificationRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/ResetPasswordRequest.php::App\\Http\\Requests\\Auth\\ResetPasswordRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Auth\\ResetPasswordRequest@authorize",
        "expected_test_path": "tests/Feature/ResetPasswordRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\ResetPasswordRequest;\n\nclass ResetPasswordRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Auth\\ResetPasswordRequest@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\\ResetPasswordRequest@authorize is PROOF_READY but no test file at tests/Feature/ResetPasswordRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/ResetPasswordRequest.php::App\\Http\\Requests\\Auth\\ResetPasswordRequest::rules",
        "fqmn": "App\\Http\\Requests\\Auth\\ResetPasswordRequest@rules",
        "expected_test_path": "tests/Feature/ResetPasswordRequestTest.php",
        "intent": null,
        "intent_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\\ResetPasswordRequest;\n\nclass ResetPasswordRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Auth\\ResetPasswordRequest@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\\ResetPasswordRequest@rules is PROOF_READY but no test file at tests/Feature/ResetPasswordRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/SendPasswordResetLinkRequest.php::App\\Http\\Requests\\Auth\\SendPasswordResetLinkRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Auth\\SendPasswordResetLinkRequest@authorize",
        "expected_test_path": "tests/Feature/SendPasswordResetLinkRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\SendPasswordResetLinkRequest;\n\nclass SendPasswordResetLinkRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Auth\\SendPasswordResetLinkRequest@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\\SendPasswordResetLinkRequest@authorize is PROOF_READY but no test file at tests/Feature/SendPasswordResetLinkRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/SendPasswordResetLinkRequest.php::App\\Http\\Requests\\Auth\\SendPasswordResetLinkRequest::rules",
        "fqmn": "App\\Http\\Requests\\Auth\\SendPasswordResetLinkRequest@rules",
        "expected_test_path": "tests/Feature/SendPasswordResetLinkRequestTest.php",
        "intent": null,
        "intent_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\\SendPasswordResetLinkRequest;\n\nclass SendPasswordResetLinkRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Auth\\SendPasswordResetLinkRequest@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\\SendPasswordResetLinkRequest@rules is PROOF_READY but no test file at tests/Feature/SendPasswordResetLinkRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Gateway/DeliveryStatusRequest.php::App\\Http\\Requests\\Gateway\\DeliveryStatusRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Gateway\\DeliveryStatusRequest@authorize",
        "expected_test_path": "tests/Feature/DeliveryStatusRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Gateway\\DeliveryStatusRequest;\n\nclass DeliveryStatusRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Gateway\\DeliveryStatusRequest@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\\Gateway\\DeliveryStatusRequest@authorize is PROOF_READY but no test file at tests/Feature/DeliveryStatusRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Gateway/DeliveryStatusRequest.php::App\\Http\\Requests\\Gateway\\DeliveryStatusRequest::rules",
        "fqmn": "App\\Http\\Requests\\Gateway\\DeliveryStatusRequest@rules",
        "expected_test_path": "tests/Feature/DeliveryStatusRequestTest.php",
        "intent": null,
        "intent_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\\Gateway\\DeliveryStatusRequest;\n\nclass DeliveryStatusRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Gateway\\DeliveryStatusRequest@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\\Gateway\\DeliveryStatusRequest@rules is PROOF_READY but no test file at tests/Feature/DeliveryStatusRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Gateway/HeartbeatRequest.php::App\\Http\\Requests\\Gateway\\HeartbeatRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Gateway\\HeartbeatRequest@authorize",
        "expected_test_path": "tests/Feature/HeartbeatRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Gateway\\HeartbeatRequest;\n\nclass HeartbeatRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Gateway\\HeartbeatRequest@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\\Gateway\\HeartbeatRequest@authorize is PROOF_READY but no test file at tests/Feature/HeartbeatRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Gateway/HeartbeatRequest.php::App\\Http\\Requests\\Gateway\\HeartbeatRequest::rules",
        "fqmn": "App\\Http\\Requests\\Gateway\\HeartbeatRequest@rules",
        "expected_test_path": "tests/Feature/HeartbeatRequestTest.php",
        "intent": null,
        "intent_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\\Gateway\\HeartbeatRequest;\n\nclass HeartbeatRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Gateway\\HeartbeatRequest@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\\Gateway\\HeartbeatRequest@rules is PROOF_READY but no test file at tests/Feature/HeartbeatRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Gateway/RegisterGatewayRequest.php::App\\Http\\Requests\\Gateway\\RegisterGatewayRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Gateway\\RegisterGatewayRequest@authorize",
        "expected_test_path": "tests/Feature/RegisterGatewayRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Gateway\\RegisterGatewayRequest;\n\nclass RegisterGatewayRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Gateway\\RegisterGatewayRequest@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\\Gateway\\RegisterGatewayRequest@authorize is PROOF_READY but no test file at tests/Feature/RegisterGatewayRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Gateway/RegisterGatewayRequest.php::App\\Http\\Requests\\Gateway\\RegisterGatewayRequest::rules",
        "fqmn": "App\\Http\\Requests\\Gateway\\RegisterGatewayRequest@rules",
        "expected_test_path": "tests/Feature/RegisterGatewayRequestTest.php",
        "intent": null,
        "intent_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\\Gateway\\RegisterGatewayRequest;\n\nclass RegisterGatewayRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Gateway\\RegisterGatewayRequest@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\\Gateway\\RegisterGatewayRequest@rules is PROOF_READY but no test file at tests/Feature/RegisterGatewayRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Leads/StoreLeadRequest.php::App\\Http\\Requests\\Leads\\StoreLeadRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Leads\\StoreLeadRequest@authorize",
        "expected_test_path": "tests/Feature/StoreLeadRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Leads\\StoreLeadRequest;\n\nclass StoreLeadRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Leads\\StoreLeadRequest@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\\Leads\\StoreLeadRequest@authorize is PROOF_READY but no test file at tests/Feature/StoreLeadRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Leads/StoreLeadRequest.php::App\\Http\\Requests\\Leads\\StoreLeadRequest::rules",
        "fqmn": "App\\Http\\Requests\\Leads\\StoreLeadRequest@rules",
        "expected_test_path": "tests/Feature/StoreLeadRequestTest.php",
        "intent": null,
        "intent_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\\Leads\\StoreLeadRequest;\n\nclass StoreLeadRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Leads\\StoreLeadRequest@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\\Leads\\StoreLeadRequest@rules is PROOF_READY but no test file at tests/Feature/StoreLeadRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Leases/TerminateLeaseRequest.php::App\\Http\\Requests\\Leases\\TerminateLeaseRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Leases\\TerminateLeaseRequest@authorize",
        "expected_test_path": "tests/Feature/TerminateLeaseRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Leases\\TerminateLeaseRequest;\n\nclass TerminateLeaseRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Leases\\TerminateLeaseRequest@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\\Leases\\TerminateLeaseRequest@authorize is PROOF_READY but no test file at tests/Feature/TerminateLeaseRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Leases/TerminateLeaseRequest.php::App\\Http\\Requests\\Leases\\TerminateLeaseRequest::rules",
        "fqmn": "App\\Http\\Requests\\Leases\\TerminateLeaseRequest@rules",
        "expected_test_path": "tests/Feature/TerminateLeaseRequestTest.php",
        "intent": null,
        "intent_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\\Leases\\TerminateLeaseRequest;\n\nclass TerminateLeaseRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Leases\\TerminateLeaseRequest@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\\Leases\\TerminateLeaseRequest@rules is PROOF_READY but no test file at tests/Feature/TerminateLeaseRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/OrgDeductionSettings/UpdateOrgDeductionSettingsRequest.php::App\\Http\\Requests\\OrgDeductionSettings\\UpdateOrgDeductionSettingsRequest::authorize",
        "fqmn": "App\\Http\\Requests\\OrgDeductionSettings\\UpdateOrgDeductionSettingsRequest@authorize",
        "expected_test_path": "tests/Feature/UpdateOrgDeductionSettingsRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OrgDeductionSettings\\UpdateOrgDeductionSettingsRequest;\n\nclass UpdateOrgDeductionSettingsRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\OrgDeductionSettings\\UpdateOrgDeductionSettingsRequest@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\\OrgDeductionSettings\\UpdateOrgDeductionSettingsRequest@authorize is PROOF_READY but no test file at tests/Feature/UpdateOrgDeductionSettingsRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/OrgDeductionSettings/UpdateOrgDeductionSettingsRequest.php::App\\Http\\Requests\\OrgDeductionSettings\\UpdateOrgDeductionSettingsRequest::rules",
        "fqmn": "App\\Http\\Requests\\OrgDeductionSettings\\UpdateOrgDeductionSettingsRequest@rules",
        "expected_test_path": "tests/Feature/UpdateOrgDeductionSettingsRequestTest.php",
        "intent": null,
        "intent_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\\OrgDeductionSettings\\UpdateOrgDeductionSettingsRequest;\n\nclass UpdateOrgDeductionSettingsRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\OrgDeductionSettings\\UpdateOrgDeductionSettingsRequest@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\\OrgDeductionSettings\\UpdateOrgDeductionSettingsRequest@rules is PROOF_READY but no test file at tests/Feature/UpdateOrgDeductionSettingsRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/OrgDeductionSettings/UpdateOrgDeductionSettingsRequest.php::App\\Http\\Requests\\OrgDeductionSettings\\UpdateOrgDeductionSettingsRequest::withValidator",
        "fqmn": "App\\Http\\Requests\\OrgDeductionSettings\\UpdateOrgDeductionSettingsRequest@withValidator",
        "expected_test_path": "tests/Feature/UpdateOrgDeductionSettingsRequestTest.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\\OrgDeductionSettings\\UpdateOrgDeductionSettingsRequest;\n\nclass UpdateOrgDeductionSettingsRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\OrgDeductionSettings\\UpdateOrgDeductionSettingsRequest@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\\OrgDeductionSettings\\UpdateOrgDeductionSettingsRequest@withValidator is PROOF_READY but no test file at tests/Feature/UpdateOrgDeductionSettingsRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/People/StoreLandlordRequest.php::App\\Http\\Requests\\People\\StoreLandlordRequest::authorize",
        "fqmn": "App\\Http\\Requests\\People\\StoreLandlordRequest@authorize",
        "expected_test_path": "tests/Feature/StoreLandlordRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\People\\StoreLandlordRequest;\n\nclass StoreLandlordRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\People\\StoreLandlordRequest@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\\People\\StoreLandlordRequest@authorize is PROOF_READY but no test file at tests/Feature/StoreLandlordRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/People/StoreLandlordRequest.php::App\\Http\\Requests\\People\\StoreLandlordRequest::rules",
        "fqmn": "App\\Http\\Requests\\People\\StoreLandlordRequest@rules",
        "expected_test_path": "tests/Feature/StoreLandlordRequestTest.php",
        "intent": null,
        "intent_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\\People\\StoreLandlordRequest;\n\nclass StoreLandlordRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\People\\StoreLandlordRequest@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\\People\\StoreLandlordRequest@rules is PROOF_READY but no test file at tests/Feature/StoreLandlordRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/People/StoreTenantRequest.php::App\\Http\\Requests\\People\\StoreTenantRequest::authorize",
        "fqmn": "App\\Http\\Requests\\People\\StoreTenantRequest@authorize",
        "expected_test_path": "tests/Feature/StoreTenantRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\People\\StoreTenantRequest;\n\nclass StoreTenantRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\People\\StoreTenantRequest@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\\People\\StoreTenantRequest@authorize is PROOF_READY but no test file at tests/Feature/StoreTenantRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/People/StoreTenantRequest.php::App\\Http\\Requests\\People\\StoreTenantRequest::rules",
        "fqmn": "App\\Http\\Requests\\People\\StoreTenantRequest@rules",
        "expected_test_path": "tests/Feature/StoreTenantRequestTest.php",
        "intent": null,
        "intent_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\\People\\StoreTenantRequest;\n\nclass StoreTenantRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\People\\StoreTenantRequest@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\\People\\StoreTenantRequest@rules is PROOF_READY but no test file at tests/Feature/StoreTenantRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Properties/GetPropertiesByTypeRequest.php::App\\Http\\Requests\\Properties\\GetPropertiesByTypeRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Properties\\GetPropertiesByTypeRequest@authorize",
        "expected_test_path": "tests/Feature/GetPropertiesByTypeRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Properties\\GetPropertiesByTypeRequest;\n\nclass GetPropertiesByTypeRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Properties\\GetPropertiesByTypeRequest@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\\Properties\\GetPropertiesByTypeRequest@authorize is PROOF_READY but no test file at tests/Feature/GetPropertiesByTypeRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Properties/GetPropertiesByTypeRequest.php::App\\Http\\Requests\\Properties\\GetPropertiesByTypeRequest::rules",
        "fqmn": "App\\Http\\Requests\\Properties\\GetPropertiesByTypeRequest@rules",
        "expected_test_path": "tests/Feature/GetPropertiesByTypeRequestTest.php",
        "intent": null,
        "intent_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\\Properties\\GetPropertiesByTypeRequest;\n\nclass GetPropertiesByTypeRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Properties\\GetPropertiesByTypeRequest@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\\Properties\\GetPropertiesByTypeRequest@rules is PROOF_READY but no test file at tests/Feature/GetPropertiesByTypeRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Properties/GetPropertiesForLandlordRequest.php::App\\Http\\Requests\\Properties\\GetPropertiesForLandlordRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Properties\\GetPropertiesForLandlordRequest@authorize",
        "expected_test_path": "tests/Feature/GetPropertiesForLandlordRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Properties\\GetPropertiesForLandlordRequest;\n\nclass GetPropertiesForLandlordRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Properties\\GetPropertiesForLandlordRequest@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\\Properties\\GetPropertiesForLandlordRequest@authorize is PROOF_READY but no test file at tests/Feature/GetPropertiesForLandlordRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Properties/GetPropertiesForLandlordRequest.php::App\\Http\\Requests\\Properties\\GetPropertiesForLandlordRequest::rules",
        "fqmn": "App\\Http\\Requests\\Properties\\GetPropertiesForLandlordRequest@rules",
        "expected_test_path": "tests/Feature/GetPropertiesForLandlordRequestTest.php",
        "intent": null,
        "intent_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\\Properties\\GetPropertiesForLandlordRequest;\n\nclass GetPropertiesForLandlordRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Properties\\GetPropertiesForLandlordRequest@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\\Properties\\GetPropertiesForLandlordRequest@rules is PROOF_READY but no test file at tests/Feature/GetPropertiesForLandlordRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Properties/UpdateUnitCompositionRequest.php::App\\Http\\Requests\\Properties\\UpdateUnitCompositionRequest::attributes",
        "fqmn": "App\\Http\\Requests\\Properties\\UpdateUnitCompositionRequest@attributes",
        "expected_test_path": "tests/Feature/UpdateUnitCompositionRequestTest.php",
        "intent": null,
        "intent_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\\Properties\\UpdateUnitCompositionRequest;\n\nclass UpdateUnitCompositionRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Properties\\UpdateUnitCompositionRequest@attributes\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_attributes_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\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\\Properties\\UpdateUnitCompositionRequest@attributes is PROOF_READY but no test file at tests/Feature/UpdateUnitCompositionRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Properties/UpdateUnitCompositionRequest.php::App\\Http\\Requests\\Properties\\UpdateUnitCompositionRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Properties\\UpdateUnitCompositionRequest@authorize",
        "expected_test_path": "tests/Feature/UpdateUnitCompositionRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Properties\\UpdateUnitCompositionRequest;\n\nclass UpdateUnitCompositionRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Properties\\UpdateUnitCompositionRequest@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\\Properties\\UpdateUnitCompositionRequest@authorize is PROOF_READY but no test file at tests/Feature/UpdateUnitCompositionRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Properties/UpdateUnitCompositionRequest.php::App\\Http\\Requests\\Properties\\UpdateUnitCompositionRequest::messages",
        "fqmn": "App\\Http\\Requests\\Properties\\UpdateUnitCompositionRequest@messages",
        "expected_test_path": "tests/Feature/UpdateUnitCompositionRequestTest.php",
        "intent": null,
        "intent_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\\Properties\\UpdateUnitCompositionRequest;\n\nclass UpdateUnitCompositionRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Properties\\UpdateUnitCompositionRequest@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\\Properties\\UpdateUnitCompositionRequest@messages is PROOF_READY but no test file at tests/Feature/UpdateUnitCompositionRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Properties/UpdateUnitCompositionRequest.php::App\\Http\\Requests\\Properties\\UpdateUnitCompositionRequest::rules",
        "fqmn": "App\\Http\\Requests\\Properties\\UpdateUnitCompositionRequest@rules",
        "expected_test_path": "tests/Feature/UpdateUnitCompositionRequestTest.php",
        "intent": null,
        "intent_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\\Properties\\UpdateUnitCompositionRequest;\n\nclass UpdateUnitCompositionRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Properties\\UpdateUnitCompositionRequest@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\\Properties\\UpdateUnitCompositionRequest@rules is PROOF_READY but no test file at tests/Feature/UpdateUnitCompositionRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Reminders/GetRemindersByStatusRequest.php::App\\Http\\Requests\\Reminders\\GetRemindersByStatusRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Reminders\\GetRemindersByStatusRequest@authorize",
        "expected_test_path": "tests/Feature/GetRemindersByStatusRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Reminders\\GetRemindersByStatusRequest;\n\nclass GetRemindersByStatusRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Reminders\\GetRemindersByStatusRequest@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\\Reminders\\GetRemindersByStatusRequest@authorize is PROOF_READY but no test file at tests/Feature/GetRemindersByStatusRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Reminders/GetRemindersByStatusRequest.php::App\\Http\\Requests\\Reminders\\GetRemindersByStatusRequest::rules",
        "fqmn": "App\\Http\\Requests\\Reminders\\GetRemindersByStatusRequest@rules",
        "expected_test_path": "tests/Feature/GetRemindersByStatusRequestTest.php",
        "intent": null,
        "intent_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\\Reminders\\GetRemindersByStatusRequest;\n\nclass GetRemindersByStatusRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Reminders\\GetRemindersByStatusRequest@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\\Reminders\\GetRemindersByStatusRequest@rules is PROOF_READY but no test file at tests/Feature/GetRemindersByStatusRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/RentCycles/BulkUpdateRentCycleRequest.php::App\\Http\\Requests\\RentCycles\\BulkUpdateRentCycleRequest::authorize",
        "fqmn": "App\\Http\\Requests\\RentCycles\\BulkUpdateRentCycleRequest@authorize",
        "expected_test_path": "tests/Feature/BulkUpdateRentCycleRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\RentCycles\\BulkUpdateRentCycleRequest;\n\nclass BulkUpdateRentCycleRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\RentCycles\\BulkUpdateRentCycleRequest@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\\RentCycles\\BulkUpdateRentCycleRequest@authorize is PROOF_READY but no test file at tests/Feature/BulkUpdateRentCycleRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/RentCycles/BulkUpdateRentCycleRequest.php::App\\Http\\Requests\\RentCycles\\BulkUpdateRentCycleRequest::rules",
        "fqmn": "App\\Http\\Requests\\RentCycles\\BulkUpdateRentCycleRequest@rules",
        "expected_test_path": "tests/Feature/BulkUpdateRentCycleRequestTest.php",
        "intent": null,
        "intent_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\\RentCycles\\BulkUpdateRentCycleRequest;\n\nclass BulkUpdateRentCycleRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\RentCycles\\BulkUpdateRentCycleRequest@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\\RentCycles\\BulkUpdateRentCycleRequest@rules is PROOF_READY but no test file at tests/Feature/BulkUpdateRentCycleRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/RentCycles/UpdateRentCycleRequest.php::App\\Http\\Requests\\RentCycles\\UpdateRentCycleRequest::authorize",
        "fqmn": "App\\Http\\Requests\\RentCycles\\UpdateRentCycleRequest@authorize",
        "expected_test_path": "tests/Feature/UpdateRentCycleRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\RentCycles\\UpdateRentCycleRequest;\n\nclass UpdateRentCycleRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\RentCycles\\UpdateRentCycleRequest@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\\RentCycles\\UpdateRentCycleRequest@authorize is PROOF_READY but no test file at tests/Feature/UpdateRentCycleRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/RentCycles/UpdateRentCycleRequest.php::App\\Http\\Requests\\RentCycles\\UpdateRentCycleRequest::rules",
        "fqmn": "App\\Http\\Requests\\RentCycles\\UpdateRentCycleRequest@rules",
        "expected_test_path": "tests/Feature/UpdateRentCycleRequestTest.php",
        "intent": null,
        "intent_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\\RentCycles\\UpdateRentCycleRequest;\n\nclass UpdateRentCycleRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\RentCycles\\UpdateRentCycleRequest@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\\RentCycles\\UpdateRentCycleRequest@rules is PROOF_READY but no test file at tests/Feature/UpdateRentCycleRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Reports/ExportCollectionReportRequest.php::App\\Http\\Requests\\Reports\\ExportCollectionReportRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Reports\\ExportCollectionReportRequest@authorize",
        "expected_test_path": "tests/Feature/ExportCollectionReportRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Reports\\ExportCollectionReportRequest;\n\nclass ExportCollectionReportRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Reports\\ExportCollectionReportRequest@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\\Reports\\ExportCollectionReportRequest@authorize is PROOF_READY but no test file at tests/Feature/ExportCollectionReportRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Reports/ExportCollectionReportRequest.php::App\\Http\\Requests\\Reports\\ExportCollectionReportRequest::rules",
        "fqmn": "App\\Http\\Requests\\Reports\\ExportCollectionReportRequest@rules",
        "expected_test_path": "tests/Feature/ExportCollectionReportRequestTest.php",
        "intent": null,
        "intent_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\\Reports\\ExportCollectionReportRequest;\n\nclass ExportCollectionReportRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Reports\\ExportCollectionReportRequest@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\\Reports\\ExportCollectionReportRequest@rules is PROOF_READY but no test file at tests/Feature/ExportCollectionReportRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Reports/ExportOverdueReportRequest.php::App\\Http\\Requests\\Reports\\ExportOverdueReportRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Reports\\ExportOverdueReportRequest@authorize",
        "expected_test_path": "tests/Feature/ExportOverdueReportRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Reports\\ExportOverdueReportRequest;\n\nclass ExportOverdueReportRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Reports\\ExportOverdueReportRequest@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\\Reports\\ExportOverdueReportRequest@authorize is PROOF_READY but no test file at tests/Feature/ExportOverdueReportRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Reports/ExportOverdueReportRequest.php::App\\Http\\Requests\\Reports\\ExportOverdueReportRequest::rules",
        "fqmn": "App\\Http\\Requests\\Reports\\ExportOverdueReportRequest@rules",
        "expected_test_path": "tests/Feature/ExportOverdueReportRequestTest.php",
        "intent": null,
        "intent_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\\Reports\\ExportOverdueReportRequest;\n\nclass ExportOverdueReportRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Reports\\ExportOverdueReportRequest@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\\Reports\\ExportOverdueReportRequest@rules is PROOF_READY but no test file at tests/Feature/ExportOverdueReportRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Reports/ExportRentRollRequest.php::App\\Http\\Requests\\Reports\\ExportRentRollRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Reports\\ExportRentRollRequest@authorize",
        "expected_test_path": "tests/Feature/ExportRentRollRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Reports\\ExportRentRollRequest;\n\nclass ExportRentRollRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Reports\\ExportRentRollRequest@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\\Reports\\ExportRentRollRequest@authorize is PROOF_READY but no test file at tests/Feature/ExportRentRollRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Reports/ExportRentRollRequest.php::App\\Http\\Requests\\Reports\\ExportRentRollRequest::rules",
        "fqmn": "App\\Http\\Requests\\Reports\\ExportRentRollRequest@rules",
        "expected_test_path": "tests/Feature/ExportRentRollRequestTest.php",
        "intent": null,
        "intent_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\\Reports\\ExportRentRollRequest;\n\nclass ExportRentRollRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Reports\\ExportRentRollRequest@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\\Reports\\ExportRentRollRequest@rules is PROOF_READY but no test file at tests/Feature/ExportRentRollRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Subscriptions/TopUpRequest.php::App\\Http\\Requests\\Subscriptions\\TopUpRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Subscriptions\\TopUpRequest@authorize",
        "expected_test_path": "tests/Feature/TopUpRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Subscriptions\\TopUpRequest;\n\nclass TopUpRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Subscriptions\\TopUpRequest@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\\Subscriptions\\TopUpRequest@authorize is PROOF_READY but no test file at tests/Feature/TopUpRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Subscriptions/TopUpRequest.php::App\\Http\\Requests\\Subscriptions\\TopUpRequest::rules",
        "fqmn": "App\\Http\\Requests\\Subscriptions\\TopUpRequest@rules",
        "expected_test_path": "tests/Feature/TopUpRequestTest.php",
        "intent": null,
        "intent_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\\Subscriptions\\TopUpRequest;\n\nclass TopUpRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Subscriptions\\TopUpRequest@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\\Subscriptions\\TopUpRequest@rules is PROOF_READY but no test file at tests/Feature/TopUpRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Transfers/FailTransferRequest.php::App\\Http\\Requests\\Transfers\\FailTransferRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Transfers\\FailTransferRequest@authorize",
        "expected_test_path": "tests/Feature/FailTransferRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Transfers\\FailTransferRequest;\n\nclass FailTransferRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Transfers\\FailTransferRequest@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\\Transfers\\FailTransferRequest@authorize is PROOF_READY but no test file at tests/Feature/FailTransferRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Transfers/FailTransferRequest.php::App\\Http\\Requests\\Transfers\\FailTransferRequest::rules",
        "fqmn": "App\\Http\\Requests\\Transfers\\FailTransferRequest@rules",
        "expected_test_path": "tests/Feature/FailTransferRequestTest.php",
        "intent": null,
        "intent_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\\Transfers\\FailTransferRequest;\n\nclass FailTransferRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Transfers\\FailTransferRequest@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\\Transfers\\FailTransferRequest@rules is PROOF_READY but no test file at tests/Feature/FailTransferRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Verification/CheckVerificationRequest.php::App\\Http\\Requests\\Verification\\CheckVerificationRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Verification\\CheckVerificationRequest@authorize",
        "expected_test_path": "tests/Feature/CheckVerificationRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Verification\\CheckVerificationRequest;\n\nclass CheckVerificationRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Verification\\CheckVerificationRequest@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\\Verification\\CheckVerificationRequest@authorize is PROOF_READY but no test file at tests/Feature/CheckVerificationRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Verification/CheckVerificationRequest.php::App\\Http\\Requests\\Verification\\CheckVerificationRequest::rules",
        "fqmn": "App\\Http\\Requests\\Verification\\CheckVerificationRequest@rules",
        "expected_test_path": "tests/Feature/CheckVerificationRequestTest.php",
        "intent": null,
        "intent_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\\Verification\\CheckVerificationRequest;\n\nclass CheckVerificationRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Verification\\CheckVerificationRequest@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\\Verification\\CheckVerificationRequest@rules is PROOF_READY but no test file at tests/Feature/CheckVerificationRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Verification/StartVerificationRequest.php::App\\Http\\Requests\\Verification\\StartVerificationRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Verification\\StartVerificationRequest@authorize",
        "expected_test_path": "tests/Feature/StartVerificationRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Verification\\StartVerificationRequest;\n\nclass StartVerificationRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Verification\\StartVerificationRequest@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\\Verification\\StartVerificationRequest@authorize is PROOF_READY but no test file at tests/Feature/StartVerificationRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Verification/StartVerificationRequest.php::App\\Http\\Requests\\Verification\\StartVerificationRequest::rules",
        "fqmn": "App\\Http\\Requests\\Verification\\StartVerificationRequest@rules",
        "expected_test_path": "tests/Feature/StartVerificationRequestTest.php",
        "intent": null,
        "intent_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\\Verification\\StartVerificationRequest;\n\nclass StartVerificationRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Verification\\StartVerificationRequest@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\\Verification\\StartVerificationRequest@rules is PROOF_READY but no test file at tests/Feature/StartVerificationRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/WhatsApp/ProvisionWhatsAppRequest.php::App\\Http\\Requests\\WhatsApp\\ProvisionWhatsAppRequest::authorize",
        "fqmn": "App\\Http\\Requests\\WhatsApp\\ProvisionWhatsAppRequest@authorize",
        "expected_test_path": "tests/Feature/ProvisionWhatsAppRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\WhatsApp\\ProvisionWhatsAppRequest;\n\nclass ProvisionWhatsAppRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\WhatsApp\\ProvisionWhatsAppRequest@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\\WhatsApp\\ProvisionWhatsAppRequest@authorize is PROOF_READY but no test file at tests/Feature/ProvisionWhatsAppRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/WhatsApp/ProvisionWhatsAppRequest.php::App\\Http\\Requests\\WhatsApp\\ProvisionWhatsAppRequest::rules",
        "fqmn": "App\\Http\\Requests\\WhatsApp\\ProvisionWhatsAppRequest@rules",
        "expected_test_path": "tests/Feature/ProvisionWhatsAppRequestTest.php",
        "intent": null,
        "intent_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\\WhatsApp\\ProvisionWhatsAppRequest;\n\nclass ProvisionWhatsAppRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\WhatsApp\\ProvisionWhatsAppRequest@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\\WhatsApp\\ProvisionWhatsAppRequest@rules is PROOF_READY but no test file at tests/Feature/ProvisionWhatsAppRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/WhatsApp/SelectPhoneNumberRequest.php::App\\Http\\Requests\\WhatsApp\\SelectPhoneNumberRequest::authorize",
        "fqmn": "App\\Http\\Requests\\WhatsApp\\SelectPhoneNumberRequest@authorize",
        "expected_test_path": "tests/Feature/SelectPhoneNumberRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\WhatsApp\\SelectPhoneNumberRequest;\n\nclass SelectPhoneNumberRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\WhatsApp\\SelectPhoneNumberRequest@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\\WhatsApp\\SelectPhoneNumberRequest@authorize is PROOF_READY but no test file at tests/Feature/SelectPhoneNumberRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/WhatsApp/SelectPhoneNumberRequest.php::App\\Http\\Requests\\WhatsApp\\SelectPhoneNumberRequest::rules",
        "fqmn": "App\\Http\\Requests\\WhatsApp\\SelectPhoneNumberRequest@rules",
        "expected_test_path": "tests/Feature/SelectPhoneNumberRequestTest.php",
        "intent": null,
        "intent_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\\WhatsApp\\SelectPhoneNumberRequest;\n\nclass SelectPhoneNumberRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\WhatsApp\\SelectPhoneNumberRequest@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\\WhatsApp\\SelectPhoneNumberRequest@rules is PROOF_READY but no test file at tests/Feature/SelectPhoneNumberRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/WhatsApp/StartOnboardingRequest.php::App\\Http\\Requests\\WhatsApp\\StartOnboardingRequest::authorize",
        "fqmn": "App\\Http\\Requests\\WhatsApp\\StartOnboardingRequest@authorize",
        "expected_test_path": "tests/Feature/StartOnboardingRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\WhatsApp\\StartOnboardingRequest;\n\nclass StartOnboardingRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\WhatsApp\\StartOnboardingRequest@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\\WhatsApp\\StartOnboardingRequest@authorize is PROOF_READY but no test file at tests/Feature/StartOnboardingRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/WhatsApp/StartOnboardingRequest.php::App\\Http\\Requests\\WhatsApp\\StartOnboardingRequest::rules",
        "fqmn": "App\\Http\\Requests\\WhatsApp\\StartOnboardingRequest@rules",
        "expected_test_path": "tests/Feature/StartOnboardingRequestTest.php",
        "intent": null,
        "intent_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\\WhatsApp\\StartOnboardingRequest;\n\nclass StartOnboardingRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\WhatsApp\\StartOnboardingRequest@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\\WhatsApp\\StartOnboardingRequest@rules is PROOF_READY but no test file at tests/Feature/StartOnboardingRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/WhatsApp/TestWhatsAppRequest.php::App\\Http\\Requests\\WhatsApp\\TestWhatsAppRequest::authorize",
        "fqmn": "App\\Http\\Requests\\WhatsApp\\TestWhatsAppRequest@authorize",
        "expected_test_path": "tests/Feature/TestWhatsAppRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\WhatsApp\\TestWhatsAppRequest;\n\nclass TestWhatsAppRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\WhatsApp\\TestWhatsAppRequest@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\\WhatsApp\\TestWhatsAppRequest@authorize is PROOF_READY but no test file at tests/Feature/TestWhatsAppRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/WhatsApp/TestWhatsAppRequest.php::App\\Http\\Requests\\WhatsApp\\TestWhatsAppRequest::rules",
        "fqmn": "App\\Http\\Requests\\WhatsApp\\TestWhatsAppRequest@rules",
        "expected_test_path": "tests/Feature/TestWhatsAppRequestTest.php",
        "intent": null,
        "intent_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\\WhatsApp\\TestWhatsAppRequest;\n\nclass TestWhatsAppRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\WhatsApp\\TestWhatsAppRequest@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\\WhatsApp\\TestWhatsAppRequest@rules is PROOF_READY but no test file at tests/Feature/TestWhatsAppRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/WhatsApp/UpdateWhatsAppIntegrationRequest.php::App\\Http\\Requests\\WhatsApp\\UpdateWhatsAppIntegrationRequest::authorize",
        "fqmn": "App\\Http\\Requests\\WhatsApp\\UpdateWhatsAppIntegrationRequest@authorize",
        "expected_test_path": "tests/Feature/UpdateWhatsAppIntegrationRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\WhatsApp\\UpdateWhatsAppIntegrationRequest;\n\nclass UpdateWhatsAppIntegrationRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\WhatsApp\\UpdateWhatsAppIntegrationRequest@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\\WhatsApp\\UpdateWhatsAppIntegrationRequest@authorize is PROOF_READY but no test file at tests/Feature/UpdateWhatsAppIntegrationRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/WhatsApp/UpdateWhatsAppIntegrationRequest.php::App\\Http\\Requests\\WhatsApp\\UpdateWhatsAppIntegrationRequest::rules",
        "fqmn": "App\\Http\\Requests\\WhatsApp\\UpdateWhatsAppIntegrationRequest@rules",
        "expected_test_path": "tests/Feature/UpdateWhatsAppIntegrationRequestTest.php",
        "intent": null,
        "intent_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\\WhatsApp\\UpdateWhatsAppIntegrationRequest;\n\nclass UpdateWhatsAppIntegrationRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\WhatsApp\\UpdateWhatsAppIntegrationRequest@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\\WhatsApp\\UpdateWhatsAppIntegrationRequest@rules is PROOF_READY but no test file at tests/Feature/UpdateWhatsAppIntegrationRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/WhatsApp/UpdateWhatsAppProfileRequest.php::App\\Http\\Requests\\WhatsApp\\UpdateWhatsAppProfileRequest::authorize",
        "fqmn": "App\\Http\\Requests\\WhatsApp\\UpdateWhatsAppProfileRequest@authorize",
        "expected_test_path": "tests/Feature/UpdateWhatsAppProfileRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\WhatsApp\\UpdateWhatsAppProfileRequest;\n\nclass UpdateWhatsAppProfileRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\WhatsApp\\UpdateWhatsAppProfileRequest@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\\WhatsApp\\UpdateWhatsAppProfileRequest@authorize is PROOF_READY but no test file at tests/Feature/UpdateWhatsAppProfileRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/WhatsApp/UpdateWhatsAppProfileRequest.php::App\\Http\\Requests\\WhatsApp\\UpdateWhatsAppProfileRequest::rules",
        "fqmn": "App\\Http\\Requests\\WhatsApp\\UpdateWhatsAppProfileRequest@rules",
        "expected_test_path": "tests/Feature/UpdateWhatsAppProfileRequestTest.php",
        "intent": null,
        "intent_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\\WhatsApp\\UpdateWhatsAppProfileRequest;\n\nclass UpdateWhatsAppProfileRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\WhatsApp\\UpdateWhatsAppProfileRequest@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\\WhatsApp\\UpdateWhatsAppProfileRequest@rules is PROOF_READY but no test file at tests/Feature/UpdateWhatsAppProfileRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/WhatsApp/UpdateWhatsAppSettingsRequest.php::App\\Http\\Requests\\WhatsApp\\UpdateWhatsAppSettingsRequest::authorize",
        "fqmn": "App\\Http\\Requests\\WhatsApp\\UpdateWhatsAppSettingsRequest@authorize",
        "expected_test_path": "tests/Feature/UpdateWhatsAppSettingsRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\WhatsApp\\UpdateWhatsAppSettingsRequest;\n\nclass UpdateWhatsAppSettingsRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\WhatsApp\\UpdateWhatsAppSettingsRequest@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\\WhatsApp\\UpdateWhatsAppSettingsRequest@authorize is PROOF_READY but no test file at tests/Feature/UpdateWhatsAppSettingsRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/WhatsApp/UpdateWhatsAppSettingsRequest.php::App\\Http\\Requests\\WhatsApp\\UpdateWhatsAppSettingsRequest::rules",
        "fqmn": "App\\Http\\Requests\\WhatsApp\\UpdateWhatsAppSettingsRequest@rules",
        "expected_test_path": "tests/Feature/UpdateWhatsAppSettingsRequestTest.php",
        "intent": null,
        "intent_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\\WhatsApp\\UpdateWhatsAppSettingsRequest;\n\nclass UpdateWhatsAppSettingsRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\WhatsApp\\UpdateWhatsAppSettingsRequest@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\\WhatsApp\\UpdateWhatsAppSettingsRequest@rules is PROOF_READY but no test file at tests/Feature/UpdateWhatsAppSettingsRequestTest.php is in the MANUAL allowlist. 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/ApproveReminderTemplateJob.php::App\\Jobs\\ApproveReminderTemplateJob::handle",
        "fqmn": "App\\Jobs\\ApproveReminderTemplateJob@handle",
        "expected_test_path": "tests/Feature/ApproveReminderTemplateJobTest.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\\ApproveReminderTemplateJob;\n\nclass ApproveReminderTemplateJobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\ApproveReminderTemplateJob@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\\ApproveReminderTemplateJob@handle is PROOF_READY but no test file at tests/Feature/ApproveReminderTemplateJobTest.php is in the MANUAL allowlist. 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/BuildMessagePackageInvoiceContextJob.php::App\\Jobs\\Billing\\BuildMessagePackageInvoiceContextJob::handle",
        "fqmn": "App\\Jobs\\Billing\\BuildMessagePackageInvoiceContextJob@handle",
        "expected_test_path": "tests/Feature/BuildMessagePackageInvoiceContextJobTest.php",
        "intent": null,
        "intent_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\\BuildMessagePackageInvoiceContextJob;\n\nclass BuildMessagePackageInvoiceContextJobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Billing\\BuildMessagePackageInvoiceContextJob@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\\Billing\\BuildMessagePackageInvoiceContextJob@handle is PROOF_READY but no test file at tests/Feature/BuildMessagePackageInvoiceContextJobTest.php is in the MANUAL allowlist. 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/CreateAuditLogJob.php::App\\Jobs\\Billing\\CreateAuditLogJob::handle",
        "fqmn": "App\\Jobs\\Billing\\CreateAuditLogJob@handle",
        "expected_test_path": "tests/Feature/CreateAuditLogJobTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Billing\\CreateAuditLogJob;\n\nclass CreateAuditLogJobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Billing\\CreateAuditLogJob@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\\Jobs\\Billing\\CreateAuditLogJob@handle is PROOF_READY but no test file at tests/Feature/CreateAuditLogJobTest.php is in the MANUAL allowlist. 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/CreateMessagePackageAndBuildInvoiceContextJob.php::App\\Jobs\\Billing\\CreateMessagePackageAndBuildInvoiceContextJob::handle",
        "fqmn": "App\\Jobs\\Billing\\CreateMessagePackageAndBuildInvoiceContextJob@handle",
        "expected_test_path": "tests/Feature/CreateMessagePackageAndBuildInvoiceContextJobTest.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\\Billing\\CreateMessagePackageAndBuildInvoiceContextJob;\n\nclass CreateMessagePackageAndBuildInvoiceContextJobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Billing\\CreateMessagePackageAndBuildInvoiceContextJob@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\\Billing\\CreateMessagePackageAndBuildInvoiceContextJob@handle is PROOF_READY but no test file at tests/Feature/CreateMessagePackageAndBuildInvoiceContextJobTest.php is in the MANUAL allowlist. 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/CreateMessagePackageJob.php::App\\Jobs\\Billing\\CreateMessagePackageJob::handle",
        "fqmn": "App\\Jobs\\Billing\\CreateMessagePackageJob@handle",
        "expected_test_path": "tests/Feature/CreateMessagePackageJobTest.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\\Billing\\CreateMessagePackageJob;\n\nclass CreateMessagePackageJobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Billing\\CreateMessagePackageJob@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\\Billing\\CreateMessagePackageJob@handle is PROOF_READY but no test file at tests/Feature/CreateMessagePackageJobTest.php is in the MANUAL allowlist. 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/PushZohoSettlementPaymentJob.php::App\\Jobs\\Billing\\PushZohoSettlementPaymentJob::handle",
        "fqmn": "App\\Jobs\\Billing\\PushZohoSettlementPaymentJob@handle",
        "expected_test_path": "tests/Feature/PushZohoSettlementPaymentJobTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Billing\\PushZohoSettlementPaymentJob;\n\nclass PushZohoSettlementPaymentJobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Billing\\PushZohoSettlementPaymentJob@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\\Jobs\\Billing\\PushZohoSettlementPaymentJob@handle is PROOF_READY but no test file at tests/Feature/PushZohoSettlementPaymentJobTest.php is in the MANUAL allowlist. 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/RunMessageBillingWorkflowJob.php::App\\Jobs\\Billing\\RunMessageBillingWorkflowJob::handle",
        "fqmn": "App\\Jobs\\Billing\\RunMessageBillingWorkflowJob@handle",
        "expected_test_path": "tests/Feature/RunMessageBillingWorkflowJobTest.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\\Billing\\RunMessageBillingWorkflowJob;\n\nclass RunMessageBillingWorkflowJobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Billing\\RunMessageBillingWorkflowJob@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\\Billing\\RunMessageBillingWorkflowJob@handle is PROOF_READY but no test file at tests/Feature/RunMessageBillingWorkflowJobTest.php is in the MANUAL allowlist. 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/Chat/InboundMessageJob.php::App\\Jobs\\Chat\\InboundMessageJob::handle",
        "fqmn": "App\\Jobs\\Chat\\InboundMessageJob@handle",
        "expected_test_path": "tests/Feature/InboundMessageJobTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [
          "assert_cache_written",
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Jobs\\Chat\\InboundMessageJob;\n\nclass InboundMessageJobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Chat\\InboundMessageJob@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->assertTrue(Cache::has('<key>'));\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\Chat\\InboundMessageJob@handle is PROOF_READY but no test file at tests/Feature/InboundMessageJobTest.php is in the MANUAL allowlist. 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/Chat/ProcessAIMessageJob.php::App\\Jobs\\Chat\\ProcessAIMessageJob::handle",
        "fqmn": "App\\Jobs\\Chat\\ProcessAIMessageJob@handle",
        "expected_test_path": "tests/Feature/ProcessAIMessageJobTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write",
          "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\\Jobs\\Chat\\ProcessAIMessageJob;\n\nclass ProcessAIMessageJobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Chat\\ProcessAIMessageJob@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        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\Chat\\ProcessAIMessageJob@handle is PROOF_READY but no test file at tests/Feature/ProcessAIMessageJobTest.php is in the MANUAL allowlist. 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/Chat/SendOutboundMessageJob.php::App\\Jobs\\Chat\\SendOutboundMessageJob::backoff",
        "fqmn": "App\\Jobs\\Chat\\SendOutboundMessageJob@backoff",
        "expected_test_path": "tests/Feature/SendOutboundMessageJobTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Chat\\SendOutboundMessageJob;\n\nclass SendOutboundMessageJobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Chat\\SendOutboundMessageJob@backoff\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_backoff_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Chat\\SendOutboundMessageJob@backoff is PROOF_READY but no test file at tests/Feature/SendOutboundMessageJobTest.php is in the MANUAL allowlist. 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/Chat/SendOutboundMessageJob.php::App\\Jobs\\Chat\\SendOutboundMessageJob::handle",
        "fqmn": "App\\Jobs\\Chat\\SendOutboundMessageJob@handle",
        "expected_test_path": "tests/Feature/SendOutboundMessageJobTest.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\\Chat\\SendOutboundMessageJob;\n\nclass SendOutboundMessageJobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Chat\\SendOutboundMessageJob@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\\Chat\\SendOutboundMessageJob@handle is PROOF_READY but no test file at tests/Feature/SendOutboundMessageJobTest.php is in the MANUAL allowlist. 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/Outreach/CheckActivationStatusJob.php::App\\Jobs\\Outreach\\CheckActivationStatusJob::handle",
        "fqmn": "App\\Jobs\\Outreach\\CheckActivationStatusJob@handle",
        "expected_test_path": "tests/Feature/CheckActivationStatusJobTest.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\\Jobs\\Outreach\\CheckActivationStatusJob;\n\nclass CheckActivationStatusJobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Outreach\\CheckActivationStatusJob@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\\Jobs\\Outreach\\CheckActivationStatusJob@handle is PROOF_READY but no test file at tests/Feature/CheckActivationStatusJobTest.php is in the MANUAL allowlist. 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/Outreach/ProcessRenewalOutreachJob.php::App\\Jobs\\Outreach\\ProcessRenewalOutreachJob::handle",
        "fqmn": "App\\Jobs\\Outreach\\ProcessRenewalOutreachJob@handle",
        "expected_test_path": "tests/Feature/ProcessRenewalOutreachJobTest.php",
        "intent": null,
        "intent_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\\Outreach\\ProcessRenewalOutreachJob;\n\nclass ProcessRenewalOutreachJobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Outreach\\ProcessRenewalOutreachJob@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\\Outreach\\ProcessRenewalOutreachJob@handle is PROOF_READY but no test file at tests/Feature/ProcessRenewalOutreachJobTest.php is in the MANUAL allowlist. 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/Outreach/SendCampaignMessageJob.php::App\\Jobs\\Outreach\\SendCampaignMessageJob::handle",
        "fqmn": "App\\Jobs\\Outreach\\SendCampaignMessageJob@handle",
        "expected_test_path": "tests/Feature/SendCampaignMessageJobTest.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\\Outreach\\SendCampaignMessageJob;\n\nclass SendCampaignMessageJobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Outreach\\SendCampaignMessageJob@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\\Outreach\\SendCampaignMessageJob@handle is PROOF_READY but no test file at tests/Feature/SendCampaignMessageJobTest.php is in the MANUAL allowlist. 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/Outreach/SendCampaignMessageJob.php::App\\Jobs\\Outreach\\SendCampaignMessageJob::middleware",
        "fqmn": "App\\Jobs\\Outreach\\SendCampaignMessageJob@middleware",
        "expected_test_path": "tests/Feature/SendCampaignMessageJobTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Outreach\\SendCampaignMessageJob;\n\nclass SendCampaignMessageJobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Outreach\\SendCampaignMessageJob@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Outreach\\SendCampaignMessageJob@middleware is PROOF_READY but no test file at tests/Feature/SendCampaignMessageJobTest.php is in the MANUAL allowlist. 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/OutreachAI/AutoSubscriptionNudgeJob.php::App\\Jobs\\OutreachAI\\AutoSubscriptionNudgeJob::handle",
        "fqmn": "App\\Jobs\\OutreachAI\\AutoSubscriptionNudgeJob@handle",
        "expected_test_path": "tests/Feature/AutoSubscriptionNudgeJobTest.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\\OutreachAI\\AutoSubscriptionNudgeJob;\n\nclass AutoSubscriptionNudgeJobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\OutreachAI\\AutoSubscriptionNudgeJob@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\\OutreachAI\\AutoSubscriptionNudgeJob@handle is PROOF_READY but no test file at tests/Feature/AutoSubscriptionNudgeJobTest.php is in the MANUAL allowlist. 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/OutreachAI/EvaluateFollowUpJob.php::App\\Jobs\\OutreachAI\\EvaluateFollowUpJob::handle",
        "fqmn": "App\\Jobs\\OutreachAI\\EvaluateFollowUpJob@handle",
        "expected_test_path": "tests/Feature/EvaluateFollowUpJobTest.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\\OutreachAI\\EvaluateFollowUpJob;\n\nclass EvaluateFollowUpJobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\OutreachAI\\EvaluateFollowUpJob@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\\OutreachAI\\EvaluateFollowUpJob@handle is PROOF_READY but no test file at tests/Feature/EvaluateFollowUpJobTest.php is in the MANUAL allowlist. 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/OutreachAI/PostReplyPersistenceJob.php::App\\Jobs\\OutreachAI\\PostReplyPersistenceJob::handle",
        "fqmn": "App\\Jobs\\OutreachAI\\PostReplyPersistenceJob@handle",
        "expected_test_path": "tests/Feature/PostReplyPersistenceJobTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\PostReplyPersistenceJob;\n\nclass PostReplyPersistenceJobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\OutreachAI\\PostReplyPersistenceJob@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\\OutreachAI\\PostReplyPersistenceJob@handle is PROOF_READY but no test file at tests/Feature/PostReplyPersistenceJobTest.php is in the MANUAL allowlist. 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/OutreachAI/ReactivatePortalUserJob.php::App\\Jobs\\OutreachAI\\ReactivatePortalUserJob::handle",
        "fqmn": "App\\Jobs\\OutreachAI\\ReactivatePortalUserJob@handle",
        "expected_test_path": "tests/Feature/ReactivatePortalUserJobTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\ReactivatePortalUserJob;\n\nclass ReactivatePortalUserJobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\OutreachAI\\ReactivatePortalUserJob@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\\OutreachAI\\ReactivatePortalUserJob@handle is PROOF_READY but no test file at tests/Feature/ReactivatePortalUserJobTest.php is in the MANUAL allowlist. 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/OutreachAI/RunDeepReasoningJob.php::App\\Jobs\\OutreachAI\\RunDeepReasoningJob::handle",
        "fqmn": "App\\Jobs\\OutreachAI\\RunDeepReasoningJob@handle",
        "expected_test_path": "tests/Feature/RunDeepReasoningJobTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\RunDeepReasoningJob;\n\nclass RunDeepReasoningJobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\OutreachAI\\RunDeepReasoningJob@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\\OutreachAI\\RunDeepReasoningJob@handle is PROOF_READY but no test file at tests/Feature/RunDeepReasoningJobTest.php is in the MANUAL allowlist. 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/OutreachAI/RunQualificationOutcomeJob.php::App\\Jobs\\OutreachAI\\RunQualificationOutcomeJob::handle",
        "fqmn": "App\\Jobs\\OutreachAI\\RunQualificationOutcomeJob@handle",
        "expected_test_path": "tests/Feature/RunQualificationOutcomeJobTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\RunQualificationOutcomeJob;\n\nclass RunQualificationOutcomeJobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\OutreachAI\\RunQualificationOutcomeJob@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\\OutreachAI\\RunQualificationOutcomeJob@handle is PROOF_READY but no test file at tests/Feature/RunQualificationOutcomeJobTest.php is in the MANUAL allowlist. 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/OutreachAI/RunSalesAccelerationOutcomeJob.php::App\\Jobs\\OutreachAI\\RunSalesAccelerationOutcomeJob::handle",
        "fqmn": "App\\Jobs\\OutreachAI\\RunSalesAccelerationOutcomeJob@handle",
        "expected_test_path": "tests/Feature/RunSalesAccelerationOutcomeJobTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\RunSalesAccelerationOutcomeJob;\n\nclass RunSalesAccelerationOutcomeJobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\OutreachAI\\RunSalesAccelerationOutcomeJob@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\\OutreachAI\\RunSalesAccelerationOutcomeJob@handle is PROOF_READY but no test file at tests/Feature/RunSalesAccelerationOutcomeJobTest.php is in the MANUAL allowlist. 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/OutreachAI/RunSequenceStepJob.php::App\\Jobs\\OutreachAI\\RunSequenceStepJob::handle",
        "fqmn": "App\\Jobs\\OutreachAI\\RunSequenceStepJob@handle",
        "expected_test_path": "tests/Feature/RunSequenceStepJobTest.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\\OutreachAI\\RunSequenceStepJob;\n\nclass RunSequenceStepJobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\OutreachAI\\RunSequenceStepJob@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\\OutreachAI\\RunSequenceStepJob@handle is PROOF_READY but no test file at tests/Feature/RunSequenceStepJobTest.php is in the MANUAL allowlist. 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/OutreachAI/SendHumanHandoffNotificationJob.php::App\\Jobs\\OutreachAI\\SendHumanHandoffNotificationJob::handle",
        "fqmn": "App\\Jobs\\OutreachAI\\SendHumanHandoffNotificationJob@handle",
        "expected_test_path": "tests/Feature/SendHumanHandoffNotificationJobTest.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\\Jobs\\OutreachAI\\SendHumanHandoffNotificationJob;\n\nclass SendHumanHandoffNotificationJobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\OutreachAI\\SendHumanHandoffNotificationJob@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\\Jobs\\OutreachAI\\SendHumanHandoffNotificationJob@handle is PROOF_READY but no test file at tests/Feature/SendHumanHandoffNotificationJobTest.php is in the MANUAL allowlist. 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/OutreachAI/SendHumanHandoffNotificationJob.php::App\\Jobs\\OutreachAI\\SendHumanHandoffNotificationJob::tags",
        "fqmn": "App\\Jobs\\OutreachAI\\SendHumanHandoffNotificationJob@tags",
        "expected_test_path": "tests/Feature/SendHumanHandoffNotificationJobTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\SendHumanHandoffNotificationJob;\n\nclass SendHumanHandoffNotificationJobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\OutreachAI\\SendHumanHandoffNotificationJob@tags\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_tags_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\OutreachAI\\SendHumanHandoffNotificationJob@tags is PROOF_READY but no test file at tests/Feature/SendHumanHandoffNotificationJobTest.php is in the MANUAL allowlist. 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/OutreachAI/SendReengagementMessageJob.php::App\\Jobs\\OutreachAI\\SendReengagementMessageJob::backoff",
        "fqmn": "App\\Jobs\\OutreachAI\\SendReengagementMessageJob@backoff",
        "expected_test_path": "tests/Feature/SendReengagementMessageJobTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\SendReengagementMessageJob;\n\nclass SendReengagementMessageJobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\OutreachAI\\SendReengagementMessageJob@backoff\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_backoff_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\OutreachAI\\SendReengagementMessageJob@backoff is PROOF_READY but no test file at tests/Feature/SendReengagementMessageJobTest.php is in the MANUAL allowlist. 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/OutreachAI/SendReengagementMessageJob.php::App\\Jobs\\OutreachAI\\SendReengagementMessageJob::handle",
        "fqmn": "App\\Jobs\\OutreachAI\\SendReengagementMessageJob@handle",
        "expected_test_path": "tests/Feature/SendReengagementMessageJobTest.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\\OutreachAI\\SendReengagementMessageJob;\n\nclass SendReengagementMessageJobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\OutreachAI\\SendReengagementMessageJob@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\\OutreachAI\\SendReengagementMessageJob@handle is PROOF_READY but no test file at tests/Feature/SendReengagementMessageJobTest.php is in the MANUAL allowlist. 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/OutreachAI/SendReengagementMessageJob.php::App\\Jobs\\OutreachAI\\SendReengagementMessageJob::tags",
        "fqmn": "App\\Jobs\\OutreachAI\\SendReengagementMessageJob@tags",
        "expected_test_path": "tests/Feature/SendReengagementMessageJobTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\SendReengagementMessageJob;\n\nclass SendReengagementMessageJobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\OutreachAI\\SendReengagementMessageJob@tags\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_tags_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\OutreachAI\\SendReengagementMessageJob@tags is PROOF_READY but no test file at tests/Feature/SendReengagementMessageJobTest.php is in the MANUAL allowlist. 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/ProcessWhatsAppTemplateUpdateJob.php::App\\Jobs\\ProcessWhatsAppTemplateUpdateJob::handle",
        "fqmn": "App\\Jobs\\ProcessWhatsAppTemplateUpdateJob@handle",
        "expected_test_path": "tests/Feature/ProcessWhatsAppTemplateUpdateJobTest.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\\ProcessWhatsAppTemplateUpdateJob;\n\nclass ProcessWhatsAppTemplateUpdateJobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\ProcessWhatsAppTemplateUpdateJob@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\\ProcessWhatsAppTemplateUpdateJob@handle is PROOF_READY but no test file at tests/Feature/ProcessWhatsAppTemplateUpdateJobTest.php is in the MANUAL allowlist. 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/PushWhatsAppTemplateJob.php::App\\Jobs\\PushWhatsAppTemplateJob::handle",
        "fqmn": "App\\Jobs\\PushWhatsAppTemplateJob@handle",
        "expected_test_path": "tests/Feature/PushWhatsAppTemplateJobTest.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\\PushWhatsAppTemplateJob;\n\nclass PushWhatsAppTemplateJobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\PushWhatsAppTemplateJob@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\\PushWhatsAppTemplateJob@handle is PROOF_READY but no test file at tests/Feature/PushWhatsAppTemplateJobTest.php is in the MANUAL allowlist. 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/RejectReminderTemplateJob.php::App\\Jobs\\RejectReminderTemplateJob::handle",
        "fqmn": "App\\Jobs\\RejectReminderTemplateJob@handle",
        "expected_test_path": "tests/Feature/RejectReminderTemplateJobTest.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\\RejectReminderTemplateJob;\n\nclass RejectReminderTemplateJobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\RejectReminderTemplateJob@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\\RejectReminderTemplateJob@handle is PROOF_READY but no test file at tests/Feature/RejectReminderTemplateJobTest.php is in the MANUAL allowlist. 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/SendDailyNotificationDigest.php::App\\Jobs\\SendDailyNotificationDigest::handle",
        "fqmn": "App\\Jobs\\SendDailyNotificationDigest@handle",
        "expected_test_path": "tests/Feature/SendDailyNotificationDigestTest.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\\SendDailyNotificationDigest;\n\nclass SendDailyNotificationDigestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\SendDailyNotificationDigest@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\\SendDailyNotificationDigest@handle is PROOF_READY but no test file at tests/Feature/SendDailyNotificationDigestTest.php is in the MANUAL allowlist. 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/SendTrialNudgeJob.php::App\\Jobs\\SendTrialNudgeJob::handle",
        "fqmn": "App\\Jobs\\SendTrialNudgeJob@handle",
        "expected_test_path": "tests/Feature/SendTrialNudgeJobTest.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\\SendTrialNudgeJob;\n\nclass SendTrialNudgeJobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\SendTrialNudgeJob@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\\SendTrialNudgeJob@handle is PROOF_READY but no test file at tests/Feature/SendTrialNudgeJobTest.php is in the MANUAL allowlist. 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/SyncWhatsAppTemplateStatusJob.php::App\\Jobs\\SyncWhatsAppTemplateStatusJob::handle",
        "fqmn": "App\\Jobs\\SyncWhatsAppTemplateStatusJob@handle",
        "expected_test_path": "tests/Feature/SyncWhatsAppTemplateStatusJobTest.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\\Jobs\\SyncWhatsAppTemplateStatusJob;\n\nclass SyncWhatsAppTemplateStatusJobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\SyncWhatsAppTemplateStatusJob@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        // Http::assertSent(fn ($req) => $req->url() === '<url>');\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\SyncWhatsAppTemplateStatusJob@handle is PROOF_READY but no test file at tests/Feature/SyncWhatsAppTemplateStatusJobTest.php is in the MANUAL allowlist. 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/Billing/OnSubscriptionSuspended.php::App\\Listeners\\Billing\\OnSubscriptionSuspended::handle",
        "fqmn": "App\\Listeners\\Billing\\OnSubscriptionSuspended@handle",
        "expected_test_path": "tests/Feature/OnSubscriptionSuspendedTest.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\\Listeners\\Billing\\OnSubscriptionSuspended;\n\nclass OnSubscriptionSuspendedTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Billing\\OnSubscriptionSuspended@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\\Listeners\\Billing\\OnSubscriptionSuspended@handle is PROOF_READY but no test file at tests/Feature/OnSubscriptionSuspendedTest.php is in the MANUAL allowlist. 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/Billing/OnTrialExpired.php::App\\Listeners\\Billing\\OnTrialExpired::handle",
        "fqmn": "App\\Listeners\\Billing\\OnTrialExpired@handle",
        "expected_test_path": "tests/Feature/OnTrialExpiredTest.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\\Listeners\\Billing\\OnTrialExpired;\n\nclass OnTrialExpiredTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Billing\\OnTrialExpired@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\\Listeners\\Billing\\OnTrialExpired@handle is PROOF_READY but no test file at tests/Feature/OnTrialExpiredTest.php is in the MANUAL allowlist. 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/OnSubscriptionRefundedCreateCreditNote.php::App\\Listeners\\OnSubscriptionRefundedCreateCreditNote::handle",
        "fqmn": "App\\Listeners\\OnSubscriptionRefundedCreateCreditNote@handle",
        "expected_test_path": "tests/Feature/OnSubscriptionRefundedCreateCreditNoteTest.php",
        "intent": null,
        "intent_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\\OnSubscriptionRefundedCreateCreditNote;\n\nclass OnSubscriptionRefundedCreateCreditNoteTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\OnSubscriptionRefundedCreateCreditNote@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\\OnSubscriptionRefundedCreateCreditNote@handle is PROOF_READY but no test file at tests/Feature/OnSubscriptionRefundedCreateCreditNoteTest.php is in the MANUAL allowlist. 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/OutreachAI/ClearUpsellCacheOnSubscriptionChange.php::App\\Listeners\\OutreachAI\\ClearUpsellCacheOnSubscriptionChange::handle",
        "fqmn": "App\\Listeners\\OutreachAI\\ClearUpsellCacheOnSubscriptionChange@handle",
        "expected_test_path": "tests/Feature/ClearUpsellCacheOnSubscriptionChangeTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\ClearUpsellCacheOnSubscriptionChange;\n\nclass ClearUpsellCacheOnSubscriptionChangeTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\OutreachAI\\ClearUpsellCacheOnSubscriptionChange@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\\OutreachAI\\ClearUpsellCacheOnSubscriptionChange@handle is PROOF_READY but no test file at tests/Feature/ClearUpsellCacheOnSubscriptionChangeTest.php is in the MANUAL allowlist. 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/TrackUserPortalActivity.php::App\\Listeners\\TrackUserPortalActivity::handle",
        "fqmn": "App\\Listeners\\TrackUserPortalActivity@handle",
        "expected_test_path": "tests/Feature/TrackUserPortalActivityTest.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\\TrackUserPortalActivity;\n\nclass TrackUserPortalActivityTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\TrackUserPortalActivity@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\\Listeners\\TrackUserPortalActivity@handle is PROOF_READY but no test file at tests/Feature/TrackUserPortalActivityTest.php is in the MANUAL allowlist. 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/OutreachAI/HumanHandoffState.php::App\\Models\\OutreachAI\\HumanHandoffState::getActiveConversation",
        "fqmn": "App\\Models\\OutreachAI\\HumanHandoffState@getActiveConversation",
        "expected_test_path": "tests/Unit/HumanHandoffStateTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\HumanHandoffState;\n\nclass HumanHandoffStateTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Models\\OutreachAI\\HumanHandoffState@getActiveConversation\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getactiveconversation_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\OutreachAI\\HumanHandoffState@getActiveConversation is PROOF_READY but no test file at tests/Unit/HumanHandoffStateTest.php is in the MANUAL allowlist. 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/OutreachAI/HumanHandoffState.php::App\\Models\\OutreachAI\\HumanHandoffState::instance",
        "fqmn": "App\\Models\\OutreachAI\\HumanHandoffState@instance",
        "expected_test_path": "tests/Unit/HumanHandoffStateTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\HumanHandoffState;\n\nclass HumanHandoffStateTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Models\\OutreachAI\\HumanHandoffState@instance\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_instance_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\OutreachAI\\HumanHandoffState@instance is PROOF_READY but no test file at tests/Unit/HumanHandoffStateTest.php is in the MANUAL allowlist. 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/OutreachAI/HumanHandoffState.php::App\\Models\\OutreachAI\\HumanHandoffState::isAvailable",
        "fqmn": "App\\Models\\OutreachAI\\HumanHandoffState@isAvailable",
        "expected_test_path": "tests/Unit/HumanHandoffStateTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\HumanHandoffState;\n\nclass HumanHandoffStateTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Models\\OutreachAI\\HumanHandoffState@isAvailable\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_isavailable_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\OutreachAI\\HumanHandoffState@isAvailable is PROOF_READY but no test file at tests/Unit/HumanHandoffStateTest.php is in the MANUAL allowlist. 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/AdaptiveWeightPolicy.php::App\\Policies\\AdaptiveWeightPolicy::create",
        "fqmn": "App\\Policies\\AdaptiveWeightPolicy@create",
        "expected_test_path": "tests/Unit/AdaptiveWeightPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\AdaptiveWeightPolicy;\n\nclass AdaptiveWeightPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\AdaptiveWeightPolicy@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\\AdaptiveWeightPolicy@create is PROOF_READY but no test file at tests/Unit/AdaptiveWeightPolicyTest.php is in the MANUAL allowlist. 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/AdaptiveWeightPolicy.php::App\\Policies\\AdaptiveWeightPolicy::delete",
        "fqmn": "App\\Policies\\AdaptiveWeightPolicy@delete",
        "expected_test_path": "tests/Unit/AdaptiveWeightPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\AdaptiveWeightPolicy;\n\nclass AdaptiveWeightPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\AdaptiveWeightPolicy@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\\AdaptiveWeightPolicy@delete is PROOF_READY but no test file at tests/Unit/AdaptiveWeightPolicyTest.php is in the MANUAL allowlist. 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/AdaptiveWeightPolicy.php::App\\Policies\\AdaptiveWeightPolicy::forceDelete",
        "fqmn": "App\\Policies\\AdaptiveWeightPolicy@forceDelete",
        "expected_test_path": "tests/Unit/AdaptiveWeightPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\AdaptiveWeightPolicy;\n\nclass AdaptiveWeightPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\AdaptiveWeightPolicy@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\\AdaptiveWeightPolicy@forceDelete is PROOF_READY but no test file at tests/Unit/AdaptiveWeightPolicyTest.php is in the MANUAL allowlist. 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/AdaptiveWeightPolicy.php::App\\Policies\\AdaptiveWeightPolicy::restore",
        "fqmn": "App\\Policies\\AdaptiveWeightPolicy@restore",
        "expected_test_path": "tests/Unit/AdaptiveWeightPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\AdaptiveWeightPolicy;\n\nclass AdaptiveWeightPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\AdaptiveWeightPolicy@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\\AdaptiveWeightPolicy@restore is PROOF_READY but no test file at tests/Unit/AdaptiveWeightPolicyTest.php is in the MANUAL allowlist. 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/AdaptiveWeightPolicy.php::App\\Policies\\AdaptiveWeightPolicy::update",
        "fqmn": "App\\Policies\\AdaptiveWeightPolicy@update",
        "expected_test_path": "tests/Unit/AdaptiveWeightPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\AdaptiveWeightPolicy;\n\nclass AdaptiveWeightPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\AdaptiveWeightPolicy@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\\AdaptiveWeightPolicy@update is PROOF_READY but no test file at tests/Unit/AdaptiveWeightPolicyTest.php is in the MANUAL allowlist. 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/AdaptiveWeightPolicy.php::App\\Policies\\AdaptiveWeightPolicy::view",
        "fqmn": "App\\Policies\\AdaptiveWeightPolicy@view",
        "expected_test_path": "tests/Unit/AdaptiveWeightPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\AdaptiveWeightPolicy;\n\nclass AdaptiveWeightPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\AdaptiveWeightPolicy@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\\AdaptiveWeightPolicy@view is PROOF_READY but no test file at tests/Unit/AdaptiveWeightPolicyTest.php is in the MANUAL allowlist. 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/AdaptiveWeightPolicy.php::App\\Policies\\AdaptiveWeightPolicy::viewAny",
        "fqmn": "App\\Policies\\AdaptiveWeightPolicy@viewAny",
        "expected_test_path": "tests/Unit/AdaptiveWeightPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\AdaptiveWeightPolicy;\n\nclass AdaptiveWeightPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\AdaptiveWeightPolicy@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\\AdaptiveWeightPolicy@viewAny is PROOF_READY but no test file at tests/Unit/AdaptiveWeightPolicyTest.php is in the MANUAL allowlist. 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/AuditLeakPolicy.php::App\\Policies\\AuditLeakPolicy::create",
        "fqmn": "App\\Policies\\AuditLeakPolicy@create",
        "expected_test_path": "tests/Unit/AuditLeakPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\AuditLeakPolicy;\n\nclass AuditLeakPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\AuditLeakPolicy@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\\AuditLeakPolicy@create is PROOF_READY but no test file at tests/Unit/AuditLeakPolicyTest.php is in the MANUAL allowlist. 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/AuditLeakPolicy.php::App\\Policies\\AuditLeakPolicy::delete",
        "fqmn": "App\\Policies\\AuditLeakPolicy@delete",
        "expected_test_path": "tests/Unit/AuditLeakPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\AuditLeakPolicy;\n\nclass AuditLeakPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\AuditLeakPolicy@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\\AuditLeakPolicy@delete is PROOF_READY but no test file at tests/Unit/AuditLeakPolicyTest.php is in the MANUAL allowlist. 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/AuditLeakPolicy.php::App\\Policies\\AuditLeakPolicy::forceDelete",
        "fqmn": "App\\Policies\\AuditLeakPolicy@forceDelete",
        "expected_test_path": "tests/Unit/AuditLeakPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\AuditLeakPolicy;\n\nclass AuditLeakPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\AuditLeakPolicy@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\\AuditLeakPolicy@forceDelete is PROOF_READY but no test file at tests/Unit/AuditLeakPolicyTest.php is in the MANUAL allowlist. 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/AuditLeakPolicy.php::App\\Policies\\AuditLeakPolicy::restore",
        "fqmn": "App\\Policies\\AuditLeakPolicy@restore",
        "expected_test_path": "tests/Unit/AuditLeakPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\AuditLeakPolicy;\n\nclass AuditLeakPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\AuditLeakPolicy@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\\AuditLeakPolicy@restore is PROOF_READY but no test file at tests/Unit/AuditLeakPolicyTest.php is in the MANUAL allowlist. 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/AuditLeakPolicy.php::App\\Policies\\AuditLeakPolicy::update",
        "fqmn": "App\\Policies\\AuditLeakPolicy@update",
        "expected_test_path": "tests/Unit/AuditLeakPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\AuditLeakPolicy;\n\nclass AuditLeakPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\AuditLeakPolicy@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\\AuditLeakPolicy@update is PROOF_READY but no test file at tests/Unit/AuditLeakPolicyTest.php is in the MANUAL allowlist. 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/AuditLeakPolicy.php::App\\Policies\\AuditLeakPolicy::view",
        "fqmn": "App\\Policies\\AuditLeakPolicy@view",
        "expected_test_path": "tests/Unit/AuditLeakPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\AuditLeakPolicy;\n\nclass AuditLeakPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\AuditLeakPolicy@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\\AuditLeakPolicy@view is PROOF_READY but no test file at tests/Unit/AuditLeakPolicyTest.php is in the MANUAL allowlist. 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/AuditLeakPolicy.php::App\\Policies\\AuditLeakPolicy::viewAny",
        "fqmn": "App\\Policies\\AuditLeakPolicy@viewAny",
        "expected_test_path": "tests/Unit/AuditLeakPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\AuditLeakPolicy;\n\nclass AuditLeakPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\AuditLeakPolicy@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\\AuditLeakPolicy@viewAny is PROOF_READY but no test file at tests/Unit/AuditLeakPolicyTest.php is in the MANUAL allowlist. 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/ConversationPolicy.php::App\\Policies\\ConversationPolicy::create",
        "fqmn": "App\\Policies\\ConversationPolicy@create",
        "expected_test_path": "tests/Unit/ConversationPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\ConversationPolicy;\n\nclass ConversationPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\ConversationPolicy@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\\ConversationPolicy@create is PROOF_READY but no test file at tests/Unit/ConversationPolicyTest.php is in the MANUAL allowlist. 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/ConversationPolicy.php::App\\Policies\\ConversationPolicy::delete",
        "fqmn": "App\\Policies\\ConversationPolicy@delete",
        "expected_test_path": "tests/Unit/ConversationPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\ConversationPolicy;\n\nclass ConversationPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\ConversationPolicy@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\\ConversationPolicy@delete is PROOF_READY but no test file at tests/Unit/ConversationPolicyTest.php is in the MANUAL allowlist. 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/ConversationPolicy.php::App\\Policies\\ConversationPolicy::forceDelete",
        "fqmn": "App\\Policies\\ConversationPolicy@forceDelete",
        "expected_test_path": "tests/Unit/ConversationPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\ConversationPolicy;\n\nclass ConversationPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\ConversationPolicy@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\\ConversationPolicy@forceDelete is PROOF_READY but no test file at tests/Unit/ConversationPolicyTest.php is in the MANUAL allowlist. 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/ConversationPolicy.php::App\\Policies\\ConversationPolicy::restore",
        "fqmn": "App\\Policies\\ConversationPolicy@restore",
        "expected_test_path": "tests/Unit/ConversationPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\ConversationPolicy;\n\nclass ConversationPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\ConversationPolicy@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\\ConversationPolicy@restore is PROOF_READY but no test file at tests/Unit/ConversationPolicyTest.php is in the MANUAL allowlist. 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/ConversationPolicy.php::App\\Policies\\ConversationPolicy::update",
        "fqmn": "App\\Policies\\ConversationPolicy@update",
        "expected_test_path": "tests/Unit/ConversationPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\ConversationPolicy;\n\nclass ConversationPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\ConversationPolicy@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\\ConversationPolicy@update is PROOF_READY but no test file at tests/Unit/ConversationPolicyTest.php is in the MANUAL allowlist. 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/ConversationPolicy.php::App\\Policies\\ConversationPolicy::view",
        "fqmn": "App\\Policies\\ConversationPolicy@view",
        "expected_test_path": "tests/Unit/ConversationPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\ConversationPolicy;\n\nclass ConversationPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\ConversationPolicy@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\\ConversationPolicy@view is PROOF_READY but no test file at tests/Unit/ConversationPolicyTest.php is in the MANUAL allowlist. 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/ConversationPolicy.php::App\\Policies\\ConversationPolicy::viewAny",
        "fqmn": "App\\Policies\\ConversationPolicy@viewAny",
        "expected_test_path": "tests/Unit/ConversationPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\ConversationPolicy;\n\nclass ConversationPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\ConversationPolicy@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\\ConversationPolicy@viewAny is PROOF_READY but no test file at tests/Unit/ConversationPolicyTest.php is in the MANUAL allowlist. 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/FilePolicy.php::App\\Policies\\FilePolicy::create",
        "fqmn": "App\\Policies\\FilePolicy@create",
        "expected_test_path": "tests/Unit/FilePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\FilePolicy;\n\nclass FilePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\FilePolicy@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\\FilePolicy@create is PROOF_READY but no test file at tests/Unit/FilePolicyTest.php is in the MANUAL allowlist. 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/FilePolicy.php::App\\Policies\\FilePolicy::delete",
        "fqmn": "App\\Policies\\FilePolicy@delete",
        "expected_test_path": "tests/Unit/FilePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\FilePolicy;\n\nclass FilePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\FilePolicy@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\\FilePolicy@delete is PROOF_READY but no test file at tests/Unit/FilePolicyTest.php is in the MANUAL allowlist. 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/FilePolicy.php::App\\Policies\\FilePolicy::update",
        "fqmn": "App\\Policies\\FilePolicy@update",
        "expected_test_path": "tests/Unit/FilePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\FilePolicy;\n\nclass FilePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\FilePolicy@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\\FilePolicy@update is PROOF_READY but no test file at tests/Unit/FilePolicyTest.php is in the MANUAL allowlist. 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/FilePolicy.php::App\\Policies\\FilePolicy::view",
        "fqmn": "App\\Policies\\FilePolicy@view",
        "expected_test_path": "tests/Unit/FilePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\FilePolicy;\n\nclass FilePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\FilePolicy@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\\FilePolicy@view is PROOF_READY but no test file at tests/Unit/FilePolicyTest.php is in the MANUAL allowlist. 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/FilePolicy.php::App\\Policies\\FilePolicy::viewAny",
        "fqmn": "App\\Policies\\FilePolicy@viewAny",
        "expected_test_path": "tests/Unit/FilePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\FilePolicy;\n\nclass FilePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\FilePolicy@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\\FilePolicy@viewAny is PROOF_READY but no test file at tests/Unit/FilePolicyTest.php is in the MANUAL allowlist. 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/FollowUpPolicy.php::App\\Policies\\FollowUpPolicy::cancel",
        "fqmn": "App\\Policies\\FollowUpPolicy@cancel",
        "expected_test_path": "tests/Unit/FollowUpPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\FollowUpPolicy;\n\nclass FollowUpPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\FollowUpPolicy@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\FollowUpPolicy@cancel is PROOF_READY but no test file at tests/Unit/FollowUpPolicyTest.php is in the MANUAL allowlist. 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/FollowUpPolicy.php::App\\Policies\\FollowUpPolicy::create",
        "fqmn": "App\\Policies\\FollowUpPolicy@create",
        "expected_test_path": "tests/Unit/FollowUpPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\FollowUpPolicy;\n\nclass FollowUpPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\FollowUpPolicy@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\\FollowUpPolicy@create is PROOF_READY but no test file at tests/Unit/FollowUpPolicyTest.php is in the MANUAL allowlist. 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/FollowUpPolicy.php::App\\Policies\\FollowUpPolicy::delete",
        "fqmn": "App\\Policies\\FollowUpPolicy@delete",
        "expected_test_path": "tests/Unit/FollowUpPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\FollowUpPolicy;\n\nclass FollowUpPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\FollowUpPolicy@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\\FollowUpPolicy@delete is PROOF_READY but no test file at tests/Unit/FollowUpPolicyTest.php is in the MANUAL allowlist. 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/FollowUpPolicy.php::App\\Policies\\FollowUpPolicy::forceDelete",
        "fqmn": "App\\Policies\\FollowUpPolicy@forceDelete",
        "expected_test_path": "tests/Unit/FollowUpPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\FollowUpPolicy;\n\nclass FollowUpPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\FollowUpPolicy@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\\FollowUpPolicy@forceDelete is PROOF_READY but no test file at tests/Unit/FollowUpPolicyTest.php is in the MANUAL allowlist. 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/FollowUpPolicy.php::App\\Policies\\FollowUpPolicy::restore",
        "fqmn": "App\\Policies\\FollowUpPolicy@restore",
        "expected_test_path": "tests/Unit/FollowUpPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\FollowUpPolicy;\n\nclass FollowUpPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\FollowUpPolicy@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\\FollowUpPolicy@restore is PROOF_READY but no test file at tests/Unit/FollowUpPolicyTest.php is in the MANUAL allowlist. 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/FollowUpPolicy.php::App\\Policies\\FollowUpPolicy::trigger",
        "fqmn": "App\\Policies\\FollowUpPolicy@trigger",
        "expected_test_path": "tests/Unit/FollowUpPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\FollowUpPolicy;\n\nclass FollowUpPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\FollowUpPolicy@trigger\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_trigger_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\FollowUpPolicy@trigger is PROOF_READY but no test file at tests/Unit/FollowUpPolicyTest.php is in the MANUAL allowlist. 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/FollowUpPolicy.php::App\\Policies\\FollowUpPolicy::update",
        "fqmn": "App\\Policies\\FollowUpPolicy@update",
        "expected_test_path": "tests/Unit/FollowUpPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\FollowUpPolicy;\n\nclass FollowUpPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\FollowUpPolicy@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\\FollowUpPolicy@update is PROOF_READY but no test file at tests/Unit/FollowUpPolicyTest.php is in the MANUAL allowlist. 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/FollowUpPolicy.php::App\\Policies\\FollowUpPolicy::view",
        "fqmn": "App\\Policies\\FollowUpPolicy@view",
        "expected_test_path": "tests/Unit/FollowUpPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\FollowUpPolicy;\n\nclass FollowUpPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\FollowUpPolicy@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\\FollowUpPolicy@view is PROOF_READY but no test file at tests/Unit/FollowUpPolicyTest.php is in the MANUAL allowlist. 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/FollowUpPolicy.php::App\\Policies\\FollowUpPolicy::viewAny",
        "fqmn": "App\\Policies\\FollowUpPolicy@viewAny",
        "expected_test_path": "tests/Unit/FollowUpPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\FollowUpPolicy;\n\nclass FollowUpPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\FollowUpPolicy@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\\FollowUpPolicy@viewAny is PROOF_READY but no test file at tests/Unit/FollowUpPolicyTest.php is in the MANUAL allowlist. 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/LearningSignalPolicy.php::App\\Policies\\LearningSignalPolicy::create",
        "fqmn": "App\\Policies\\LearningSignalPolicy@create",
        "expected_test_path": "tests/Unit/LearningSignalPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\LearningSignalPolicy;\n\nclass LearningSignalPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\LearningSignalPolicy@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\\LearningSignalPolicy@create is PROOF_READY but no test file at tests/Unit/LearningSignalPolicyTest.php is in the MANUAL allowlist. 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/LearningSignalPolicy.php::App\\Policies\\LearningSignalPolicy::delete",
        "fqmn": "App\\Policies\\LearningSignalPolicy@delete",
        "expected_test_path": "tests/Unit/LearningSignalPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\LearningSignalPolicy;\n\nclass LearningSignalPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\LearningSignalPolicy@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\\LearningSignalPolicy@delete is PROOF_READY but no test file at tests/Unit/LearningSignalPolicyTest.php is in the MANUAL allowlist. 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/LearningSignalPolicy.php::App\\Policies\\LearningSignalPolicy::forceDelete",
        "fqmn": "App\\Policies\\LearningSignalPolicy@forceDelete",
        "expected_test_path": "tests/Unit/LearningSignalPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\LearningSignalPolicy;\n\nclass LearningSignalPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\LearningSignalPolicy@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\\LearningSignalPolicy@forceDelete is PROOF_READY but no test file at tests/Unit/LearningSignalPolicyTest.php is in the MANUAL allowlist. 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/LearningSignalPolicy.php::App\\Policies\\LearningSignalPolicy::restore",
        "fqmn": "App\\Policies\\LearningSignalPolicy@restore",
        "expected_test_path": "tests/Unit/LearningSignalPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\LearningSignalPolicy;\n\nclass LearningSignalPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\LearningSignalPolicy@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\\LearningSignalPolicy@restore is PROOF_READY but no test file at tests/Unit/LearningSignalPolicyTest.php is in the MANUAL allowlist. 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/LearningSignalPolicy.php::App\\Policies\\LearningSignalPolicy::update",
        "fqmn": "App\\Policies\\LearningSignalPolicy@update",
        "expected_test_path": "tests/Unit/LearningSignalPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\LearningSignalPolicy;\n\nclass LearningSignalPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\LearningSignalPolicy@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\\LearningSignalPolicy@update is PROOF_READY but no test file at tests/Unit/LearningSignalPolicyTest.php is in the MANUAL allowlist. 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/LearningSignalPolicy.php::App\\Policies\\LearningSignalPolicy::view",
        "fqmn": "App\\Policies\\LearningSignalPolicy@view",
        "expected_test_path": "tests/Unit/LearningSignalPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\LearningSignalPolicy;\n\nclass LearningSignalPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\LearningSignalPolicy@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\\LearningSignalPolicy@view is PROOF_READY but no test file at tests/Unit/LearningSignalPolicyTest.php is in the MANUAL allowlist. 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/LearningSignalPolicy.php::App\\Policies\\LearningSignalPolicy::viewAny",
        "fqmn": "App\\Policies\\LearningSignalPolicy@viewAny",
        "expected_test_path": "tests/Unit/LearningSignalPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\LearningSignalPolicy;\n\nclass LearningSignalPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\LearningSignalPolicy@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\\LearningSignalPolicy@viewAny is PROOF_READY but no test file at tests/Unit/LearningSignalPolicyTest.php is in the MANUAL allowlist. 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/LeasePolicy.php::App\\Policies\\LeasePolicy::create",
        "fqmn": "App\\Policies\\LeasePolicy@create",
        "expected_test_path": "tests/Unit/LeasePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\LeasePolicy;\n\nclass LeasePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\LeasePolicy@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\\LeasePolicy@create is PROOF_READY but no test file at tests/Unit/LeasePolicyTest.php is in the MANUAL allowlist. 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/LeasePolicy.php::App\\Policies\\LeasePolicy::delete",
        "fqmn": "App\\Policies\\LeasePolicy@delete",
        "expected_test_path": "tests/Unit/LeasePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\LeasePolicy;\n\nclass LeasePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\LeasePolicy@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\\LeasePolicy@delete is PROOF_READY but no test file at tests/Unit/LeasePolicyTest.php is in the MANUAL allowlist. 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/LeasePolicy.php::App\\Policies\\LeasePolicy::forceDelete",
        "fqmn": "App\\Policies\\LeasePolicy@forceDelete",
        "expected_test_path": "tests/Unit/LeasePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\LeasePolicy;\n\nclass LeasePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\LeasePolicy@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\\LeasePolicy@forceDelete is PROOF_READY but no test file at tests/Unit/LeasePolicyTest.php is in the MANUAL allowlist. 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/LeasePolicy.php::App\\Policies\\LeasePolicy::manageContracts",
        "fqmn": "App\\Policies\\LeasePolicy@manageContracts",
        "expected_test_path": "tests/Unit/LeasePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\LeasePolicy;\n\nclass LeasePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\LeasePolicy@manageContracts\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_managecontracts_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\LeasePolicy@manageContracts is PROOF_READY but no test file at tests/Unit/LeasePolicyTest.php is in the MANUAL allowlist. 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/LeasePolicy.php::App\\Policies\\LeasePolicy::restore",
        "fqmn": "App\\Policies\\LeasePolicy@restore",
        "expected_test_path": "tests/Unit/LeasePolicyTest.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\\LeasePolicy;\n\nclass LeasePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\LeasePolicy@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\\LeasePolicy@restore is PROOF_READY but no test file at tests/Unit/LeasePolicyTest.php is in the MANUAL allowlist. 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/LeasePolicy.php::App\\Policies\\LeasePolicy::terminate",
        "fqmn": "App\\Policies\\LeasePolicy@terminate",
        "expected_test_path": "tests/Unit/LeasePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\LeasePolicy;\n\nclass LeasePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\LeasePolicy@terminate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_terminate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\LeasePolicy@terminate is PROOF_READY but no test file at tests/Unit/LeasePolicyTest.php is in the MANUAL allowlist. 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/LeasePolicy.php::App\\Policies\\LeasePolicy::update",
        "fqmn": "App\\Policies\\LeasePolicy@update",
        "expected_test_path": "tests/Unit/LeasePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\LeasePolicy;\n\nclass LeasePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\LeasePolicy@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\\LeasePolicy@update is PROOF_READY but no test file at tests/Unit/LeasePolicyTest.php is in the MANUAL allowlist. 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/LeasePolicy.php::App\\Policies\\LeasePolicy::view",
        "fqmn": "App\\Policies\\LeasePolicy@view",
        "expected_test_path": "tests/Unit/LeasePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\LeasePolicy;\n\nclass LeasePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\LeasePolicy@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\\LeasePolicy@view is PROOF_READY but no test file at tests/Unit/LeasePolicyTest.php is in the MANUAL allowlist. 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/LeasePolicy.php::App\\Policies\\LeasePolicy::viewAny",
        "fqmn": "App\\Policies\\LeasePolicy@viewAny",
        "expected_test_path": "tests/Unit/LeasePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\LeasePolicy;\n\nclass LeasePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\LeasePolicy@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\\LeasePolicy@viewAny is PROOF_READY but no test file at tests/Unit/LeasePolicyTest.php is in the MANUAL allowlist. 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/MaintenanceSlaPolicy.php::App\\Policies\\MaintenanceSlaPolicy::create",
        "fqmn": "App\\Policies\\MaintenanceSlaPolicy@create",
        "expected_test_path": "tests/Unit/MaintenanceSlaPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\MaintenanceSlaPolicy;\n\nclass MaintenanceSlaPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\MaintenanceSlaPolicy@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\\MaintenanceSlaPolicy@create is PROOF_READY but no test file at tests/Unit/MaintenanceSlaPolicyTest.php is in the MANUAL allowlist. 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/MaintenanceSlaPolicy.php::App\\Policies\\MaintenanceSlaPolicy::delete",
        "fqmn": "App\\Policies\\MaintenanceSlaPolicy@delete",
        "expected_test_path": "tests/Unit/MaintenanceSlaPolicyTest.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\\MaintenanceSlaPolicy;\n\nclass MaintenanceSlaPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\MaintenanceSlaPolicy@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\\MaintenanceSlaPolicy@delete is PROOF_READY but no test file at tests/Unit/MaintenanceSlaPolicyTest.php is in the MANUAL allowlist. 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/MaintenanceSlaPolicy.php::App\\Policies\\MaintenanceSlaPolicy::update",
        "fqmn": "App\\Policies\\MaintenanceSlaPolicy@update",
        "expected_test_path": "tests/Unit/MaintenanceSlaPolicyTest.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\\MaintenanceSlaPolicy;\n\nclass MaintenanceSlaPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\MaintenanceSlaPolicy@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\\MaintenanceSlaPolicy@update is PROOF_READY but no test file at tests/Unit/MaintenanceSlaPolicyTest.php is in the MANUAL allowlist. 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/MaintenanceSlaPolicy.php::App\\Policies\\MaintenanceSlaPolicy::view",
        "fqmn": "App\\Policies\\MaintenanceSlaPolicy@view",
        "expected_test_path": "tests/Unit/MaintenanceSlaPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\MaintenanceSlaPolicy;\n\nclass MaintenanceSlaPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\MaintenanceSlaPolicy@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\\MaintenanceSlaPolicy@view is PROOF_READY but no test file at tests/Unit/MaintenanceSlaPolicyTest.php is in the MANUAL allowlist. 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/MaintenanceSlaPolicy.php::App\\Policies\\MaintenanceSlaPolicy::viewAny",
        "fqmn": "App\\Policies\\MaintenanceSlaPolicy@viewAny",
        "expected_test_path": "tests/Unit/MaintenanceSlaPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\MaintenanceSlaPolicy;\n\nclass MaintenanceSlaPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\MaintenanceSlaPolicy@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\\MaintenanceSlaPolicy@viewAny is PROOF_READY but no test file at tests/Unit/MaintenanceSlaPolicyTest.php is in the MANUAL allowlist. 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/OrganizationPolicy.php::App\\Policies\\OrganizationPolicy::view",
        "fqmn": "App\\Policies\\OrganizationPolicy@view",
        "expected_test_path": "tests/Unit/OrganizationPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OrganizationPolicy;\n\nclass OrganizationPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\OrganizationPolicy@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\\OrganizationPolicy@view is PROOF_READY but no test file at tests/Unit/OrganizationPolicyTest.php is in the MANUAL allowlist. 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/OrganizationPolicy.php::App\\Policies\\OrganizationPolicy::viewAny",
        "fqmn": "App\\Policies\\OrganizationPolicy@viewAny",
        "expected_test_path": "tests/Unit/OrganizationPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OrganizationPolicy;\n\nclass OrganizationPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\OrganizationPolicy@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\\OrganizationPolicy@viewAny is PROOF_READY but no test file at tests/Unit/OrganizationPolicyTest.php is in the MANUAL allowlist. 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/PaymentPolicy.php::App\\Policies\\PaymentPolicy::create",
        "fqmn": "App\\Policies\\PaymentPolicy@create",
        "expected_test_path": "tests/Unit/PaymentPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\PaymentPolicy;\n\nclass PaymentPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PaymentPolicy@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\\PaymentPolicy@create is PROOF_READY but no test file at tests/Unit/PaymentPolicyTest.php is in the MANUAL allowlist. 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/PaymentPolicy.php::App\\Policies\\PaymentPolicy::delete",
        "fqmn": "App\\Policies\\PaymentPolicy@delete",
        "expected_test_path": "tests/Unit/PaymentPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\PaymentPolicy;\n\nclass PaymentPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PaymentPolicy@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\\PaymentPolicy@delete is PROOF_READY but no test file at tests/Unit/PaymentPolicyTest.php is in the MANUAL allowlist. 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/PaymentPolicy.php::App\\Policies\\PaymentPolicy::forceDelete",
        "fqmn": "App\\Policies\\PaymentPolicy@forceDelete",
        "expected_test_path": "tests/Unit/PaymentPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\PaymentPolicy;\n\nclass PaymentPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PaymentPolicy@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\\PaymentPolicy@forceDelete is PROOF_READY but no test file at tests/Unit/PaymentPolicyTest.php is in the MANUAL allowlist. 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/PaymentPolicy.php::App\\Policies\\PaymentPolicy::restore",
        "fqmn": "App\\Policies\\PaymentPolicy@restore",
        "expected_test_path": "tests/Unit/PaymentPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\PaymentPolicy;\n\nclass PaymentPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PaymentPolicy@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\\PaymentPolicy@restore is PROOF_READY but no test file at tests/Unit/PaymentPolicyTest.php is in the MANUAL allowlist. 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/PaymentPolicy.php::App\\Policies\\PaymentPolicy::update",
        "fqmn": "App\\Policies\\PaymentPolicy@update",
        "expected_test_path": "tests/Unit/PaymentPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\PaymentPolicy;\n\nclass PaymentPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PaymentPolicy@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\\PaymentPolicy@update is PROOF_READY but no test file at tests/Unit/PaymentPolicyTest.php is in the MANUAL allowlist. 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/PaymentPolicy.php::App\\Policies\\PaymentPolicy::view",
        "fqmn": "App\\Policies\\PaymentPolicy@view",
        "expected_test_path": "tests/Unit/PaymentPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\PaymentPolicy;\n\nclass PaymentPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PaymentPolicy@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\\PaymentPolicy@view is PROOF_READY but no test file at tests/Unit/PaymentPolicyTest.php is in the MANUAL allowlist. 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/PaymentPolicy.php::App\\Policies\\PaymentPolicy::viewAny",
        "fqmn": "App\\Policies\\PaymentPolicy@viewAny",
        "expected_test_path": "tests/Unit/PaymentPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\PaymentPolicy;\n\nclass PaymentPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PaymentPolicy@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\\PaymentPolicy@viewAny is PROOF_READY but no test file at tests/Unit/PaymentPolicyTest.php is in the MANUAL allowlist. 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/SupportTicketPolicy.php::App\\Policies\\SupportTicketPolicy::create",
        "fqmn": "App\\Policies\\SupportTicketPolicy@create",
        "expected_test_path": "tests/Unit/SupportTicketPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\SupportTicketPolicy;\n\nclass SupportTicketPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\SupportTicketPolicy@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\\SupportTicketPolicy@create is PROOF_READY but no test file at tests/Unit/SupportTicketPolicyTest.php is in the MANUAL allowlist. 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/SupportTicketPolicy.php::App\\Policies\\SupportTicketPolicy::delete",
        "fqmn": "App\\Policies\\SupportTicketPolicy@delete",
        "expected_test_path": "tests/Unit/SupportTicketPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\SupportTicketPolicy;\n\nclass SupportTicketPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\SupportTicketPolicy@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\\SupportTicketPolicy@delete is PROOF_READY but no test file at tests/Unit/SupportTicketPolicyTest.php is in the MANUAL allowlist. 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/SupportTicketPolicy.php::App\\Policies\\SupportTicketPolicy::update",
        "fqmn": "App\\Policies\\SupportTicketPolicy@update",
        "expected_test_path": "tests/Unit/SupportTicketPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\SupportTicketPolicy;\n\nclass SupportTicketPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\SupportTicketPolicy@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\\SupportTicketPolicy@update is PROOF_READY but no test file at tests/Unit/SupportTicketPolicyTest.php is in the MANUAL allowlist. 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/SupportTicketPolicy.php::App\\Policies\\SupportTicketPolicy::view",
        "fqmn": "App\\Policies\\SupportTicketPolicy@view",
        "expected_test_path": "tests/Unit/SupportTicketPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\SupportTicketPolicy;\n\nclass SupportTicketPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\SupportTicketPolicy@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\\SupportTicketPolicy@view is PROOF_READY but no test file at tests/Unit/SupportTicketPolicyTest.php is in the MANUAL allowlist. 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/SupportTicketPolicy.php::App\\Policies\\SupportTicketPolicy::viewAny",
        "fqmn": "App\\Policies\\SupportTicketPolicy@viewAny",
        "expected_test_path": "tests/Unit/SupportTicketPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\SupportTicketPolicy;\n\nclass SupportTicketPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\SupportTicketPolicy@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\\SupportTicketPolicy@viewAny is PROOF_READY but no test file at tests/Unit/SupportTicketPolicyTest.php is in the MANUAL allowlist. 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/UnitPolicy.php::App\\Policies\\UnitPolicy::assignTenant",
        "fqmn": "App\\Policies\\UnitPolicy@assignTenant",
        "expected_test_path": "tests/Unit/UnitPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\UnitPolicy;\n\nclass UnitPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\UnitPolicy@assignTenant\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_assigntenant_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\UnitPolicy@assignTenant is PROOF_READY but no test file at tests/Unit/UnitPolicyTest.php is in the MANUAL allowlist. 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/UnitPolicy.php::App\\Policies\\UnitPolicy::create",
        "fqmn": "App\\Policies\\UnitPolicy@create",
        "expected_test_path": "tests/Unit/UnitPolicyTest.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\\UnitPolicy;\n\nclass UnitPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\UnitPolicy@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\\UnitPolicy@create is PROOF_READY but no test file at tests/Unit/UnitPolicyTest.php is in the MANUAL allowlist. 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/UnitPolicy.php::App\\Policies\\UnitPolicy::delete",
        "fqmn": "App\\Policies\\UnitPolicy@delete",
        "expected_test_path": "tests/Unit/UnitPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\UnitPolicy;\n\nclass UnitPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\UnitPolicy@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\\UnitPolicy@delete is PROOF_READY but no test file at tests/Unit/UnitPolicyTest.php is in the MANUAL allowlist. 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/UnitPolicy.php::App\\Policies\\UnitPolicy::forceDelete",
        "fqmn": "App\\Policies\\UnitPolicy@forceDelete",
        "expected_test_path": "tests/Unit/UnitPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\UnitPolicy;\n\nclass UnitPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\UnitPolicy@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\\UnitPolicy@forceDelete is PROOF_READY but no test file at tests/Unit/UnitPolicyTest.php is in the MANUAL allowlist. 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/UnitPolicy.php::App\\Policies\\UnitPolicy::restore",
        "fqmn": "App\\Policies\\UnitPolicy@restore",
        "expected_test_path": "tests/Unit/UnitPolicyTest.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\\UnitPolicy;\n\nclass UnitPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\UnitPolicy@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\\UnitPolicy@restore is PROOF_READY but no test file at tests/Unit/UnitPolicyTest.php is in the MANUAL allowlist. 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/UnitPolicy.php::App\\Policies\\UnitPolicy::update",
        "fqmn": "App\\Policies\\UnitPolicy@update",
        "expected_test_path": "tests/Unit/UnitPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\UnitPolicy;\n\nclass UnitPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\UnitPolicy@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\\UnitPolicy@update is PROOF_READY but no test file at tests/Unit/UnitPolicyTest.php is in the MANUAL allowlist. 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/UnitPolicy.php::App\\Policies\\UnitPolicy::vacate",
        "fqmn": "App\\Policies\\UnitPolicy@vacate",
        "expected_test_path": "tests/Unit/UnitPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\UnitPolicy;\n\nclass UnitPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\UnitPolicy@vacate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_vacate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\UnitPolicy@vacate is PROOF_READY but no test file at tests/Unit/UnitPolicyTest.php is in the MANUAL allowlist. 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/UnitPolicy.php::App\\Policies\\UnitPolicy::view",
        "fqmn": "App\\Policies\\UnitPolicy@view",
        "expected_test_path": "tests/Unit/UnitPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\UnitPolicy;\n\nclass UnitPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\UnitPolicy@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\\UnitPolicy@view is PROOF_READY but no test file at tests/Unit/UnitPolicyTest.php is in the MANUAL allowlist. 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/UnitPolicy.php::App\\Policies\\UnitPolicy::viewAny",
        "fqmn": "App\\Policies\\UnitPolicy@viewAny",
        "expected_test_path": "tests/Unit/UnitPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\UnitPolicy;\n\nclass UnitPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\UnitPolicy@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\\UnitPolicy@viewAny is PROOF_READY but no test file at tests/Unit/UnitPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Repo",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Repositories/OrganizationScopedRepository.php::App\\Repositories\\OrganizationScopedRepository::create",
        "fqmn": "App\\Repositories\\OrganizationScopedRepository@create",
        "expected_test_path": "tests/Unit/OrganizationScopedRepositoryTest.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\\Repositories\\OrganizationScopedRepository;\n\nclass OrganizationScopedRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Repositories\\OrganizationScopedRepository@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        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Repositories\\OrganizationScopedRepository@create is PROOF_READY but no test file at tests/Unit/OrganizationScopedRepositoryTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Repo",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Repositories/OrganizationScopedRepository.php::App\\Repositories\\OrganizationScopedRepository::query",
        "fqmn": "App\\Repositories\\OrganizationScopedRepository@query",
        "expected_test_path": "tests/Unit/OrganizationScopedRepositoryTest.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\\Repositories\\OrganizationScopedRepository;\n\nclass OrganizationScopedRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Repositories\\OrganizationScopedRepository@query\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_query_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: 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\\Repositories\\OrganizationScopedRepository@query is PROOF_READY but no test file at tests/Unit/OrganizationScopedRepositoryTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Repo",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Repositories/OrganizationScopedRepository.php::App\\Repositories\\OrganizationScopedRepository::setOrganization",
        "fqmn": "App\\Repositories\\OrganizationScopedRepository@setOrganization",
        "expected_test_path": "tests/Unit/OrganizationScopedRepositoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Repositories\\OrganizationScopedRepository;\n\nclass OrganizationScopedRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Repositories\\OrganizationScopedRepository@setOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_setorganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Repositories\\OrganizationScopedRepository@setOrganization is PROOF_READY but no test file at tests/Unit/OrganizationScopedRepositoryTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Repo",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Repositories/OrganizationScopedRepository.php::App\\Repositories\\OrganizationScopedRepository::setOrganizationId",
        "fqmn": "App\\Repositories\\OrganizationScopedRepository@setOrganizationId",
        "expected_test_path": "tests/Unit/OrganizationScopedRepositoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Repositories\\OrganizationScopedRepository;\n\nclass OrganizationScopedRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Repositories\\OrganizationScopedRepository@setOrganizationId\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_setorganizationid_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Repositories\\OrganizationScopedRepository@setOrganizationId is PROOF_READY but no test file at tests/Unit/OrganizationScopedRepositoryTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Repo",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Repositories/Outreach/LeadRepository.php::App\\Repositories\\Outreach\\LeadRepository::getAttemptCount",
        "fqmn": "App\\Repositories\\Outreach\\LeadRepository@getAttemptCount",
        "expected_test_path": "tests/Unit/LeadRepositoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Repositories\\Outreach\\LeadRepository;\n\nclass LeadRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Repositories\\Outreach\\LeadRepository@getAttemptCount\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getattemptcount_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Repositories\\Outreach\\LeadRepository@getAttemptCount is PROOF_READY but no test file at tests/Unit/LeadRepositoryTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Repo",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Repositories/Outreach/LeadRepository.php::App\\Repositories\\Outreach\\LeadRepository::getFilteredLeads",
        "fqmn": "App\\Repositories\\Outreach\\LeadRepository@getFilteredLeads",
        "expected_test_path": "tests/Unit/LeadRepositoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Repositories\\Outreach\\LeadRepository;\n\nclass LeadRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Repositories\\Outreach\\LeadRepository@getFilteredLeads\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getfilteredleads_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Repositories\\Outreach\\LeadRepository@getFilteredLeads is PROOF_READY but no test file at tests/Unit/LeadRepositoryTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Repo",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Repositories/Outreach/LeadRepository.php::App\\Repositories\\Outreach\\LeadRepository::paginate",
        "fqmn": "App\\Repositories\\Outreach\\LeadRepository@paginate",
        "expected_test_path": "tests/Unit/LeadRepositoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Repositories\\Outreach\\LeadRepository;\n\nclass LeadRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Repositories\\Outreach\\LeadRepository@paginate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_paginate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Repositories\\Outreach\\LeadRepository@paginate is PROOF_READY but no test file at tests/Unit/LeadRepositoryTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Sand",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Sandbox/Dialog360/Controllers/MessageController.php::App\\Sandbox\\Dialog360\\Controllers\\MessageController::store",
        "fqmn": "App\\Sandbox\\Dialog360\\Controllers\\MessageController@store",
        "expected_test_path": "tests/Unit/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\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Sandbox\\Dialog360\\Controllers\\MessageController;\n\nclass MessageControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Sandbox\\Dialog360\\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        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Sandbox\\Dialog360\\Controllers\\MessageController@store is PROOF_READY but no test file at tests/Unit/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/Sand",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Sandbox/Dialog360/Controllers/MetricsController.php::App\\Sandbox\\Dialog360\\Controllers\\MetricsController::connections",
        "fqmn": "App\\Sandbox\\Dialog360\\Controllers\\MetricsController@connections",
        "expected_test_path": "tests/Unit/MetricsControllerTest.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\\Sandbox\\Dialog360\\Controllers\\MetricsController;\n\nclass MetricsControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Sandbox\\Dialog360\\Controllers\\MetricsController@connections\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_connections_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Sandbox\\Dialog360\\Controllers\\MetricsController@connections is PROOF_READY but no test file at tests/Unit/MetricsControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Sand",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Sandbox/Dialog360/Controllers/MetricsController.php::App\\Sandbox\\Dialog360\\Controllers\\MetricsController::messages",
        "fqmn": "App\\Sandbox\\Dialog360\\Controllers\\MetricsController@messages",
        "expected_test_path": "tests/Unit/MetricsControllerTest.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\\Sandbox\\Dialog360\\Controllers\\MetricsController;\n\nclass MetricsControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Sandbox\\Dialog360\\Controllers\\MetricsController@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\\Sandbox\\Dialog360\\Controllers\\MetricsController@messages is PROOF_READY but no test file at tests/Unit/MetricsControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Sand",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Sandbox/Dialog360/Controllers/TemplateController.php::App\\Sandbox\\Dialog360\\Controllers\\TemplateController::show",
        "fqmn": "App\\Sandbox\\Dialog360\\Controllers\\TemplateController@show",
        "expected_test_path": "tests/Unit/TemplateControllerTest.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\\Sandbox\\Dialog360\\Controllers\\TemplateController;\n\nclass TemplateControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Sandbox\\Dialog360\\Controllers\\TemplateController@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\\Sandbox\\Dialog360\\Controllers\\TemplateController@show is PROOF_READY but no test file at tests/Unit/TemplateControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Sand",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Sandbox/Dialog360/Controllers/TemplateController.php::App\\Sandbox\\Dialog360\\Controllers\\TemplateController::store",
        "fqmn": "App\\Sandbox\\Dialog360\\Controllers\\TemplateController@store",
        "expected_test_path": "tests/Unit/TemplateControllerTest.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\\Sandbox\\Dialog360\\Controllers\\TemplateController;\n\nclass TemplateControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Sandbox\\Dialog360\\Controllers\\TemplateController@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    }\n}\n",
        "explanation": "Surface App\\Sandbox\\Dialog360\\Controllers\\TemplateController@store is PROOF_READY but no test file at tests/Unit/TemplateControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Sand",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Sandbox/Dialog360/Controllers/WebhookController.php::App\\Sandbox\\Dialog360\\Controllers\\WebhookController::test",
        "fqmn": "App\\Sandbox\\Dialog360\\Controllers\\WebhookController@test",
        "expected_test_path": "tests/Unit/WebhookControllerTest.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\\Sandbox\\Dialog360\\Controllers\\WebhookController;\n\nclass WebhookControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Sandbox\\Dialog360\\Controllers\\WebhookController@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\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Sandbox\\Dialog360\\Controllers\\WebhookController@test is PROOF_READY but no test file at tests/Unit/WebhookControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/BillingAlertService.php::App\\Services\\Billing\\BillingAlertService::checkAndNotifyLowBalance",
        "fqmn": "App\\Services\\Billing\\BillingAlertService@checkAndNotifyLowBalance",
        "expected_test_path": "tests/Feature/BillingAlertServiceTest.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\\Billing\\BillingAlertService;\n\nclass BillingAlertServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Billing\\BillingAlertService@checkAndNotifyLowBalance\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_checkandnotifylowbalance_behaves_correctly(): void\n    {\n\n        // TODO: 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\\Billing\\BillingAlertService@checkAndNotifyLowBalance is PROOF_READY but no test file at tests/Feature/BillingAlertServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/BillingAlertService.php::App\\Services\\Billing\\BillingAlertService::notifyCreditExhausted",
        "fqmn": "App\\Services\\Billing\\BillingAlertService@notifyCreditExhausted",
        "expected_test_path": "tests/Feature/BillingAlertServiceTest.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\\Billing\\BillingAlertService;\n\nclass BillingAlertServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Billing\\BillingAlertService@notifyCreditExhausted\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_notifycreditexhausted_behaves_correctly(): void\n    {\n\n        // TODO: 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\\Billing\\BillingAlertService@notifyCreditExhausted is PROOF_READY but no test file at tests/Feature/BillingAlertServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/BillingAlertService.php::App\\Services\\Billing\\BillingAlertService::notifyPaymentFailed",
        "fqmn": "App\\Services\\Billing\\BillingAlertService@notifyPaymentFailed",
        "expected_test_path": "tests/Feature/BillingAlertServiceTest.php",
        "intent": null,
        "intent_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\\BillingAlertService;\n\nclass BillingAlertServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Billing\\BillingAlertService@notifyPaymentFailed\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_notifypaymentfailed_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\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\\BillingAlertService@notifyPaymentFailed is PROOF_READY but no test file at tests/Feature/BillingAlertServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/BillingAlertService.php::App\\Services\\Billing\\BillingAlertService::notifySuspension",
        "fqmn": "App\\Services\\Billing\\BillingAlertService@notifySuspension",
        "expected_test_path": "tests/Feature/BillingAlertServiceTest.php",
        "intent": null,
        "intent_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\\BillingAlertService;\n\nclass BillingAlertServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Billing\\BillingAlertService@notifySuspension\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_notifysuspension_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\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\\BillingAlertService@notifySuspension is PROOF_READY but no test file at tests/Feature/BillingAlertServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/DunningEngine.php::App\\Services\\Billing\\DunningEngine::attemptPayment",
        "fqmn": "App\\Services\\Billing\\DunningEngine@attemptPayment",
        "expected_test_path": "tests/Feature/DunningEngineTest.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\\Billing\\DunningEngine;\n\nclass DunningEngineTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Billing\\DunningEngine@attemptPayment\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_attemptpayment_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\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\\Billing\\DunningEngine@attemptPayment is PROOF_READY but no test file at tests/Feature/DunningEngineTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/RenewalContextBuilder.php::App\\Services\\Billing\\RenewalContextBuilder::build",
        "fqmn": "App\\Services\\Billing\\RenewalContextBuilder@build",
        "expected_test_path": "tests/Feature/RenewalContextBuilderTest.php",
        "intent": null,
        "intent_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\\RenewalContextBuilder;\n\nclass RenewalContextBuilderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Billing\\RenewalContextBuilder@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\\Billing\\RenewalContextBuilder@build is PROOF_READY but no test file at tests/Feature/RenewalContextBuilderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/TapSettlementReviewQueueService.php::App\\Services\\Billing\\TapSettlementReviewQueueService::createTicket",
        "fqmn": "App\\Services\\Billing\\TapSettlementReviewQueueService@createTicket",
        "expected_test_path": "tests/Feature/TapSettlementReviewQueueServiceTest.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\\TapSettlementReviewQueueService;\n\nclass TapSettlementReviewQueueServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Billing\\TapSettlementReviewQueueService@createTicket\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_createticket_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: 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\\TapSettlementReviewQueueService@createTicket is PROOF_READY but no test file at tests/Feature/TapSettlementReviewQueueServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/TapSettlementSuggestionEngine.php::App\\Services\\Billing\\TapSettlementSuggestionEngine::analyze",
        "fqmn": "App\\Services\\Billing\\TapSettlementSuggestionEngine@analyze",
        "expected_test_path": "tests/Feature/TapSettlementSuggestionEngineTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\TapSettlementSuggestionEngine;\n\nclass TapSettlementSuggestionEngineTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Billing\\TapSettlementSuggestionEngine@analyze\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_analyze_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\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\\TapSettlementSuggestionEngine@analyze is PROOF_READY but no test file at tests/Feature/TapSettlementSuggestionEngineTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/VatService.php::App\\Services\\Billing\\VatService::determinePolicy",
        "fqmn": "App\\Services\\Billing\\VatService@determinePolicy",
        "expected_test_path": "tests/Feature/VatServiceTest.php",
        "intent": null,
        "intent_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\\VatService;\n\nclass VatServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Billing\\VatService@determinePolicy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_determinepolicy_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\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\\VatService@determinePolicy is PROOF_READY but no test file at tests/Feature/VatServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/ZeptoMailer.php::App\\Services\\Email\\ZeptoMailer::sendHtml",
        "fqmn": "App\\Services\\Email\\ZeptoMailer@sendHtml",
        "expected_test_path": "tests/Feature/ZeptoMailerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_exception_thrown",
          "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\\Services\\Email\\ZeptoMailer;\n\nclass ZeptoMailerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Email\\ZeptoMailer@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: 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        // Http::assertSent(fn ($req) => $req->url() === '<url>');\n    }\n}\n",
        "explanation": "Surface App\\Services\\Email\\ZeptoMailer@sendHtml is PROOF_READY but no test file at tests/Feature/ZeptoMailerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/GccCountryService.php::App\\Services\\GccCountryService::detectCountryFromPhone",
        "fqmn": "App\\Services\\GccCountryService@detectCountryFromPhone",
        "expected_test_path": "tests/Feature/GccCountryServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\GccCountryService;\n\nclass GccCountryServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\GccCountryService@detectCountryFromPhone\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_detectcountryfromphone_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\GccCountryService@detectCountryFromPhone is PROOF_READY but no test file at tests/Feature/GccCountryServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/GccCountryService.php::App\\Services\\GccCountryService::getCountries",
        "fqmn": "App\\Services\\GccCountryService@getCountries",
        "expected_test_path": "tests/Feature/GccCountryServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\GccCountryService;\n\nclass GccCountryServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\GccCountryService@getCountries\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getcountries_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\GccCountryService@getCountries is PROOF_READY but no test file at tests/Feature/GccCountryServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/GccCountryService.php::App\\Services\\GccCountryService::getCountryCodes",
        "fqmn": "App\\Services\\GccCountryService@getCountryCodes",
        "expected_test_path": "tests/Feature/GccCountryServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\GccCountryService;\n\nclass GccCountryServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\GccCountryService@getCountryCodes\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getcountrycodes_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\GccCountryService@getCountryCodes is PROOF_READY but no test file at tests/Feature/GccCountryServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/GccCountryService.php::App\\Services\\GccCountryService::getCountryName",
        "fqmn": "App\\Services\\GccCountryService@getCountryName",
        "expected_test_path": "tests/Feature/GccCountryServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\GccCountryService;\n\nclass GccCountryServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\GccCountryService@getCountryName\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getcountryname_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\GccCountryService@getCountryName is PROOF_READY but no test file at tests/Feature/GccCountryServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/GccCountryService.php::App\\Services\\GccCountryService::getCurrency",
        "fqmn": "App\\Services\\GccCountryService@getCurrency",
        "expected_test_path": "tests/Feature/GccCountryServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\GccCountryService;\n\nclass GccCountryServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\GccCountryService@getCurrency\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getcurrency_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\GccCountryService@getCurrency is PROOF_READY but no test file at tests/Feature/GccCountryServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/GccCountryService.php::App\\Services\\GccCountryService::getCurrencyName",
        "fqmn": "App\\Services\\GccCountryService@getCurrencyName",
        "expected_test_path": "tests/Feature/GccCountryServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\GccCountryService;\n\nclass GccCountryServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\GccCountryService@getCurrencyName\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getcurrencyname_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\GccCountryService@getCurrencyName is PROOF_READY but no test file at tests/Feature/GccCountryServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/GccCountryService.php::App\\Services\\GccCountryService::isGccCountry",
        "fqmn": "App\\Services\\GccCountryService@isGccCountry",
        "expected_test_path": "tests/Feature/GccCountryServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\GccCountryService;\n\nclass GccCountryServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\GccCountryService@isGccCountry\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_isgcccountry_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\GccCountryService@isGccCountry is PROOF_READY but no test file at tests/Feature/GccCountryServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Imports/CsvImportExecutorV2.php::App\\Services\\Imports\\CsvImportExecutorV2::execute",
        "fqmn": "App\\Services\\Imports\\CsvImportExecutorV2@execute",
        "expected_test_path": "tests/Feature/CsvImportExecutorV2Test.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\\Imports\\CsvImportExecutorV2;\n\nclass CsvImportExecutorV2Test extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Imports\\CsvImportExecutorV2@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\\Imports\\CsvImportExecutorV2@execute is PROOF_READY but no test file at tests/Feature/CsvImportExecutorV2Test.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Imports/CsvImportExecutorV2.php::App\\Services\\Imports\\CsvImportExecutorV2::generateErrorReport",
        "fqmn": "App\\Services\\Imports\\CsvImportExecutorV2@generateErrorReport",
        "expected_test_path": "tests/Feature/CsvImportExecutorV2Test.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Imports\\CsvImportExecutorV2;\n\nclass CsvImportExecutorV2Test extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Imports\\CsvImportExecutorV2@generateErrorReport\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_generateerrorreport_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Imports\\CsvImportExecutorV2@generateErrorReport is PROOF_READY but no test file at tests/Feature/CsvImportExecutorV2Test.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Imports/CsvImportSessionManager.php::App\\Services\\Imports\\CsvImportSessionManager::addFile",
        "fqmn": "App\\Services\\Imports\\CsvImportSessionManager@addFile",
        "expected_test_path": "tests/Feature/CsvImportSessionManagerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Imports\\CsvImportSessionManager;\n\nclass CsvImportSessionManagerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Imports\\CsvImportSessionManager@addFile\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_addfile_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Imports\\CsvImportSessionManager@addFile is PROOF_READY but no test file at tests/Feature/CsvImportSessionManagerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Imports/CsvImportSessionManager.php::App\\Services\\Imports\\CsvImportSessionManager::cleanupOldSessions",
        "fqmn": "App\\Services\\Imports\\CsvImportSessionManager@cleanupOldSessions",
        "expected_test_path": "tests/Feature/CsvImportSessionManagerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Imports\\CsvImportSessionManager;\n\nclass CsvImportSessionManagerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Imports\\CsvImportSessionManager@cleanupOldSessions\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_cleanupoldsessions_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Imports\\CsvImportSessionManager@cleanupOldSessions is PROOF_READY but no test file at tests/Feature/CsvImportSessionManagerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Imports/CsvImportSessionManager.php::App\\Services\\Imports\\CsvImportSessionManager::createSession",
        "fqmn": "App\\Services\\Imports\\CsvImportSessionManager@createSession",
        "expected_test_path": "tests/Feature/CsvImportSessionManagerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Imports\\CsvImportSessionManager;\n\nclass CsvImportSessionManagerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Imports\\CsvImportSessionManager@createSession\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_createsession_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Imports\\CsvImportSessionManager@createSession is PROOF_READY but no test file at tests/Feature/CsvImportSessionManagerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Imports/CsvImportSessionManager.php::App\\Services\\Imports\\CsvImportSessionManager::findExistingSession",
        "fqmn": "App\\Services\\Imports\\CsvImportSessionManager@findExistingSession",
        "expected_test_path": "tests/Feature/CsvImportSessionManagerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Imports\\CsvImportSessionManager;\n\nclass CsvImportSessionManagerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Imports\\CsvImportSessionManager@findExistingSession\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_findexistingsession_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Imports\\CsvImportSessionManager@findExistingSession is PROOF_READY but no test file at tests/Feature/CsvImportSessionManagerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Imports/CsvImportSessionManager.php::App\\Services\\Imports\\CsvImportSessionManager::getFilePath",
        "fqmn": "App\\Services\\Imports\\CsvImportSessionManager@getFilePath",
        "expected_test_path": "tests/Feature/CsvImportSessionManagerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Imports\\CsvImportSessionManager;\n\nclass CsvImportSessionManagerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Imports\\CsvImportSessionManager@getFilePath\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getfilepath_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Imports\\CsvImportSessionManager@getFilePath is PROOF_READY but no test file at tests/Feature/CsvImportSessionManagerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Imports/CsvImportSessionManager.php::App\\Services\\Imports\\CsvImportSessionManager::getSessionData",
        "fqmn": "App\\Services\\Imports\\CsvImportSessionManager@getSessionData",
        "expected_test_path": "tests/Feature/CsvImportSessionManagerTest.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\\Imports\\CsvImportSessionManager;\n\nclass CsvImportSessionManagerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Imports\\CsvImportSessionManager@getSessionData\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getsessiondata_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: 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\\Imports\\CsvImportSessionManager@getSessionData is PROOF_READY but no test file at tests/Feature/CsvImportSessionManagerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Imports/CsvRelationshipMapper.php::App\\Services\\Imports\\CsvRelationshipMapper::analyzeRelationships",
        "fqmn": "App\\Services\\Imports\\CsvRelationshipMapper@analyzeRelationships",
        "expected_test_path": "tests/Feature/CsvRelationshipMapperTest.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\\Imports\\CsvRelationshipMapper;\n\nclass CsvRelationshipMapperTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Imports\\CsvRelationshipMapper@analyzeRelationships\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_analyzerelationships_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Imports\\CsvRelationshipMapper@analyzeRelationships is PROOF_READY but no test file at tests/Feature/CsvRelationshipMapperTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Messaging/MessageQuotaService.php::App\\Services\\Messaging\\MessageQuotaService::checkDailyLimit",
        "fqmn": "App\\Services\\Messaging\\MessageQuotaService@checkDailyLimit",
        "expected_test_path": "tests/Feature/MessageQuotaServiceTest.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\\Messaging\\MessageQuotaService;\n\nclass MessageQuotaServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Messaging\\MessageQuotaService@checkDailyLimit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_checkdailylimit_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\Messaging\\MessageQuotaService@checkDailyLimit is PROOF_READY but no test file at tests/Feature/MessageQuotaServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Messaging/MessageQuotaService.php::App\\Services\\Messaging\\MessageQuotaService::checkMonthlyLimit",
        "fqmn": "App\\Services\\Messaging\\MessageQuotaService@checkMonthlyLimit",
        "expected_test_path": "tests/Feature/MessageQuotaServiceTest.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\\Messaging\\MessageQuotaService;\n\nclass MessageQuotaServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Messaging\\MessageQuotaService@checkMonthlyLimit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_checkmonthlylimit_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\Messaging\\MessageQuotaService@checkMonthlyLimit is PROOF_READY but no test file at tests/Feature/MessageQuotaServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Messaging/MessageQuotaService.php::App\\Services\\Messaging\\MessageQuotaService::checkRecipientThrottle",
        "fqmn": "App\\Services\\Messaging\\MessageQuotaService@checkRecipientThrottle",
        "expected_test_path": "tests/Feature/MessageQuotaServiceTest.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\\Messaging\\MessageQuotaService;\n\nclass MessageQuotaServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Messaging\\MessageQuotaService@checkRecipientThrottle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_checkrecipientthrottle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\Messaging\\MessageQuotaService@checkRecipientThrottle is PROOF_READY but no test file at tests/Feature/MessageQuotaServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Messaging/MessagingResult.php::App\\Services\\Messaging\\MessagingResult::toArray",
        "fqmn": "App\\Services\\Messaging\\MessagingResult@toArray",
        "expected_test_path": "tests/Feature/MessagingResultTest.php",
        "intent": null,
        "intent_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\\Messaging\\MessagingResult;\n\nclass MessagingResultTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Messaging\\MessagingResult@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\\Messaging\\MessagingResult@toArray is PROOF_READY but no test file at tests/Feature/MessagingResultTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Notifications/NotificationDispatcher.php::App\\Services\\Notifications\\NotificationDispatcher::send",
        "fqmn": "App\\Services\\Notifications\\NotificationDispatcher@send",
        "expected_test_path": "tests/Feature/NotificationDispatcherTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Notifications\\NotificationDispatcher;\n\nclass NotificationDispatcherTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Notifications\\NotificationDispatcher@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Notifications\\NotificationDispatcher@send is PROOF_READY but no test file at tests/Feature/NotificationDispatcherTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Notifications/NotificationSenderRunner.php::App\\Services\\Notifications\\NotificationSenderRunner::sendForSubscriptionEvent",
        "fqmn": "App\\Services\\Notifications\\NotificationSenderRunner@sendForSubscriptionEvent",
        "expected_test_path": "tests/Feature/NotificationSenderRunnerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Notifications\\NotificationSenderRunner;\n\nclass NotificationSenderRunnerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Notifications\\NotificationSenderRunner@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Notifications\\NotificationSenderRunner@sendForSubscriptionEvent is PROOF_READY but no test file at tests/Feature/NotificationSenderRunnerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OpenAI/Client.php::App\\Services\\OpenAI\\Client::chat",
        "fqmn": "App\\Services\\OpenAI\\Client@chat",
        "expected_test_path": "tests/Feature/ClientTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OpenAI\\Client;\n\nclass ClientTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OpenAI\\Client@chat\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_chat_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OpenAI\\Client@chat is PROOF_READY but no test file at tests/Feature/ClientTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OpenAI/Client.php::App\\Services\\OpenAI\\Client::transcribe",
        "fqmn": "App\\Services\\OpenAI\\Client@transcribe",
        "expected_test_path": "tests/Feature/ClientTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_exception_thrown",
          "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\\Services\\OpenAI\\Client;\n\nclass ClientTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OpenAI\\Client@transcribe\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_transcribe_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: 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        // Http::assertSent(fn ($req) => $req->url() === '<url>');\n    }\n}\n",
        "explanation": "Surface App\\Services\\OpenAI\\Client@transcribe is PROOF_READY but no test file at tests/Feature/ClientTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::assistants",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@assistants",
        "expected_test_path": "tests/Feature/OpenAIClientProxyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OpenAI\\OpenAIClientProxy;\n\nclass OpenAIClientProxyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OpenAI\\OpenAIClientProxy@assistants\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_assistants_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OpenAI\\OpenAIClientProxy@assistants is PROOF_READY but no test file at tests/Feature/OpenAIClientProxyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::audio",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@audio",
        "expected_test_path": "tests/Feature/OpenAIClientProxyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OpenAI\\OpenAIClientProxy;\n\nclass OpenAIClientProxyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OpenAI\\OpenAIClientProxy@audio\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_audio_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OpenAI\\OpenAIClientProxy@audio is PROOF_READY but no test file at tests/Feature/OpenAIClientProxyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::batches",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@batches",
        "expected_test_path": "tests/Feature/OpenAIClientProxyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OpenAI\\OpenAIClientProxy;\n\nclass OpenAIClientProxyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OpenAI\\OpenAIClientProxy@batches\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_batches_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OpenAI\\OpenAIClientProxy@batches is PROOF_READY but no test file at tests/Feature/OpenAIClientProxyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::chat",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@chat",
        "expected_test_path": "tests/Feature/OpenAIClientProxyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OpenAI\\OpenAIClientProxy;\n\nclass OpenAIClientProxyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OpenAI\\OpenAIClientProxy@chat\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_chat_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OpenAI\\OpenAIClientProxy@chat is PROOF_READY but no test file at tests/Feature/OpenAIClientProxyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::completions",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@completions",
        "expected_test_path": "tests/Feature/OpenAIClientProxyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OpenAI\\OpenAIClientProxy;\n\nclass OpenAIClientProxyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OpenAI\\OpenAIClientProxy@completions\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_completions_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OpenAI\\OpenAIClientProxy@completions is PROOF_READY but no test file at tests/Feature/OpenAIClientProxyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::edits",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@edits",
        "expected_test_path": "tests/Feature/OpenAIClientProxyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OpenAI\\OpenAIClientProxy;\n\nclass OpenAIClientProxyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OpenAI\\OpenAIClientProxy@edits\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_edits_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OpenAI\\OpenAIClientProxy@edits is PROOF_READY but no test file at tests/Feature/OpenAIClientProxyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::embeddings",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@embeddings",
        "expected_test_path": "tests/Feature/OpenAIClientProxyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OpenAI\\OpenAIClientProxy;\n\nclass OpenAIClientProxyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OpenAI\\OpenAIClientProxy@embeddings\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_embeddings_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OpenAI\\OpenAIClientProxy@embeddings is PROOF_READY but no test file at tests/Feature/OpenAIClientProxyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::files",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@files",
        "expected_test_path": "tests/Feature/OpenAIClientProxyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OpenAI\\OpenAIClientProxy;\n\nclass OpenAIClientProxyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OpenAI\\OpenAIClientProxy@files\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_files_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OpenAI\\OpenAIClientProxy@files is PROOF_READY but no test file at tests/Feature/OpenAIClientProxyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::fineTunes",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@fineTunes",
        "expected_test_path": "tests/Feature/OpenAIClientProxyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OpenAI\\OpenAIClientProxy;\n\nclass OpenAIClientProxyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OpenAI\\OpenAIClientProxy@fineTunes\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_finetunes_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OpenAI\\OpenAIClientProxy@fineTunes is PROOF_READY but no test file at tests/Feature/OpenAIClientProxyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::fineTuning",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@fineTuning",
        "expected_test_path": "tests/Feature/OpenAIClientProxyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OpenAI\\OpenAIClientProxy;\n\nclass OpenAIClientProxyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OpenAI\\OpenAIClientProxy@fineTuning\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_finetuning_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OpenAI\\OpenAIClientProxy@fineTuning is PROOF_READY but no test file at tests/Feature/OpenAIClientProxyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::images",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@images",
        "expected_test_path": "tests/Feature/OpenAIClientProxyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OpenAI\\OpenAIClientProxy;\n\nclass OpenAIClientProxyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OpenAI\\OpenAIClientProxy@images\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_images_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OpenAI\\OpenAIClientProxy@images is PROOF_READY but no test file at tests/Feature/OpenAIClientProxyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::models",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@models",
        "expected_test_path": "tests/Feature/OpenAIClientProxyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OpenAI\\OpenAIClientProxy;\n\nclass OpenAIClientProxyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OpenAI\\OpenAIClientProxy@models\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_models_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OpenAI\\OpenAIClientProxy@models is PROOF_READY but no test file at tests/Feature/OpenAIClientProxyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::moderations",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@moderations",
        "expected_test_path": "tests/Feature/OpenAIClientProxyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OpenAI\\OpenAIClientProxy;\n\nclass OpenAIClientProxyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OpenAI\\OpenAIClientProxy@moderations\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_moderations_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OpenAI\\OpenAIClientProxy@moderations is PROOF_READY but no test file at tests/Feature/OpenAIClientProxyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::threads",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@threads",
        "expected_test_path": "tests/Feature/OpenAIClientProxyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OpenAI\\OpenAIClientProxy;\n\nclass OpenAIClientProxyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OpenAI\\OpenAIClientProxy@threads\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_threads_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OpenAI\\OpenAIClientProxy@threads is PROOF_READY but no test file at tests/Feature/OpenAIClientProxyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::vectorStores",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@vectorStores",
        "expected_test_path": "tests/Feature/OpenAIClientProxyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OpenAI\\OpenAIClientProxy;\n\nclass OpenAIClientProxyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OpenAI\\OpenAIClientProxy@vectorStores\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_vectorstores_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OpenAI\\OpenAIClientProxy@vectorStores is PROOF_READY but no test file at tests/Feature/OpenAIClientProxyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OpenAI/OpenAIClientProxy.php::App\\Services\\OpenAI\\OpenAIClientProxy::wrap",
        "fqmn": "App\\Services\\OpenAI\\OpenAIClientProxy@wrap",
        "expected_test_path": "tests/Feature/OpenAIClientProxyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OpenAI\\OpenAIClientProxy;\n\nclass OpenAIClientProxyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OpenAI\\OpenAIClientProxy@wrap\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_wrap_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OpenAI\\OpenAIClientProxy@wrap is PROOF_READY but no test file at tests/Feature/OpenAIClientProxyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OpenAI/OpenAIVisionService.php::App\\Services\\OpenAI\\OpenAIVisionService::analyzePaymentReceipt",
        "fqmn": "App\\Services\\OpenAI\\OpenAIVisionService@analyzePaymentReceipt",
        "expected_test_path": "tests/Feature/OpenAIVisionServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_http_called"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\OpenAI\\OpenAIVisionService;\n\nclass OpenAIVisionServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OpenAI\\OpenAIVisionService@analyzePaymentReceipt\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_analyzepaymentreceipt_behaves_correctly(): void\n    {\n\n        // 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\\OpenAI\\OpenAIVisionService@analyzePaymentReceipt is PROOF_READY but no test file at tests/Feature/OpenAIVisionServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OrganizationRegistrationService.php::App\\Services\\OrganizationRegistrationService::generateUniqueSlug",
        "fqmn": "App\\Services\\OrganizationRegistrationService@generateUniqueSlug",
        "expected_test_path": "tests/Feature/OrganizationRegistrationServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OrganizationRegistrationService;\n\nclass OrganizationRegistrationServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OrganizationRegistrationService@generateUniqueSlug\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_generateuniqueslug_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OrganizationRegistrationService@generateUniqueSlug is PROOF_READY but no test file at tests/Feature/OrganizationRegistrationServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OTPService.php::App\\Services\\OTPService::resendOTP",
        "fqmn": "App\\Services\\OTPService@resendOTP",
        "expected_test_path": "tests/Feature/OTPServiceTest.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\\OTPService;\n\nclass OTPServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OTPService@resendOTP\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resendotp_behaves_correctly(): void\n    {\n\n        // TODO: 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\\OTPService@resendOTP is PROOF_READY but no test file at tests/Feature/OTPServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OTPService.php::App\\Services\\OTPService::sendRegistrationOTP",
        "fqmn": "App\\Services\\OTPService@sendRegistrationOTP",
        "expected_test_path": "tests/Feature/OTPServiceTest.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\\OTPService;\n\nclass OTPServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OTPService@sendRegistrationOTP\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_sendregistrationotp_behaves_correctly(): void\n    {\n\n        // TODO: 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\\OTPService@sendRegistrationOTP is PROOF_READY but no test file at tests/Feature/OTPServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OTPService.php::App\\Services\\OTPService::verifyRegistrationOTP",
        "fqmn": "App\\Services\\OTPService@verifyRegistrationOTP",
        "expected_test_path": "tests/Feature/OTPServiceTest.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\\OTPService;\n\nclass OTPServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OTPService@verifyRegistrationOTP\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_verifyregistrationotp_behaves_correctly(): void\n    {\n\n        // TODO: 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\\OTPService@verifyRegistrationOTP is PROOF_READY but no test file at tests/Feature/OTPServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Outreach/FollowUpTemplateService.php::App\\Services\\Outreach\\FollowUpTemplateService::generateTemplate",
        "fqmn": "App\\Services\\Outreach\\FollowUpTemplateService@generateTemplate",
        "expected_test_path": "tests/Feature/FollowUpTemplateServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Outreach\\FollowUpTemplateService;\n\nclass FollowUpTemplateServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Outreach\\FollowUpTemplateService@generateTemplate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_generatetemplate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Outreach\\FollowUpTemplateService@generateTemplate is PROOF_READY but no test file at tests/Feature/FollowUpTemplateServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Outreach/InboundMessageNormalizer.php::App\\Services\\Outreach\\InboundMessageNormalizer::normalizeInbound",
        "fqmn": "App\\Services\\Outreach\\InboundMessageNormalizer@normalizeInbound",
        "expected_test_path": "tests/Feature/InboundMessageNormalizerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Outreach\\InboundMessageNormalizer;\n\nclass InboundMessageNormalizerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Outreach\\InboundMessageNormalizer@normalizeInbound\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_normalizeinbound_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Outreach\\InboundMessageNormalizer@normalizeInbound is PROOF_READY but no test file at tests/Feature/InboundMessageNormalizerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Outreach/SafetyEngine.php::App\\Services\\Outreach\\SafetyEngine::isAllowed",
        "fqmn": "App\\Services\\Outreach\\SafetyEngine@isAllowed",
        "expected_test_path": "tests/Feature/SafetyEngineTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Outreach\\SafetyEngine;\n\nclass SafetyEngineTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Outreach\\SafetyEngine@isAllowed\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_isallowed_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Outreach\\SafetyEngine@isAllowed is PROOF_READY but no test file at tests/Feature/SafetyEngineTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/AgenticActionService.php::App\\Services\\OutreachAI\\AgenticActionService::execute",
        "fqmn": "App\\Services\\OutreachAI\\AgenticActionService@execute",
        "expected_test_path": "tests/Feature/AgenticActionServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\AgenticActionService;\n\nclass AgenticActionServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\AgenticActionService@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\AgenticActionService@execute is PROOF_READY but no test file at tests/Feature/AgenticActionServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/AIAutoReplyService.php::App\\Services\\OutreachAI\\AIAutoReplyService::handleInboundMessage",
        "fqmn": "App\\Services\\OutreachAI\\AIAutoReplyService@handleInboundMessage",
        "expected_test_path": "tests/Feature/AIAutoReplyServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [
          "assert_cache_written",
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\OutreachAI\\AIAutoReplyService;\n\nclass AIAutoReplyServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\AIAutoReplyService@handleInboundMessage\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handleinboundmessage_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\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        // $this->assertTrue(Cache::has('<key>'));\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\AIAutoReplyService@handleInboundMessage is PROOF_READY but no test file at tests/Feature/AIAutoReplyServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/AssetDetectionService.php::App\\Services\\OutreachAI\\AssetDetectionService::detect",
        "fqmn": "App\\Services\\OutreachAI\\AssetDetectionService@detect",
        "expected_test_path": "tests/Feature/AssetDetectionServiceTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\AssetDetectionService;\n\nclass AssetDetectionServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\AssetDetectionService@detect\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_detect_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\AssetDetectionService@detect is PROOF_READY but no test file at tests/Feature/AssetDetectionServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/AudioConverter.php::App\\Services\\OutreachAI\\AudioConverter::cleanupOldFiles",
        "fqmn": "App\\Services\\OutreachAI\\AudioConverter@cleanupOldFiles",
        "expected_test_path": "tests/Feature/AudioConverterTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\AudioConverter;\n\nclass AudioConverterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\AudioConverter@cleanupOldFiles\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_cleanupoldfiles_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\AudioConverter@cleanupOldFiles is PROOF_READY but no test file at tests/Feature/AudioConverterTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/AudioConverter.php::App\\Services\\OutreachAI\\AudioConverter::convertToMp3",
        "fqmn": "App\\Services\\OutreachAI\\AudioConverter@convertToMp3",
        "expected_test_path": "tests/Feature/AudioConverterTest.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\\OutreachAI\\AudioConverter;\n\nclass AudioConverterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\AudioConverter@convertToMp3\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_converttomp3_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: 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\\OutreachAI\\AudioConverter@convertToMp3 is PROOF_READY but no test file at tests/Feature/AudioConverterTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/AudioConverter.php::App\\Services\\OutreachAI\\AudioConverter::getStorageStats",
        "fqmn": "App\\Services\\OutreachAI\\AudioConverter@getStorageStats",
        "expected_test_path": "tests/Feature/AudioConverterTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\AudioConverter;\n\nclass AudioConverterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\AudioConverter@getStorageStats\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getstoragestats_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\AudioConverter@getStorageStats is PROOF_READY but no test file at tests/Feature/AudioConverterTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/AutoReplyDetectionService.php::App\\Services\\OutreachAI\\AutoReplyDetectionService::detect",
        "fqmn": "App\\Services\\OutreachAI\\AutoReplyDetectionService@detect",
        "expected_test_path": "tests/Feature/AutoReplyDetectionServiceTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\AutoReplyDetectionService;\n\nclass AutoReplyDetectionServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\AutoReplyDetectionService@detect\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_detect_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\AutoReplyDetectionService@detect is PROOF_READY but no test file at tests/Feature/AutoReplyDetectionServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/ContextBuilder.php::App\\Services\\OutreachAI\\ContextBuilder::build",
        "fqmn": "App\\Services\\OutreachAI\\ContextBuilder@build",
        "expected_test_path": "tests/Feature/ContextBuilderTest.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\\OutreachAI\\ContextBuilder;\n\nclass ContextBuilderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\ContextBuilder@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\\OutreachAI\\ContextBuilder@build is PROOF_READY but no test file at tests/Feature/ContextBuilderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/ContractRenewal/RenewalCampaignService.php::App\\Services\\OutreachAI\\ContractRenewal\\RenewalCampaignService::shouldStartCampaign",
        "fqmn": "App\\Services\\OutreachAI\\ContractRenewal\\RenewalCampaignService@shouldStartCampaign",
        "expected_test_path": "tests/Feature/RenewalCampaignServiceTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\ContractRenewal\\RenewalCampaignService;\n\nclass RenewalCampaignServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\ContractRenewal\\RenewalCampaignService@shouldStartCampaign\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_shouldstartcampaign_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\ContractRenewal\\RenewalCampaignService@shouldStartCampaign is PROOF_READY but no test file at tests/Feature/RenewalCampaignServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/ContractRenewal/RenewalIncentiveEngine.php::App\\Services\\OutreachAI\\ContractRenewal\\RenewalIncentiveEngine::calculate",
        "fqmn": "App\\Services\\OutreachAI\\ContractRenewal\\RenewalIncentiveEngine@calculate",
        "expected_test_path": "tests/Feature/RenewalIncentiveEngineTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\ContractRenewal\\RenewalIncentiveEngine;\n\nclass RenewalIncentiveEngineTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\ContractRenewal\\RenewalIncentiveEngine@calculate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_calculate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\ContractRenewal\\RenewalIncentiveEngine@calculate is PROOF_READY but no test file at tests/Feature/RenewalIncentiveEngineTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/ContractRenewal/RenewalPredictionEngine.php::App\\Services\\OutreachAI\\ContractRenewal\\RenewalPredictionEngine::predict",
        "fqmn": "App\\Services\\OutreachAI\\ContractRenewal\\RenewalPredictionEngine@predict",
        "expected_test_path": "tests/Feature/RenewalPredictionEngineTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\ContractRenewal\\RenewalPredictionEngine;\n\nclass RenewalPredictionEngineTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\ContractRenewal\\RenewalPredictionEngine@predict\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_predict_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\ContractRenewal\\RenewalPredictionEngine@predict is PROOF_READY but no test file at tests/Feature/RenewalPredictionEngineTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/ContractRenewal/RenewalTimingOptimizer.php::App\\Services\\OutreachAI\\ContractRenewal\\RenewalTimingOptimizer::optimize",
        "fqmn": "App\\Services\\OutreachAI\\ContractRenewal\\RenewalTimingOptimizer@optimize",
        "expected_test_path": "tests/Feature/RenewalTimingOptimizerTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\ContractRenewal\\RenewalTimingOptimizer;\n\nclass RenewalTimingOptimizerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\ContractRenewal\\RenewalTimingOptimizer@optimize\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_optimize_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\ContractRenewal\\RenewalTimingOptimizer@optimize is PROOF_READY but no test file at tests/Feature/RenewalTimingOptimizerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/ConversationGovernanceService.php::App\\Services\\OutreachAI\\ConversationGovernanceService::allowsFollowUps",
        "fqmn": "App\\Services\\OutreachAI\\ConversationGovernanceService@allowsFollowUps",
        "expected_test_path": "tests/Feature/ConversationGovernanceServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\ConversationGovernanceService;\n\nclass ConversationGovernanceServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\ConversationGovernanceService@allowsFollowUps\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_allowsfollowups_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\ConversationGovernanceService@allowsFollowUps is PROOF_READY but no test file at tests/Feature/ConversationGovernanceServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/ConversationGovernanceService.php::App\\Services\\OutreachAI\\ConversationGovernanceService::canSendAutomatedMessage",
        "fqmn": "App\\Services\\OutreachAI\\ConversationGovernanceService@canSendAutomatedMessage",
        "expected_test_path": "tests/Feature/ConversationGovernanceServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\ConversationGovernanceService;\n\nclass ConversationGovernanceServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\ConversationGovernanceService@canSendAutomatedMessage\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_cansendautomatedmessage_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\ConversationGovernanceService@canSendAutomatedMessage is PROOF_READY but no test file at tests/Feature/ConversationGovernanceServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/ConversationGovernanceService.php::App\\Services\\OutreachAI\\ConversationGovernanceService::getCurrentState",
        "fqmn": "App\\Services\\OutreachAI\\ConversationGovernanceService@getCurrentState",
        "expected_test_path": "tests/Feature/ConversationGovernanceServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\ConversationGovernanceService;\n\nclass ConversationGovernanceServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\ConversationGovernanceService@getCurrentState\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getcurrentstate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\ConversationGovernanceService@getCurrentState is PROOF_READY but no test file at tests/Feature/ConversationGovernanceServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/ConversationGovernanceService.php::App\\Services\\OutreachAI\\ConversationGovernanceService::getFollowUpTier",
        "fqmn": "App\\Services\\OutreachAI\\ConversationGovernanceService@getFollowUpTier",
        "expected_test_path": "tests/Feature/ConversationGovernanceServiceTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\ConversationGovernanceService;\n\nclass ConversationGovernanceServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\ConversationGovernanceService@getFollowUpTier\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getfollowuptier_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\ConversationGovernanceService@getFollowUpTier is PROOF_READY but no test file at tests/Feature/ConversationGovernanceServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/ConversationGovernanceService.php::App\\Services\\OutreachAI\\ConversationGovernanceService::handleUserReply",
        "fqmn": "App\\Services\\OutreachAI\\ConversationGovernanceService@handleUserReply",
        "expected_test_path": "tests/Feature/ConversationGovernanceServiceTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\ConversationGovernanceService;\n\nclass ConversationGovernanceServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\ConversationGovernanceService@handleUserReply\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handleuserreply_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\ConversationGovernanceService@handleUserReply is PROOF_READY but no test file at tests/Feature/ConversationGovernanceServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/ConversationGovernanceService.php::App\\Services\\OutreachAI\\ConversationGovernanceService::handleUserSilence",
        "fqmn": "App\\Services\\OutreachAI\\ConversationGovernanceService@handleUserSilence",
        "expected_test_path": "tests/Feature/ConversationGovernanceServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\ConversationGovernanceService;\n\nclass ConversationGovernanceServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\ConversationGovernanceService@handleUserSilence\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handleusersilence_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\ConversationGovernanceService@handleUserSilence is PROOF_READY but no test file at tests/Feature/ConversationGovernanceServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/CustomerSuccess/MilestoneDetectionService.php::App\\Services\\OutreachAI\\CustomerSuccess\\MilestoneDetectionService::detect",
        "fqmn": "App\\Services\\OutreachAI\\CustomerSuccess\\MilestoneDetectionService@detect",
        "expected_test_path": "tests/Feature/MilestoneDetectionServiceTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\CustomerSuccess\\MilestoneDetectionService;\n\nclass MilestoneDetectionServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\CustomerSuccess\\MilestoneDetectionService@detect\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_detect_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\CustomerSuccess\\MilestoneDetectionService@detect is PROOF_READY but no test file at tests/Feature/MilestoneDetectionServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/DataExtractionEngine.php::App\\Services\\OutreachAI\\DataExtractionEngine::extract",
        "fqmn": "App\\Services\\OutreachAI\\DataExtractionEngine@extract",
        "expected_test_path": "tests/Feature/DataExtractionEngineTest.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\\OutreachAI\\DataExtractionEngine;\n\nclass DataExtractionEngineTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\DataExtractionEngine@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\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\OutreachAI\\DataExtractionEngine@extract is PROOF_READY but no test file at tests/Feature/DataExtractionEngineTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/FailureLogger.php::App\\Services\\OutreachAI\\FailureLogger::getLeadFailures",
        "fqmn": "App\\Services\\OutreachAI\\FailureLogger@getLeadFailures",
        "expected_test_path": "tests/Feature/FailureLoggerTest.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\\OutreachAI\\FailureLogger;\n\nclass FailureLoggerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\FailureLogger@getLeadFailures\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getleadfailures_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\OutreachAI\\FailureLogger@getLeadFailures is PROOF_READY but no test file at tests/Feature/FailureLoggerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/FailureLogger.php::App\\Services\\OutreachAI\\FailureLogger::getRecentFailures",
        "fqmn": "App\\Services\\OutreachAI\\FailureLogger@getRecentFailures",
        "expected_test_path": "tests/Feature/FailureLoggerTest.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\\OutreachAI\\FailureLogger;\n\nclass FailureLoggerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\FailureLogger@getRecentFailures\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getrecentfailures_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\OutreachAI\\FailureLogger@getRecentFailures is PROOF_READY but no test file at tests/Feature/FailureLoggerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/FailureLogger.php::App\\Services\\OutreachAI\\FailureLogger::getStats",
        "fqmn": "App\\Services\\OutreachAI\\FailureLogger@getStats",
        "expected_test_path": "tests/Feature/FailureLoggerTest.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\\OutreachAI\\FailureLogger;\n\nclass FailureLoggerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\FailureLogger@getStats\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getstats_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\OutreachAI\\FailureLogger@getStats is PROOF_READY but no test file at tests/Feature/FailureLoggerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/HumanHandoffService.php::App\\Services\\OutreachAI\\HumanHandoffService::activateNextInQueue",
        "fqmn": "App\\Services\\OutreachAI\\HumanHandoffService@activateNextInQueue",
        "expected_test_path": "tests/Feature/HumanHandoffServiceTest.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\\OutreachAI\\HumanHandoffService;\n\nclass HumanHandoffServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\HumanHandoffService@activateNextInQueue\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_activatenextinqueue_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\OutreachAI\\HumanHandoffService@activateNextInQueue is PROOF_READY but no test file at tests/Feature/HumanHandoffServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/HumanHandoffService.php::App\\Services\\OutreachAI\\HumanHandoffService::getActiveConversation",
        "fqmn": "App\\Services\\OutreachAI\\HumanHandoffService@getActiveConversation",
        "expected_test_path": "tests/Feature/HumanHandoffServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\HumanHandoffService;\n\nclass HumanHandoffServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\HumanHandoffService@getActiveConversation\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getactiveconversation_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\HumanHandoffService@getActiveConversation is PROOF_READY but no test file at tests/Feature/HumanHandoffServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/HumanHandoffService.php::App\\Services\\OutreachAI\\HumanHandoffService::relayToCustomer",
        "fqmn": "App\\Services\\OutreachAI\\HumanHandoffService@relayToCustomer",
        "expected_test_path": "tests/Feature/HumanHandoffServiceTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\HumanHandoffService;\n\nclass HumanHandoffServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\HumanHandoffService@relayToCustomer\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_relaytocustomer_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\HumanHandoffService@relayToCustomer is PROOF_READY but no test file at tests/Feature/HumanHandoffServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/HumanHandoffService.php::App\\Services\\OutreachAI\\HumanHandoffService::requestHandoff",
        "fqmn": "App\\Services\\OutreachAI\\HumanHandoffService@requestHandoff",
        "expected_test_path": "tests/Feature/HumanHandoffServiceTest.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\\OutreachAI\\HumanHandoffService;\n\nclass HumanHandoffServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\HumanHandoffService@requestHandoff\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_requesthandoff_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\OutreachAI\\HumanHandoffService@requestHandoff is PROOF_READY but no test file at tests/Feature/HumanHandoffServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/KnowledgeService.php::App\\Services\\OutreachAI\\KnowledgeService::create",
        "fqmn": "App\\Services\\OutreachAI\\KnowledgeService@create",
        "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\\OutreachAI\\KnowledgeService;\n\nclass KnowledgeServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\KnowledgeService@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\\Services\\OutreachAI\\KnowledgeService@create 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/OutreachAI/KnowledgeService.php::App\\Services\\OutreachAI\\KnowledgeService::search",
        "fqmn": "App\\Services\\OutreachAI\\KnowledgeService@search",
        "expected_test_path": "tests/Feature/KnowledgeServiceTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\KnowledgeService;\n\nclass KnowledgeServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\KnowledgeService@search\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_search_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\KnowledgeService@search 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/OutreachAI/MediaDownloadService.php::App\\Services\\OutreachAI\\MediaDownloadService::download",
        "fqmn": "App\\Services\\OutreachAI\\MediaDownloadService@download",
        "expected_test_path": "tests/Feature/MediaDownloadServiceTest.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\\OutreachAI\\MediaDownloadService;\n\nclass MediaDownloadServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\MediaDownloadService@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->assertTrue(Cache::has('<key>'));\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\MediaDownloadService@download is PROOF_READY but no test file at tests/Feature/MediaDownloadServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/NudgeService.php::App\\Services\\OutreachAI\\NudgeService::processDueNudges",
        "fqmn": "App\\Services\\OutreachAI\\NudgeService@processDueNudges",
        "expected_test_path": "tests/Feature/NudgeServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\NudgeService;\n\nclass NudgeServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\NudgeService@processDueNudges\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_processduenudges_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\NudgeService@processDueNudges is PROOF_READY but no test file at tests/Feature/NudgeServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/NudgeService.php::App\\Services\\OutreachAI\\NudgeService::scheduleNudges",
        "fqmn": "App\\Services\\OutreachAI\\NudgeService@scheduleNudges",
        "expected_test_path": "tests/Feature/NudgeServiceTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\NudgeService;\n\nclass NudgeServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\NudgeService@scheduleNudges\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_schedulenudges_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\NudgeService@scheduleNudges is PROOF_READY but no test file at tests/Feature/NudgeServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/ObjectionDetectionService.php::App\\Services\\OutreachAI\\ObjectionDetectionService::detect",
        "fqmn": "App\\Services\\OutreachAI\\ObjectionDetectionService@detect",
        "expected_test_path": "tests/Feature/ObjectionDetectionServiceTest.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\\OutreachAI\\ObjectionDetectionService;\n\nclass ObjectionDetectionServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\ObjectionDetectionService@detect\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_detect_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\OutreachAI\\ObjectionDetectionService@detect is PROOF_READY but no test file at tests/Feature/ObjectionDetectionServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/Orchestration/ModelRouter.php::App\\Services\\OutreachAI\\Orchestration\\ModelRouter::creative",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\ModelRouter@creative",
        "expected_test_path": "tests/Feature/ModelRouterTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\Orchestration\\ModelRouter;\n\nclass ModelRouterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\Orchestration\\ModelRouter@creative\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_creative_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\Orchestration\\ModelRouter@creative is PROOF_READY but no test file at tests/Feature/ModelRouterTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/Orchestration/ModelRouter.php::App\\Services\\OutreachAI\\Orchestration\\ModelRouter::deepReasoning",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\ModelRouter@deepReasoning",
        "expected_test_path": "tests/Feature/ModelRouterTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\Orchestration\\ModelRouter;\n\nclass ModelRouterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\Orchestration\\ModelRouter@deepReasoning\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_deepreasoning_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\Orchestration\\ModelRouter@deepReasoning is PROOF_READY but no test file at tests/Feature/ModelRouterTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/Orchestration/ModelRouter.php::App\\Services\\OutreachAI\\Orchestration\\ModelRouter::fastReasoning",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\ModelRouter@fastReasoning",
        "expected_test_path": "tests/Feature/ModelRouterTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\Orchestration\\ModelRouter;\n\nclass ModelRouterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\Orchestration\\ModelRouter@fastReasoning\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_fastreasoning_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\Orchestration\\ModelRouter@fastReasoning is PROOF_READY but no test file at tests/Feature/ModelRouterTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/Orchestration/ModelRouter.php::App\\Services\\OutreachAI\\Orchestration\\ModelRouter::reasoning",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\ModelRouter@reasoning",
        "expected_test_path": "tests/Feature/ModelRouterTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\Orchestration\\ModelRouter;\n\nclass ModelRouterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\Orchestration\\ModelRouter@reasoning\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_reasoning_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\Orchestration\\ModelRouter@reasoning is PROOF_READY but no test file at tests/Feature/ModelRouterTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/Orchestration/ModelRouter.php::App\\Services\\OutreachAI\\Orchestration\\ModelRouter::vision",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\ModelRouter@vision",
        "expected_test_path": "tests/Feature/ModelRouterTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\Orchestration\\ModelRouter;\n\nclass ModelRouterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\Orchestration\\ModelRouter@vision\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_vision_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\Orchestration\\ModelRouter@vision is PROOF_READY but no test file at tests/Feature/ModelRouterTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/Orchestration/NextActionResolver.php::App\\Services\\OutreachAI\\Orchestration\\NextActionResolver::getPresentationConstraints",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\NextActionResolver@getPresentationConstraints",
        "expected_test_path": "tests/Feature/NextActionResolverTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\Orchestration\\NextActionResolver;\n\nclass NextActionResolverTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\Orchestration\\NextActionResolver@getPresentationConstraints\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getpresentationconstraints_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\Orchestration\\NextActionResolver@getPresentationConstraints is PROOF_READY but no test file at tests/Feature/NextActionResolverTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/Orchestration/NextActionResolver.php::App\\Services\\OutreachAI\\Orchestration\\NextActionResolver::isStopConditionMet",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\NextActionResolver@isStopConditionMet",
        "expected_test_path": "tests/Feature/NextActionResolverTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\Orchestration\\NextActionResolver;\n\nclass NextActionResolverTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\Orchestration\\NextActionResolver@isStopConditionMet\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_isstopconditionmet_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\Orchestration\\NextActionResolver@isStopConditionMet is PROOF_READY but no test file at tests/Feature/NextActionResolverTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/Orchestration/NextActionResolver.php::App\\Services\\OutreachAI\\Orchestration\\NextActionResolver::resolve",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\NextActionResolver@resolve",
        "expected_test_path": "tests/Feature/NextActionResolverTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\Orchestration\\NextActionResolver;\n\nclass NextActionResolverTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\Orchestration\\NextActionResolver@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\\OutreachAI\\Orchestration\\NextActionResolver@resolve is PROOF_READY but no test file at tests/Feature/NextActionResolverTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/Orchestration/ResponseComposerEngine.php::App\\Services\\OutreachAI\\Orchestration\\ResponseComposerEngine::compose",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\ResponseComposerEngine@compose",
        "expected_test_path": "tests/Feature/ResponseComposerEngineTest.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\\OutreachAI\\Orchestration\\ResponseComposerEngine;\n\nclass ResponseComposerEngineTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\Orchestration\\ResponseComposerEngine@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\\OutreachAI\\Orchestration\\ResponseComposerEngine@compose is PROOF_READY but no test file at tests/Feature/ResponseComposerEngineTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/Orchestration/RollingSummaryService.php::App\\Services\\OutreachAI\\Orchestration\\RollingSummaryService::getRollingSummary",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\RollingSummaryService@getRollingSummary",
        "expected_test_path": "tests/Feature/RollingSummaryServiceTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\Orchestration\\RollingSummaryService;\n\nclass RollingSummaryServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\Orchestration\\RollingSummaryService@getRollingSummary\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getrollingsummary_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\Orchestration\\RollingSummaryService@getRollingSummary is PROOF_READY but no test file at tests/Feature/RollingSummaryServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/Orchestration/SalesStateDeriver.php::App\\Services\\OutreachAI\\Orchestration\\SalesStateDeriver::derive",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\SalesStateDeriver@derive",
        "expected_test_path": "tests/Feature/SalesStateDeriverTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\Orchestration\\SalesStateDeriver;\n\nclass SalesStateDeriverTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\Orchestration\\SalesStateDeriver@derive\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_derive_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\Orchestration\\SalesStateDeriver@derive is PROOF_READY but no test file at tests/Feature/SalesStateDeriverTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/Orchestration/SignalContext.php::App\\Services\\OutreachAI\\Orchestration\\SignalContext::fromModels",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\SignalContext@fromModels",
        "expected_test_path": "tests/Feature/SignalContextTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\Orchestration\\SignalContext;\n\nclass SignalContextTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\Orchestration\\SignalContext@fromModels\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_frommodels_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\Orchestration\\SignalContext@fromModels is PROOF_READY but no test file at tests/Feature/SignalContextTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/Orchestration/SignalDirector.php::App\\Services\\OutreachAI\\Orchestration\\SignalDirector::orchestrate",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\SignalDirector@orchestrate",
        "expected_test_path": "tests/Feature/SignalDirectorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\Orchestration\\SignalDirector;\n\nclass SignalDirectorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\Orchestration\\SignalDirector@orchestrate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_orchestrate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\Orchestration\\SignalDirector@orchestrate is PROOF_READY but no test file at tests/Feature/SignalDirectorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/Orchestration/SignalDirector.php::App\\Services\\OutreachAI\\Orchestration\\SignalDirector::orchestrateDeep",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\SignalDirector@orchestrateDeep",
        "expected_test_path": "tests/Feature/SignalDirectorTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\Orchestration\\SignalDirector;\n\nclass SignalDirectorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\Orchestration\\SignalDirector@orchestrateDeep\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_orchestratedeep_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\Orchestration\\SignalDirector@orchestrateDeep is PROOF_READY but no test file at tests/Feature/SignalDirectorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/Orchestration/SignalDirector.php::App\\Services\\OutreachAI\\Orchestration\\SignalDirector::orchestrateFast",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\SignalDirector@orchestrateFast",
        "expected_test_path": "tests/Feature/SignalDirectorTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\Orchestration\\SignalDirector;\n\nclass SignalDirectorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\Orchestration\\SignalDirector@orchestrateFast\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_orchestratefast_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\Orchestration\\SignalDirector@orchestrateFast is PROOF_READY but no test file at tests/Feature/SignalDirectorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/Orchestration/StrategyAuthorityResolver.php::App\\Services\\OutreachAI\\Orchestration\\StrategyAuthorityResolver::isActionAllowed",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\StrategyAuthorityResolver@isActionAllowed",
        "expected_test_path": "tests/Feature/StrategyAuthorityResolverTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\Orchestration\\StrategyAuthorityResolver;\n\nclass StrategyAuthorityResolverTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\Orchestration\\StrategyAuthorityResolver@isActionAllowed\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_isactionallowed_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\Orchestration\\StrategyAuthorityResolver@isActionAllowed is PROOF_READY but no test file at tests/Feature/StrategyAuthorityResolverTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/Orchestration/StrategyAuthorityResolver.php::App\\Services\\OutreachAI\\Orchestration\\StrategyAuthorityResolver::isFallbackAllowed",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\StrategyAuthorityResolver@isFallbackAllowed",
        "expected_test_path": "tests/Feature/StrategyAuthorityResolverTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\Orchestration\\StrategyAuthorityResolver;\n\nclass StrategyAuthorityResolverTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\Orchestration\\StrategyAuthorityResolver@isFallbackAllowed\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_isfallbackallowed_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\Orchestration\\StrategyAuthorityResolver@isFallbackAllowed is PROOF_READY but no test file at tests/Feature/StrategyAuthorityResolverTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/Orchestration/StrategyAuthorityResolver.php::App\\Services\\OutreachAI\\Orchestration\\StrategyAuthorityResolver::resolve",
        "fqmn": "App\\Services\\OutreachAI\\Orchestration\\StrategyAuthorityResolver@resolve",
        "expected_test_path": "tests/Feature/StrategyAuthorityResolverTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\Orchestration\\StrategyAuthorityResolver;\n\nclass StrategyAuthorityResolverTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\Orchestration\\StrategyAuthorityResolver@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\\OutreachAI\\Orchestration\\StrategyAuthorityResolver@resolve is PROOF_READY but no test file at tests/Feature/StrategyAuthorityResolverTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/PaymentEngine/PaymentPatternAnalysisService.php::App\\Services\\OutreachAI\\PaymentEngine\\PaymentPatternAnalysisService::analyze",
        "fqmn": "App\\Services\\OutreachAI\\PaymentEngine\\PaymentPatternAnalysisService@analyze",
        "expected_test_path": "tests/Feature/PaymentPatternAnalysisServiceTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\PaymentEngine\\PaymentPatternAnalysisService;\n\nclass PaymentPatternAnalysisServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\PaymentEngine\\PaymentPatternAnalysisService@analyze\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_analyze_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\PaymentEngine\\PaymentPatternAnalysisService@analyze is PROOF_READY but no test file at tests/Feature/PaymentPatternAnalysisServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/PredictionExplanationGenerator.php::App\\Services\\OutreachAI\\PredictionExplanationGenerator::generateExplanation",
        "fqmn": "App\\Services\\OutreachAI\\PredictionExplanationGenerator@generateExplanation",
        "expected_test_path": "tests/Feature/PredictionExplanationGeneratorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\PredictionExplanationGenerator;\n\nclass PredictionExplanationGeneratorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\PredictionExplanationGenerator@generateExplanation\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_generateexplanation_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\PredictionExplanationGenerator@generateExplanation is PROOF_READY but no test file at tests/Feature/PredictionExplanationGeneratorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/PredictionPerformanceMonitor.php::App\\Services\\OutreachAI\\PredictionPerformanceMonitor::getPerformanceStats",
        "fqmn": "App\\Services\\OutreachAI\\PredictionPerformanceMonitor@getPerformanceStats",
        "expected_test_path": "tests/Feature/PredictionPerformanceMonitorTest.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\\OutreachAI\\PredictionPerformanceMonitor;\n\nclass PredictionPerformanceMonitorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\PredictionPerformanceMonitor@getPerformanceStats\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getperformancestats_behaves_correctly(): void\n    {\n\n        // TODO: 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\\OutreachAI\\PredictionPerformanceMonitor@getPerformanceStats is PROOF_READY but no test file at tests/Feature/PredictionPerformanceMonitorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/PromptExperimentService.php::App\\Services\\OutreachAI\\PromptExperimentService::getInstruction",
        "fqmn": "App\\Services\\OutreachAI\\PromptExperimentService@getInstruction",
        "expected_test_path": "tests/Feature/PromptExperimentServiceTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\PromptExperimentService;\n\nclass PromptExperimentServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\PromptExperimentService@getInstruction\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getinstruction_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\PromptExperimentService@getInstruction is PROOF_READY but no test file at tests/Feature/PromptExperimentServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/PromptExperimentService.php::App\\Services\\OutreachAI\\PromptExperimentService::getVariant",
        "fqmn": "App\\Services\\OutreachAI\\PromptExperimentService@getVariant",
        "expected_test_path": "tests/Feature/PromptExperimentServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\PromptExperimentService;\n\nclass PromptExperimentServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\PromptExperimentService@getVariant\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getvariant_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\PromptExperimentService@getVariant is PROOF_READY but no test file at tests/Feature/PromptExperimentServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/Prompts/GuardPromptBuilder.php::App\\Services\\OutreachAI\\Prompts\\GuardPromptBuilder::build",
        "fqmn": "App\\Services\\OutreachAI\\Prompts\\GuardPromptBuilder@build",
        "expected_test_path": "tests/Feature/GuardPromptBuilderTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\Prompts\\GuardPromptBuilder;\n\nclass GuardPromptBuilderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\Prompts\\GuardPromptBuilder@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\\OutreachAI\\Prompts\\GuardPromptBuilder@build is PROOF_READY but no test file at tests/Feature/GuardPromptBuilderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/Prompts/GuardPromptBuilder.php::App\\Services\\OutreachAI\\Prompts\\GuardPromptBuilder::isGuardMode",
        "fqmn": "App\\Services\\OutreachAI\\Prompts\\GuardPromptBuilder@isGuardMode",
        "expected_test_path": "tests/Feature/GuardPromptBuilderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\Prompts\\GuardPromptBuilder;\n\nclass GuardPromptBuilderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\Prompts\\GuardPromptBuilder@isGuardMode\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_isguardmode_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\Prompts\\GuardPromptBuilder@isGuardMode is PROOF_READY but no test file at tests/Feature/GuardPromptBuilderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/PropertyMatcher/LeadPropertyAffinityService.php::App\\Services\\OutreachAI\\PropertyMatcher\\LeadPropertyAffinityService::analyze",
        "fqmn": "App\\Services\\OutreachAI\\PropertyMatcher\\LeadPropertyAffinityService@analyze",
        "expected_test_path": "tests/Feature/LeadPropertyAffinityServiceTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\PropertyMatcher\\LeadPropertyAffinityService;\n\nclass LeadPropertyAffinityServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\PropertyMatcher\\LeadPropertyAffinityService@analyze\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_analyze_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\PropertyMatcher\\LeadPropertyAffinityService@analyze is PROOF_READY but no test file at tests/Feature/LeadPropertyAffinityServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/PropertyMatcher/PropertyRecommendationEngine.php::App\\Services\\OutreachAI\\PropertyMatcher\\PropertyRecommendationEngine::recommend",
        "fqmn": "App\\Services\\OutreachAI\\PropertyMatcher\\PropertyRecommendationEngine@recommend",
        "expected_test_path": "tests/Feature/PropertyRecommendationEngineTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\PropertyMatcher\\PropertyRecommendationEngine;\n\nclass PropertyRecommendationEngineTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\PropertyMatcher\\PropertyRecommendationEngine@recommend\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_recommend_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\PropertyMatcher\\PropertyRecommendationEngine@recommend is PROOF_READY but no test file at tests/Feature/PropertyRecommendationEngineTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/Qualification/QualificationFlowDirector.php::App\\Services\\OutreachAI\\Qualification\\QualificationFlowDirector::determineNextStep",
        "fqmn": "App\\Services\\OutreachAI\\Qualification\\QualificationFlowDirector@determineNextStep",
        "expected_test_path": "tests/Feature/QualificationFlowDirectorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\Qualification\\QualificationFlowDirector;\n\nclass QualificationFlowDirectorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\Qualification\\QualificationFlowDirector@determineNextStep\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_determinenextstep_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\Qualification\\QualificationFlowDirector@determineNextStep is PROOF_READY but no test file at tests/Feature/QualificationFlowDirectorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/ReengagementDetectionService.php::App\\Services\\OutreachAI\\ReengagementDetectionService::detectStaleConversations",
        "fqmn": "App\\Services\\OutreachAI\\ReengagementDetectionService@detectStaleConversations",
        "expected_test_path": "tests/Feature/ReengagementDetectionServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\ReengagementDetectionService;\n\nclass ReengagementDetectionServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\ReengagementDetectionService@detectStaleConversations\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_detectstaleconversations_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\ReengagementDetectionService@detectStaleConversations is PROOF_READY but no test file at tests/Feature/ReengagementDetectionServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/ReengagementDetectionService.php::App\\Services\\OutreachAI\\ReengagementDetectionService::detectStallNearClosing",
        "fqmn": "App\\Services\\OutreachAI\\ReengagementDetectionService@detectStallNearClosing",
        "expected_test_path": "tests/Feature/ReengagementDetectionServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\ReengagementDetectionService;\n\nclass ReengagementDetectionServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\ReengagementDetectionService@detectStallNearClosing\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_detectstallnearclosing_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\ReengagementDetectionService@detectStallNearClosing is PROOF_READY but no test file at tests/Feature/ReengagementDetectionServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/ReengagementDetectionService.php::App\\Services\\OutreachAI\\ReengagementDetectionService::generateAggressiveWarmingStrategy",
        "fqmn": "App\\Services\\OutreachAI\\ReengagementDetectionService@generateAggressiveWarmingStrategy",
        "expected_test_path": "tests/Feature/ReengagementDetectionServiceTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\ReengagementDetectionService;\n\nclass ReengagementDetectionServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\ReengagementDetectionService@generateAggressiveWarmingStrategy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_generateaggressivewarmingstrategy_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\ReengagementDetectionService@generateAggressiveWarmingStrategy is PROOF_READY but no test file at tests/Feature/ReengagementDetectionServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/ReferralEngine/ReferralDetectionService.php::App\\Services\\OutreachAI\\ReferralEngine\\ReferralDetectionService::detect",
        "fqmn": "App\\Services\\OutreachAI\\ReferralEngine\\ReferralDetectionService@detect",
        "expected_test_path": "tests/Feature/ReferralDetectionServiceTest.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\\OutreachAI\\ReferralEngine\\ReferralDetectionService;\n\nclass ReferralDetectionServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\ReferralEngine\\ReferralDetectionService@detect\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_detect_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\ReferralEngine\\ReferralDetectionService@detect is PROOF_READY but no test file at tests/Feature/ReferralDetectionServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/RepetitionHandlingService.php::App\\Services\\OutreachAI\\RepetitionHandlingService::analyze",
        "fqmn": "App\\Services\\OutreachAI\\RepetitionHandlingService@analyze",
        "expected_test_path": "tests/Feature/RepetitionHandlingServiceTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\RepetitionHandlingService;\n\nclass RepetitionHandlingServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\RepetitionHandlingService@analyze\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_analyze_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\RepetitionHandlingService@analyze is PROOF_READY but no test file at tests/Feature/RepetitionHandlingServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/RepetitionHandlingService.php::App\\Services\\OutreachAI\\RepetitionHandlingService::getElaborationInstruction",
        "fqmn": "App\\Services\\OutreachAI\\RepetitionHandlingService@getElaborationInstruction",
        "expected_test_path": "tests/Feature/RepetitionHandlingServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\RepetitionHandlingService;\n\nclass RepetitionHandlingServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\RepetitionHandlingService@getElaborationInstruction\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getelaborationinstruction_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\RepetitionHandlingService@getElaborationInstruction is PROOF_READY but no test file at tests/Feature/RepetitionHandlingServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/Sales/FeatureRenderer.php::App\\Services\\OutreachAI\\Sales\\FeatureRenderer::getFeatureFacts",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\FeatureRenderer@getFeatureFacts",
        "expected_test_path": "tests/Feature/FeatureRendererTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\Sales\\FeatureRenderer;\n\nclass FeatureRendererTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\Sales\\FeatureRenderer@getFeatureFacts\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getfeaturefacts_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\Sales\\FeatureRenderer@getFeatureFacts is PROOF_READY but no test file at tests/Feature/FeatureRendererTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/Sales/FeatureRenderer.php::App\\Services\\OutreachAI\\Sales\\FeatureRenderer::render",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\FeatureRenderer@render",
        "expected_test_path": "tests/Feature/FeatureRendererTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\Sales\\FeatureRenderer;\n\nclass FeatureRendererTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\Sales\\FeatureRenderer@render\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_render_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\Sales\\FeatureRenderer@render is PROOF_READY but no test file at tests/Feature/FeatureRendererTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/Sales/FeatureRenderer.php::App\\Services\\OutreachAI\\Sales\\FeatureRenderer::shouldHandle",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\FeatureRenderer@shouldHandle",
        "expected_test_path": "tests/Feature/FeatureRendererTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\Sales\\FeatureRenderer;\n\nclass FeatureRendererTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\Sales\\FeatureRenderer@shouldHandle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_shouldhandle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\Sales\\FeatureRenderer@shouldHandle is PROOF_READY but no test file at tests/Feature/FeatureRendererTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingAuthority.php::App\\Services\\OutreachAI\\Sales\\PricingAuthority::getLivePricingSummary",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingAuthority@getLivePricingSummary",
        "expected_test_path": "tests/Feature/PricingAuthorityTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\Sales\\PricingAuthority;\n\nclass PricingAuthorityTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\Sales\\PricingAuthority@getLivePricingSummary\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getlivepricingsummary_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\Sales\\PricingAuthority@getLivePricingSummary is PROOF_READY but no test file at tests/Feature/PricingAuthorityTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingAuthority.php::App\\Services\\OutreachAI\\Sales\\PricingAuthority::getLlmPricingGuard",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingAuthority@getLlmPricingGuard",
        "expected_test_path": "tests/Feature/PricingAuthorityTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\Sales\\PricingAuthority;\n\nclass PricingAuthorityTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\Sales\\PricingAuthority@getLlmPricingGuard\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getllmpricingguard_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\Sales\\PricingAuthority@getLlmPricingGuard is PROOF_READY but no test file at tests/Feature/PricingAuthorityTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingAuthority.php::App\\Services\\OutreachAI\\Sales\\PricingAuthority::intercept",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingAuthority@intercept",
        "expected_test_path": "tests/Feature/PricingAuthorityTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\Sales\\PricingAuthority;\n\nclass PricingAuthorityTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\Sales\\PricingAuthority@intercept\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_intercept_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\Sales\\PricingAuthority@intercept is PROOF_READY but no test file at tests/Feature/PricingAuthorityTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingAuthority.php::App\\Services\\OutreachAI\\Sales\\PricingAuthority::isPricingIntent",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingAuthority@isPricingIntent",
        "expected_test_path": "tests/Feature/PricingAuthorityTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\Sales\\PricingAuthority;\n\nclass PricingAuthorityTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\Sales\\PricingAuthority@isPricingIntent\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_ispricingintent_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\Sales\\PricingAuthority@isPricingIntent is PROOF_READY but no test file at tests/Feature/PricingAuthorityTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingAuthority.php::App\\Services\\OutreachAI\\Sales\\PricingAuthority::resolveTier",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingAuthority@resolveTier",
        "expected_test_path": "tests/Feature/PricingAuthorityTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\Sales\\PricingAuthority;\n\nclass PricingAuthorityTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\Sales\\PricingAuthority@resolveTier\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolvetier_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\Sales\\PricingAuthority@resolveTier is PROOF_READY but no test file at tests/Feature/PricingAuthorityTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingRenderer.php::App\\Services\\OutreachAI\\Sales\\PricingRenderer::getPricingFacts",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingRenderer@getPricingFacts",
        "expected_test_path": "tests/Feature/PricingRendererTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\Sales\\PricingRenderer;\n\nclass PricingRendererTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\Sales\\PricingRenderer@getPricingFacts\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getpricingfacts_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\Sales\\PricingRenderer@getPricingFacts is PROOF_READY but no test file at tests/Feature/PricingRendererTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingRenderer.php::App\\Services\\OutreachAI\\Sales\\PricingRenderer::render",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingRenderer@render",
        "expected_test_path": "tests/Feature/PricingRendererTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\Sales\\PricingRenderer;\n\nclass PricingRendererTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\Sales\\PricingRenderer@render\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_render_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\Sales\\PricingRenderer@render is PROOF_READY but no test file at tests/Feature/PricingRendererTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingRenderer.php::App\\Services\\OutreachAI\\Sales\\PricingRenderer::shouldHandle",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingRenderer@shouldHandle",
        "expected_test_path": "tests/Feature/PricingRendererTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\Sales\\PricingRenderer;\n\nclass PricingRendererTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\Sales\\PricingRenderer@shouldHandle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_shouldhandle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\Sales\\PricingRenderer@shouldHandle is PROOF_READY but no test file at tests/Feature/PricingRendererTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/Sales/PricingResolver.php::App\\Services\\OutreachAI\\Sales\\PricingResolver::getAllPlans",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingResolver@getAllPlans",
        "expected_test_path": "tests/Feature/PricingResolverTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\Sales\\PricingResolver;\n\nclass PricingResolverTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\Sales\\PricingResolver@getAllPlans\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getallplans_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\Sales\\PricingResolver@getAllPlans 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/OutreachAI/Sales/PricingResolver.php::App\\Services\\OutreachAI\\Sales\\PricingResolver::getCanonicalContract",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingResolver@getCanonicalContract",
        "expected_test_path": "tests/Feature/PricingResolverTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\Sales\\PricingResolver;\n\nclass PricingResolverTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\Sales\\PricingResolver@getCanonicalContract\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getcanonicalcontract_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\Sales\\PricingResolver@getCanonicalContract 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/OutreachAI/Sales/PricingResolver.php::App\\Services\\OutreachAI\\Sales\\PricingResolver::getPricingContext",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingResolver@getPricingContext",
        "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\\OutreachAI\\Sales\\PricingResolver;\n\nclass PricingResolverTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\Sales\\PricingResolver@getPricingContext\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getpricingcontext_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\Sales\\PricingResolver@getPricingContext 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/OutreachAI/Sales/PricingResolver.php::App\\Services\\OutreachAI\\Sales\\PricingResolver::resolve",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingResolver@resolve",
        "expected_test_path": "tests/Feature/PricingResolverTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\Sales\\PricingResolver;\n\nclass PricingResolverTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\Sales\\PricingResolver@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\\OutreachAI\\Sales\\PricingResolver@resolve 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/OutreachAI/Sales/PricingResolver.php::App\\Services\\OutreachAI\\Sales\\PricingResolver::validateLimits",
        "fqmn": "App\\Services\\OutreachAI\\Sales\\PricingResolver@validateLimits",
        "expected_test_path": "tests/Feature/PricingResolverTest.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\\OutreachAI\\Sales\\PricingResolver;\n\nclass PricingResolverTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\Sales\\PricingResolver@validateLimits\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_validatelimits_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: 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\\OutreachAI\\Sales\\PricingResolver@validateLimits 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/OutreachAI/SalesAcceleration/SalesAccelerationEngine.php::App\\Services\\OutreachAI\\SalesAcceleration\\SalesAccelerationEngine::accelerate",
        "fqmn": "App\\Services\\OutreachAI\\SalesAcceleration\\SalesAccelerationEngine@accelerate",
        "expected_test_path": "tests/Feature/SalesAccelerationEngineTest.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\\OutreachAI\\SalesAcceleration\\SalesAccelerationEngine;\n\nclass SalesAccelerationEngineTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\SalesAcceleration\\SalesAccelerationEngine@accelerate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_accelerate_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\OutreachAI\\SalesAcceleration\\SalesAccelerationEngine@accelerate is PROOF_READY but no test file at tests/Feature/SalesAccelerationEngineTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/SalesAcceleration/SalesUrgencyEngine.php::App\\Services\\OutreachAI\\SalesAcceleration\\SalesUrgencyEngine::detect",
        "fqmn": "App\\Services\\OutreachAI\\SalesAcceleration\\SalesUrgencyEngine@detect",
        "expected_test_path": "tests/Feature/SalesUrgencyEngineTest.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\\OutreachAI\\SalesAcceleration\\SalesUrgencyEngine;\n\nclass SalesUrgencyEngineTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\SalesAcceleration\\SalesUrgencyEngine@detect\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_detect_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\OutreachAI\\SalesAcceleration\\SalesUrgencyEngine@detect is PROOF_READY but no test file at tests/Feature/SalesUrgencyEngineTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/SignupLinkGenerator.php::App\\Services\\OutreachAI\\SignupLinkGenerator::generateForLead",
        "fqmn": "App\\Services\\OutreachAI\\SignupLinkGenerator@generateForLead",
        "expected_test_path": "tests/Feature/SignupLinkGeneratorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_cache_written",
          "assert_http_called"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\OutreachAI\\SignupLinkGenerator;\n\nclass SignupLinkGeneratorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\SignupLinkGenerator@generateForLead\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_generateforlead_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\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        // Http::assertSent(fn ($req) => $req->url() === '<url>');\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\SignupLinkGenerator@generateForLead is PROOF_READY but no test file at tests/Feature/SignupLinkGeneratorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/SignupLinkGenerator.php::App\\Services\\OutreachAI\\SignupLinkGenerator::hasBeenClicked",
        "fqmn": "App\\Services\\OutreachAI\\SignupLinkGenerator@hasBeenClicked",
        "expected_test_path": "tests/Feature/SignupLinkGeneratorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\SignupLinkGenerator;\n\nclass SignupLinkGeneratorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\SignupLinkGenerator@hasBeenClicked\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_hasbeenclicked_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\SignupLinkGenerator@hasBeenClicked is PROOF_READY but no test file at tests/Feature/SignupLinkGeneratorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/SocialFrictionAuditor.php::App\\Services\\OutreachAI\\SocialFrictionAuditor::audit",
        "fqmn": "App\\Services\\OutreachAI\\SocialFrictionAuditor@audit",
        "expected_test_path": "tests/Feature/SocialFrictionAuditorTest.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\\OutreachAI\\SocialFrictionAuditor;\n\nclass SocialFrictionAuditorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\SocialFrictionAuditor@audit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_audit_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\OutreachAI\\SocialFrictionAuditor@audit is PROOF_READY but no test file at tests/Feature/SocialFrictionAuditorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/State/StateManager.php::App\\Services\\OutreachAI\\State\\StateManager::get",
        "fqmn": "App\\Services\\OutreachAI\\State\\StateManager@get",
        "expected_test_path": "tests/Feature/StateManagerTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\State\\StateManager;\n\nclass StateManagerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\State\\StateManager@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\\OutreachAI\\State\\StateManager@get is PROOF_READY but no test file at tests/Feature/StateManagerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/StateAwareResponseService.php::App\\Services\\OutreachAI\\StateAwareResponseService::getFollowUp1",
        "fqmn": "App\\Services\\OutreachAI\\StateAwareResponseService@getFollowUp1",
        "expected_test_path": "tests/Feature/StateAwareResponseServiceTest.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\\OutreachAI\\StateAwareResponseService;\n\nclass StateAwareResponseServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\StateAwareResponseService@getFollowUp1\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getfollowup1_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // 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\\OutreachAI\\StateAwareResponseService@getFollowUp1 is PROOF_READY but no test file at tests/Feature/StateAwareResponseServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/StateAwareResponseService.php::App\\Services\\OutreachAI\\StateAwareResponseService::getFollowUp2",
        "fqmn": "App\\Services\\OutreachAI\\StateAwareResponseService@getFollowUp2",
        "expected_test_path": "tests/Feature/StateAwareResponseServiceTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\StateAwareResponseService;\n\nclass StateAwareResponseServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\StateAwareResponseService@getFollowUp2\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getfollowup2_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\StateAwareResponseService@getFollowUp2 is PROOF_READY but no test file at tests/Feature/StateAwareResponseServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/StateAwareResponseService.php::App\\Services\\OutreachAI\\StateAwareResponseService::getFollowUpFinal",
        "fqmn": "App\\Services\\OutreachAI\\StateAwareResponseService@getFollowUpFinal",
        "expected_test_path": "tests/Feature/StateAwareResponseServiceTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\StateAwareResponseService;\n\nclass StateAwareResponseServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\StateAwareResponseService@getFollowUpFinal\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getfollowupfinal_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\StateAwareResponseService@getFollowUpFinal is PROOF_READY but no test file at tests/Feature/StateAwareResponseServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/StateAwareResponseService.php::App\\Services\\OutreachAI\\StateAwareResponseService::getResponse",
        "fqmn": "App\\Services\\OutreachAI\\StateAwareResponseService@getResponse",
        "expected_test_path": "tests/Feature/StateAwareResponseServiceTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\StateAwareResponseService;\n\nclass StateAwareResponseServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\StateAwareResponseService@getResponse\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getresponse_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\StateAwareResponseService@getResponse is PROOF_READY but no test file at tests/Feature/StateAwareResponseServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/StateAwareResponseService.php::App\\Services\\OutreachAI\\StateAwareResponseService::shouldUseTemplate",
        "fqmn": "App\\Services\\OutreachAI\\StateAwareResponseService@shouldUseTemplate",
        "expected_test_path": "tests/Feature/StateAwareResponseServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\StateAwareResponseService;\n\nclass StateAwareResponseServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\StateAwareResponseService@shouldUseTemplate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_shouldusetemplate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\StateAwareResponseService@shouldUseTemplate is PROOF_READY but no test file at tests/Feature/StateAwareResponseServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/TrialEngine/TrialActivationEngine.php::App\\Services\\OutreachAI\\TrialEngine\\TrialActivationEngine::activate",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\TrialActivationEngine@activate",
        "expected_test_path": "tests/Feature/TrialActivationEngineTest.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\\OutreachAI\\TrialEngine\\TrialActivationEngine;\n\nclass TrialActivationEngineTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\TrialEngine\\TrialActivationEngine@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\\Services\\OutreachAI\\TrialEngine\\TrialActivationEngine@activate is PROOF_READY but no test file at tests/Feature/TrialActivationEngineTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/TrialEngine/TrialNudgeEngine.php::App\\Services\\OutreachAI\\TrialEngine\\TrialNudgeEngine::generateNudgeMessage",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\TrialNudgeEngine@generateNudgeMessage",
        "expected_test_path": "tests/Feature/TrialNudgeEngineTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\TrialEngine\\TrialNudgeEngine;\n\nclass TrialNudgeEngineTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\TrialEngine\\TrialNudgeEngine@generateNudgeMessage\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_generatenudgemessage_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\TrialEngine\\TrialNudgeEngine@generateNudgeMessage is PROOF_READY but no test file at tests/Feature/TrialNudgeEngineTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/TrialEngine/TrialNudgeEngine.php::App\\Services\\OutreachAI\\TrialEngine\\TrialNudgeEngine::scheduleNudges",
        "fqmn": "App\\Services\\OutreachAI\\TrialEngine\\TrialNudgeEngine@scheduleNudges",
        "expected_test_path": "tests/Feature/TrialNudgeEngineTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\TrialEngine\\TrialNudgeEngine;\n\nclass TrialNudgeEngineTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\TrialEngine\\TrialNudgeEngine@scheduleNudges\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_schedulenudges_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\TrialEngine\\TrialNudgeEngine@scheduleNudges is PROOF_READY but no test file at tests/Feature/TrialNudgeEngineTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/UpsellProcessor.php::App\\Services\\OutreachAI\\UpsellProcessor::processAddOn",
        "fqmn": "App\\Services\\OutreachAI\\UpsellProcessor@processAddOn",
        "expected_test_path": "tests/Feature/UpsellProcessorTest.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\\OutreachAI\\UpsellProcessor;\n\nclass UpsellProcessorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\UpsellProcessor@processAddOn\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_processaddon_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\OutreachAI\\UpsellProcessor@processAddOn is PROOF_READY but no test file at tests/Feature/UpsellProcessorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/UpsellProcessor.php::App\\Services\\OutreachAI\\UpsellProcessor::processUpgrade",
        "fqmn": "App\\Services\\OutreachAI\\UpsellProcessor@processUpgrade",
        "expected_test_path": "tests/Feature/UpsellProcessorTest.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\\OutreachAI\\UpsellProcessor;\n\nclass UpsellProcessorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\UpsellProcessor@processUpgrade\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_processupgrade_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\OutreachAI\\UpsellProcessor@processUpgrade is PROOF_READY but no test file at tests/Feature/UpsellProcessorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/UserActivityAnalyzer.php::App\\Services\\OutreachAI\\UserActivityAnalyzer::getInactiveConvertedLeads",
        "fqmn": "App\\Services\\OutreachAI\\UserActivityAnalyzer@getInactiveConvertedLeads",
        "expected_test_path": "tests/Feature/UserActivityAnalyzerTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\UserActivityAnalyzer;\n\nclass UserActivityAnalyzerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\UserActivityAnalyzer@getInactiveConvertedLeads\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getinactiveconvertedleads_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\UserActivityAnalyzer@getInactiveConvertedLeads is PROOF_READY but no test file at tests/Feature/UserActivityAnalyzerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/UserActivityAnalyzer.php::App\\Services\\OutreachAI\\UserActivityAnalyzer::getSubscriptionStatus",
        "fqmn": "App\\Services\\OutreachAI\\UserActivityAnalyzer@getSubscriptionStatus",
        "expected_test_path": "tests/Feature/UserActivityAnalyzerTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\UserActivityAnalyzer;\n\nclass UserActivityAnalyzerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\UserActivityAnalyzer@getSubscriptionStatus\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getsubscriptionstatus_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\UserActivityAnalyzer@getSubscriptionStatus is PROOF_READY but no test file at tests/Feature/UserActivityAnalyzerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/UserActivityAnalyzer.php::App\\Services\\OutreachAI\\UserActivityAnalyzer::getUpsellOpportunities",
        "fqmn": "App\\Services\\OutreachAI\\UserActivityAnalyzer@getUpsellOpportunities",
        "expected_test_path": "tests/Feature/UserActivityAnalyzerTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\UserActivityAnalyzer;\n\nclass UserActivityAnalyzerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\UserActivityAnalyzer@getUpsellOpportunities\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getupsellopportunities_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\UserActivityAnalyzer@getUpsellOpportunities is PROOF_READY but no test file at tests/Feature/UserActivityAnalyzerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/UserActivityAnalyzer.php::App\\Services\\OutreachAI\\UserActivityAnalyzer::hasActiveSubscription",
        "fqmn": "App\\Services\\OutreachAI\\UserActivityAnalyzer@hasActiveSubscription",
        "expected_test_path": "tests/Feature/UserActivityAnalyzerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\UserActivityAnalyzer;\n\nclass UserActivityAnalyzerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\UserActivityAnalyzer@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\\OutreachAI\\UserActivityAnalyzer@hasActiveSubscription is PROOF_READY but no test file at tests/Feature/UserActivityAnalyzerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/UserActivityAnalyzer.php::App\\Services\\OutreachAI\\UserActivityAnalyzer::isActiveUser",
        "fqmn": "App\\Services\\OutreachAI\\UserActivityAnalyzer@isActiveUser",
        "expected_test_path": "tests/Feature/UserActivityAnalyzerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\UserActivityAnalyzer;\n\nclass UserActivityAnalyzerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\UserActivityAnalyzer@isActiveUser\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_isactiveuser_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\UserActivityAnalyzer@isActiveUser is PROOF_READY but no test file at tests/Feature/UserActivityAnalyzerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/UserActivityAnalyzer.php::App\\Services\\OutreachAI\\UserActivityAnalyzer::isFreeTier",
        "fqmn": "App\\Services\\OutreachAI\\UserActivityAnalyzer@isFreeTier",
        "expected_test_path": "tests/Feature/UserActivityAnalyzerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\UserActivityAnalyzer;\n\nclass UserActivityAnalyzerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\UserActivityAnalyzer@isFreeTier\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_isfreetier_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\UserActivityAnalyzer@isFreeTier is PROOF_READY but no test file at tests/Feature/UserActivityAnalyzerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/UserActivityAnalyzer.php::App\\Services\\OutreachAI\\UserActivityAnalyzer::isInactiveUser",
        "fqmn": "App\\Services\\OutreachAI\\UserActivityAnalyzer@isInactiveUser",
        "expected_test_path": "tests/Feature/UserActivityAnalyzerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\UserActivityAnalyzer;\n\nclass UserActivityAnalyzerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\UserActivityAnalyzer@isInactiveUser\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_isinactiveuser_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\UserActivityAnalyzer@isInactiveUser is PROOF_READY but no test file at tests/Feature/UserActivityAnalyzerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/UserActivityAnalyzer.php::App\\Services\\OutreachAI\\UserActivityAnalyzer::shouldReactivate",
        "fqmn": "App\\Services\\OutreachAI\\UserActivityAnalyzer@shouldReactivate",
        "expected_test_path": "tests/Feature/UserActivityAnalyzerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\UserActivityAnalyzer;\n\nclass UserActivityAnalyzerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\UserActivityAnalyzer@shouldReactivate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_shouldreactivate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\UserActivityAnalyzer@shouldReactivate is PROOF_READY but no test file at tests/Feature/UserActivityAnalyzerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/Utilities/DeterministicReplyBank.php::App\\Services\\OutreachAI\\Utilities\\DeterministicReplyBank::getReply",
        "fqmn": "App\\Services\\OutreachAI\\Utilities\\DeterministicReplyBank@getReply",
        "expected_test_path": "tests/Feature/DeterministicReplyBankTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\Utilities\\DeterministicReplyBank;\n\nclass DeterministicReplyBankTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\Utilities\\DeterministicReplyBank@getReply\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getreply_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OutreachAI\\Utilities\\DeterministicReplyBank@getReply is PROOF_READY but no test file at tests/Feature/DeterministicReplyBankTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/Utilities/FrequencyGuard.php::App\\Services\\OutreachAI\\Utilities\\FrequencyGuard::isAllowed",
        "fqmn": "App\\Services\\OutreachAI\\Utilities\\FrequencyGuard@isAllowed",
        "expected_test_path": "tests/Feature/FrequencyGuardTest.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\\OutreachAI\\Utilities\\FrequencyGuard;\n\nclass FrequencyGuardTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\Utilities\\FrequencyGuard@isAllowed\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_isallowed_behaves_correctly(): void\n    {\n\n        // TODO: 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\\OutreachAI\\Utilities\\FrequencyGuard@isAllowed is PROOF_READY but no test file at tests/Feature/FrequencyGuardTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/VisionService.php::App\\Services\\OutreachAI\\VisionService::analyzeReceipt",
        "fqmn": "App\\Services\\OutreachAI\\VisionService@analyzeReceipt",
        "expected_test_path": "tests/Feature/VisionServiceTest.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\\OutreachAI\\VisionService;\n\nclass VisionServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\VisionService@analyzeReceipt\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_analyzereceipt_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: 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\\OutreachAI\\VisionService@analyzeReceipt is PROOF_READY but no test file at tests/Feature/VisionServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/WarmthEvolutionEngine.php::App\\Services\\OutreachAI\\WarmthEvolutionEngine::evaluate",
        "fqmn": "App\\Services\\OutreachAI\\WarmthEvolutionEngine@evaluate",
        "expected_test_path": "tests/Feature/WarmthEvolutionEngineTest.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\\OutreachAI\\WarmthEvolutionEngine;\n\nclass WarmthEvolutionEngineTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\WarmthEvolutionEngine@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\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\OutreachAI\\WarmthEvolutionEngine@evaluate is PROOF_READY but no test file at tests/Feature/WarmthEvolutionEngineTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OutreachAI/WhisperTranscriptionService.php::App\\Services\\OutreachAI\\WhisperTranscriptionService::transcribe",
        "fqmn": "App\\Services\\OutreachAI\\WhisperTranscriptionService@transcribe",
        "expected_test_path": "tests/Feature/WhisperTranscriptionServiceTest.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\\OutreachAI\\WhisperTranscriptionService;\n\nclass WhisperTranscriptionServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OutreachAI\\WhisperTranscriptionService@transcribe\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_transcribe_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: 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\\OutreachAI\\WhisperTranscriptionService@transcribe is PROOF_READY but no test file at tests/Feature/WhisperTranscriptionServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/TapGateway.php::App\\Services\\PaymentGateway\\TapGateway::createCharge",
        "fqmn": "App\\Services\\PaymentGateway\\TapGateway@createCharge",
        "expected_test_path": "tests/Feature/TapGatewayTest.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\\PaymentGateway\\TapGateway;\n\nclass TapGatewayTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\PaymentGateway\\TapGateway@createCharge\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_createcharge_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\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\\TapGateway@createCharge is PROOF_READY but no test file at tests/Feature/TapGatewayTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/TapGateway.php::App\\Services\\PaymentGateway\\TapGateway::execute",
        "fqmn": "App\\Services\\PaymentGateway\\TapGateway@execute",
        "expected_test_path": "tests/Feature/TapGatewayTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\TapGateway;\n\nclass TapGatewayTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\PaymentGateway\\TapGateway@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\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\\TapGateway@execute is PROOF_READY but no test file at tests/Feature/TapGatewayTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/PaymentProofService.php::App\\Services\\PaymentProofService::getPaymentProofStatistics",
        "fqmn": "App\\Services\\PaymentProofService@getPaymentProofStatistics",
        "expected_test_path": "tests/Feature/PaymentProofServiceTest.php",
        "intent": null,
        "intent_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\\PaymentProofService;\n\nclass PaymentProofServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\PaymentProofService@getPaymentProofStatistics\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getpaymentproofstatistics_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\PaymentProofService@getPaymentProofStatistics is PROOF_READY but no test file at tests/Feature/PaymentProofServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/PaymentProofService.php::App\\Services\\PaymentProofService::handleIncomingMessages",
        "fqmn": "App\\Services\\PaymentProofService@handleIncomingMessages",
        "expected_test_path": "tests/Feature/PaymentProofServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\PaymentProofService;\n\nclass PaymentProofServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\PaymentProofService@handleIncomingMessages\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handleincomingmessages_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\PaymentProofService@handleIncomingMessages is PROOF_READY but no test file at tests/Feature/PaymentProofServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/RevenueRecognition/RevenueSnapshotGenerator.php::App\\Services\\RevenueRecognition\\RevenueSnapshotGenerator::generateForDate",
        "fqmn": "App\\Services\\RevenueRecognition\\RevenueSnapshotGenerator@generateForDate",
        "expected_test_path": "tests/Feature/RevenueSnapshotGeneratorTest.php",
        "intent": null,
        "intent_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\\RevenueRecognition\\RevenueSnapshotGenerator;\n\nclass RevenueSnapshotGeneratorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\RevenueRecognition\\RevenueSnapshotGenerator@generateForDate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_generatefordate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\RevenueRecognition\\RevenueSnapshotGenerator@generateForDate is PROOF_READY but no test file at tests/Feature/RevenueSnapshotGeneratorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Security/HoneypotService.php::App\\Services\\Security\\HoneypotService::buildHttpContext",
        "fqmn": "App\\Services\\Security\\HoneypotService@buildHttpContext",
        "expected_test_path": "tests/Feature/HoneypotServiceTest.php",
        "intent": null,
        "intent_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\\Security\\HoneypotService;\n\nclass HoneypotServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Security\\HoneypotService@buildHttpContext\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_buildhttpcontext_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Security\\HoneypotService@buildHttpContext is PROOF_READY but no test file at tests/Feature/HoneypotServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Security/HoneypotService.php::App\\Services\\Security\\HoneypotService::sanitizePayload",
        "fqmn": "App\\Services\\Security\\HoneypotService@sanitizePayload",
        "expected_test_path": "tests/Feature/HoneypotServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Security\\HoneypotService;\n\nclass HoneypotServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Security\\HoneypotService@sanitizePayload\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_sanitizepayload_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Security\\HoneypotService@sanitizePayload is PROOF_READY but no test file at tests/Feature/HoneypotServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Settlement/SettlementMatchingEngine.php::App\\Services\\Settlement\\SettlementMatchingEngine::match",
        "fqmn": "App\\Services\\Settlement\\SettlementMatchingEngine@match",
        "expected_test_path": "tests/Feature/SettlementMatchingEngineTest.php",
        "intent": null,
        "intent_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\\Settlement\\SettlementMatchingEngine;\n\nclass SettlementMatchingEngineTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Settlement\\SettlementMatchingEngine@match\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_match_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Settlement\\SettlementMatchingEngine@match is PROOF_READY but no test file at tests/Feature/SettlementMatchingEngineTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/SubscriptionComputeCacheService.php::App\\Services\\SubscriptionComputeCacheService::get",
        "fqmn": "App\\Services\\SubscriptionComputeCacheService@get",
        "expected_test_path": "tests/Feature/SubscriptionComputeCacheServiceTest.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\\SubscriptionComputeCacheService;\n\nclass SubscriptionComputeCacheServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\SubscriptionComputeCacheService@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\n        // TODO: 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\\SubscriptionComputeCacheService@get is PROOF_READY but no test file at tests/Feature/SubscriptionComputeCacheServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/SubscriptionStateService.php::App\\Services\\SubscriptionStateService::lockSubscriptionForUpdate",
        "fqmn": "App\\Services\\SubscriptionStateService@lockSubscriptionForUpdate",
        "expected_test_path": "tests/Feature/SubscriptionStateServiceTest.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\\SubscriptionStateService;\n\nclass SubscriptionStateServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\SubscriptionStateService@lockSubscriptionForUpdate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_locksubscriptionforupdate_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\SubscriptionStateService@lockSubscriptionForUpdate is PROOF_READY but no test file at tests/Feature/SubscriptionStateServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/SubscriptionStateService.php::App\\Services\\SubscriptionStateService::markActiveAndClearDunning",
        "fqmn": "App\\Services\\SubscriptionStateService@markActiveAndClearDunning",
        "expected_test_path": "tests/Feature/SubscriptionStateServiceTest.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\\SubscriptionStateService;\n\nclass SubscriptionStateServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\SubscriptionStateService@markActiveAndClearDunning\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_markactiveandcleardunning_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\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\\SubscriptionStateService@markActiveAndClearDunning is PROOF_READY but no test file at tests/Feature/SubscriptionStateServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/SubscriptionStateService.php::App\\Services\\SubscriptionStateService::markPastDue",
        "fqmn": "App\\Services\\SubscriptionStateService@markPastDue",
        "expected_test_path": "tests/Feature/SubscriptionStateServiceTest.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\\SubscriptionStateService;\n\nclass SubscriptionStateServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\SubscriptionStateService@markPastDue\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_markpastdue_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\SubscriptionStateService@markPastDue is PROOF_READY but no test file at tests/Feature/SubscriptionStateServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/SubscriptionStateService.php::App\\Services\\SubscriptionStateService::markSuspended",
        "fqmn": "App\\Services\\SubscriptionStateService@markSuspended",
        "expected_test_path": "tests/Feature/SubscriptionStateServiceTest.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\\SubscriptionStateService;\n\nclass SubscriptionStateServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\SubscriptionStateService@markSuspended\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_marksuspended_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\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\\SubscriptionStateService@markSuspended is PROOF_READY but no test file at tests/Feature/SubscriptionStateServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Tax/TaxAmountCalculator.php::App\\Services\\Tax\\TaxAmountCalculator::calculateFromBase",
        "fqmn": "App\\Services\\Tax\\TaxAmountCalculator@calculateFromBase",
        "expected_test_path": "tests/Feature/TaxAmountCalculatorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Tax\\TaxAmountCalculator;\n\nclass TaxAmountCalculatorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Tax\\TaxAmountCalculator@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Tax\\TaxAmountCalculator@calculateFromBase is PROOF_READY but no test file at tests/Feature/TaxAmountCalculatorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/TwilioVerifyService.php::App\\Services\\TwilioVerifyService::checkVerification",
        "fqmn": "App\\Services\\TwilioVerifyService@checkVerification",
        "expected_test_path": "tests/Feature/TwilioVerifyServiceTest.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\\Services\\TwilioVerifyService;\n\nclass TwilioVerifyServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\TwilioVerifyService@checkVerification\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_checkverification_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\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\\Services\\TwilioVerifyService@checkVerification is PROOF_READY but no test file at tests/Feature/TwilioVerifyServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/TwilioVerifyService.php::App\\Services\\TwilioVerifyService::startVerification",
        "fqmn": "App\\Services\\TwilioVerifyService@startVerification",
        "expected_test_path": "tests/Feature/TwilioVerifyServiceTest.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\\Services\\TwilioVerifyService;\n\nclass TwilioVerifyServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\TwilioVerifyService@startVerification\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_startverification_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // 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\\TwilioVerifyService@startVerification is PROOF_READY but no test file at tests/Feature/TwilioVerifyServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/Channels/WhatsAppChannel.php::App\\Services\\WhatsApp\\Channels\\WhatsAppChannel::send",
        "fqmn": "App\\Services\\WhatsApp\\Channels\\WhatsAppChannel@send",
        "expected_test_path": "tests/Feature/WhatsAppChannelTest.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\\WhatsApp\\Channels\\WhatsAppChannel;\n\nclass WhatsAppChannelTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\Channels\\WhatsAppChannel@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    }\n}\n",
        "explanation": "Surface App\\Services\\WhatsApp\\Channels\\WhatsAppChannel@send is PROOF_READY but no test file at tests/Feature/WhatsAppChannelTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/Dialog360InboundService.php::App\\Services\\WhatsApp\\Dialog360InboundService::handle",
        "fqmn": "App\\Services\\WhatsApp\\Dialog360InboundService@handle",
        "expected_test_path": "tests/Feature/Dialog360InboundServiceTest.php",
        "intent": null,
        "intent_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\\WhatsApp\\Dialog360InboundService;\n\nclass Dialog360InboundServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\Dialog360InboundService@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\\Services\\WhatsApp\\Dialog360InboundService@handle is PROOF_READY but no test file at tests/Feature/Dialog360InboundServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/Handlers/ChatbotInboundHandler.php::App\\Services\\WhatsApp\\Handlers\\ChatbotInboundHandler::handle",
        "fqmn": "App\\Services\\WhatsApp\\Handlers\\ChatbotInboundHandler@handle",
        "expected_test_path": "tests/Feature/ChatbotInboundHandlerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\WhatsApp\\Handlers\\ChatbotInboundHandler;\n\nclass ChatbotInboundHandlerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\Handlers\\ChatbotInboundHandler@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\\Services\\WhatsApp\\Handlers\\ChatbotInboundHandler@handle is PROOF_READY but no test file at tests/Feature/ChatbotInboundHandlerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/Handlers/DefaultInboundHandler.php::App\\Services\\WhatsApp\\Handlers\\DefaultInboundHandler::handle",
        "fqmn": "App\\Services\\WhatsApp\\Handlers\\DefaultInboundHandler@handle",
        "expected_test_path": "tests/Feature/DefaultInboundHandlerTest.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\\WhatsApp\\Handlers\\DefaultInboundHandler;\n\nclass DefaultInboundHandlerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\Handlers\\DefaultInboundHandler@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\\Services\\WhatsApp\\Handlers\\DefaultInboundHandler@handle is PROOF_READY but no test file at tests/Feature/DefaultInboundHandlerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/Handlers/HumanReplyHandler.php::App\\Services\\WhatsApp\\Handlers\\HumanReplyHandler::handle",
        "fqmn": "App\\Services\\WhatsApp\\Handlers\\HumanReplyHandler@handle",
        "expected_test_path": "tests/Feature/HumanReplyHandlerTest.php",
        "intent": null,
        "intent_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\\WhatsApp\\Handlers\\HumanReplyHandler;\n\nclass HumanReplyHandlerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\Handlers\\HumanReplyHandler@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\\Services\\WhatsApp\\Handlers\\HumanReplyHandler@handle is PROOF_READY but no test file at tests/Feature/HumanReplyHandlerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/Handlers/MaintenanceInboundHandler.php::App\\Services\\WhatsApp\\Handlers\\MaintenanceInboundHandler::handle",
        "fqmn": "App\\Services\\WhatsApp\\Handlers\\MaintenanceInboundHandler@handle",
        "expected_test_path": "tests/Feature/MaintenanceInboundHandlerTest.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\\Services\\WhatsApp\\Handlers\\MaintenanceInboundHandler;\n\nclass MaintenanceInboundHandlerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\Handlers\\MaintenanceInboundHandler@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\\Services\\WhatsApp\\Handlers\\MaintenanceInboundHandler@handle is PROOF_READY but no test file at tests/Feature/MaintenanceInboundHandlerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/Handlers/PaymentProofInboundHandler.php::App\\Services\\WhatsApp\\Handlers\\PaymentProofInboundHandler::handle",
        "fqmn": "App\\Services\\WhatsApp\\Handlers\\PaymentProofInboundHandler@handle",
        "expected_test_path": "tests/Feature/PaymentProofInboundHandlerTest.php",
        "intent": null,
        "intent_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\\WhatsApp\\Handlers\\PaymentProofInboundHandler;\n\nclass PaymentProofInboundHandlerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\Handlers\\PaymentProofInboundHandler@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\\Services\\WhatsApp\\Handlers\\PaymentProofInboundHandler@handle is PROOF_READY but no test file at tests/Feature/PaymentProofInboundHandlerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/Inbound/Adapters/Dialog360InboundAdapter.php::App\\Services\\WhatsApp\\Inbound\\Adapters\\Dialog360InboundAdapter::fromPayload",
        "fqmn": "App\\Services\\WhatsApp\\Inbound\\Adapters\\Dialog360InboundAdapter@fromPayload",
        "expected_test_path": "tests/Feature/Dialog360InboundAdapterTest.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\\WhatsApp\\Inbound\\Adapters\\Dialog360InboundAdapter;\n\nclass Dialog360InboundAdapterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\Inbound\\Adapters\\Dialog360InboundAdapter@fromPayload\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_frompayload_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\WhatsApp\\Inbound\\Adapters\\Dialog360InboundAdapter@fromPayload is PROOF_READY but no test file at tests/Feature/Dialog360InboundAdapterTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/Inbound/Adapters/TwilioInboundAdapter.php::App\\Services\\WhatsApp\\Inbound\\Adapters\\TwilioInboundAdapter::fromPayload",
        "fqmn": "App\\Services\\WhatsApp\\Inbound\\Adapters\\TwilioInboundAdapter@fromPayload",
        "expected_test_path": "tests/Feature/TwilioInboundAdapterTest.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\\WhatsApp\\Inbound\\Adapters\\TwilioInboundAdapter;\n\nclass TwilioInboundAdapterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\Inbound\\Adapters\\TwilioInboundAdapter@fromPayload\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_frompayload_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\WhatsApp\\Inbound\\Adapters\\TwilioInboundAdapter@fromPayload is PROOF_READY but no test file at tests/Feature/TwilioInboundAdapterTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/Inbound/CanonicalInboundMessage.php::App\\Services\\WhatsApp\\Inbound\\CanonicalInboundMessage::fromArray",
        "fqmn": "App\\Services\\WhatsApp\\Inbound\\CanonicalInboundMessage@fromArray",
        "expected_test_path": "tests/Feature/CanonicalInboundMessageTest.php",
        "intent": null,
        "intent_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\\WhatsApp\\Inbound\\CanonicalInboundMessage;\n\nclass CanonicalInboundMessageTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\Inbound\\CanonicalInboundMessage@fromArray\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_fromarray_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\WhatsApp\\Inbound\\CanonicalInboundMessage@fromArray is PROOF_READY but no test file at tests/Feature/CanonicalInboundMessageTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/Inbound/CanonicalInboundMessage.php::App\\Services\\WhatsApp\\Inbound\\CanonicalInboundMessage::toArray",
        "fqmn": "App\\Services\\WhatsApp\\Inbound\\CanonicalInboundMessage@toArray",
        "expected_test_path": "tests/Feature/CanonicalInboundMessageTest.php",
        "intent": null,
        "intent_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\\WhatsApp\\Inbound\\CanonicalInboundMessage;\n\nclass CanonicalInboundMessageTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\Inbound\\CanonicalInboundMessage@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\\WhatsApp\\Inbound\\CanonicalInboundMessage@toArray is PROOF_READY but no test file at tests/Feature/CanonicalInboundMessageTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/ProviderFactory.php::App\\Services\\WhatsApp\\ProviderFactory::make",
        "fqmn": "App\\Services\\WhatsApp\\ProviderFactory@make",
        "expected_test_path": "tests/Feature/ProviderFactoryTest.php",
        "intent": null,
        "intent_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\\WhatsApp\\ProviderFactory;\n\nclass ProviderFactoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\ProviderFactory@make\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_make_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\WhatsApp\\ProviderFactory@make is PROOF_READY but no test file at tests/Feature/ProviderFactoryTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/ProviderFactory.php::App\\Services\\WhatsApp\\ProviderFactory::makeTemplateProvider",
        "fqmn": "App\\Services\\WhatsApp\\ProviderFactory@makeTemplateProvider",
        "expected_test_path": "tests/Feature/ProviderFactoryTest.php",
        "intent": null,
        "intent_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\\WhatsApp\\ProviderFactory;\n\nclass ProviderFactoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\ProviderFactory@makeTemplateProvider\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_maketemplateprovider_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\WhatsApp\\ProviderFactory@makeTemplateProvider is PROOF_READY but no test file at tests/Feature/ProviderFactoryTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/Providers/Dialog360WhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider::getMediaUrl",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider@getMediaUrl",
        "expected_test_path": "tests/Feature/Dialog360WhatsAppProviderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\WhatsApp\\Providers\\Dialog360WhatsAppProvider;\n\nclass Dialog360WhatsAppProviderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider@getMediaUrl\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getmediaurl_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider@getMediaUrl is PROOF_READY but no test file at tests/Feature/Dialog360WhatsAppProviderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/Providers/Dialog360WhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider::pushTemplate",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider@pushTemplate",
        "expected_test_path": "tests/Feature/Dialog360WhatsAppProviderTest.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\\WhatsApp\\Providers\\Dialog360WhatsAppProvider;\n\nclass Dialog360WhatsAppProviderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider@pushTemplate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_pushtemplate_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider@pushTemplate is PROOF_READY but no test file at tests/Feature/Dialog360WhatsAppProviderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/Providers/Dialog360WhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider::sendMessage",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider@sendMessage",
        "expected_test_path": "tests/Feature/Dialog360WhatsAppProviderTest.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\\WhatsApp\\Providers\\Dialog360WhatsAppProvider;\n\nclass Dialog360WhatsAppProviderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider@sendMessage\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_sendmessage_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider@sendMessage is PROOF_READY but no test file at tests/Feature/Dialog360WhatsAppProviderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/Providers/Dialog360WhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider::sendSenderAction",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider@sendSenderAction",
        "expected_test_path": "tests/Feature/Dialog360WhatsAppProviderTest.php",
        "intent": null,
        "intent_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\\WhatsApp\\Providers\\Dialog360WhatsAppProvider;\n\nclass Dialog360WhatsAppProviderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider@sendSenderAction\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_sendsenderaction_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider@sendSenderAction is PROOF_READY but no test file at tests/Feature/Dialog360WhatsAppProviderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/Providers/Dialog360WhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider::sendTemplate",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider@sendTemplate",
        "expected_test_path": "tests/Feature/Dialog360WhatsAppProviderTest.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\\WhatsApp\\Providers\\Dialog360WhatsAppProvider;\n\nclass Dialog360WhatsAppProviderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider@sendTemplate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_sendtemplate_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\WhatsApp\\Providers\\Dialog360WhatsAppProvider@sendTemplate is PROOF_READY but no test file at tests/Feature/Dialog360WhatsAppProviderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/Providers/TwilioWhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider::fetchTemplateStatus",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@fetchTemplateStatus",
        "expected_test_path": "tests/Feature/TwilioWhatsAppProviderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_http_called"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider;\n\nclass TwilioWhatsAppProviderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@fetchTemplateStatus\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_fetchtemplatestatus_behaves_correctly(): void\n    {\n\n        // 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\\WhatsApp\\Providers\\TwilioWhatsAppProvider@fetchTemplateStatus is PROOF_READY but no test file at tests/Feature/TwilioWhatsAppProviderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/Providers/TwilioWhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider::provision",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@provision",
        "expected_test_path": "tests/Feature/TwilioWhatsAppProviderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\WhatsApp\\Providers\\TwilioWhatsAppProvider;\n\nclass TwilioWhatsAppProviderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@provision\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_provision_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@provision is PROOF_READY but no test file at tests/Feature/TwilioWhatsAppProviderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/Providers/TwilioWhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider::pushTemplate",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@pushTemplate",
        "expected_test_path": "tests/Feature/TwilioWhatsAppProviderTest.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\\WhatsApp\\Providers\\TwilioWhatsAppProvider;\n\nclass TwilioWhatsAppProviderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@pushTemplate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_pushtemplate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // 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\\WhatsApp\\Providers\\TwilioWhatsAppProvider@pushTemplate is PROOF_READY but no test file at tests/Feature/TwilioWhatsAppProviderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/Providers/TwilioWhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider::resolveOrganizationIdByTo",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@resolveOrganizationIdByTo",
        "expected_test_path": "tests/Feature/TwilioWhatsAppProviderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\WhatsApp\\Providers\\TwilioWhatsAppProvider;\n\nclass TwilioWhatsAppProviderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@resolveOrganizationIdByTo\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolveorganizationidbyto_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@resolveOrganizationIdByTo is PROOF_READY but no test file at tests/Feature/TwilioWhatsAppProviderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/Providers/TwilioWhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider::sendDocument",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@sendDocument",
        "expected_test_path": "tests/Feature/TwilioWhatsAppProviderTest.php",
        "intent": null,
        "intent_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\\WhatsApp\\Providers\\TwilioWhatsAppProvider;\n\nclass TwilioWhatsAppProviderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@sendDocument\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_senddocument_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@sendDocument is PROOF_READY but no test file at tests/Feature/TwilioWhatsAppProviderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/Providers/TwilioWhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider::sendImage",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@sendImage",
        "expected_test_path": "tests/Feature/TwilioWhatsAppProviderTest.php",
        "intent": null,
        "intent_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\\WhatsApp\\Providers\\TwilioWhatsAppProvider;\n\nclass TwilioWhatsAppProviderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@sendImage\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_sendimage_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@sendImage is PROOF_READY but no test file at tests/Feature/TwilioWhatsAppProviderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/Providers/TwilioWhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider::sendMessage",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@sendMessage",
        "expected_test_path": "tests/Feature/TwilioWhatsAppProviderTest.php",
        "intent": null,
        "intent_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\\WhatsApp\\Providers\\TwilioWhatsAppProvider;\n\nclass TwilioWhatsAppProviderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@sendMessage\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_sendmessage_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@sendMessage is PROOF_READY but no test file at tests/Feature/TwilioWhatsAppProviderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/Providers/TwilioWhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider::sendSenderAction",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@sendSenderAction",
        "expected_test_path": "tests/Feature/TwilioWhatsAppProviderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\WhatsApp\\Providers\\TwilioWhatsAppProvider;\n\nclass TwilioWhatsAppProviderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@sendSenderAction\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_sendsenderaction_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@sendSenderAction is PROOF_READY but no test file at tests/Feature/TwilioWhatsAppProviderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/Providers/TwilioWhatsAppProvider.php::App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider::sendTemplate",
        "fqmn": "App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@sendTemplate",
        "expected_test_path": "tests/Feature/TwilioWhatsAppProviderTest.php",
        "intent": null,
        "intent_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\\WhatsApp\\Providers\\TwilioWhatsAppProvider;\n\nclass TwilioWhatsAppProviderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@sendTemplate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_sendtemplate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\WhatsApp\\Providers\\TwilioWhatsAppProvider@sendTemplate is PROOF_READY but no test file at tests/Feature/TwilioWhatsAppProviderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/Routing/WhatsAppMessageRouter.php::App\\Services\\WhatsApp\\Routing\\WhatsAppMessageRouter::route",
        "fqmn": "App\\Services\\WhatsApp\\Routing\\WhatsAppMessageRouter@route",
        "expected_test_path": "tests/Feature/WhatsAppMessageRouterTest.php",
        "intent": null,
        "intent_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\\WhatsApp\\Routing\\WhatsAppMessageRouter;\n\nclass WhatsAppMessageRouterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\Routing\\WhatsAppMessageRouter@route\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_route_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\WhatsApp\\Routing\\WhatsAppMessageRouter@route is PROOF_READY but no test file at tests/Feature/WhatsAppMessageRouterTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/Templates/Dialog360TemplateProvider.php::App\\Services\\WhatsApp\\Templates\\Dialog360TemplateProvider::deleteTemplate",
        "fqmn": "App\\Services\\WhatsApp\\Templates\\Dialog360TemplateProvider@deleteTemplate",
        "expected_test_path": "tests/Feature/Dialog360TemplateProviderTest.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\\WhatsApp\\Templates\\Dialog360TemplateProvider;\n\nclass Dialog360TemplateProviderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\Templates\\Dialog360TemplateProvider@deleteTemplate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_deletetemplate_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\WhatsApp\\Templates\\Dialog360TemplateProvider@deleteTemplate is PROOF_READY but no test file at tests/Feature/Dialog360TemplateProviderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/Templates/Dialog360TemplateProvider.php::App\\Services\\WhatsApp\\Templates\\Dialog360TemplateProvider::pushTemplate",
        "fqmn": "App\\Services\\WhatsApp\\Templates\\Dialog360TemplateProvider@pushTemplate",
        "expected_test_path": "tests/Feature/Dialog360TemplateProviderTest.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\\WhatsApp\\Templates\\Dialog360TemplateProvider;\n\nclass Dialog360TemplateProviderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\Templates\\Dialog360TemplateProvider@pushTemplate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_pushtemplate_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\WhatsApp\\Templates\\Dialog360TemplateProvider@pushTemplate is PROOF_READY but no test file at tests/Feature/Dialog360TemplateProviderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/Templates/Dialog360TemplateProvider.php::App\\Services\\WhatsApp\\Templates\\Dialog360TemplateProvider::syncTemplate",
        "fqmn": "App\\Services\\WhatsApp\\Templates\\Dialog360TemplateProvider@syncTemplate",
        "expected_test_path": "tests/Feature/Dialog360TemplateProviderTest.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\\WhatsApp\\Templates\\Dialog360TemplateProvider;\n\nclass Dialog360TemplateProviderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\Templates\\Dialog360TemplateProvider@syncTemplate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_synctemplate_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\WhatsApp\\Templates\\Dialog360TemplateProvider@syncTemplate is PROOF_READY but no test file at tests/Feature/Dialog360TemplateProviderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/Templates/Dialog360TemplateProvider.php::App\\Services\\WhatsApp\\Templates\\Dialog360TemplateProvider::templateCapabilities",
        "fqmn": "App\\Services\\WhatsApp\\Templates\\Dialog360TemplateProvider@templateCapabilities",
        "expected_test_path": "tests/Feature/Dialog360TemplateProviderTest.php",
        "intent": null,
        "intent_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\\WhatsApp\\Templates\\Dialog360TemplateProvider;\n\nclass Dialog360TemplateProviderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\Templates\\Dialog360TemplateProvider@templateCapabilities\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_templatecapabilities_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\WhatsApp\\Templates\\Dialog360TemplateProvider@templateCapabilities is PROOF_READY but no test file at tests/Feature/Dialog360TemplateProviderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/Templates/TwilioTemplateProvider.php::App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider::deleteTemplate",
        "fqmn": "App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider@deleteTemplate",
        "expected_test_path": "tests/Feature/TwilioTemplateProviderTest.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\\WhatsApp\\Templates\\TwilioTemplateProvider;\n\nclass TwilioTemplateProviderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider@deleteTemplate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_deletetemplate_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\WhatsApp\\Templates\\TwilioTemplateProvider@deleteTemplate is PROOF_READY but no test file at tests/Feature/TwilioTemplateProviderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/Templates/TwilioTemplateProvider.php::App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider::pushTemplate",
        "fqmn": "App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider@pushTemplate",
        "expected_test_path": "tests/Feature/TwilioTemplateProviderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\WhatsApp\\Templates\\TwilioTemplateProvider;\n\nclass TwilioTemplateProviderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider@pushTemplate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_pushtemplate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider@pushTemplate is PROOF_READY but no test file at tests/Feature/TwilioTemplateProviderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/Templates/TwilioTemplateProvider.php::App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider::syncTemplate",
        "fqmn": "App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider@syncTemplate",
        "expected_test_path": "tests/Feature/TwilioTemplateProviderTest.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\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider;\n\nclass TwilioTemplateProviderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider@syncTemplate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_synctemplate_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\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\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider@syncTemplate is PROOF_READY but no test file at tests/Feature/TwilioTemplateProviderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/Templates/TwilioTemplateProvider.php::App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider::templateCapabilities",
        "fqmn": "App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider@templateCapabilities",
        "expected_test_path": "tests/Feature/TwilioTemplateProviderTest.php",
        "intent": null,
        "intent_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\\WhatsApp\\Templates\\TwilioTemplateProvider;\n\nclass TwilioTemplateProviderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider@templateCapabilities\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_templatecapabilities_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\WhatsApp\\Templates\\TwilioTemplateProvider@templateCapabilities is PROOF_READY but no test file at tests/Feature/TwilioTemplateProviderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/TenantSidebarService.php::App\\Services\\WhatsApp\\TenantSidebarService::getTenantInfo",
        "fqmn": "App\\Services\\WhatsApp\\TenantSidebarService@getTenantInfo",
        "expected_test_path": "tests/Feature/TenantSidebarServiceTest.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\\WhatsApp\\TenantSidebarService;\n\nclass TenantSidebarServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\TenantSidebarService@getTenantInfo\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettenantinfo_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\WhatsApp\\TenantSidebarService@getTenantInfo is PROOF_READY but no test file at tests/Feature/TenantSidebarServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/TwilioProvisioningService.php::App\\Services\\WhatsApp\\TwilioProvisioningService::ensureMessagingService",
        "fqmn": "App\\Services\\WhatsApp\\TwilioProvisioningService@ensureMessagingService",
        "expected_test_path": "tests/Feature/TwilioProvisioningServiceTest.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\\Services\\WhatsApp\\TwilioProvisioningService;\n\nclass TwilioProvisioningServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\TwilioProvisioningService@ensureMessagingService\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_ensuremessagingservice_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\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\\Services\\WhatsApp\\TwilioProvisioningService@ensureMessagingService is PROOF_READY but no test file at tests/Feature/TwilioProvisioningServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/TwilioProvisioningService.php::App\\Services\\WhatsApp\\TwilioProvisioningService::requestWhatsAppSender",
        "fqmn": "App\\Services\\WhatsApp\\TwilioProvisioningService@requestWhatsAppSender",
        "expected_test_path": "tests/Feature/TwilioProvisioningServiceTest.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\\Services\\WhatsApp\\TwilioProvisioningService;\n\nclass TwilioProvisioningServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\TwilioProvisioningService@requestWhatsAppSender\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_requestwhatsappsender_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\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\\Services\\WhatsApp\\TwilioProvisioningService@requestWhatsAppSender is PROOF_READY but no test file at tests/Feature/TwilioProvisioningServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/TwilioTemplatePushService.php::App\\Services\\WhatsApp\\TwilioTemplatePushService::push",
        "fqmn": "App\\Services\\WhatsApp\\TwilioTemplatePushService@push",
        "expected_test_path": "tests/Feature/TwilioTemplatePushServiceTest.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\\Services\\WhatsApp\\TwilioTemplatePushService;\n\nclass TwilioTemplatePushServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\TwilioTemplatePushService@push\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_push_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\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\\Services\\WhatsApp\\TwilioTemplatePushService@push is PROOF_READY but no test file at tests/Feature/TwilioTemplatePushServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/WalkInLeadService.php::App\\Services\\WhatsApp\\WalkInLeadService::handleWalkIn",
        "fqmn": "App\\Services\\WhatsApp\\WalkInLeadService@handleWalkIn",
        "expected_test_path": "tests/Feature/WalkInLeadServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\WhatsApp\\WalkInLeadService;\n\nclass WalkInLeadServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\WalkInLeadService@handleWalkIn\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handlewalkin_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\WhatsApp\\WalkInLeadService@handleWalkIn is PROOF_READY but no test file at tests/Feature/WalkInLeadServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/WhatsAppAISettingsService.php::App\\Services\\WhatsApp\\WhatsAppAISettingsService::forOrganization",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppAISettingsService@forOrganization",
        "expected_test_path": "tests/Feature/WhatsAppAISettingsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\WhatsApp\\WhatsAppAISettingsService;\n\nclass WhatsAppAISettingsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\WhatsAppAISettingsService@forOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_fororganization_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\WhatsApp\\WhatsAppAISettingsService@forOrganization is PROOF_READY but no test file at tests/Feature/WhatsAppAISettingsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/WhatsAppChatbotService.php::App\\Services\\WhatsApp\\WhatsAppChatbotService::handleInbound",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppChatbotService@handleInbound",
        "expected_test_path": "tests/Feature/WhatsAppChatbotServiceTest.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\\WhatsApp\\WhatsAppChatbotService;\n\nclass WhatsAppChatbotServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\WhatsAppChatbotService@handleInbound\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handleinbound_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\WhatsApp\\WhatsAppChatbotService@handleInbound is PROOF_READY but no test file at tests/Feature/WhatsAppChatbotServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/WhatsAppConnectivityService.php::App\\Services\\WhatsApp\\WhatsAppConnectivityService::canCreateWhatsAppTemplate",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppConnectivityService@canCreateWhatsAppTemplate",
        "expected_test_path": "tests/Feature/WhatsAppConnectivityServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\WhatsApp\\WhatsAppConnectivityService;\n\nclass WhatsAppConnectivityServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\WhatsAppConnectivityService@canCreateWhatsAppTemplate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_cancreatewhatsapptemplate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\WhatsApp\\WhatsAppConnectivityService@canCreateWhatsAppTemplate is PROOF_READY but no test file at tests/Feature/WhatsAppConnectivityServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/WhatsAppConnectivityService.php::App\\Services\\WhatsApp\\WhatsAppConnectivityService::checkConnectivity",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppConnectivityService@checkConnectivity",
        "expected_test_path": "tests/Feature/WhatsAppConnectivityServiceTest.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\\WhatsApp\\WhatsAppConnectivityService;\n\nclass WhatsAppConnectivityServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\WhatsAppConnectivityService@checkConnectivity\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_checkconnectivity_behaves_correctly(): void\n    {\n\n        // TODO: 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\\WhatsApp\\WhatsAppConnectivityService@checkConnectivity is PROOF_READY but no test file at tests/Feature/WhatsAppConnectivityServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/WhatsAppConnectivityService.php::App\\Services\\WhatsApp\\WhatsAppConnectivityService::checkProviderConnectivity",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppConnectivityService@checkProviderConnectivity",
        "expected_test_path": "tests/Feature/WhatsAppConnectivityServiceTest.php",
        "intent": null,
        "intent_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\\WhatsApp\\WhatsAppConnectivityService;\n\nclass WhatsAppConnectivityServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\WhatsAppConnectivityService@checkProviderConnectivity\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_checkproviderconnectivity_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\WhatsApp\\WhatsAppConnectivityService@checkProviderConnectivity is PROOF_READY but no test file at tests/Feature/WhatsAppConnectivityServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/WhatsAppConnectivityService.php::App\\Services\\WhatsApp\\WhatsAppConnectivityService::getActiveProvider",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppConnectivityService@getActiveProvider",
        "expected_test_path": "tests/Feature/WhatsAppConnectivityServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\WhatsApp\\WhatsAppConnectivityService;\n\nclass WhatsAppConnectivityServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\WhatsAppConnectivityService@getActiveProvider\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getactiveprovider_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\WhatsApp\\WhatsAppConnectivityService@getActiveProvider is PROOF_READY but no test file at tests/Feature/WhatsAppConnectivityServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/WhatsAppConnectivityService.php::App\\Services\\WhatsApp\\WhatsAppConnectivityService::getConnectivityHelperText",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppConnectivityService@getConnectivityHelperText",
        "expected_test_path": "tests/Feature/WhatsAppConnectivityServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\WhatsApp\\WhatsAppConnectivityService;\n\nclass WhatsAppConnectivityServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\WhatsAppConnectivityService@getConnectivityHelperText\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getconnectivityhelpertext_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\WhatsApp\\WhatsAppConnectivityService@getConnectivityHelperText is PROOF_READY but no test file at tests/Feature/WhatsAppConnectivityServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/WhatsAppConsentService.php::App\\Services\\WhatsApp\\WhatsAppConsentService::isOptedOut",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppConsentService@isOptedOut",
        "expected_test_path": "tests/Feature/WhatsAppConsentServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\WhatsApp\\WhatsAppConsentService;\n\nclass WhatsAppConsentServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\WhatsAppConsentService@isOptedOut\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_isoptedout_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\WhatsApp\\WhatsAppConsentService@isOptedOut is PROOF_READY but no test file at tests/Feature/WhatsAppConsentServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/WhatsAppInboundMessageWriter.php::App\\Services\\WhatsApp\\WhatsAppInboundMessageWriter::create",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppInboundMessageWriter@create",
        "expected_test_path": "tests/Feature/WhatsAppInboundMessageWriterTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\WhatsApp\\WhatsAppInboundMessageWriter;\n\nclass WhatsAppInboundMessageWriterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\WhatsAppInboundMessageWriter@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\\Services\\WhatsApp\\WhatsAppInboundMessageWriter@create is PROOF_READY but no test file at tests/Feature/WhatsAppInboundMessageWriterTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/WhatsAppInboundMessageWriter.php::App\\Services\\WhatsApp\\WhatsAppInboundMessageWriter::delete",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppInboundMessageWriter@delete",
        "expected_test_path": "tests/Feature/WhatsAppInboundMessageWriterTest.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\\WhatsApp\\WhatsAppInboundMessageWriter;\n\nclass WhatsAppInboundMessageWriterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\WhatsAppInboundMessageWriter@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\\Services\\WhatsApp\\WhatsAppInboundMessageWriter@delete is PROOF_READY but no test file at tests/Feature/WhatsAppInboundMessageWriterTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/WhatsAppInboundMessageWriter.php::App\\Services\\WhatsApp\\WhatsAppInboundMessageWriter::insert",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppInboundMessageWriter@insert",
        "expected_test_path": "tests/Feature/WhatsAppInboundMessageWriterTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\WhatsApp\\WhatsAppInboundMessageWriter;\n\nclass WhatsAppInboundMessageWriterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\WhatsAppInboundMessageWriter@insert\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_insert_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\WhatsApp\\WhatsAppInboundMessageWriter@insert is PROOF_READY but no test file at tests/Feature/WhatsAppInboundMessageWriterTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WhatsApp/WhatsAppInboundMessageWriter.php::App\\Services\\WhatsApp\\WhatsAppInboundMessageWriter::update",
        "fqmn": "App\\Services\\WhatsApp\\WhatsAppInboundMessageWriter@update",
        "expected_test_path": "tests/Feature/WhatsAppInboundMessageWriterTest.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\\WhatsApp\\WhatsAppInboundMessageWriter;\n\nclass WhatsAppInboundMessageWriterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WhatsApp\\WhatsAppInboundMessageWriter@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\\Services\\WhatsApp\\WhatsAppInboundMessageWriter@update is PROOF_READY but no test file at tests/Feature/WhatsAppInboundMessageWriterTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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::send",
        "fqmn": "App\\Services\\ZeptoMailService@send",
        "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@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\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@send 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::sendBulk",
        "fqmn": "App\\Services\\ZeptoMailService@sendBulk",
        "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@sendBulk\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_sendbulk_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\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@sendBulk 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::sendTemplate",
        "fqmn": "App\\Services\\ZeptoMailService@sendTemplate",
        "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@sendTemplate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_sendtemplate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\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@sendTemplate 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::verifyWebhook",
        "fqmn": "App\\Services\\ZeptoMailService@verifyWebhook",
        "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@verifyWebhook\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_verifywebhook_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\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@verifyWebhook 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/Zoho/Normalizers/KuwaitAddressNormalizer.php::App\\Services\\Zoho\\Normalizers\\KuwaitAddressNormalizer::normalize",
        "fqmn": "App\\Services\\Zoho\\Normalizers\\KuwaitAddressNormalizer@normalize",
        "expected_test_path": "tests/Feature/KuwaitAddressNormalizerTest.php",
        "intent": null,
        "intent_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\\Zoho\\Normalizers\\KuwaitAddressNormalizer;\n\nclass KuwaitAddressNormalizerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Zoho\\Normalizers\\KuwaitAddressNormalizer@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\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Zoho\\Normalizers\\KuwaitAddressNormalizer@normalize is PROOF_READY but no test file at tests/Feature/KuwaitAddressNormalizerTest.php is in the MANUAL allowlist. 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/Cache/CacheManagerProxy.php::App\\Support\\Cache\\CacheManagerProxy::add",
        "fqmn": "App\\Support\\Cache\\CacheManagerProxy@add",
        "expected_test_path": "tests/Unit/CacheManagerProxyTest.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\\Cache\\CacheManagerProxy;\n\nclass CacheManagerProxyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Cache\\CacheManagerProxy@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\n        // TODO: 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\\Cache\\CacheManagerProxy@add is PROOF_READY but no test file at tests/Unit/CacheManagerProxyTest.php is in the MANUAL allowlist. 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/Cache/CacheManagerProxy.php::App\\Support\\Cache\\CacheManagerProxy::fake",
        "fqmn": "App\\Support\\Cache\\CacheManagerProxy@fake",
        "expected_test_path": "tests/Unit/CacheManagerProxyTest.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\\Cache\\CacheManagerProxy;\n\nclass CacheManagerProxyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Cache\\CacheManagerProxy@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\n        // TODO: 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\\Cache\\CacheManagerProxy@fake is PROOF_READY but no test file at tests/Unit/CacheManagerProxyTest.php is in the MANUAL allowlist. 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/Cache/CacheManagerProxy.php::App\\Support\\Cache\\CacheManagerProxy::flush",
        "fqmn": "App\\Support\\Cache\\CacheManagerProxy@flush",
        "expected_test_path": "tests/Unit/CacheManagerProxyTest.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\\Cache\\CacheManagerProxy;\n\nclass CacheManagerProxyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Cache\\CacheManagerProxy@flush\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_flush_behaves_correctly(): void\n    {\n\n        // TODO: 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\\Cache\\CacheManagerProxy@flush is PROOF_READY but no test file at tests/Unit/CacheManagerProxyTest.php is in the MANUAL allowlist. 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/Cache/CacheManagerProxy.php::App\\Support\\Cache\\CacheManagerProxy::forget",
        "fqmn": "App\\Support\\Cache\\CacheManagerProxy@forget",
        "expected_test_path": "tests/Unit/CacheManagerProxyTest.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\\Cache\\CacheManagerProxy;\n\nclass CacheManagerProxyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Cache\\CacheManagerProxy@forget\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_forget_behaves_correctly(): void\n    {\n\n        // TODO: 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\\Cache\\CacheManagerProxy@forget is PROOF_READY but no test file at tests/Unit/CacheManagerProxyTest.php is in the MANUAL allowlist. 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/Cache/CacheManagerProxy.php::App\\Support\\Cache\\CacheManagerProxy::get",
        "fqmn": "App\\Support\\Cache\\CacheManagerProxy@get",
        "expected_test_path": "tests/Unit/CacheManagerProxyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Cache\\CacheManagerProxy;\n\nclass CacheManagerProxyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Cache\\CacheManagerProxy@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\\Cache\\CacheManagerProxy@get is PROOF_READY but no test file at tests/Unit/CacheManagerProxyTest.php is in the MANUAL allowlist. 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/Cache/CacheManagerProxy.php::App\\Support\\Cache\\CacheManagerProxy::lock",
        "fqmn": "App\\Support\\Cache\\CacheManagerProxy@lock",
        "expected_test_path": "tests/Unit/CacheManagerProxyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Cache\\CacheManagerProxy;\n\nclass CacheManagerProxyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Cache\\CacheManagerProxy@lock\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_lock_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Cache\\CacheManagerProxy@lock is PROOF_READY but no test file at tests/Unit/CacheManagerProxyTest.php is in the MANUAL allowlist. 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/Cache/CacheManagerProxy.php::App\\Support\\Cache\\CacheManagerProxy::put",
        "fqmn": "App\\Support\\Cache\\CacheManagerProxy@put",
        "expected_test_path": "tests/Unit/CacheManagerProxyTest.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\\Cache\\CacheManagerProxy;\n\nclass CacheManagerProxyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Cache\\CacheManagerProxy@put\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_put_behaves_correctly(): void\n    {\n\n        // TODO: 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\\Cache\\CacheManagerProxy@put is PROOF_READY but no test file at tests/Unit/CacheManagerProxyTest.php is in the MANUAL allowlist. 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/Cache/CacheManagerProxy.php::App\\Support\\Cache\\CacheManagerProxy::remember",
        "fqmn": "App\\Support\\Cache\\CacheManagerProxy@remember",
        "expected_test_path": "tests/Unit/CacheManagerProxyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Cache\\CacheManagerProxy;\n\nclass CacheManagerProxyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Cache\\CacheManagerProxy@remember\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_remember_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Cache\\CacheManagerProxy@remember is PROOF_READY but no test file at tests/Unit/CacheManagerProxyTest.php is in the MANUAL allowlist. 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/Cache/CacheManagerProxy.php::App\\Support\\Cache\\CacheManagerProxy::store",
        "fqmn": "App\\Support\\Cache\\CacheManagerProxy@store",
        "expected_test_path": "tests/Unit/CacheManagerProxyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Cache\\CacheManagerProxy;\n\nclass CacheManagerProxyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Cache\\CacheManagerProxy@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\\Support\\Cache\\CacheManagerProxy@store is PROOF_READY but no test file at tests/Unit/CacheManagerProxyTest.php is in the MANUAL allowlist. 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/Chat/RateLimiter.php::App\\Support\\Chat\\RateLimiter::checkBurstLimit",
        "fqmn": "App\\Support\\Chat\\RateLimiter@checkBurstLimit",
        "expected_test_path": "tests/Unit/RateLimiterTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Chat\\RateLimiter;\n\nclass RateLimiterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Chat\\RateLimiter@checkBurstLimit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_checkburstlimit_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Chat\\RateLimiter@checkBurstLimit is PROOF_READY but no test file at tests/Unit/RateLimiterTest.php is in the MANUAL allowlist. 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/Chat/RateLimiter.php::App\\Support\\Chat\\RateLimiter::checkMultipleWindows",
        "fqmn": "App\\Support\\Chat\\RateLimiter@checkMultipleWindows",
        "expected_test_path": "tests/Unit/RateLimiterTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Chat\\RateLimiter;\n\nclass RateLimiterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Chat\\RateLimiter@checkMultipleWindows\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_checkmultiplewindows_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Chat\\RateLimiter@checkMultipleWindows is PROOF_READY but no test file at tests/Unit/RateLimiterTest.php is in the MANUAL allowlist. 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/Chat/RateLimiter.php::App\\Support\\Chat\\RateLimiter::checkOpenAITokens",
        "fqmn": "App\\Support\\Chat\\RateLimiter@checkOpenAITokens",
        "expected_test_path": "tests/Unit/RateLimiterTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Chat\\RateLimiter;\n\nclass RateLimiterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Chat\\RateLimiter@checkOpenAITokens\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_checkopenaitokens_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Chat\\RateLimiter@checkOpenAITokens is PROOF_READY but no test file at tests/Unit/RateLimiterTest.php is in the MANUAL allowlist. 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/Chat/RateLimiter.php::App\\Support\\Chat\\RateLimiter::checkTwilioTierLimit",
        "fqmn": "App\\Support\\Chat\\RateLimiter@checkTwilioTierLimit",
        "expected_test_path": "tests/Unit/RateLimiterTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Chat\\RateLimiter;\n\nclass RateLimiterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Chat\\RateLimiter@checkTwilioTierLimit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_checktwiliotierlimit_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Chat\\RateLimiter@checkTwilioTierLimit is PROOF_READY but no test file at tests/Unit/RateLimiterTest.php is in the MANUAL allowlist. 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/Chat/RateLimiter.php::App\\Support\\Chat\\RateLimiter::estimateTokens",
        "fqmn": "App\\Support\\Chat\\RateLimiter@estimateTokens",
        "expected_test_path": "tests/Unit/RateLimiterTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Chat\\RateLimiter;\n\nclass RateLimiterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Chat\\RateLimiter@estimateTokens\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_estimatetokens_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Chat\\RateLimiter@estimateTokens is PROOF_READY but no test file at tests/Unit/RateLimiterTest.php is in the MANUAL allowlist. 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/Chat/RateLimiter.php::App\\Support\\Chat\\RateLimiter::getRemaining",
        "fqmn": "App\\Support\\Chat\\RateLimiter@getRemaining",
        "expected_test_path": "tests/Unit/RateLimiterTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Chat\\RateLimiter;\n\nclass RateLimiterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Chat\\RateLimiter@getRemaining\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getremaining_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Chat\\RateLimiter@getRemaining is PROOF_READY but no test file at tests/Unit/RateLimiterTest.php is in the MANUAL allowlist. 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/Chat/RateLimiter.php::App\\Support\\Chat\\RateLimiter::getResetTime",
        "fqmn": "App\\Support\\Chat\\RateLimiter@getResetTime",
        "expected_test_path": "tests/Unit/RateLimiterTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Chat\\RateLimiter;\n\nclass RateLimiterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Chat\\RateLimiter@getResetTime\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getresettime_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Chat\\RateLimiter@getResetTime is PROOF_READY but no test file at tests/Unit/RateLimiterTest.php is in the MANUAL allowlist. 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/Chat/RateLimiter.php::App\\Support\\Chat\\RateLimiter::isAllowed",
        "fqmn": "App\\Support\\Chat\\RateLimiter@isAllowed",
        "expected_test_path": "tests/Unit/RateLimiterTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Chat\\RateLimiter;\n\nclass RateLimiterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Chat\\RateLimiter@isAllowed\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_isallowed_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Chat\\RateLimiter@isAllowed is PROOF_READY but no test file at tests/Unit/RateLimiterTest.php is in the MANUAL allowlist. 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/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::acquireLock",
        "fqmn": "App\\Support\\Chat\\StateRepository@acquireLock",
        "expected_test_path": "tests/Unit/StateRepositoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Chat\\StateRepository;\n\nclass StateRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Chat\\StateRepository@acquireLock\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_acquirelock_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Chat\\StateRepository@acquireLock is PROOF_READY but no test file at tests/Unit/StateRepositoryTest.php is in the MANUAL allowlist. 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/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::getConversationHistory",
        "fqmn": "App\\Support\\Chat\\StateRepository@getConversationHistory",
        "expected_test_path": "tests/Unit/StateRepositoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Chat\\StateRepository;\n\nclass StateRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Chat\\StateRepository@getConversationHistory\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getconversationhistory_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Chat\\StateRepository@getConversationHistory is PROOF_READY but no test file at tests/Unit/StateRepositoryTest.php is in the MANUAL allowlist. 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/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::getConversationId",
        "fqmn": "App\\Support\\Chat\\StateRepository@getConversationId",
        "expected_test_path": "tests/Unit/StateRepositoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Chat\\StateRepository;\n\nclass StateRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Chat\\StateRepository@getConversationId\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getconversationid_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Chat\\StateRepository@getConversationId is PROOF_READY but no test file at tests/Unit/StateRepositoryTest.php is in the MANUAL allowlist. 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/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::getLastMessageAt",
        "fqmn": "App\\Support\\Chat\\StateRepository@getLastMessageAt",
        "expected_test_path": "tests/Unit/StateRepositoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Chat\\StateRepository;\n\nclass StateRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Chat\\StateRepository@getLastMessageAt\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getlastmessageat_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Chat\\StateRepository@getLastMessageAt is PROOF_READY but no test file at tests/Unit/StateRepositoryTest.php is in the MANUAL allowlist. 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/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::getSessionState",
        "fqmn": "App\\Support\\Chat\\StateRepository@getSessionState",
        "expected_test_path": "tests/Unit/StateRepositoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Chat\\StateRepository;\n\nclass StateRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Chat\\StateRepository@getSessionState\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getsessionstate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Chat\\StateRepository@getSessionState is PROOF_READY but no test file at tests/Unit/StateRepositoryTest.php is in the MANUAL allowlist. 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/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::loadConversation",
        "fqmn": "App\\Support\\Chat\\StateRepository@loadConversation",
        "expected_test_path": "tests/Unit/StateRepositoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Chat\\StateRepository;\n\nclass StateRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Chat\\StateRepository@loadConversation\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_loadconversation_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Chat\\StateRepository@loadConversation is PROOF_READY but no test file at tests/Unit/StateRepositoryTest.php is in the MANUAL allowlist. 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/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::loadSession",
        "fqmn": "App\\Support\\Chat\\StateRepository@loadSession",
        "expected_test_path": "tests/Unit/StateRepositoryTest.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\\Chat\\StateRepository;\n\nclass StateRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Chat\\StateRepository@loadSession\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_loadsession_behaves_correctly(): void\n    {\n\n        // TODO: set up test data 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\\Chat\\StateRepository@loadSession is PROOF_READY but no test file at tests/Unit/StateRepositoryTest.php is in the MANUAL allowlist. 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/Chat/StateRepository.php::App\\Support\\Chat\\StateRepository::trimHistory",
        "fqmn": "App\\Support\\Chat\\StateRepository@trimHistory",
        "expected_test_path": "tests/Unit/StateRepositoryTest.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\\Chat\\StateRepository;\n\nclass StateRepositoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Chat\\StateRepository@trimHistory\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_trimhistory_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Chat\\StateRepository@trimHistory is PROOF_READY but no test file at tests/Unit/StateRepositoryTest.php is in the MANUAL allowlist. 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/FactoryToolkit.php::App\\Support\\FactoryToolkit::factoryFullCycle",
        "fqmn": "App\\Support\\FactoryToolkit@factoryFullCycle",
        "expected_test_path": "tests/Unit/FactoryToolkitTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\FactoryToolkit;\n\nclass FactoryToolkitTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\FactoryToolkit@factoryFullCycle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_factoryfullcycle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\FactoryToolkit@factoryFullCycle is PROOF_READY but no test file at tests/Unit/FactoryToolkitTest.php is in the MANUAL allowlist. 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/FactoryToolkit.php::App\\Support\\FactoryToolkit::factoryLease",
        "fqmn": "App\\Support\\FactoryToolkit@factoryLease",
        "expected_test_path": "tests/Unit/FactoryToolkitTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\FactoryToolkit;\n\nclass FactoryToolkitTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\FactoryToolkit@factoryLease\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_factorylease_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\FactoryToolkit@factoryLease is PROOF_READY but no test file at tests/Unit/FactoryToolkitTest.php is in the MANUAL allowlist. 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/FactoryToolkit.php::App\\Support\\FactoryToolkit::factoryOrganization",
        "fqmn": "App\\Support\\FactoryToolkit@factoryOrganization",
        "expected_test_path": "tests/Unit/FactoryToolkitTest.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\\FactoryToolkit;\n\nclass FactoryToolkitTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\FactoryToolkit@factoryOrganization\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_factoryorganization_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\FactoryToolkit@factoryOrganization is PROOF_READY but no test file at tests/Unit/FactoryToolkitTest.php is in the MANUAL allowlist. 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/FactoryToolkit.php::App\\Support\\FactoryToolkit::factoryPropertyChain",
        "fqmn": "App\\Support\\FactoryToolkit@factoryPropertyChain",
        "expected_test_path": "tests/Unit/FactoryToolkitTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\FactoryToolkit;\n\nclass FactoryToolkitTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\FactoryToolkit@factoryPropertyChain\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_factorypropertychain_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\FactoryToolkit@factoryPropertyChain is PROOF_READY but no test file at tests/Unit/FactoryToolkitTest.php is in the MANUAL allowlist. 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/FactoryToolkit.php::App\\Support\\FactoryToolkit::factoryTenant",
        "fqmn": "App\\Support\\FactoryToolkit@factoryTenant",
        "expected_test_path": "tests/Unit/FactoryToolkitTest.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\\FactoryToolkit;\n\nclass FactoryToolkitTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\FactoryToolkit@factoryTenant\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_factorytenant_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\FactoryToolkit@factoryTenant is PROOF_READY but no test file at tests/Unit/FactoryToolkitTest.php is in the MANUAL allowlist. 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/FactoryToolkit.php::App\\Support\\FactoryToolkit::fullLeaseCycle",
        "fqmn": "App\\Support\\FactoryToolkit@fullLeaseCycle",
        "expected_test_path": "tests/Unit/FactoryToolkitTest.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\\FactoryToolkit;\n\nclass FactoryToolkitTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\FactoryToolkit@fullLeaseCycle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_fullleasecycle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\FactoryToolkit@fullLeaseCycle is PROOF_READY but no test file at tests/Unit/FactoryToolkitTest.php is in the MANUAL allowlist. 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/FactoryToolkit.php::App\\Support\\FactoryToolkit::organizationWithTenants",
        "fqmn": "App\\Support\\FactoryToolkit@organizationWithTenants",
        "expected_test_path": "tests/Unit/FactoryToolkitTest.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\\FactoryToolkit;\n\nclass FactoryToolkitTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\FactoryToolkit@organizationWithTenants\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_organizationwithtenants_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\FactoryToolkit@organizationWithTenants is PROOF_READY but no test file at tests/Unit/FactoryToolkitTest.php is in the MANUAL allowlist. 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/FactoryToolkit.php::App\\Support\\FactoryToolkit::paymentScenario",
        "fqmn": "App\\Support\\FactoryToolkit@paymentScenario",
        "expected_test_path": "tests/Unit/FactoryToolkitTest.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\\FactoryToolkit;\n\nclass FactoryToolkitTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\FactoryToolkit@paymentScenario\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_paymentscenario_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\FactoryToolkit@paymentScenario is PROOF_READY but no test file at tests/Unit/FactoryToolkitTest.php is in the MANUAL allowlist. 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/FactoryToolkit.php::App\\Support\\FactoryToolkit::propertyWithUnits",
        "fqmn": "App\\Support\\FactoryToolkit@propertyWithUnits",
        "expected_test_path": "tests/Unit/FactoryToolkitTest.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\\FactoryToolkit;\n\nclass FactoryToolkitTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\FactoryToolkit@propertyWithUnits\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_propertywithunits_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\FactoryToolkit@propertyWithUnits is PROOF_READY but no test file at tests/Unit/FactoryToolkitTest.php is in the MANUAL allowlist. 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/FactoryToolkit.php::App\\Support\\FactoryToolkit::tenantWithLease",
        "fqmn": "App\\Support\\FactoryToolkit@tenantWithLease",
        "expected_test_path": "tests/Unit/FactoryToolkitTest.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\\FactoryToolkit;\n\nclass FactoryToolkitTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\FactoryToolkit@tenantWithLease\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_tenantwithlease_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\FactoryToolkit@tenantWithLease is PROOF_READY but no test file at tests/Unit/FactoryToolkitTest.php is in the MANUAL allowlist. 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/Http/PreservingResponseFactory.php::App\\Support\\Http\\PreservingResponseFactory::json",
        "fqmn": "App\\Support\\Http\\PreservingResponseFactory@json",
        "expected_test_path": "tests/Feature/PreservingResponseFactoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Support\\Http\\PreservingResponseFactory;\n\nclass PreservingResponseFactoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Http\\PreservingResponseFactory@json\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_json_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Http\\PreservingResponseFactory@json is PROOF_READY but no test file at tests/Feature/PreservingResponseFactoryTest.php is in the MANUAL allowlist. 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/OutreachAI/AdaptiveWeightStore.php::App\\Support\\OutreachAI\\AdaptiveWeightStore::decreaseWeight",
        "fqmn": "App\\Support\\OutreachAI\\AdaptiveWeightStore@decreaseWeight",
        "expected_test_path": "tests/Unit/AdaptiveWeightStoreTest.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\\OutreachAI\\AdaptiveWeightStore;\n\nclass AdaptiveWeightStoreTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\OutreachAI\\AdaptiveWeightStore@decreaseWeight\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_decreaseweight_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\OutreachAI\\AdaptiveWeightStore@decreaseWeight is PROOF_READY but no test file at tests/Unit/AdaptiveWeightStoreTest.php is in the MANUAL allowlist. 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/OutreachAI/AdaptiveWeightStore.php::App\\Support\\OutreachAI\\AdaptiveWeightStore::get",
        "fqmn": "App\\Support\\OutreachAI\\AdaptiveWeightStore@get",
        "expected_test_path": "tests/Unit/AdaptiveWeightStoreTest.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\\OutreachAI\\AdaptiveWeightStore;\n\nclass AdaptiveWeightStoreTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\OutreachAI\\AdaptiveWeightStore@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\n        // TODO: 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\\OutreachAI\\AdaptiveWeightStore@get is PROOF_READY but no test file at tests/Unit/AdaptiveWeightStoreTest.php is in the MANUAL allowlist. 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/OutreachAI/AdaptiveWeightStore.php::App\\Support\\OutreachAI\\AdaptiveWeightStore::increaseWeight",
        "fqmn": "App\\Support\\OutreachAI\\AdaptiveWeightStore@increaseWeight",
        "expected_test_path": "tests/Unit/AdaptiveWeightStoreTest.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\\OutreachAI\\AdaptiveWeightStore;\n\nclass AdaptiveWeightStoreTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\OutreachAI\\AdaptiveWeightStore@increaseWeight\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_increaseweight_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\OutreachAI\\AdaptiveWeightStore@increaseWeight is PROOF_READY but no test file at tests/Unit/AdaptiveWeightStoreTest.php is in the MANUAL allowlist. 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/OutreachAI/AdaptiveWeightStore.php::App\\Support\\OutreachAI\\AdaptiveWeightStore::rollbackToPrevious",
        "fqmn": "App\\Support\\OutreachAI\\AdaptiveWeightStore@rollbackToPrevious",
        "expected_test_path": "tests/Unit/AdaptiveWeightStoreTest.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\\OutreachAI\\AdaptiveWeightStore;\n\nclass AdaptiveWeightStoreTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\OutreachAI\\AdaptiveWeightStore@rollbackToPrevious\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_rollbacktoprevious_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\OutreachAI\\AdaptiveWeightStore@rollbackToPrevious is PROOF_READY but no test file at tests/Unit/AdaptiveWeightStoreTest.php is in the MANUAL allowlist. 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/OutreachAI/AdaptiveWeightStore.php::App\\Support\\OutreachAI\\AdaptiveWeightStore::update",
        "fqmn": "App\\Support\\OutreachAI\\AdaptiveWeightStore@update",
        "expected_test_path": "tests/Unit/AdaptiveWeightStoreTest.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\\OutreachAI\\AdaptiveWeightStore;\n\nclass AdaptiveWeightStoreTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\OutreachAI\\AdaptiveWeightStore@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\\Support\\OutreachAI\\AdaptiveWeightStore@update is PROOF_READY but no test file at tests/Unit/AdaptiveWeightStoreTest.php is in the MANUAL allowlist. 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/OutreachAI/Budget/CurrencyNormalizer.php::App\\Support\\OutreachAI\\Budget\\CurrencyNormalizer::normalize",
        "fqmn": "App\\Support\\OutreachAI\\Budget\\CurrencyNormalizer@normalize",
        "expected_test_path": "tests/Unit/CurrencyNormalizerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\Budget\\CurrencyNormalizer;\n\nclass CurrencyNormalizerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\OutreachAI\\Budget\\CurrencyNormalizer@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\\Support\\OutreachAI\\Budget\\CurrencyNormalizer@normalize is PROOF_READY but no test file at tests/Unit/CurrencyNormalizerTest.php is in the MANUAL allowlist. 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/OutreachAI/ContradictionDetector.php::App\\Support\\OutreachAI\\ContradictionDetector::detectContradiction",
        "fqmn": "App\\Support\\OutreachAI\\ContradictionDetector@detectContradiction",
        "expected_test_path": "tests/Unit/ContradictionDetectorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\ContradictionDetector;\n\nclass ContradictionDetectorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\OutreachAI\\ContradictionDetector@detectContradiction\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_detectcontradiction_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\OutreachAI\\ContradictionDetector@detectContradiction is PROOF_READY but no test file at tests/Unit/ContradictionDetectorTest.php is in the MANUAL allowlist. 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/OutreachAI/GoalAlignmentScorer.php::App\\Support\\OutreachAI\\GoalAlignmentScorer::score",
        "fqmn": "App\\Support\\OutreachAI\\GoalAlignmentScorer@score",
        "expected_test_path": "tests/Unit/GoalAlignmentScorerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\GoalAlignmentScorer;\n\nclass GoalAlignmentScorerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\OutreachAI\\GoalAlignmentScorer@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        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\OutreachAI\\GoalAlignmentScorer@score is PROOF_READY but no test file at tests/Unit/GoalAlignmentScorerTest.php is in the MANUAL allowlist. 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/OutreachAI/Knowledge/FAQTemplateRegistry.php::App\\Support\\OutreachAI\\Knowledge\\FAQTemplateRegistry::getTemplates",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\FAQTemplateRegistry@getTemplates",
        "expected_test_path": "tests/Unit/FAQTemplateRegistryTest.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\\OutreachAI\\Knowledge\\FAQTemplateRegistry;\n\nclass FAQTemplateRegistryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\OutreachAI\\Knowledge\\FAQTemplateRegistry@getTemplates\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettemplates_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\OutreachAI\\Knowledge\\FAQTemplateRegistry@getTemplates is PROOF_READY but no test file at tests/Unit/FAQTemplateRegistryTest.php is in the MANUAL allowlist. 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/OutreachAI/Knowledge/FAQTemplateRegistry.php::App\\Support\\OutreachAI\\Knowledge\\FAQTemplateRegistry::match",
        "fqmn": "App\\Support\\OutreachAI\\Knowledge\\FAQTemplateRegistry@match",
        "expected_test_path": "tests/Unit/FAQTemplateRegistryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\Knowledge\\FAQTemplateRegistry;\n\nclass FAQTemplateRegistryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\OutreachAI\\Knowledge\\FAQTemplateRegistry@match\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_match_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\OutreachAI\\Knowledge\\FAQTemplateRegistry@match is PROOF_READY but no test file at tests/Unit/FAQTemplateRegistryTest.php is in the MANUAL allowlist. 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/OutreachAI/Persona/PersonaEnforcer.php::App\\Support\\OutreachAI\\Persona\\PersonaEnforcer::enforce",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\PersonaEnforcer@enforce",
        "expected_test_path": "tests/Unit/PersonaEnforcerTest.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\\OutreachAI\\Persona\\PersonaEnforcer;\n\nclass PersonaEnforcerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\OutreachAI\\Persona\\PersonaEnforcer@enforce\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_enforce_behaves_correctly(): void\n    {\n\n        // TODO: set up test data 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\\OutreachAI\\Persona\\PersonaEnforcer@enforce is PROOF_READY but no test file at tests/Unit/PersonaEnforcerTest.php is in the MANUAL allowlist. 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/OutreachAI/Persona/ToneSelector.php::App\\Support\\OutreachAI\\Persona\\ToneSelector::getToneConstraints",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\ToneSelector@getToneConstraints",
        "expected_test_path": "tests/Unit/ToneSelectorTest.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\\OutreachAI\\Persona\\ToneSelector;\n\nclass ToneSelectorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\OutreachAI\\Persona\\ToneSelector@getToneConstraints\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettoneconstraints_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\OutreachAI\\Persona\\ToneSelector@getToneConstraints is PROOF_READY but no test file at tests/Unit/ToneSelectorTest.php is in the MANUAL allowlist. 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/OutreachAI/Persona/ToneSelector.php::App\\Support\\OutreachAI\\Persona\\ToneSelector::getToneInstructions",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\ToneSelector@getToneInstructions",
        "expected_test_path": "tests/Unit/ToneSelectorTest.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\\OutreachAI\\Persona\\ToneSelector;\n\nclass ToneSelectorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\OutreachAI\\Persona\\ToneSelector@getToneInstructions\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettoneinstructions_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\OutreachAI\\Persona\\ToneSelector@getToneInstructions is PROOF_READY but no test file at tests/Unit/ToneSelectorTest.php is in the MANUAL allowlist. 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/OutreachAI/Persona/ToneSelector.php::App\\Support\\OutreachAI\\Persona\\ToneSelector::selectTone",
        "fqmn": "App\\Support\\OutreachAI\\Persona\\ToneSelector@selectTone",
        "expected_test_path": "tests/Unit/ToneSelectorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\OutreachAI\\Persona\\ToneSelector;\n\nclass ToneSelectorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\OutreachAI\\Persona\\ToneSelector@selectTone\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_selecttone_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\OutreachAI\\Persona\\ToneSelector@selectTone is PROOF_READY but no test file at tests/Unit/ToneSelectorTest.php is in the MANUAL allowlist. 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/OutreachAI/Safety/GPTContentFilter.php::App\\Support\\OutreachAI\\Safety\\GPTContentFilter::validate",
        "fqmn": "App\\Support\\OutreachAI\\Safety\\GPTContentFilter@validate",
        "expected_test_path": "tests/Unit/GPTContentFilterTest.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\\OutreachAI\\Safety\\GPTContentFilter;\n\nclass GPTContentFilterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\OutreachAI\\Safety\\GPTContentFilter@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\\Support\\OutreachAI\\Safety\\GPTContentFilter@validate is PROOF_READY but no test file at tests/Unit/GPTContentFilterTest.php is in the MANUAL allowlist. 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/Scopes/OrganizationScope.php::App\\Support\\Scopes\\OrganizationScope::apply",
        "fqmn": "App\\Support\\Scopes\\OrganizationScope@apply",
        "expected_test_path": "tests/Unit/OrganizationScopeTest.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\\Scopes\\OrganizationScope;\n\nclass OrganizationScopeTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Scopes\\OrganizationScope@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\\Support\\Scopes\\OrganizationScope@apply is PROOF_READY but no test file at tests/Unit/OrganizationScopeTest.php is in the MANUAL allowlist. 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/Services/UnifiedPhoneNormalizer.php::App\\Support\\Services\\UnifiedPhoneNormalizer::normalize",
        "fqmn": "App\\Support\\Services\\UnifiedPhoneNormalizer@normalize",
        "expected_test_path": "tests/Feature/UnifiedPhoneNormalizerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Support\\Services\\UnifiedPhoneNormalizer;\n\nclass UnifiedPhoneNormalizerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Services\\UnifiedPhoneNormalizer@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\n\n        // TODO: set up test data 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\\Services\\UnifiedPhoneNormalizer@normalize is PROOF_READY but no test file at tests/Feature/UnifiedPhoneNormalizerTest.php is in the MANUAL allowlist. 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/Services/UnifiedPhoneNormalizer.php::App\\Support\\Services\\UnifiedPhoneNormalizer::normalizeToE164",
        "fqmn": "App\\Support\\Services\\UnifiedPhoneNormalizer@normalizeToE164",
        "expected_test_path": "tests/Feature/UnifiedPhoneNormalizerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Support\\Services\\UnifiedPhoneNormalizer;\n\nclass UnifiedPhoneNormalizerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Services\\UnifiedPhoneNormalizer@normalizeToE164\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_normalizetoe164_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Services\\UnifiedPhoneNormalizer@normalizeToE164 is PROOF_READY but no test file at tests/Feature/UnifiedPhoneNormalizerTest.php is in the MANUAL allowlist. 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/Subscription/Actions/StartFeaturePreviewAction.php::App\\Support\\Subscription\\Actions\\StartFeaturePreviewAction::execute",
        "fqmn": "App\\Support\\Subscription\\Actions\\StartFeaturePreviewAction@execute",
        "expected_test_path": "tests/Unit/StartFeaturePreviewActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Subscription\\Actions\\StartFeaturePreviewAction;\n\nclass StartFeaturePreviewActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Subscription\\Actions\\StartFeaturePreviewAction@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Subscription\\Actions\\StartFeaturePreviewAction@execute is PROOF_READY but no test file at tests/Unit/StartFeaturePreviewActionTest.php is in the MANUAL allowlist. 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/Testing/LogFake.php::App\\Support\\Testing\\LogFake::__call",
        "fqmn": "App\\Support\\Testing\\LogFake@__call",
        "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\\Testing\\LogFake;\n\nclass LogFakeTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Testing\\LogFake@__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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Testing\\LogFake@__call 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/Testing/LogFake.php::App\\Support\\Testing\\LogFake::assertLogged",
        "fqmn": "App\\Support\\Testing\\LogFake@assertLogged",
        "expected_test_path": "tests/Unit/LogFakeTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Testing\\LogFake;\n\nclass LogFakeTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Testing\\LogFake@assertLogged\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_assertlogged_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: 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\\Support\\Testing\\LogFake@assertLogged 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/Testing/LogFake.php::App\\Support\\Testing\\LogFake::channel",
        "fqmn": "App\\Support\\Testing\\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\\Testing\\LogFake;\n\nclass LogFakeTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Testing\\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\\Testing\\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/Testing/LogFake.php::App\\Support\\Testing\\LogFake::driver",
        "fqmn": "App\\Support\\Testing\\LogFake@driver",
        "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\\Testing\\LogFake;\n\nclass LogFakeTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Testing\\LogFake@driver\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_driver_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Testing\\LogFake@driver 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/Testing/LogFake.php::App\\Support\\Testing\\LogFake::stack",
        "fqmn": "App\\Support\\Testing\\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\\Testing\\LogFake;\n\nclass LogFakeTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Testing\\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\\Testing\\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/Testing/TestDetector.php::App\\Support\\Testing\\TestDetector::isTested",
        "fqmn": "App\\Support\\Testing\\TestDetector@isTested",
        "expected_test_path": "tests/Unit/TestDetectorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Testing\\TestDetector;\n\nclass TestDetectorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Testing\\TestDetector@isTested\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_istested_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Testing\\TestDetector@isTested is PROOF_READY but no test file at tests/Unit/TestDetectorTest.php is in the 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::/__sate/outreach-ai/optout/confirmation::closure",
        "fqmn": "route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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::/__sate/outreach-ai/optout/confirmation::closure;\n\nclass route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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::/__sate/outreach-ai/optout/confirmation::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::get::/__sate/outreach-ai/optout/confirmation::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::get::/files/stats::App\\Api\\Controllers\\FileController::stats",
        "fqmn": "App\\Api\\Controllers\\FileController@stats",
        "expected_test_path": "tests/Unit/FileControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\FileController;\n\nclass FileControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\FileController@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\\Api\\Controllers\\FileController@stats is PROOF_READY but no test file at tests/Unit/FileControllerTest.php is in the 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::closure",
        "fqmn": "route::routes/api.php::get::/health::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::get::/health::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::/health::closure;\n\nclass route::routes/api.php::get::/health::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::get::/health::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::/health::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::get::/health::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::get::/invitations::App\\Http\\Controllers\\InvitationController::index",
        "fqmn": "App\\Http\\Controllers\\InvitationController@index",
        "expected_test_path": "tests/Feature/InvitationControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\InvitationController;\n\nclass InvitationControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\InvitationController@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\\InvitationController@index is PROOF_READY but no test file at tests/Feature/InvitationControllerTest.php is in the 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::/landlord/dashboard::App\\Api\\Controllers\\LandlordDashboardController::dashboard",
        "fqmn": "App\\Api\\Controllers\\LandlordDashboardController@dashboard",
        "expected_test_path": "tests/Unit/LandlordDashboardControllerTest.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\\Api\\Controllers\\LandlordDashboardController;\n\nclass LandlordDashboardControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\LandlordDashboardController@dashboard\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_dashboard_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\LandlordDashboardController@dashboard is PROOF_READY but no test file at tests/Unit/LandlordDashboardControllerTest.php is in the 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::/landlords::App\\Api\\Controllers\\LandlordController::index",
        "fqmn": "App\\Api\\Controllers\\LandlordController@index",
        "expected_test_path": "tests/Unit/LandlordControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\LandlordController;\n\nclass LandlordControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\LandlordController@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\\Api\\Controllers\\LandlordController@index is PROOF_READY but no test file at tests/Unit/LandlordControllerTest.php is in the 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::/leases::App\\Api\\Controllers\\LeaseController::index",
        "fqmn": "App\\Api\\Controllers\\LeaseController@index",
        "expected_test_path": "tests/Unit/LeaseControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\LeaseController;\n\nclass LeaseControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\LeaseController@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\\Api\\Controllers\\LeaseController@index is PROOF_READY but no test file at tests/Unit/LeaseControllerTest.php is in the 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::/maintenance/digest-preferences::App\\Http\\Controllers\\Api\\MaintenanceDigestPreferencesController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceDigestPreferencesController@show",
        "expected_test_path": "tests/Feature/MaintenanceDigestPreferencesControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\MaintenanceDigestPreferencesController;\n\nclass MaintenanceDigestPreferencesControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\MaintenanceDigestPreferencesController@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\\MaintenanceDigestPreferencesController@show is PROOF_READY but no test file at tests/Feature/MaintenanceDigestPreferencesControllerTest.php is in the 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::/maintenance/metrics::App\\Http\\Controllers\\Api\\MaintenanceMetricsController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceMetricsController@index",
        "expected_test_path": "tests/Feature/MaintenanceMetricsControllerTest.php",
        "intent": null,
        "intent_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\\MaintenanceMetricsController;\n\nclass MaintenanceMetricsControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\MaintenanceMetricsController@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\\MaintenanceMetricsController@index is PROOF_READY but no test file at tests/Feature/MaintenanceMetricsControllerTest.php is in the 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::/maintenance/slas::App\\Http\\Controllers\\Api\\MaintenanceSlaController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceSlaController@index",
        "expected_test_path": "tests/Feature/MaintenanceSlaControllerTest.php",
        "intent": null,
        "intent_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\\MaintenanceSlaController;\n\nclass MaintenanceSlaControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\MaintenanceSlaController@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\\MaintenanceSlaController@index is PROOF_READY but no test file at tests/Feature/MaintenanceSlaControllerTest.php is in the 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::/maintenance/tickets::App\\Http\\Controllers\\Api\\MaintenanceTicketController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@index",
        "expected_test_path": "tests/Feature/MaintenanceTicketControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\MaintenanceTicketController;\n\nclass MaintenanceTicketControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\MaintenanceTicketController@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\\MaintenanceTicketController@index is PROOF_READY but no test file at tests/Feature/MaintenanceTicketControllerTest.php is in the 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::/org/deductions::App\\Api\\Controllers\\OrgDeductionSettingsController::show",
        "fqmn": "App\\Api\\Controllers\\OrgDeductionSettingsController@show",
        "expected_test_path": "tests/Unit/OrgDeductionSettingsControllerTest.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\\Api\\Controllers\\OrgDeductionSettingsController;\n\nclass OrgDeductionSettingsControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\OrgDeductionSettingsController@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    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\OrgDeductionSettingsController@show is PROOF_READY but no test file at tests/Unit/OrgDeductionSettingsControllerTest.php is in the 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::/payment-proofs::App\\Api\\Controllers\\PaymentProofController::index",
        "fqmn": "App\\Api\\Controllers\\PaymentProofController@index",
        "expected_test_path": "tests/Unit/PaymentProofControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\PaymentProofController;\n\nclass PaymentProofControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\PaymentProofController@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\\Api\\Controllers\\PaymentProofController@index is PROOF_READY but no test file at tests/Unit/PaymentProofControllerTest.php is in the 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::/payments::App\\Api\\Controllers\\PaymentController::index",
        "fqmn": "App\\Api\\Controllers\\PaymentController@index",
        "expected_test_path": "tests/Unit/PaymentControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\PaymentController;\n\nclass PaymentControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\PaymentController@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\\Api\\Controllers\\PaymentController@index is PROOF_READY but no test file at tests/Unit/PaymentControllerTest.php is in the 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::/predictions/conversation/{conversation}/latest::App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController::getLatest",
        "fqmn": "App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController@getLatest",
        "expected_test_path": "tests/Feature/PredictionControllerTest.php",
        "intent": null,
        "intent_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\\OutreachAI\\PredictionController;\n\nclass PredictionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\OutreachAI\\PredictionController@getLatest\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getlatest_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\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\\OutreachAI\\PredictionController@getLatest is PROOF_READY but no test file at tests/Feature/PredictionControllerTest.php is in the 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::/properties::App\\Api\\Controllers\\PropertyController::index",
        "fqmn": "App\\Api\\Controllers\\PropertyController@index",
        "expected_test_path": "tests/Unit/PropertyControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\PropertyController;\n\nclass PropertyControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\PropertyController@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\\Api\\Controllers\\PropertyController@index is PROOF_READY but no test file at tests/Unit/PropertyControllerTest.php is in the 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::/reminders::App\\Api\\Controllers\\ReminderController::index",
        "fqmn": "App\\Api\\Controllers\\ReminderController@index",
        "expected_test_path": "tests/Unit/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\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\ReminderController;\n\nclass ReminderControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\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\\Api\\Controllers\\ReminderController@index is PROOF_READY but no test file at tests/Unit/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_route::routes/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::get::/rent-cycles::App\\Api\\Controllers\\RentCycleController::index",
        "fqmn": "App\\Api\\Controllers\\RentCycleController@index",
        "expected_test_path": "tests/Unit/RentCycleControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\RentCycleController;\n\nclass RentCycleControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\RentCycleController@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\\Api\\Controllers\\RentCycleController@index is PROOF_READY but no test file at tests/Unit/RentCycleControllerTest.php is in the 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::/reports/organization-dashboard::App\\Api\\Controllers\\ReportController::organizationDashboard",
        "fqmn": "App\\Api\\Controllers\\ReportController@organizationDashboard",
        "expected_test_path": "tests/Unit/ReportControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\ReportController;\n\nclass ReportControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\ReportController@organizationDashboard\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_organizationdashboard_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\ReportController@organizationDashboard is PROOF_READY but no test file at tests/Unit/ReportControllerTest.php is in the 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::/subscriptions/current::App\\Api\\Controllers\\SubscriptionController::current",
        "fqmn": "App\\Api\\Controllers\\SubscriptionController@current",
        "expected_test_path": "tests/Unit/SubscriptionControllerTest.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\\Api\\Controllers\\SubscriptionController;\n\nclass SubscriptionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\SubscriptionController@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\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\SubscriptionController@current is PROOF_READY but no test file at tests/Unit/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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::get::/tenant-dashboard::App\\Api\\Controllers\\TenantDashboardController::dashboard",
        "fqmn": "App\\Api\\Controllers\\TenantDashboardController@dashboard",
        "expected_test_path": "tests/Unit/TenantDashboardControllerTest.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\\Api\\Controllers\\TenantDashboardController;\n\nclass TenantDashboardControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\TenantDashboardController@dashboard\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_dashboard_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\TenantDashboardController@dashboard is PROOF_READY but no test file at tests/Unit/TenantDashboardControllerTest.php is in the 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::/tenant/dashboard::App\\Api\\Controllers\\TenantDashboardController::dashboard",
        "fqmn": "App\\Api\\Controllers\\TenantDashboardController@dashboard",
        "expected_test_path": "tests/Unit/TenantDashboardControllerTest.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\\Api\\Controllers\\TenantDashboardController;\n\nclass TenantDashboardControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\TenantDashboardController@dashboard\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_dashboard_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\TenantDashboardController@dashboard is PROOF_READY but no test file at tests/Unit/TenantDashboardControllerTest.php is in the 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::/tenants::App\\Api\\Controllers\\TenantController::index",
        "fqmn": "App\\Api\\Controllers\\TenantController@index",
        "expected_test_path": "tests/Unit/TenantControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\TenantController;\n\nclass TenantControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\TenantController@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\\Api\\Controllers\\TenantController@index is PROOF_READY but no test file at tests/Unit/TenantControllerTest.php is in the 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::/testing/outreach-ai/pricing/suggest-plan::App\\Http\\Controllers\\Testing\\OutreachPricingSuggestController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\OutreachPricingSuggestController@__invoke",
        "expected_test_path": "tests/Feature/OutreachPricingSuggestControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Testing\\OutreachPricingSuggestController;\n\nclass OutreachPricingSuggestControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Testing\\OutreachPricingSuggestController@__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\\Testing\\OutreachPricingSuggestController@__invoke is PROOF_READY but no test file at tests/Feature/OutreachPricingSuggestControllerTest.php is in the 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::/testing/sate/dashboard/performance-indicators::App\\Http\\Controllers\\Testing\\DashboardPerformanceIndicatorsController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\DashboardPerformanceIndicatorsController@__invoke",
        "expected_test_path": "tests/Feature/DashboardPerformanceIndicatorsControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Testing\\DashboardPerformanceIndicatorsController;\n\nclass DashboardPerformanceIndicatorsControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Testing\\DashboardPerformanceIndicatorsController@__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\\Testing\\DashboardPerformanceIndicatorsController@__invoke is PROOF_READY but no test file at tests/Feature/DashboardPerformanceIndicatorsControllerTest.php is in the 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::/testing/sate/dashboard/quick-stats::App\\Http\\Controllers\\Testing\\DashboardQuickStatsController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\DashboardQuickStatsController@__invoke",
        "expected_test_path": "tests/Feature/DashboardQuickStatsControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Testing\\DashboardQuickStatsController;\n\nclass DashboardQuickStatsControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Testing\\DashboardQuickStatsController@__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\\Testing\\DashboardQuickStatsController@__invoke is PROOF_READY but no test file at tests/Feature/DashboardQuickStatsControllerTest.php is in the 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::/testing/sate/landlord/overview-stats::App\\Http\\Controllers\\Testing\\LandlordOverviewStatsController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\LandlordOverviewStatsController@__invoke",
        "expected_test_path": "tests/Feature/LandlordOverviewStatsControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Testing\\LandlordOverviewStatsController;\n\nclass LandlordOverviewStatsControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Testing\\LandlordOverviewStatsController@__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\\Testing\\LandlordOverviewStatsController@__invoke is PROOF_READY but no test file at tests/Feature/LandlordOverviewStatsControllerTest.php is in the 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::/tickets/approve/{token}::closure",
        "fqmn": "route::routes/api.php::get::/tickets/approve/{token}::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::get::/tickets/approve/{token}::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::/tickets/approve/{token}::closure;\n\nclass route::routes/api.php::get::/tickets/approve/{token}::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::get::/tickets/approve/{token}::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::/tickets/approve/{token}::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::get::/tickets/approve/{token}::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::get::/transfers/pending::App\\Api\\Controllers\\TransferController::pending",
        "fqmn": "App\\Api\\Controllers\\TransferController@pending",
        "expected_test_path": "tests/Unit/TransferControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\TransferController;\n\nclass TransferControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\TransferController@pending\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_pending_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\TransferController@pending is PROOF_READY but no test file at tests/Unit/TransferControllerTest.php is in the 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::/units::App\\Api\\Controllers\\UnitController::index",
        "fqmn": "App\\Api\\Controllers\\UnitController@index",
        "expected_test_path": "tests/Unit/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\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Api\\Controllers\\UnitController;\n\nclass UnitControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\UnitController@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\\Api\\Controllers\\UnitController@index is PROOF_READY but no test file at tests/Unit/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_route::routes/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::get::/whatsapp/agencies/profile::App\\Http\\Controllers\\AgencyWhatsAppProfileController::show",
        "fqmn": "App\\Http\\Controllers\\AgencyWhatsAppProfileController@show",
        "expected_test_path": "tests/Feature/AgencyWhatsAppProfileControllerTest.php",
        "intent": null,
        "intent_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\\AgencyWhatsAppProfileController;\n\nclass AgencyWhatsAppProfileControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\AgencyWhatsAppProfileController@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\\AgencyWhatsAppProfileController@show is PROOF_READY but no test file at tests/Feature/AgencyWhatsAppProfileControllerTest.php is in the 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::/whatsapp/profile::App\\Http\\Controllers\\AgencyWhatsAppProfileController::show",
        "fqmn": "App\\Http\\Controllers\\AgencyWhatsAppProfileController@show",
        "expected_test_path": "tests/Feature/AgencyWhatsAppProfileControllerTest.php",
        "intent": null,
        "intent_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\\AgencyWhatsAppProfileController;\n\nclass AgencyWhatsAppProfileControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\AgencyWhatsAppProfileController@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\\AgencyWhatsAppProfileController@show is PROOF_READY but no test file at tests/Feature/AgencyWhatsAppProfileControllerTest.php is in the 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::post::/__sate/outreach-ai/drift/analyze::closure",
        "fqmn": "route::routes/api.php::post::/__sate/outreach-ai/drift/analyze::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/__sate/outreach-ai/drift/analyze::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::post::/__sate/outreach-ai/drift/analyze::closure;\n\nclass route::routes/api.php::post::/__sate/outreach-ai/drift/analyze::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/__sate/outreach-ai/drift/analyze::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::post::/__sate/outreach-ai/drift/analyze::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/__sate/outreach-ai/drift/analyze::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/__sate/outreach-ai/misunderstanding-detect::closure",
        "fqmn": "route::routes/api.php::post::/__sate/outreach-ai/misunderstanding-detect::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/__sate/outreach-ai/misunderstanding-detect::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::post::/__sate/outreach-ai/misunderstanding-detect::closure;\n\nclass route::routes/api.php::post::/__sate/outreach-ai/misunderstanding-detect::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/__sate/outreach-ai/misunderstanding-detect::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::post::/__sate/outreach-ai/misunderstanding-detect::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/__sate/outreach-ai/misunderstanding-detect::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/__sate/outreach-ai/optout/detect::closure",
        "fqmn": "route::routes/api.php::post::/__sate/outreach-ai/optout/detect::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/__sate/outreach-ai/optout/detect::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::post::/__sate/outreach-ai/optout/detect::closure;\n\nclass route::routes/api.php::post::/__sate/outreach-ai/optout/detect::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/__sate/outreach-ai/optout/detect::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::post::/__sate/outreach-ai/optout/detect::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/__sate/outreach-ai/optout/detect::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/__sate/outreach-ai/trajectory/adjust::closure",
        "fqmn": "route::routes/api.php::post::/__sate/outreach-ai/trajectory/adjust::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/__sate/outreach-ai/trajectory/adjust::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::post::/__sate/outreach-ai/trajectory/adjust::closure;\n\nclass route::routes/api.php::post::/__sate/outreach-ai/trajectory/adjust::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/__sate/outreach-ai/trajectory/adjust::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::post::/__sate/outreach-ai/trajectory/adjust::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/__sate/outreach-ai/trajectory/adjust::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/__tests/outreach-ai/compliance/check::closure",
        "fqmn": "route::routes/api.php::post::/__tests/outreach-ai/compliance/check::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/__tests/outreach-ai/compliance/check::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::post::/__tests/outreach-ai/compliance/check::closure;\n\nclass route::routes/api.php::post::/__tests/outreach-ai/compliance/check::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/__tests/outreach-ai/compliance/check::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::post::/__tests/outreach-ai/compliance/check::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/__tests/outreach-ai/compliance/check::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/__tests/outreach-ai/knowledge/validate::closure",
        "fqmn": "route::routes/api.php::post::/__tests/outreach-ai/knowledge/validate::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/__tests/outreach-ai/knowledge/validate::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::post::/__tests/outreach-ai/knowledge/validate::closure;\n\nclass route::routes/api.php::post::/__tests/outreach-ai/knowledge/validate::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/__tests/outreach-ai/knowledge/validate::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::post::/__tests/outreach-ai/knowledge/validate::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/__tests/outreach-ai/knowledge/validate::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/bookings::App\\Api\\Controllers\\BookingController::store",
        "fqmn": "App\\Api\\Controllers\\BookingController@store",
        "expected_test_path": "tests/Unit/BookingControllerTest.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\\Api\\Controllers\\BookingController;\n\nclass BookingControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\BookingController@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\\Api\\Controllers\\BookingController@store is PROOF_READY but no test file at tests/Unit/BookingControllerTest.php is in the 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::post::/gateway/register::App\\Api\\Controllers\\GatewayController::register",
        "fqmn": "App\\Api\\Controllers\\GatewayController@register",
        "expected_test_path": "tests/Unit/GatewayControllerTest.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\\Api\\Controllers\\GatewayController;\n\nclass GatewayControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Api\\Controllers\\GatewayController@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        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Api\\Controllers\\GatewayController@register is PROOF_READY but no test file at tests/Unit/GatewayControllerTest.php is in the 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::post::/inbound::App\\Http\\Controllers\\Webhooks\\TwilioWebhookController::inbound",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\TwilioWebhookController@inbound",
        "expected_test_path": "tests/Feature/TwilioWebhookControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Webhooks\\TwilioWebhookController;\n\nclass TwilioWebhookControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Webhooks\\TwilioWebhookController@inbound\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_inbound_behaves_correctly(): void\n    {\n\n        // 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->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Webhooks\\TwilioWebhookController@inbound is PROOF_READY but no test file at tests/Feature/TwilioWebhookControllerTest.php is in the 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::post::/login::App\\Http\\Controllers\\Auth\\AuthController::login",
        "fqmn": "App\\Http\\Controllers\\Auth\\AuthController@login",
        "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\\Auth\\AuthController;\n\nclass AuthControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\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\\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_route::routes/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/maintenance/tickets/{ticket}/approve::App\\Http\\Controllers\\Api\\MaintenanceTicketController::approve",
        "fqmn": "App\\Http\\Controllers\\Api\\MaintenanceTicketController@approve",
        "expected_test_path": "tests/Feature/MaintenanceTicketControllerTest.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\\MaintenanceTicketController;\n\nclass MaintenanceTicketControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\MaintenanceTicketController@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\\MaintenanceTicketController@approve is PROOF_READY but no test file at tests/Feature/MaintenanceTicketControllerTest.php is in the 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::post::/testing/outreach-ai/conversations/{conversation}/inbound::App\\Http\\Controllers\\Testing\\OutreachConversationInboundController::store",
        "fqmn": "App\\Http\\Controllers\\Testing\\OutreachConversationInboundController@store",
        "expected_test_path": "tests/Feature/OutreachConversationInboundControllerTest.php",
        "intent": null,
        "intent_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\\Testing\\OutreachConversationInboundController;\n\nclass OutreachConversationInboundControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Testing\\OutreachConversationInboundController@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\\Testing\\OutreachConversationInboundController@store is PROOF_READY but no test file at tests/Feature/OutreachConversationInboundControllerTest.php is in the 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::post::/testing/outreach-ai/knowledge/validate-reply::App\\Http\\Controllers\\Testing\\OutreachKnowledgeValidateController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\OutreachKnowledgeValidateController@__invoke",
        "expected_test_path": "tests/Feature/OutreachKnowledgeValidateControllerTest.php",
        "intent": null,
        "intent_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\\Testing\\OutreachKnowledgeValidateController;\n\nclass OutreachKnowledgeValidateControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Testing\\OutreachKnowledgeValidateController@__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\\Testing\\OutreachKnowledgeValidateController@__invoke is PROOF_READY but no test file at tests/Feature/OutreachKnowledgeValidateControllerTest.php is in the 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::post::/testing/sate/auth/filament/agency-register-batch::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/auth/filament/agency-register-batch::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/auth/filament/agency-register-batch::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::post::/testing/sate/auth/filament/agency-register-batch::closure;\n\nclass route::routes/api.php::post::/testing/sate/auth/filament/agency-register-batch::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/auth/filament/agency-register-batch::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::post::/testing/sate/auth/filament/agency-register-batch::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/auth/filament/agency-register-batch::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/auth/filament/agency-register::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/auth/filament/agency-register::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/auth/filament/agency-register::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::post::/testing/sate/auth/filament/agency-register::closure;\n\nclass route::routes/api.php::post::/testing/sate/auth/filament/agency-register::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/auth/filament/agency-register::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::post::/testing/sate/auth/filament/agency-register::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/auth/filament/agency-register::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/credit-transactions/create::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/credit-transactions/create::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/credit-transactions/create::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::post::/testing/sate/billing/credit-transactions/create::closure;\n\nclass route::routes/api.php::post::/testing/sate/billing/credit-transactions/create::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/billing/credit-transactions/create::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::post::/testing/sate/billing/credit-transactions/create::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/billing/credit-transactions/create::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/dunning/evaluate::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/dunning/evaluate::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/dunning/evaluate::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::post::/testing/sate/billing/dunning/evaluate::closure;\n\nclass route::routes/api.php::post::/testing/sate/billing/dunning/evaluate::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/billing/dunning/evaluate::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::post::/testing/sate/billing/dunning/evaluate::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/billing/dunning/evaluate::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/dunning/policy-resolve::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/dunning/policy-resolve::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/dunning/policy-resolve::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::post::/testing/sate/billing/dunning/policy-resolve::closure;\n\nclass route::routes/api.php::post::/testing/sate/billing/dunning/policy-resolve::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/billing/dunning/policy-resolve::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::post::/testing/sate/billing/dunning/policy-resolve::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/billing/dunning/policy-resolve::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/dunning/run-attempt::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/dunning/run-attempt::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/dunning/run-attempt::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::post::/testing/sate/billing/dunning/run-attempt::closure;\n\nclass route::routes/api.php::post::/testing/sate/billing/dunning/run-attempt::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/billing/dunning/run-attempt::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::post::/testing/sate/billing/dunning/run-attempt::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/billing/dunning/run-attempt::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/dunning/start::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/dunning/start::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/dunning/start::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::post::/testing/sate/billing/dunning/start::closure;\n\nclass route::routes/api.php::post::/testing/sate/billing/dunning/start::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/billing/dunning/start::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::post::/testing/sate/billing/dunning/start::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/billing/dunning/start::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/invoices/generate-credit-topup::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/invoices/generate-credit-topup::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/invoices/generate-credit-topup::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::post::/testing/sate/billing/invoices/generate-credit-topup::closure;\n\nclass route::routes/api.php::post::/testing/sate/billing/invoices/generate-credit-topup::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/billing/invoices/generate-credit-topup::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::post::/testing/sate/billing/invoices/generate-credit-topup::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/billing/invoices/generate-credit-topup::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/invoices/generate-message-package::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/invoices/generate-message-package::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/invoices/generate-message-package::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::post::/testing/sate/billing/invoices/generate-message-package::closure;\n\nclass route::routes/api.php::post::/testing/sate/billing/invoices/generate-message-package::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/billing/invoices/generate-message-package::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::post::/testing/sate/billing/invoices/generate-message-package::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/billing/invoices/generate-message-package::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/invoices/generate-subscription::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/invoices/generate-subscription::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/invoices/generate-subscription::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::post::/testing/sate/billing/invoices/generate-subscription::closure;\n\nclass route::routes/api.php::post::/testing/sate/billing/invoices/generate-subscription::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/billing/invoices/generate-subscription::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::post::/testing/sate/billing/invoices/generate-subscription::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/billing/invoices/generate-subscription::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/subscription-event::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscription-event::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/subscription-event::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::post::/testing/sate/billing/subscription-event::closure;\n\nclass route::routes/api.php::post::/testing/sate/billing/subscription-event::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/billing/subscription-event::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::post::/testing/sate/billing/subscription-event::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/billing/subscription-event::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/subscription/add-credits::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscription/add-credits::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/subscription/add-credits::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::post::/testing/sate/billing/subscription/add-credits::closure;\n\nclass route::routes/api.php::post::/testing/sate/billing/subscription/add-credits::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/billing/subscription/add-credits::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::post::/testing/sate/billing/subscription/add-credits::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/billing/subscription/add-credits::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/subscription/create-soft-deleted::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscription/create-soft-deleted::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/subscription/create-soft-deleted::closureTest.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\\route::routes/api.php::post::/testing/sate/billing/subscription/create-soft-deleted::closure;\n\nclass route::routes/api.php::post::/testing/sate/billing/subscription/create-soft-deleted::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/billing/subscription/create-soft-deleted::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->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface route::routes/api.php::post::/testing/sate/billing/subscription/create-soft-deleted::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/billing/subscription/create-soft-deleted::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/subscription/suspend::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscription/suspend::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/subscription/suspend::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::post::/testing/sate/billing/subscription/suspend::closure;\n\nclass route::routes/api.php::post::/testing/sate/billing/subscription/suspend::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/billing/subscription/suspend::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::post::/testing/sate/billing/subscription/suspend::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/billing/subscription/suspend::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/subscriptions/auto-charge/run::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscriptions/auto-charge/run::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/subscriptions/auto-charge/run::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::post::/testing/sate/billing/subscriptions/auto-charge/run::closure;\n\nclass route::routes/api.php::post::/testing/sate/billing/subscriptions/auto-charge/run::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/billing/subscriptions/auto-charge/run::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::post::/testing/sate/billing/subscriptions/auto-charge/run::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/billing/subscriptions/auto-charge/run::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/subscriptions/convert-trial-to-paid::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscriptions/convert-trial-to-paid::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/subscriptions/convert-trial-to-paid::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::post::/testing/sate/billing/subscriptions/convert-trial-to-paid::closure;\n\nclass route::routes/api.php::post::/testing/sate/billing/subscriptions/convert-trial-to-paid::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/billing/subscriptions/convert-trial-to-paid::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::post::/testing/sate/billing/subscriptions/convert-trial-to-paid::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/billing/subscriptions/convert-trial-to-paid::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/subscriptions/evaluate-post-dunning-failure::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscriptions/evaluate-post-dunning-failure::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/subscriptions/evaluate-post-dunning-failure::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::post::/testing/sate/billing/subscriptions/evaluate-post-dunning-failure::closure;\n\nclass route::routes/api.php::post::/testing/sate/billing/subscriptions/evaluate-post-dunning-failure::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/billing/subscriptions/evaluate-post-dunning-failure::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::post::/testing/sate/billing/subscriptions/evaluate-post-dunning-failure::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/billing/subscriptions/evaluate-post-dunning-failure::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/subscriptions/move-to-active::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscriptions/move-to-active::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/subscriptions/move-to-active::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::post::/testing/sate/billing/subscriptions/move-to-active::closure;\n\nclass route::routes/api.php::post::/testing/sate/billing/subscriptions/move-to-active::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/billing/subscriptions/move-to-active::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::post::/testing/sate/billing/subscriptions/move-to-active::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/billing/subscriptions/move-to-active::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/subscriptions/transition::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/subscriptions/transition::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/subscriptions/transition::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::post::/testing/sate/billing/subscriptions/transition::closure;\n\nclass route::routes/api.php::post::/testing/sate/billing/subscriptions/transition::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/billing/subscriptions/transition::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::post::/testing/sate/billing/subscriptions/transition::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/billing/subscriptions/transition::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/tap-settlements/auto-allocate::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/tap-settlements/auto-allocate::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/tap-settlements/auto-allocate::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::post::/testing/sate/billing/tap-settlements/auto-allocate::closure;\n\nclass route::routes/api.php::post::/testing/sate/billing/tap-settlements/auto-allocate::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/billing/tap-settlements/auto-allocate::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::post::/testing/sate/billing/tap-settlements/auto-allocate::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/billing/tap-settlements/auto-allocate::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/tap-settlements/match::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/tap-settlements/match::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/tap-settlements/match::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::post::/testing/sate/billing/tap-settlements/match::closure;\n\nclass route::routes/api.php::post::/testing/sate/billing/tap-settlements/match::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/billing/tap-settlements/match::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::post::/testing/sate/billing/tap-settlements/match::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/billing/tap-settlements/match::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/tap-webhook/process-twice::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/tap-webhook/process-twice::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/tap-webhook/process-twice::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::post::/testing/sate/billing/tap-webhook/process-twice::closure;\n\nclass route::routes/api.php::post::/testing/sate/billing/tap-webhook/process-twice::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/billing/tap-webhook/process-twice::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::post::/testing/sate/billing/tap-webhook/process-twice::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/billing/tap-webhook/process-twice::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/tap-webhook/process::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/tap-webhook/process::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/tap-webhook/process::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::post::/testing/sate/billing/tap-webhook/process::closure;\n\nclass route::routes/api.php::post::/testing/sate/billing/tap-webhook/process::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/billing/tap-webhook/process::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::post::/testing/sate/billing/tap-webhook/process::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/billing/tap-webhook/process::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/zoho/analytics/invoice-anomalies::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/zoho/analytics/invoice-anomalies::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/zoho/analytics/invoice-anomalies::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::post::/testing/sate/billing/zoho/analytics/invoice-anomalies::closure;\n\nclass route::routes/api.php::post::/testing/sate/billing/zoho/analytics/invoice-anomalies::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/billing/zoho/analytics/invoice-anomalies::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::post::/testing/sate/billing/zoho/analytics/invoice-anomalies::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/billing/zoho/analytics/invoice-anomalies::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/zoho/analytics/monthly-invoice-stats::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/zoho/analytics/monthly-invoice-stats::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/zoho/analytics/monthly-invoice-stats::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::post::/testing/sate/billing/zoho/analytics/monthly-invoice-stats::closure;\n\nclass route::routes/api.php::post::/testing/sate/billing/zoho/analytics/monthly-invoice-stats::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/billing/zoho/analytics/monthly-invoice-stats::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::post::/testing/sate/billing/zoho/analytics/monthly-invoice-stats::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/billing/zoho/analytics/monthly-invoice-stats::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/zoho/analytics/vat-exposure::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/zoho/analytics/vat-exposure::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/zoho/analytics/vat-exposure::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::post::/testing/sate/billing/zoho/analytics/vat-exposure::closure;\n\nclass route::routes/api.php::post::/testing/sate/billing/zoho/analytics/vat-exposure::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/billing/zoho/analytics/vat-exposure::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::post::/testing/sate/billing/zoho/analytics/vat-exposure::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/billing/zoho/analytics/vat-exposure::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/zoho/sync-invoice::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/zoho/sync-invoice::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/zoho/sync-invoice::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::post::/testing/sate/billing/zoho/sync-invoice::closure;\n\nclass route::routes/api.php::post::/testing/sate/billing/zoho/sync-invoice::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/billing/zoho/sync-invoice::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::post::/testing/sate/billing/zoho/sync-invoice::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/billing/zoho/sync-invoice::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/billing/zoho/sync-tap-settlement::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/billing/zoho/sync-tap-settlement::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/billing/zoho/sync-tap-settlement::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::post::/testing/sate/billing/zoho/sync-tap-settlement::closure;\n\nclass route::routes/api.php::post::/testing/sate/billing/zoho/sync-tap-settlement::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/billing/zoho/sync-tap-settlement::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::post::/testing/sate/billing/zoho/sync-tap-settlement::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/billing/zoho/sync-tap-settlement::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/discount-code-usages/anonymous/record::App\\Http\\Controllers\\Testing\\RecordAnonymousDiscountCodeUsageController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\RecordAnonymousDiscountCodeUsageController@__invoke",
        "expected_test_path": "tests/Feature/RecordAnonymousDiscountCodeUsageControllerTest.php",
        "intent": null,
        "intent_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\\Testing\\RecordAnonymousDiscountCodeUsageController;\n\nclass RecordAnonymousDiscountCodeUsageControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Testing\\RecordAnonymousDiscountCodeUsageController@__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\\Testing\\RecordAnonymousDiscountCodeUsageController@__invoke is PROOF_READY but no test file at tests/Feature/RecordAnonymousDiscountCodeUsageControllerTest.php is in the 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::post::/testing/sate/discount-code-usages/subscription/record::App\\Http\\Controllers\\Testing\\RecordSubscriptionDiscountCodeUsageController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Testing\\RecordSubscriptionDiscountCodeUsageController@__invoke",
        "expected_test_path": "tests/Feature/RecordSubscriptionDiscountCodeUsageControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Testing\\RecordSubscriptionDiscountCodeUsageController;\n\nclass RecordSubscriptionDiscountCodeUsageControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Testing\\RecordSubscriptionDiscountCodeUsageController@__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\\Testing\\RecordSubscriptionDiscountCodeUsageController@__invoke is PROOF_READY but no test file at tests/Feature/RecordSubscriptionDiscountCodeUsageControllerTest.php is in the 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::post::/testing/sate/dunning/auto-charge/run::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/dunning/auto-charge/run::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/dunning/auto-charge/run::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/api.php::post::/testing/sate/dunning/auto-charge/run::closure;\n\nclass route::routes/api.php::post::/testing/sate/dunning/auto-charge/run::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/dunning/auto-charge/run::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/api.php::post::/testing/sate/dunning/auto-charge/run::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/dunning/auto-charge/run::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/dunning/resolve-policy::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/dunning/resolve-policy::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/dunning/resolve-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/api.php::post::/testing/sate/dunning/resolve-policy::closure;\n\nclass route::routes/api.php::post::/testing/sate/dunning/resolve-policy::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/dunning/resolve-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/api.php::post::/testing/sate/dunning/resolve-policy::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/dunning/resolve-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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/dunning/run-attempt::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/dunning/run-attempt::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/dunning/run-attempt::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::post::/testing/sate/dunning/run-attempt::closure;\n\nclass route::routes/api.php::post::/testing/sate/dunning/run-attempt::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/dunning/run-attempt::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::post::/testing/sate/dunning/run-attempt::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/dunning/run-attempt::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/dunning/start::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/dunning/start::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/dunning/start::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::post::/testing/sate/dunning/start::closure;\n\nclass route::routes/api.php::post::/testing/sate/dunning/start::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/dunning/start::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::post::/testing/sate/dunning/start::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/dunning/start::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/dunning/transition-active::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/dunning/transition-active::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/dunning/transition-active::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::post::/testing/sate/dunning/transition-active::closure;\n\nclass route::routes/api.php::post::/testing/sate/dunning/transition-active::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/dunning/transition-active::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::post::/testing/sate/dunning/transition-active::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/dunning/transition-active::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/email-template/apply-placeholders::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/email-template/apply-placeholders::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/email-template/apply-placeholders::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::post::/testing/sate/email-template/apply-placeholders::closure;\n\nclass route::routes/api.php::post::/testing/sate/email-template/apply-placeholders::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/email-template/apply-placeholders::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::post::/testing/sate/email-template/apply-placeholders::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/email-template/apply-placeholders::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/email-template/get-localized-content::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/email-template/get-localized-content::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/email-template/get-localized-content::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::post::/testing/sate/email-template/get-localized-content::closure;\n\nclass route::routes/api.php::post::/testing/sate/email-template/get-localized-content::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/email-template/get-localized-content::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::post::/testing/sate/email-template/get-localized-content::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/email-template/get-localized-content::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/email-template/get-template-for::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/email-template/get-template-for::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/email-template/get-template-for::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::post::/testing/sate/email-template/get-template-for::closure;\n\nclass route::routes/api.php::post::/testing/sate/email-template/get-template-for::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/email-template/get-template-for::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::post::/testing/sate/email-template/get-template-for::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/email-template/get-template-for::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/email-template/is-enabled-for-organization::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/email-template/is-enabled-for-organization::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/email-template/is-enabled-for-organization::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::post::/testing/sate/email-template/is-enabled-for-organization::closure;\n\nclass route::routes/api.php::post::/testing/sate/email-template/is-enabled-for-organization::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/email-template/is-enabled-for-organization::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::post::/testing/sate/email-template/is-enabled-for-organization::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/email-template/is-enabled-for-organization::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/files/security/scan-for-virus::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/files/security/scan-for-virus::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/files/security/scan-for-virus::closureTest.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\\route::routes/api.php::post::/testing/sate/files/security/scan-for-virus::closure;\n\nclass route::routes/api.php::post::/testing/sate/files/security/scan-for-virus::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/files/security/scan-for-virus::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->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface route::routes/api.php::post::/testing/sate/files/security/scan-for-virus::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/files/security/scan-for-virus::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/files/security/validate::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/files/security/validate::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/files/security/validate::closureTest.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\\route::routes/api.php::post::/testing/sate/files/security/validate::closure;\n\nclass route::routes/api.php::post::/testing/sate/files/security/validate::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/files/security/validate::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->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface route::routes/api.php::post::/testing/sate/files/security/validate::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/files/security/validate::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/maintenance/landlord-approval-request/notify::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/maintenance/landlord-approval-request/notify::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/maintenance/landlord-approval-request/notify::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::post::/testing/sate/maintenance/landlord-approval-request/notify::closure;\n\nclass route::routes/api.php::post::/testing/sate/maintenance/landlord-approval-request/notify::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/maintenance/landlord-approval-request/notify::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::post::/testing/sate/maintenance/landlord-approval-request/notify::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/maintenance/landlord-approval-request/notify::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/maintenance/landlord-approval-request/twilio::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/maintenance/landlord-approval-request/twilio::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/maintenance/landlord-approval-request/twilio::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::post::/testing/sate/maintenance/landlord-approval-request/twilio::closure;\n\nclass route::routes/api.php::post::/testing/sate/maintenance/landlord-approval-request/twilio::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/maintenance/landlord-approval-request/twilio::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::post::/testing/sate/maintenance/landlord-approval-request/twilio::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/maintenance/landlord-approval-request/twilio::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/maintenance/tenant-ticket-confirmation/notify::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/maintenance/tenant-ticket-confirmation/notify::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/maintenance/tenant-ticket-confirmation/notify::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::post::/testing/sate/maintenance/tenant-ticket-confirmation/notify::closure;\n\nclass route::routes/api.php::post::/testing/sate/maintenance/tenant-ticket-confirmation/notify::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/maintenance/tenant-ticket-confirmation/notify::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::post::/testing/sate/maintenance/tenant-ticket-confirmation/notify::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/maintenance/tenant-ticket-confirmation/notify::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/maintenance/tenant-ticket-confirmation/twilio::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/maintenance/tenant-ticket-confirmation/twilio::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/maintenance/tenant-ticket-confirmation/twilio::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::post::/testing/sate/maintenance/tenant-ticket-confirmation/twilio::closure;\n\nclass route::routes/api.php::post::/testing/sate/maintenance/tenant-ticket-confirmation/twilio::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/maintenance/tenant-ticket-confirmation/twilio::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::post::/testing/sate/maintenance/tenant-ticket-confirmation/twilio::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/maintenance/tenant-ticket-confirmation/twilio::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/maintenance/ticket-completed/notify::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/maintenance/ticket-completed/notify::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/maintenance/ticket-completed/notify::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::post::/testing/sate/maintenance/ticket-completed/notify::closure;\n\nclass route::routes/api.php::post::/testing/sate/maintenance/ticket-completed/notify::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/maintenance/ticket-completed/notify::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::post::/testing/sate/maintenance/ticket-completed/notify::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/maintenance/ticket-completed/notify::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/maintenance/worker-assigned/notify::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/maintenance/worker-assigned/notify::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/maintenance/worker-assigned/notify::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::post::/testing/sate/maintenance/worker-assigned/notify::closure;\n\nclass route::routes/api.php::post::/testing/sate/maintenance/worker-assigned/notify::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/maintenance/worker-assigned/notify::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::post::/testing/sate/maintenance/worker-assigned/notify::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/maintenance/worker-assigned/notify::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/notifications/over-limit::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/notifications/over-limit::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/notifications/over-limit::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::post::/testing/sate/notifications/over-limit::closure;\n\nclass route::routes/api.php::post::/testing/sate/notifications/over-limit::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/notifications/over-limit::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::post::/testing/sate/notifications/over-limit::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/notifications/over-limit::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/notifications/payment-failed::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/notifications/payment-failed::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/notifications/payment-failed::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::post::/testing/sate/notifications/payment-failed::closure;\n\nclass route::routes/api.php::post::/testing/sate/notifications/payment-failed::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/notifications/payment-failed::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::post::/testing/sate/notifications/payment-failed::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/notifications/payment-failed::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/notifications/payment-proof-submitted::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/notifications/payment-proof-submitted::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/notifications/payment-proof-submitted::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::post::/testing/sate/notifications/payment-proof-submitted::closure;\n\nclass route::routes/api.php::post::/testing/sate/notifications/payment-proof-submitted::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/notifications/payment-proof-submitted::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::post::/testing/sate/notifications/payment-proof-submitted::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/notifications/payment-proof-submitted::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/notifications/retry-scheduled::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/notifications/retry-scheduled::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/notifications/retry-scheduled::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::post::/testing/sate/notifications/retry-scheduled::closure;\n\nclass route::routes/api.php::post::/testing/sate/notifications/retry-scheduled::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/notifications/retry-scheduled::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::post::/testing/sate/notifications/retry-scheduled::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/notifications/retry-scheduled::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/notifications/security-alert::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/notifications/security-alert::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/notifications/security-alert::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::post::/testing/sate/notifications/security-alert::closure;\n\nclass route::routes/api.php::post::/testing/sate/notifications/security-alert::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/notifications/security-alert::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::post::/testing/sate/notifications/security-alert::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/notifications/security-alert::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/ai/generate-reply::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/ai/generate-reply::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/ai/generate-reply::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::post::/testing/sate/outreach-ai/ai/generate-reply::closure;\n\nclass route::routes/api.php::post::/testing/sate/outreach-ai/ai/generate-reply::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/outreach-ai/ai/generate-reply::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::post::/testing/sate/outreach-ai/ai/generate-reply::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/ai/generate-reply::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/churn-prevention/run::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/churn-prevention/run::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/churn-prevention/run::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::post::/testing/sate/outreach-ai/churn-prevention/run::closure;\n\nclass route::routes/api.php::post::/testing/sate/outreach-ai/churn-prevention/run::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/outreach-ai/churn-prevention/run::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::post::/testing/sate/outreach-ai/churn-prevention/run::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/churn-prevention/run::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/emotion/adjust-goal::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/emotion/adjust-goal::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/emotion/adjust-goal::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::post::/testing/sate/outreach-ai/emotion/adjust-goal::closure;\n\nclass route::routes/api.php::post::/testing/sate/outreach-ai/emotion/adjust-goal::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/outreach-ai/emotion/adjust-goal::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::post::/testing/sate/outreach-ai/emotion/adjust-goal::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/emotion/adjust-goal::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/emotion/update::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/emotion/update::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/emotion/update::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::post::/testing/sate/outreach-ai/emotion/update::closure;\n\nclass route::routes/api.php::post::/testing/sate/outreach-ai/emotion/update::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/outreach-ai/emotion/update::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::post::/testing/sate/outreach-ai/emotion/update::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/emotion/update::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/generate-reply-with-weights::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/generate-reply-with-weights::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/generate-reply-with-weights::closureTest.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\\route::routes/api.php::post::/testing/sate/outreach-ai/generate-reply-with-weights::closure;\n\nclass route::routes/api.php::post::/testing/sate/outreach-ai/generate-reply-with-weights::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/outreach-ai/generate-reply-with-weights::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->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface route::routes/api.php::post::/testing/sate/outreach-ai/generate-reply-with-weights::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/generate-reply-with-weights::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/generate-reply::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/generate-reply::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/generate-reply::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::post::/testing/sate/outreach-ai/generate-reply::closure;\n\nclass route::routes/api.php::post::/testing/sate/outreach-ai/generate-reply::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/outreach-ai/generate-reply::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::post::/testing/sate/outreach-ai/generate-reply::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/generate-reply::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/goal/derive::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/goal/derive::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/goal/derive::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::post::/testing/sate/outreach-ai/goal/derive::closure;\n\nclass route::routes/api.php::post::/testing/sate/outreach-ai/goal/derive::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/outreach-ai/goal/derive::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::post::/testing/sate/outreach-ai/goal/derive::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/goal/derive::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/knowledge/forbidden-phrases/check::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/knowledge/forbidden-phrases/check::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/knowledge/forbidden-phrases/check::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::post::/testing/sate/outreach-ai/knowledge/forbidden-phrases/check::closure;\n\nclass route::routes/api.php::post::/testing/sate/outreach-ai/knowledge/forbidden-phrases/check::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/outreach-ai/knowledge/forbidden-phrases/check::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::post::/testing/sate/outreach-ai/knowledge/forbidden-phrases/check::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/knowledge/forbidden-phrases/check::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/knowledge/forbidden-phrases/sanitize::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/knowledge/forbidden-phrases/sanitize::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/knowledge/forbidden-phrases/sanitize::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::post::/testing/sate/outreach-ai/knowledge/forbidden-phrases/sanitize::closure;\n\nclass route::routes/api.php::post::/testing/sate/outreach-ai/knowledge/forbidden-phrases/sanitize::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/outreach-ai/knowledge/forbidden-phrases/sanitize::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::post::/testing/sate/outreach-ai/knowledge/forbidden-phrases/sanitize::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/knowledge/forbidden-phrases/sanitize::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/optimization/persist-adjustments::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/optimization/persist-adjustments::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/optimization/persist-adjustments::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::post::/testing/sate/outreach-ai/optimization/persist-adjustments::closure;\n\nclass route::routes/api.php::post::/testing/sate/outreach-ai/optimization/persist-adjustments::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/outreach-ai/optimization/persist-adjustments::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::post::/testing/sate/outreach-ai/optimization/persist-adjustments::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/optimization/persist-adjustments::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/persona/enforce::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/persona/enforce::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/persona/enforce::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::post::/testing/sate/outreach-ai/persona/enforce::closure;\n\nclass route::routes/api.php::post::/testing/sate/outreach-ai/persona/enforce::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/outreach-ai/persona/enforce::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::post::/testing/sate/outreach-ai/persona/enforce::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/persona/enforce::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/persona/structure/restructure::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/persona/structure/restructure::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/persona/structure/restructure::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::post::/testing/sate/outreach-ai/persona/structure/restructure::closure;\n\nclass route::routes/api.php::post::/testing/sate/outreach-ai/persona/structure/restructure::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/outreach-ai/persona/structure/restructure::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::post::/testing/sate/outreach-ai/persona/structure/restructure::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/persona/structure/restructure::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/persona/tone-select::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/persona/tone-select::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/persona/tone-select::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::post::/testing/sate/outreach-ai/persona/tone-select::closure;\n\nclass route::routes/api.php::post::/testing/sate/outreach-ai/persona/tone-select::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/outreach-ai/persona/tone-select::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::post::/testing/sate/outreach-ai/persona/tone-select::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/persona/tone-select::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/persona/validate-transparency::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/persona/validate-transparency::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/persona/validate-transparency::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::post::/testing/sate/outreach-ai/persona/validate-transparency::closure;\n\nclass route::routes/api.php::post::/testing/sate/outreach-ai/persona/validate-transparency::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/outreach-ai/persona/validate-transparency::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::post::/testing/sate/outreach-ai/persona/validate-transparency::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/persona/validate-transparency::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/prompt/sentiment-modifier::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/prompt/sentiment-modifier::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/prompt/sentiment-modifier::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::post::/testing/sate/outreach-ai/prompt/sentiment-modifier::closure;\n\nclass route::routes/api.php::post::/testing/sate/outreach-ai/prompt/sentiment-modifier::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/outreach-ai/prompt/sentiment-modifier::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::post::/testing/sate/outreach-ai/prompt/sentiment-modifier::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/prompt/sentiment-modifier::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/question/detect-all::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/question/detect-all::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/question/detect-all::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::post::/testing/sate/outreach-ai/question/detect-all::closure;\n\nclass route::routes/api.php::post::/testing/sate/outreach-ai/question/detect-all::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/outreach-ai/question/detect-all::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::post::/testing/sate/outreach-ai/question/detect-all::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/question/detect-all::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/question/detect::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/question/detect::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/question/detect::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::post::/testing/sate/outreach-ai/question/detect::closure;\n\nclass route::routes/api.php::post::/testing/sate/outreach-ai/question/detect::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/outreach-ai/question/detect::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::post::/testing/sate/outreach-ai/question/detect::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/question/detect::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/reengagement/build-message::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/reengagement/build-message::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/reengagement/build-message::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::post::/testing/sate/outreach-ai/reengagement/build-message::closure;\n\nclass route::routes/api.php::post::/testing/sate/outreach-ai/reengagement/build-message::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/outreach-ai/reengagement/build-message::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::post::/testing/sate/outreach-ai/reengagement/build-message::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/reengagement/build-message::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/reengagement/run::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/reengagement/run::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/reengagement/run::closureTest.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\\route::routes/api.php::post::/testing/sate/outreach-ai/reengagement/run::closure;\n\nclass route::routes/api.php::post::/testing/sate/outreach-ai/reengagement/run::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/outreach-ai/reengagement/run::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->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface route::routes/api.php::post::/testing/sate/outreach-ai/reengagement/run::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/reengagement/run::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/reply-evaluate::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/reply-evaluate::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/reply-evaluate::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::post::/testing/sate/outreach-ai/reply-evaluate::closure;\n\nclass route::routes/api.php::post::/testing/sate/outreach-ai/reply-evaluate::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/outreach-ai/reply-evaluate::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::post::/testing/sate/outreach-ai/reply-evaluate::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/reply-evaluate::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/revenue/discount-decide::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/revenue/discount-decide::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/revenue/discount-decide::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::post::/testing/sate/outreach-ai/revenue/discount-decide::closure;\n\nclass route::routes/api.php::post::/testing/sate/outreach-ai/revenue/discount-decide::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/outreach-ai/revenue/discount-decide::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::post::/testing/sate/outreach-ai/revenue/discount-decide::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/revenue/discount-decide::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/revenue/process-inbound::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/revenue/process-inbound::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/revenue/process-inbound::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::post::/testing/sate/outreach-ai/revenue/process-inbound::closure;\n\nclass route::routes/api.php::post::/testing/sate/outreach-ai/revenue/process-inbound::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/outreach-ai/revenue/process-inbound::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::post::/testing/sate/outreach-ai/revenue/process-inbound::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/revenue/process-inbound::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/safety/abuse/check-inbound::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/safety/abuse/check-inbound::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/safety/abuse/check-inbound::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::post::/testing/sate/outreach-ai/safety/abuse/check-inbound::closure;\n\nclass route::routes/api.php::post::/testing/sate/outreach-ai/safety/abuse/check-inbound::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/outreach-ai/safety/abuse/check-inbound::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::post::/testing/sate/outreach-ai/safety/abuse/check-inbound::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/safety/abuse/check-inbound::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/safety/abuse/detect-spam-like::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/safety/abuse/detect-spam-like::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/safety/abuse/detect-spam-like::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::post::/testing/sate/outreach-ai/safety/abuse/detect-spam-like::closure;\n\nclass route::routes/api.php::post::/testing/sate/outreach-ai/safety/abuse/detect-spam-like::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/outreach-ai/safety/abuse/detect-spam-like::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::post::/testing/sate/outreach-ai/safety/abuse/detect-spam-like::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/safety/abuse/detect-spam-like::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/safety/process-outbound::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/safety/process-outbound::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/safety/process-outbound::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::post::/testing/sate/outreach-ai/safety/process-outbound::closure;\n\nclass route::routes/api.php::post::/testing/sate/outreach-ai/safety/process-outbound::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/outreach-ai/safety/process-outbound::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::post::/testing/sate/outreach-ai/safety/process-outbound::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/safety/process-outbound::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/safety/validate-inbound::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/safety/validate-inbound::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/safety/validate-inbound::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::post::/testing/sate/outreach-ai/safety/validate-inbound::closure;\n\nclass route::routes/api.php::post::/testing/sate/outreach-ai/safety/validate-inbound::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/outreach-ai/safety/validate-inbound::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::post::/testing/sate/outreach-ai/safety/validate-inbound::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/safety/validate-inbound::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/sales-acceleration/accelerate::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sales-acceleration/accelerate::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/sales-acceleration/accelerate::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::post::/testing/sate/outreach-ai/sales-acceleration/accelerate::closure;\n\nclass route::routes/api.php::post::/testing/sate/outreach-ai/sales-acceleration/accelerate::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/outreach-ai/sales-acceleration/accelerate::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::post::/testing/sate/outreach-ai/sales-acceleration/accelerate::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/sales-acceleration/accelerate::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/generate-trial-sequence::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/generate-trial-sequence::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/generate-trial-sequence::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::post::/testing/sate/outreach-ai/sales/subscription/generate-trial-sequence::closure;\n\nclass route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/generate-trial-sequence::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/generate-trial-sequence::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::post::/testing/sate/outreach-ai/sales/subscription/generate-trial-sequence::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/generate-trial-sequence::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/maybe-inject-sales-prompt::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/maybe-inject-sales-prompt::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/maybe-inject-sales-prompt::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::post::/testing/sate/outreach-ai/sales/subscription/maybe-inject-sales-prompt::closure;\n\nclass route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/maybe-inject-sales-prompt::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/maybe-inject-sales-prompt::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::post::/testing/sate/outreach-ai/sales/subscription/maybe-inject-sales-prompt::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/maybe-inject-sales-prompt::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/update-stage::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/update-stage::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/update-stage::closureTest.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\\route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/update-stage::closure;\n\nclass route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/update-stage::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/update-stage::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    }\n}\n",
        "explanation": "Surface route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/update-stage::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/sales/subscription/update-stage::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/send-ai-whatsapp-reply/run::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/send-ai-whatsapp-reply/run::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/send-ai-whatsapp-reply/run::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::post::/testing/sate/outreach-ai/send-ai-whatsapp-reply/run::closure;\n\nclass route::routes/api.php::post::/testing/sate/outreach-ai/send-ai-whatsapp-reply/run::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/outreach-ai/send-ai-whatsapp-reply/run::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::post::/testing/sate/outreach-ai/send-ai-whatsapp-reply/run::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/send-ai-whatsapp-reply/run::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/sentiment/analyze-and-audit::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sentiment/analyze-and-audit::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/sentiment/analyze-and-audit::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::post::/testing/sate/outreach-ai/sentiment/analyze-and-audit::closure;\n\nclass route::routes/api.php::post::/testing/sate/outreach-ai/sentiment/analyze-and-audit::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/outreach-ai/sentiment/analyze-and-audit::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::post::/testing/sate/outreach-ai/sentiment/analyze-and-audit::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/sentiment/analyze-and-audit::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/sentiment/analyze::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sentiment/analyze::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/sentiment/analyze::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::post::/testing/sate/outreach-ai/sentiment/analyze::closure;\n\nclass route::routes/api.php::post::/testing/sate/outreach-ai/sentiment/analyze::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/outreach-ai/sentiment/analyze::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::post::/testing/sate/outreach-ai/sentiment/analyze::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/sentiment/analyze::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/sequence/process-command::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sequence/process-command::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/sequence/process-command::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::post::/testing/sate/outreach-ai/sequence/process-command::closure;\n\nclass route::routes/api.php::post::/testing/sate/outreach-ai/sequence/process-command::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/outreach-ai/sequence/process-command::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::post::/testing/sate/outreach-ai/sequence/process-command::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/sequence/process-command::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/sequence/run-step::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sequence/run-step::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/sequence/run-step::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::post::/testing/sate/outreach-ai/sequence/run-step::closure;\n\nclass route::routes/api.php::post::/testing/sate/outreach-ai/sequence/run-step::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/outreach-ai/sequence/run-step::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::post::/testing/sate/outreach-ai/sequence/run-step::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/sequence/run-step::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/sequence/run-steps::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/sequence/run-steps::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/sequence/run-steps::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::post::/testing/sate/outreach-ai/sequence/run-steps::closure;\n\nclass route::routes/api.php::post::/testing/sate/outreach-ai/sequence/run-steps::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/outreach-ai/sequence/run-steps::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::post::/testing/sate/outreach-ai/sequence/run-steps::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/sequence/run-steps::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/subscription-nudge/run::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/subscription-nudge/run::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/subscription-nudge/run::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::post::/testing/sate/outreach-ai/subscription-nudge/run::closure;\n\nclass route::routes/api.php::post::/testing/sate/outreach-ai/subscription-nudge/run::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/outreach-ai/subscription-nudge/run::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::post::/testing/sate/outreach-ai/subscription-nudge/run::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/subscription-nudge/run::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach-ai/trial/extend::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach-ai/trial/extend::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/trial/extend::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::post::/testing/sate/outreach-ai/trial/extend::closure;\n\nclass route::routes/api.php::post::/testing/sate/outreach-ai/trial/extend::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/outreach-ai/trial/extend::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::post::/testing/sate/outreach-ai/trial/extend::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/outreach-ai/trial/extend::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach/followups/adjust-timing-by-temperature::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach/followups/adjust-timing-by-temperature::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach/followups/adjust-timing-by-temperature::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::post::/testing/sate/outreach/followups/adjust-timing-by-temperature::closure;\n\nclass route::routes/api.php::post::/testing/sate/outreach/followups/adjust-timing-by-temperature::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/outreach/followups/adjust-timing-by-temperature::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::post::/testing/sate/outreach/followups/adjust-timing-by-temperature::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/outreach/followups/adjust-timing-by-temperature::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach/followups/convert-interval-to-timestamp::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach/followups/convert-interval-to-timestamp::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach/followups/convert-interval-to-timestamp::closureTest.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\\route::routes/api.php::post::/testing/sate/outreach/followups/convert-interval-to-timestamp::closure;\n\nclass route::routes/api.php::post::/testing/sate/outreach/followups/convert-interval-to-timestamp::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/outreach/followups/convert-interval-to-timestamp::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    }\n}\n",
        "explanation": "Surface route::routes/api.php::post::/testing/sate/outreach/followups/convert-interval-to-timestamp::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/outreach/followups/convert-interval-to-timestamp::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach/followups/schedule::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach/followups/schedule::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach/followups/schedule::closureTest.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\\route::routes/api.php::post::/testing/sate/outreach/followups/schedule::closure;\n\nclass route::routes/api.php::post::/testing/sate/outreach/followups/schedule::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/outreach/followups/schedule::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->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface route::routes/api.php::post::/testing/sate/outreach/followups/schedule::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/outreach/followups/schedule::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/outreach/sync-conversation-costs/run::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/outreach/sync-conversation-costs/run::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/outreach/sync-conversation-costs/run::closureTest.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\\route::routes/api.php::post::/testing/sate/outreach/sync-conversation-costs/run::closure;\n\nclass route::routes/api.php::post::/testing/sate/outreach/sync-conversation-costs/run::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/outreach/sync-conversation-costs/run::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    }\n}\n",
        "explanation": "Surface route::routes/api.php::post::/testing/sate/outreach/sync-conversation-costs/run::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/outreach/sync-conversation-costs/run::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/reminders/cancel-for-rent-cycle::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/reminders/cancel-for-rent-cycle::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/reminders/cancel-for-rent-cycle::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::post::/testing/sate/reminders/cancel-for-rent-cycle::closure;\n\nclass route::routes/api.php::post::/testing/sate/reminders/cancel-for-rent-cycle::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/reminders/cancel-for-rent-cycle::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::post::/testing/sate/reminders/cancel-for-rent-cycle::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/reminders/cancel-for-rent-cycle::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/reminders/templates/review::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/reminders/templates/review::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/reminders/templates/review::closureTest.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\\route::routes/api.php::post::/testing/sate/reminders/templates/review::closure;\n\nclass route::routes/api.php::post::/testing/sate/reminders/templates/review::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/reminders/templates/review::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->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface route::routes/api.php::post::/testing/sate/reminders/templates/review::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/reminders/templates/review::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/subscription/feature-access/determine-access::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/subscription/feature-access/determine-access::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/subscription/feature-access/determine-access::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::post::/testing/sate/subscription/feature-access/determine-access::closure;\n\nclass route::routes/api.php::post::/testing/sate/subscription/feature-access/determine-access::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/subscription/feature-access/determine-access::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::post::/testing/sate/subscription/feature-access/determine-access::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/subscription/feature-access/determine-access::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/subscription/feature-access/enforce::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/subscription/feature-access/enforce::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/subscription/feature-access/enforce::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::post::/testing/sate/subscription/feature-access/enforce::closure;\n\nclass route::routes/api.php::post::/testing/sate/subscription/feature-access/enforce::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/subscription/feature-access/enforce::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::post::/testing/sate/subscription/feature-access/enforce::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/subscription/feature-access/enforce::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/subscription/feature-access/feature-display-name::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/subscription/feature-access/feature-display-name::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/subscription/feature-access/feature-display-name::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::post::/testing/sate/subscription/feature-access/feature-display-name::closure;\n\nclass route::routes/api.php::post::/testing/sate/subscription/feature-access/feature-display-name::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/subscription/feature-access/feature-display-name::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::post::/testing/sate/subscription/feature-access/feature-display-name::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/subscription/feature-access/feature-display-name::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/subscription/feature-access/resolve-feature-key::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/subscription/feature-access/resolve-feature-key::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/subscription/feature-access/resolve-feature-key::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::post::/testing/sate/subscription/feature-access/resolve-feature-key::closure;\n\nclass route::routes/api.php::post::/testing/sate/subscription/feature-access/resolve-feature-key::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/subscription/feature-access/resolve-feature-key::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::post::/testing/sate/subscription/feature-access/resolve-feature-key::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/subscription/feature-access/resolve-feature-key::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/tap/create-subscription-charge::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/tap/create-subscription-charge::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/tap/create-subscription-charge::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::post::/testing/sate/tap/create-subscription-charge::closure;\n\nclass route::routes/api.php::post::/testing/sate/tap/create-subscription-charge::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/tap/create-subscription-charge::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::post::/testing/sate/tap/create-subscription-charge::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/tap/create-subscription-charge::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/tap/webhook/process-attempt::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/tap/webhook/process-attempt::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/tap/webhook/process-attempt::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::post::/testing/sate/tap/webhook/process-attempt::closure;\n\nclass route::routes/api.php::post::/testing/sate/tap/webhook/process-attempt::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/tap/webhook/process-attempt::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::post::/testing/sate/tap/webhook/process-attempt::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/tap/webhook/process-attempt::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/whatsapp/dialog360/inbound::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/whatsapp/dialog360/inbound::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/whatsapp/dialog360/inbound::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::post::/testing/sate/whatsapp/dialog360/inbound::closure;\n\nclass route::routes/api.php::post::/testing/sate/whatsapp/dialog360/inbound::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/whatsapp/dialog360/inbound::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::post::/testing/sate/whatsapp/dialog360/inbound::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/whatsapp/dialog360/inbound::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/whatsapp/session-notes/create::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/whatsapp/session-notes/create::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/whatsapp/session-notes/create::closureTest.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\\route::routes/api.php::post::/testing/sate/whatsapp/session-notes/create::closure;\n\nclass route::routes/api.php::post::/testing/sate/whatsapp/session-notes/create::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/whatsapp/session-notes/create::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->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface route::routes/api.php::post::/testing/sate/whatsapp/session-notes/create::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/whatsapp/session-notes/create::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/whatsapp/sessions/attempt-create::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/whatsapp/sessions/attempt-create::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/whatsapp/sessions/attempt-create::closureTest.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\\route::routes/api.php::post::/testing/sate/whatsapp/sessions/attempt-create::closure;\n\nclass route::routes/api.php::post::/testing/sate/whatsapp/sessions/attempt-create::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/whatsapp/sessions/attempt-create::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->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface route::routes/api.php::post::/testing/sate/whatsapp/sessions/attempt-create::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/whatsapp/sessions/attempt-create::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/whatsapp/sessions/create::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/whatsapp/sessions/create::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/whatsapp/sessions/create::closureTest.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\\route::routes/api.php::post::/testing/sate/whatsapp/sessions/create::closure;\n\nclass route::routes/api.php::post::/testing/sate/whatsapp/sessions/create::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/whatsapp/sessions/create::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->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface route::routes/api.php::post::/testing/sate/whatsapp/sessions/create::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/whatsapp/sessions/create::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/whatsapp/webhook/process-status::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/whatsapp/webhook/process-status::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/whatsapp/webhook/process-status::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::post::/testing/sate/whatsapp/webhook/process-status::closure;\n\nclass route::routes/api.php::post::/testing/sate/whatsapp/webhook/process-status::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/whatsapp/webhook/process-status::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::post::/testing/sate/whatsapp/webhook/process-status::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/whatsapp/webhook/process-status::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/testing/sate/zoho/webhook/process::closure",
        "fqmn": "route::routes/api.php::post::/testing/sate/zoho/webhook/process::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::post::/testing/sate/zoho/webhook/process::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::post::/testing/sate/zoho/webhook/process::closure;\n\nclass route::routes/api.php::post::/testing/sate/zoho/webhook/process::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::post::/testing/sate/zoho/webhook/process::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::post::/testing/sate/zoho/webhook/process::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::post::/testing/sate/zoho/webhook/process::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/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::post::/verify/start::App\\Http\\Controllers\\VerificationController::start",
        "fqmn": "App\\Http\\Controllers\\VerificationController@start",
        "expected_test_path": "tests/Feature/VerificationControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\VerificationController;\n\nclass VerificationControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\VerificationController@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\\Http\\Controllers\\VerificationController@start is PROOF_READY but no test file at tests/Feature/VerificationControllerTest.php is in the 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::post::/webhooks/360dialog/inbound::App\\Http\\Controllers\\Webhooks\\Dialog360WebhookController::handle",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\Dialog360WebhookController@handle",
        "expected_test_path": "tests/Feature/Dialog360WebhookControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Webhooks\\Dialog360WebhookController;\n\nclass Dialog360WebhookControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Webhooks\\Dialog360WebhookController@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->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Webhooks\\Dialog360WebhookController@handle is PROOF_READY but no test file at tests/Feature/Dialog360WebhookControllerTest.php is in the 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::post::/webhooks/360dialog/status::App\\Http\\Controllers\\Webhooks\\Dialog360StatusWebhookController::handle",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\Dialog360StatusWebhookController@handle",
        "expected_test_path": "tests/Feature/Dialog360StatusWebhookControllerTest.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\\Webhooks\\Dialog360StatusWebhookController;\n\nclass Dialog360StatusWebhookControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Webhooks\\Dialog360StatusWebhookController@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\\Http\\Controllers\\Webhooks\\Dialog360StatusWebhookController@handle is PROOF_READY but no test file at tests/Feature/Dialog360StatusWebhookControllerTest.php is in the 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::post::/webhooks/zepto/bounce::App\\Http\\Controllers\\Webhooks\\ZeptoWebhookController::handleBounce",
        "fqmn": "App\\Http\\Controllers\\Webhooks\\ZeptoWebhookController@handleBounce",
        "expected_test_path": "tests/Feature/ZeptoWebhookControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Webhooks\\ZeptoWebhookController;\n\nclass ZeptoWebhookControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Webhooks\\ZeptoWebhookController@handleBounce\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handlebounce_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\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\\Webhooks\\ZeptoWebhookController@handleBounce is PROOF_READY but no test file at tests/Feature/ZeptoWebhookControllerTest.php is in the 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::post::/whatsapp/agencies/onboarding/start::App\\Http\\Controllers\\OrgWhatsAppOnboardingController::start",
        "fqmn": "App\\Http\\Controllers\\OrgWhatsAppOnboardingController@start",
        "expected_test_path": "tests/Feature/OrgWhatsAppOnboardingControllerTest.php",
        "intent": null,
        "intent_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\\OrgWhatsAppOnboardingController;\n\nclass OrgWhatsAppOnboardingControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\OrgWhatsAppOnboardingController@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\\OrgWhatsAppOnboardingController@start is PROOF_READY but no test file at tests/Feature/OrgWhatsAppOnboardingControllerTest.php is in the 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/mo",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/mobile.php::post::/forgot-password::App\\Http\\Controllers\\Api\\Mobile\\MobileForgotPasswordController::sendResetLink",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileForgotPasswordController@sendResetLink",
        "expected_test_path": "tests/Feature/MobileForgotPasswordControllerTest.php",
        "intent": null,
        "intent_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\\MobileForgotPasswordController;\n\nclass MobileForgotPasswordControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileForgotPasswordController@sendResetLink\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_sendresetlink_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\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\\MobileForgotPasswordController@sendResetLink is PROOF_READY but no test file at tests/Feature/MobileForgotPasswordControllerTest.php is in the 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/mo",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/mobile.php::post::/login::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": [],
        "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\\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        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: 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\\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_route::routes/mo",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/mobile.php::post::/logout::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_route::routes/ou",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/outreach.php::any::/testing/outreach-ai/{path}::closure",
        "fqmn": "route::routes/outreach.php::any::/testing/outreach-ai/{path}::closure",
        "expected_test_path": "tests/Unit/route::routes/outreach.php::any::/testing/outreach-ai/{path}::closureTest.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\\route::routes/outreach.php::any::/testing/outreach-ai/{path}::closure;\n\nclass route::routes/outreach.php::any::/testing/outreach-ai/{path}::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/outreach.php::any::/testing/outreach-ai/{path}::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        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface route::routes/outreach.php::any::/testing/outreach-ai/{path}::closure is PROOF_READY but no test file at tests/Unit/route::routes/outreach.php::any::/testing/outreach-ai/{path}::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/ou",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/outreach.php::any::/testing/sate/{path}::closure",
        "fqmn": "route::routes/outreach.php::any::/testing/sate/{path}::closure",
        "expected_test_path": "tests/Unit/route::routes/outreach.php::any::/testing/sate/{path}::closureTest.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\\route::routes/outreach.php::any::/testing/sate/{path}::closure;\n\nclass route::routes/outreach.php::any::/testing/sate/{path}::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/outreach.php::any::/testing/sate/{path}::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        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface route::routes/outreach.php::any::/testing/sate/{path}::closure is PROOF_READY but no test file at tests/Unit/route::routes/outreach.php::any::/testing/sate/{path}::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/ou",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/outreach.php::post::/outreach/webhook/whatsapp::App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController::handle",
        "fqmn": "App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController@handle",
        "expected_test_path": "tests/Unit/WhatsAppWebhookControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [
          "assert_cache_written",
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController;\n\nclass WhatsAppWebhookControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController@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        // $this->assertTrue(Cache::has('<key>'));\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController@handle is PROOF_READY but no test file at tests/Unit/WhatsAppWebhookControllerTest.php is in the 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/ou",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/outreach.php::post::/whatsapp::App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController::handle",
        "fqmn": "App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController@handle",
        "expected_test_path": "tests/Unit/WhatsAppWebhookControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [
          "assert_cache_written",
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController;\n\nclass WhatsAppWebhookControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController@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        // $this->assertTrue(Cache::has('<key>'));\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Outreach\\Webhooks\\WhatsAppWebhookController@handle is PROOF_READY but no test file at tests/Unit/WhatsAppWebhookControllerTest.php is in the 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/sa",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/sandbox/360dialog.php::post::/messages::App\\Sandbox\\Dialog360\\Controllers\\MessageController::store",
        "fqmn": "App\\Sandbox\\Dialog360\\Controllers\\MessageController@store",
        "expected_test_path": "tests/Unit/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\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Sandbox\\Dialog360\\Controllers\\MessageController;\n\nclass MessageControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Sandbox\\Dialog360\\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        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Sandbox\\Dialog360\\Controllers\\MessageController@store is PROOF_READY but no test file at tests/Unit/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_route::routes/we",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/web.php::get::/::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_route::routes/we",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/web.php::get::/agencies::closure",
        "fqmn": "route::routes/web.php::get::/agencies::closure",
        "expected_test_path": "tests/Unit/route::routes/web.php::get::/agencies::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::/agencies::closure;\n\nclass route::routes/web.php::get::/agencies::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/web.php::get::/agencies::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::/agencies::closure is PROOF_READY but no test file at tests/Unit/route::routes/web.php::get::/agencies::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::App\\Http\\Controllers\\AppController::index",
        "fqmn": "App\\Http\\Controllers\\AppController@index",
        "expected_test_path": "tests/Feature/AppControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\AppController;\n\nclass AppControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\AppController@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\\AppController@index is PROOF_READY but no test file at tests/Feature/AppControllerTest.php is in the 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::/collection::closure",
        "fqmn": "route::routes/web.php::get::/collection::closure",
        "expected_test_path": "tests/Unit/route::routes/web.php::get::/collection::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::/collection::closure;\n\nclass route::routes/web.php::get::/collection::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/web.php::get::/collection::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::/collection::closure is PROOF_READY but no test file at tests/Unit/route::routes/web.php::get::/collection::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::/email/verify/{id}/{hash}::App\\Http\\Controllers\\Auth\\VerificationController::verify",
        "fqmn": "App\\Http\\Controllers\\Auth\\VerificationController@verify",
        "expected_test_path": "tests/Feature/VerificationControllerTest.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\\VerificationController;\n\nclass VerificationControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\VerificationController@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\n        // 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\\VerificationController@verify is PROOF_READY but no test file at tests/Feature/VerificationControllerTest.php is in the 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::/email/verify/resend::App\\Http\\Controllers\\Auth\\VerificationController::showResendForm",
        "fqmn": "App\\Http\\Controllers\\Auth\\VerificationController@showResendForm",
        "expected_test_path": "tests/Feature/VerificationControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\VerificationController;\n\nclass VerificationControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\VerificationController@showResendForm\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_showresendform_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\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\\VerificationController@showResendForm is PROOF_READY but no test file at tests/Feature/VerificationControllerTest.php is in the 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::/favicon.ico::closure",
        "fqmn": "route::routes/web.php::get::/favicon.ico::closure",
        "expected_test_path": "tests/Unit/route::routes/web.php::get::/favicon.ico::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::/favicon.ico::closure;\n\nclass route::routes/web.php::get::/favicon.ico::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/web.php::get::/favicon.ico::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::/favicon.ico::closure is PROOF_READY but no test file at tests/Unit/route::routes/web.php::get::/favicon.ico::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::/healthz::closure",
        "fqmn": "route::routes/web.php::get::/healthz::closure",
        "expected_test_path": "tests/Unit/route::routes/web.php::get::/healthz::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::/healthz::closure;\n\nclass route::routes/web.php::get::/healthz::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/web.php::get::/healthz::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::/healthz::closure is PROOF_READY but no test file at tests/Unit/route::routes/web.php::get::/healthz::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::/images/favicon.ico::closure",
        "fqmn": "route::routes/web.php::get::/images/favicon.ico::closure",
        "expected_test_path": "tests/Unit/route::routes/web.php::get::/images/favicon.ico::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::/images/favicon.ico::closure;\n\nclass route::routes/web.php::get::/images/favicon.ico::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/web.php::get::/images/favicon.ico::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::/images/favicon.ico::closure is PROOF_READY but no test file at tests/Unit/route::routes/web.php::get::/images/favicon.ico::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::/invoicing::closure",
        "fqmn": "route::routes/web.php::get::/invoicing::closure",
        "expected_test_path": "tests/Unit/route::routes/web.php::get::/invoicing::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::/invoicing::closure;\n\nclass route::routes/web.php::get::/invoicing::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/web.php::get::/invoicing::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::/invoicing::closure is PROOF_READY but no test file at tests/Unit/route::routes/web.php::get::/invoicing::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::/landlords::closure",
        "fqmn": "route::routes/web.php::get::/landlords::closure",
        "expected_test_path": "tests/Unit/route::routes/web.php::get::/landlords::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::/landlords::closure;\n\nclass route::routes/web.php::get::/landlords::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/web.php::get::/landlords::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::/landlords::closure is PROOF_READY but no test file at tests/Unit/route::routes/web.php::get::/landlords::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::/locale/{lang}::App\\Http\\Controllers\\LocaleController::switch",
        "fqmn": "App\\Http\\Controllers\\LocaleController@switch",
        "expected_test_path": "tests/Feature/LocaleControllerTest.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\\LocaleController;\n\nclass LocaleControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\LocaleController@switch\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_switch_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\LocaleController@switch is PROOF_READY but no test file at tests/Feature/LocaleControllerTest.php is in the 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::/log::closure",
        "fqmn": "route::routes/web.php::get::/log::closure",
        "expected_test_path": "tests/Unit/route::routes/web.php::get::/log::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::/log::closure;\n\nclass route::routes/web.php::get::/log::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/web.php::get::/log::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::/log::closure is PROOF_READY but no test file at tests/Unit/route::routes/web.php::get::/log::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::/maintenance::closure",
        "fqmn": "route::routes/web.php::get::/maintenance::closure",
        "expected_test_path": "tests/Unit/route::routes/web.php::get::/maintenance::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::/maintenance::closure;\n\nclass route::routes/web.php::get::/maintenance::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/web.php::get::/maintenance::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::/maintenance::closure is PROOF_READY but no test file at tests/Unit/route::routes/web.php::get::/maintenance::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::/manifest.json::closure",
        "fqmn": "route::routes/web.php::get::/manifest.json::closure",
        "expected_test_path": "tests/Unit/route::routes/web.php::get::/manifest.json::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::/manifest.json::closure;\n\nclass route::routes/web.php::get::/manifest.json::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/web.php::get::/manifest.json::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::/manifest.json::closure is PROOF_READY but no test file at tests/Unit/route::routes/web.php::get::/manifest.json::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::/payments::closure",
        "fqmn": "route::routes/web.php::get::/payments::closure",
        "expected_test_path": "tests/Unit/route::routes/web.php::get::/payments::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::/payments::closure;\n\nclass route::routes/web.php::get::/payments::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/web.php::get::/payments::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::/payments::closure is PROOF_READY but no test file at tests/Unit/route::routes/web.php::get::/payments::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::/robots.txt::closure",
        "fqmn": "route::routes/web.php::get::/robots.txt::closure",
        "expected_test_path": "tests/Unit/route::routes/web.php::get::/robots.txt::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::/robots.txt::closure;\n\nclass route::routes/web.php::get::/robots.txt::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/web.php::get::/robots.txt::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::/robots.txt::closure is PROOF_READY but no test file at tests/Unit/route::routes/web.php::get::/robots.txt::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::/service-worker.js::closure",
        "fqmn": "route::routes/web.php::get::/service-worker.js::closure",
        "expected_test_path": "tests/Unit/route::routes/web.php::get::/service-worker.js::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::/service-worker.js::closure;\n\nclass route::routes/web.php::get::/service-worker.js::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/web.php::get::/service-worker.js::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::/service-worker.js::closure is PROOF_READY but no test file at tests/Unit/route::routes/web.php::get::/service-worker.js::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::/test/ipinfo::closure",
        "fqmn": "route::routes/web.php::get::/test/ipinfo::closure",
        "expected_test_path": "tests/Unit/route::routes/web.php::get::/test/ipinfo::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::/test/ipinfo::closure;\n\nclass route::routes/web.php::get::/test/ipinfo::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/web.php::get::/test/ipinfo::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::/test/ipinfo::closure is PROOF_READY but no test file at tests/Unit/route::routes/web.php::get::/test/ipinfo::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::/whatsapp::closure",
        "fqmn": "route::routes/web.php::get::/whatsapp::closure",
        "expected_test_path": "tests/Unit/route::routes/web.php::get::/whatsapp::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::/whatsapp::closure;\n\nclass route::routes/web.php::get::/whatsapp::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/web.php::get::/whatsapp::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::/whatsapp::closure is PROOF_READY but no test file at tests/Unit/route::routes/web.php::get::/whatsapp::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::post::/email/verify/resend::App\\Http\\Controllers\\Auth\\VerificationController::resend",
        "fqmn": "App\\Http\\Controllers\\Auth\\VerificationController@resend",
        "expected_test_path": "tests/Feature/VerificationControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\VerificationController;\n\nclass VerificationControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\VerificationController@resend\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resend_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\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\\VerificationController@resend is PROOF_READY but no test file at tests/Feature/VerificationControllerTest.php is in the 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::post::/leads::App\\Http\\Controllers\\LeadController::store",
        "fqmn": "App\\Http\\Controllers\\LeadController@store",
        "expected_test_path": "tests/Feature/LeadControllerTest.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\\LeadController;\n\nclass LeadControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\LeadController@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->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\LeadController@store is PROOF_READY but no test file at tests/Feature/LeadControllerTest.php is in the 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::post::/locale::App\\Http\\Controllers\\LocaleController::post",
        "fqmn": "App\\Http\\Controllers\\LocaleController@post",
        "expected_test_path": "tests/Feature/LocaleControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\LocaleController;\n\nclass LocaleControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\LocaleController@post\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_post_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\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\\LocaleController@post is PROOF_READY but no test file at tests/Feature/LocaleControllerTest.php 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": 5563
  },
  "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."
  }
}