{
  "schema_version": 1,
  "report_kind": "SATE_AUDIT_REPORT_V0",
  "generated_at": "2026-05-23T16:39:18.770Z",
  "header": {
    "project_root_abs": "/home/amari/projects/akaunting",
    "laravel_version_resolution": {
      "resolved": "10.50.2",
      "major": 10,
      "minor": 50,
      "patch": 2,
      "confidence": "MEDIUM",
      "authoritySource": "LOCKED",
      "sources": {
        "declared": "10.0.0",
        "locked": "10.50.2",
        "installed": null,
        "runtime": null
      },
      "findings": [
        {
          "code": "LARAVEL_VENDOR_NOT_INSTALLED",
          "message": "No vendor/laravel/framework installation found. Run `composer install` for higher-confidence detection."
        },
        {
          "code": "LARAVEL_VERSION_DRIFT_DECLARED",
          "message": "composer.json declares 10.0.0 but locked reports 10.50.2 (declared constraint is looser than installed)",
          "evidence": {
            "declared": "10.0.0",
            "locked": "10.50.2"
          }
        }
      ]
    },
    "laravel_major": 10,
    "sate_mode": "GENERATION_SUPPORTED"
  },
  "surface_enumeration": {
    "application_surfaces": {
      "total": 1131,
      "proof_ready": 857,
      "blocked": 274
    },
    "test_corpus": {
      "test_files_on_disk": 34,
      "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": 1131,
    "surfaces_proof_ready": 857,
    "surfaces_blocked": 274,
    "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": 8,
      "total_files_evaluated": 34
    },
    "quality": {
      "gate": "v1 (v1, enabled=true)",
      "pass_files_count": 31,
      "total_files_evaluated": 34
    },
    "kb_eligible": {
      "semantics": "binary v1 (YES if QUALITY passes; LIMITED reserved for v2)",
      "eligible_files_count": 8
    },
    "totals": {
      "files_scanned": 34,
      "tests_discovered": 213,
      "tests_approved": 20
    },
    "runner_allowlist_files": 1
  },
  "manual_stage_cache": {
    "hits": 34,
    "misses": 0,
    "writes": 0,
    "entries_loaded": 35
  },
  "tier_classification": {
    "A": 177,
    "B": 1,
    "C": 679,
    "FRAGILE": 0,
    "QUARANTINED": 0,
    "UNCLASSIFIED": 0
  },
  "refusal_ledger": {
    "note": "Each refusal cites the specific signal that triggered it. No mystery refusals.",
    "total_blocked": 274,
    "by_reason": {
      "NO_EXPLICIT_RETURN": {
        "count": 274,
        "surfaces": [
          {
            "surface_id": "method::app/Abstracts/Http/ApiController.php::App\\Abstracts\\Http\\ApiController::__construct",
            "fqmn": "App\\Abstracts\\Http\\ApiController@__construct",
            "file": "app/Abstracts/Http/ApiController.php"
          },
          {
            "surface_id": "method::app/Abstracts/Http/ApiController.php::App\\Abstracts\\Http\\ApiController::error",
            "fqmn": "App\\Abstracts\\Http\\ApiController@error",
            "file": "app/Abstracts/Http/ApiController.php"
          },
          {
            "surface_id": "method::app/Abstracts/Http/ApiController.php::App\\Abstracts\\Http\\ApiController::errorBadRequest",
            "fqmn": "App\\Abstracts\\Http\\ApiController@errorBadRequest",
            "file": "app/Abstracts/Http/ApiController.php"
          },
          {
            "surface_id": "method::app/Abstracts/Http/ApiController.php::App\\Abstracts\\Http\\ApiController::errorForbidden",
            "fqmn": "App\\Abstracts\\Http\\ApiController@errorForbidden",
            "file": "app/Abstracts/Http/ApiController.php"
          },
          {
            "surface_id": "method::app/Abstracts/Http/ApiController.php::App\\Abstracts\\Http\\ApiController::errorInternal",
            "fqmn": "App\\Abstracts\\Http\\ApiController@errorInternal",
            "file": "app/Abstracts/Http/ApiController.php"
          },
          {
            "surface_id": "method::app/Abstracts/Http/ApiController.php::App\\Abstracts\\Http\\ApiController::errorMethodNotAllowed",
            "fqmn": "App\\Abstracts\\Http\\ApiController@errorMethodNotAllowed",
            "file": "app/Abstracts/Http/ApiController.php"
          },
          {
            "surface_id": "method::app/Abstracts/Http/ApiController.php::App\\Abstracts\\Http\\ApiController::errorNotFound",
            "fqmn": "App\\Abstracts\\Http\\ApiController@errorNotFound",
            "file": "app/Abstracts/Http/ApiController.php"
          },
          {
            "surface_id": "method::app/Abstracts/Http/ApiController.php::App\\Abstracts\\Http\\ApiController::errorUnauthorized",
            "fqmn": "App\\Abstracts\\Http\\ApiController@errorUnauthorized",
            "file": "app/Abstracts/Http/ApiController.php"
          },
          {
            "surface_id": "method::app/Abstracts/Http/Controller.php::App\\Abstracts\\Http\\Controller::__construct",
            "fqmn": "App\\Abstracts\\Http\\Controller@__construct",
            "file": "app/Abstracts/Http/Controller.php"
          },
          {
            "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::dispatchPaidEvent",
            "fqmn": "App\\Abstracts\\Http\\PaymentController@dispatchPaidEvent",
            "file": "app/Abstracts/Http/PaymentController.php"
          },
          {
            "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::forgetReference",
            "fqmn": "App\\Abstracts\\Http\\PaymentController@forgetReference",
            "file": "app/Abstracts/Http/PaymentController.php"
          },
          {
            "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::setContactFirstLastName",
            "fqmn": "App\\Abstracts\\Http\\PaymentController@setContactFirstLastName",
            "file": "app/Abstracts/Http/PaymentController.php"
          },
          {
            "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::setReference",
            "fqmn": "App\\Abstracts\\Http\\PaymentController@setReference",
            "file": "app/Abstracts/Http/PaymentController.php"
          },
          {
            "surface_id": "method::app/Abstracts/Job.php::App\\Abstracts\\Job::__construct",
            "fqmn": "App\\Abstracts\\Job@__construct",
            "file": "app/Abstracts/Job.php"
          },
          {
            "surface_id": "method::app/Abstracts/Job.php::App\\Abstracts\\Job::booted",
            "fqmn": "App\\Abstracts\\Job@booted",
            "file": "app/Abstracts/Job.php"
          },
          {
            "surface_id": "method::app/Abstracts/Job.php::App\\Abstracts\\Job::booting",
            "fqmn": "App\\Abstracts\\Job@booting",
            "file": "app/Abstracts/Job.php"
          },
          {
            "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::applyCustomerGroup",
            "fqmn": "App\\Abstracts\\Listeners\\Report@applyCustomerGroup",
            "file": "app/Abstracts/Listeners/Report.php"
          },
          {
            "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::applyDateFilter",
            "fqmn": "App\\Abstracts\\Listeners\\Report@applyDateFilter",
            "file": "app/Abstracts/Listeners/Report.php"
          },
          {
            "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::applyDiscountFilter",
            "fqmn": "App\\Abstracts\\Listeners\\Report@applyDiscountFilter",
            "file": "app/Abstracts/Listeners/Report.php"
          },
          {
            "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::applySearchStringFilter",
            "fqmn": "App\\Abstracts\\Listeners\\Report@applySearchStringFilter",
            "file": "app/Abstracts/Listeners/Report.php"
          },
          {
            "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::applyVendorGroup",
            "fqmn": "App\\Abstracts\\Listeners\\Report@applyVendorGroup",
            "file": "app/Abstracts/Listeners/Report.php"
          },
          {
            "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::setDateFilter",
            "fqmn": "App\\Abstracts\\Listeners\\Report@setDateFilter",
            "file": "app/Abstracts/Listeners/Report.php"
          },
          {
            "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::setRowNamesAndValues",
            "fqmn": "App\\Abstracts\\Listeners\\Report@setRowNamesAndValues",
            "file": "app/Abstracts/Listeners/Report.php"
          },
          {
            "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::setTreeNodes",
            "fqmn": "App\\Abstracts\\Listeners\\Report@setTreeNodes",
            "file": "app/Abstracts/Listeners/Report.php"
          },
          {
            "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::subscribe",
            "fqmn": "App\\Abstracts\\Listeners\\Report@subscribe",
            "file": "app/Abstracts/Listeners/Report.php"
          },
          {
            "surface_id": "method::app/Console/Commands/BillReminder.php::App\\Console\\Commands\\BillReminder::handle",
            "fqmn": "App\\Console\\Commands\\BillReminder@handle",
            "file": "app/Console/Commands/BillReminder.php"
          },
          {
            "surface_id": "method::app/Console/Commands/CompanySeed.php::App\\Console\\Commands\\CompanySeed::handle",
            "fqmn": "App\\Console\\Commands\\CompanySeed@handle",
            "file": "app/Console/Commands/CompanySeed.php"
          },
          {
            "surface_id": "method::app/Console/Commands/InstallRefresh.php::App\\Console\\Commands\\InstallRefresh::handle",
            "fqmn": "App\\Console\\Commands\\InstallRefresh@handle",
            "file": "app/Console/Commands/InstallRefresh.php"
          },
          {
            "surface_id": "method::app/Console/Commands/InvoiceReminder.php::App\\Console\\Commands\\InvoiceReminder::handle",
            "fqmn": "App\\Console\\Commands\\InvoiceReminder@handle",
            "file": "app/Console/Commands/InvoiceReminder.php"
          },
          {
            "surface_id": "method::app/Console/Commands/RecurringCheck.php::App\\Console\\Commands\\RecurringCheck::handle",
            "fqmn": "App\\Console\\Commands\\RecurringCheck@handle",
            "file": "app/Console/Commands/RecurringCheck.php"
          },
          {
            "surface_id": "method::app/Console/Commands/RecurringCheck.php::App\\Console\\Commands\\RecurringCheck::updateRelationTypes",
            "fqmn": "App\\Console\\Commands\\RecurringCheck@updateRelationTypes",
            "file": "app/Console/Commands/RecurringCheck.php"
          },
          {
            "surface_id": "method::app/Console/Commands/SampleData.php::App\\Console\\Commands\\SampleData::handle",
            "fqmn": "App\\Console\\Commands\\SampleData@handle",
            "file": "app/Console/Commands/SampleData.php"
          },
          {
            "surface_id": "method::app/Console/Commands/StorageTempClear.php::App\\Console\\Commands\\StorageTempClear::handle",
            "fqmn": "App\\Console\\Commands\\StorageTempClear@handle",
            "file": "app/Console/Commands/StorageTempClear.php"
          },
          {
            "surface_id": "method::app/Console/Commands/UpdateDb.php::App\\Console\\Commands\\UpdateDb::handle",
            "fqmn": "App\\Console\\Commands\\UpdateDb@handle",
            "file": "app/Console/Commands/UpdateDb.php"
          },
          {
            "surface_id": "method::app/Console/Commands/UserSeed.php::App\\Console\\Commands\\UserSeed::handle",
            "fqmn": "App\\Console\\Commands\\UserSeed@handle",
            "file": "app/Console/Commands/UserSeed.php"
          },
          {
            "surface_id": "method::app/Exceptions/Http/Resource.php::App\\Exceptions\\Http\\Resource::__construct",
            "fqmn": "App\\Exceptions\\Http\\Resource@__construct",
            "file": "app/Exceptions/Http/Resource.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Api/Common/Ping.php::App\\Http\\Controllers\\Api\\Common\\Ping::__construct",
            "fqmn": "App\\Http\\Controllers\\Api\\Common\\Ping@__construct",
            "file": "app/Http/Controllers/Api/Common/Ping.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Api/Document/DocumentTransactions.php::App\\Http\\Controllers\\Api\\Document\\DocumentTransactions::__construct",
            "fqmn": "App\\Http\\Controllers\\Api\\Document\\DocumentTransactions@__construct",
            "file": "app/Http/Controllers/Api/Document/DocumentTransactions.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Api/Settings/Settings.php::App\\Http\\Controllers\\Api\\Settings\\Settings::__construct",
            "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Settings@__construct",
            "file": "app/Http/Controllers/Api/Settings/Settings.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Auth/Forgot.php::App\\Http\\Controllers\\Auth\\Forgot::__construct",
            "fqmn": "App\\Http\\Controllers\\Auth\\Forgot@__construct",
            "file": "app/Http/Controllers/Auth/Forgot.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Auth/Login.php::App\\Http\\Controllers\\Auth\\Login::__construct",
            "fqmn": "App\\Http\\Controllers\\Auth\\Login@__construct",
            "file": "app/Http/Controllers/Auth/Login.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Auth/Login.php::App\\Http\\Controllers\\Auth\\Login::logout",
            "fqmn": "App\\Http\\Controllers\\Auth\\Login@logout",
            "file": "app/Http/Controllers/Auth/Login.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Auth/Register.php::App\\Http\\Controllers\\Auth\\Register::__construct",
            "fqmn": "App\\Http\\Controllers\\Auth\\Register@__construct",
            "file": "app/Http/Controllers/Auth/Register.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Auth/Reset.php::App\\Http\\Controllers\\Auth\\Reset::__construct",
            "fqmn": "App\\Http\\Controllers\\Auth\\Reset@__construct",
            "file": "app/Http/Controllers/Auth/Reset.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Auth/Users.php::App\\Http\\Controllers\\Auth\\Users::__construct",
            "fqmn": "App\\Http\\Controllers\\Auth\\Users@__construct",
            "file": "app/Http/Controllers/Auth/Users.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Banking/RecurringTransactions.php::App\\Http\\Controllers\\Banking\\RecurringTransactions::__construct",
            "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@__construct",
            "file": "app/Http/Controllers/Banking/RecurringTransactions.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::__construct",
            "fqmn": "App\\Http\\Controllers\\Common\\Companies@__construct",
            "file": "app/Http/Controllers/Common/Companies.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Common/Contacts.php::App\\Http\\Controllers\\Common\\Contacts::__construct",
            "fqmn": "App\\Http\\Controllers\\Common\\Contacts@__construct",
            "file": "app/Http/Controllers/Common/Contacts.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Common/Dashboards.php::App\\Http\\Controllers\\Common\\Dashboards::__construct",
            "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@__construct",
            "file": "app/Http/Controllers/Common/Dashboards.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::__construct",
            "fqmn": "App\\Http\\Controllers\\Common\\Reports@__construct",
            "file": "app/Http/Controllers/Common/Reports.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Modals/Accounts.php::App\\Http\\Controllers\\Modals\\Accounts::__construct",
            "fqmn": "App\\Http\\Controllers\\Modals\\Accounts@__construct",
            "file": "app/Http/Controllers/Modals/Accounts.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Modals/Categories.php::App\\Http\\Controllers\\Modals\\Categories::__construct",
            "fqmn": "App\\Http\\Controllers\\Modals\\Categories@__construct",
            "file": "app/Http/Controllers/Modals/Categories.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Modals/Companies.php::App\\Http\\Controllers\\Modals\\Companies::__construct",
            "fqmn": "App\\Http\\Controllers\\Modals\\Companies@__construct",
            "file": "app/Http/Controllers/Modals/Companies.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Modals/Currencies.php::App\\Http\\Controllers\\Modals\\Currencies::__construct",
            "fqmn": "App\\Http\\Controllers\\Modals\\Currencies@__construct",
            "file": "app/Http/Controllers/Modals/Currencies.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Modals/Customers.php::App\\Http\\Controllers\\Modals\\Customers::__construct",
            "fqmn": "App\\Http\\Controllers\\Modals\\Customers@__construct",
            "file": "app/Http/Controllers/Modals/Customers.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Modals/DocumentItemColumns.php::App\\Http\\Controllers\\Modals\\DocumentItemColumns::__construct",
            "fqmn": "App\\Http\\Controllers\\Modals\\DocumentItemColumns@__construct",
            "file": "app/Http/Controllers/Modals/DocumentItemColumns.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Modals/DocumentTransactions.php::App\\Http\\Controllers\\Modals\\DocumentTransactions::__construct",
            "fqmn": "App\\Http\\Controllers\\Modals\\DocumentTransactions@__construct",
            "file": "app/Http/Controllers/Modals/DocumentTransactions.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Modals/InvoiceEmails.php::App\\Http\\Controllers\\Modals\\InvoiceEmails::__construct",
            "fqmn": "App\\Http\\Controllers\\Modals\\InvoiceEmails@__construct",
            "file": "app/Http/Controllers/Modals/InvoiceEmails.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Modals/InvoiceShare.php::App\\Http\\Controllers\\Modals\\InvoiceShare::__construct",
            "fqmn": "App\\Http\\Controllers\\Modals\\InvoiceShare@__construct",
            "file": "app/Http/Controllers/Modals/InvoiceShare.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Modals/InvoiceTemplates.php::App\\Http\\Controllers\\Modals\\InvoiceTemplates::__construct",
            "fqmn": "App\\Http\\Controllers\\Modals\\InvoiceTemplates@__construct",
            "file": "app/Http/Controllers/Modals/InvoiceTemplates.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Modals/Items.php::App\\Http\\Controllers\\Modals\\Items::__construct",
            "fqmn": "App\\Http\\Controllers\\Modals\\Items@__construct",
            "file": "app/Http/Controllers/Modals/Items.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Modals/Taxes.php::App\\Http\\Controllers\\Modals\\Taxes::__construct",
            "fqmn": "App\\Http\\Controllers\\Modals\\Taxes@__construct",
            "file": "app/Http/Controllers/Modals/Taxes.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Modals/TransactionEmails.php::App\\Http\\Controllers\\Modals\\TransactionEmails::__construct",
            "fqmn": "App\\Http\\Controllers\\Modals\\TransactionEmails@__construct",
            "file": "app/Http/Controllers/Modals/TransactionEmails.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Modals/TransactionShare.php::App\\Http\\Controllers\\Modals\\TransactionShare::__construct",
            "fqmn": "App\\Http\\Controllers\\Modals\\TransactionShare@__construct",
            "file": "app/Http/Controllers/Modals/TransactionShare.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Modals/TransferTemplates.php::App\\Http\\Controllers\\Modals\\TransferTemplates::__construct",
            "fqmn": "App\\Http\\Controllers\\Modals\\TransferTemplates@__construct",
            "file": "app/Http/Controllers/Modals/TransferTemplates.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Modals/Vendors.php::App\\Http\\Controllers\\Modals\\Vendors::__construct",
            "fqmn": "App\\Http\\Controllers\\Modals\\Vendors@__construct",
            "file": "app/Http/Controllers/Modals/Vendors.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::__construct",
            "fqmn": "App\\Http\\Controllers\\Modules\\Item@__construct",
            "file": "app/Http/Controllers/Modules/Item.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Purchases/RecurringBills.php::App\\Http\\Controllers\\Purchases\\RecurringBills::__construct",
            "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@__construct",
            "file": "app/Http/Controllers/Purchases/RecurringBills.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Sales/RecurringInvoices.php::App\\Http\\Controllers\\Sales\\RecurringInvoices::__construct",
            "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@__construct",
            "file": "app/Http/Controllers/Sales/RecurringInvoices.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Settings/Modules.php::App\\Http\\Controllers\\Settings\\Modules::__construct",
            "fqmn": "App\\Http\\Controllers\\Settings\\Modules@__construct",
            "file": "app/Http/Controllers/Settings/Modules.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Wizard/Companies.php::App\\Http\\Controllers\\Wizard\\Companies::__construct",
            "fqmn": "App\\Http\\Controllers\\Wizard\\Companies@__construct",
            "file": "app/Http/Controllers/Wizard/Companies.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Wizard/Currencies.php::App\\Http\\Controllers\\Wizard\\Currencies::__construct",
            "fqmn": "App\\Http\\Controllers\\Wizard\\Currencies@__construct",
            "file": "app/Http/Controllers/Wizard/Currencies.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Wizard/Finish.php::App\\Http\\Controllers\\Wizard\\Finish::__construct",
            "fqmn": "App\\Http\\Controllers\\Wizard\\Finish@__construct",
            "file": "app/Http/Controllers/Wizard/Finish.php"
          },
          {
            "surface_id": "method::app/Http/Requests/Banking/Transaction.php::App\\Http\\Requests\\Banking\\Transaction::withValidator",
            "fqmn": "App\\Http\\Requests\\Banking\\Transaction@withValidator",
            "file": "app/Http/Requests/Banking/Transaction.php"
          },
          {
            "surface_id": "method::app/Http/Requests/Document/Document.php::App\\Http\\Requests\\Document\\Document::withValidator",
            "fqmn": "App\\Http\\Requests\\Document\\Document@withValidator",
            "file": "app/Http/Requests/Document/Document.php"
          },
          {
            "surface_id": "method::app/Jobs/Auth/CreateInvitation.php::App\\Jobs\\Auth\\CreateInvitation::__construct",
            "fqmn": "App\\Jobs\\Auth\\CreateInvitation@__construct",
            "file": "app/Jobs/Auth/CreateInvitation.php"
          },
          {
            "surface_id": "method::app/Jobs/Auth/CreateUser.php::App\\Jobs\\Auth\\CreateUser::authorize",
            "fqmn": "App\\Jobs\\Auth\\CreateUser@authorize",
            "file": "app/Jobs/Auth/CreateUser.php"
          },
          {
            "surface_id": "method::app/Jobs/Auth/DeleteUser.php::App\\Jobs\\Auth\\DeleteUser::authorize",
            "fqmn": "App\\Jobs\\Auth\\DeleteUser@authorize",
            "file": "app/Jobs/Auth/DeleteUser.php"
          },
          {
            "surface_id": "method::app/Jobs/Auth/NotifyUser.php::App\\Jobs\\Auth\\NotifyUser::__construct",
            "fqmn": "App\\Jobs\\Auth\\NotifyUser@__construct",
            "file": "app/Jobs/Auth/NotifyUser.php"
          },
          {
            "surface_id": "method::app/Jobs/Auth/NotifyUser.php::App\\Jobs\\Auth\\NotifyUser::handle",
            "fqmn": "App\\Jobs\\Auth\\NotifyUser@handle",
            "file": "app/Jobs/Auth/NotifyUser.php"
          },
          {
            "surface_id": "method::app/Jobs/Auth/UpdateUser.php::App\\Jobs\\Auth\\UpdateUser::authorize",
            "fqmn": "App\\Jobs\\Auth\\UpdateUser@authorize",
            "file": "app/Jobs/Auth/UpdateUser.php"
          },
          {
            "surface_id": "method::app/Jobs/Banking/CreateBankingDocumentTransaction.php::App\\Jobs\\Banking\\CreateBankingDocumentTransaction::__construct",
            "fqmn": "App\\Jobs\\Banking\\CreateBankingDocumentTransaction@__construct",
            "file": "app/Jobs/Banking/CreateBankingDocumentTransaction.php"
          },
          {
            "surface_id": "method::app/Jobs/Banking/CreateTransactionTaxes.php::App\\Jobs\\Banking\\CreateTransactionTaxes::__construct",
            "fqmn": "App\\Jobs\\Banking\\CreateTransactionTaxes@__construct",
            "file": "app/Jobs/Banking/CreateTransactionTaxes.php"
          },
          {
            "surface_id": "method::app/Jobs/Banking/CreateTransfer.php::App\\Jobs\\Banking\\CreateTransfer::authorize",
            "fqmn": "App\\Jobs\\Banking\\CreateTransfer@authorize",
            "file": "app/Jobs/Banking/CreateTransfer.php"
          },
          {
            "surface_id": "method::app/Jobs/Banking/DeleteAccount.php::App\\Jobs\\Banking\\DeleteAccount::authorize",
            "fqmn": "App\\Jobs\\Banking\\DeleteAccount@authorize",
            "file": "app/Jobs/Banking/DeleteAccount.php"
          },
          {
            "surface_id": "method::app/Jobs/Banking/DeleteTransaction.php::App\\Jobs\\Banking\\DeleteTransaction::authorize",
            "fqmn": "App\\Jobs\\Banking\\DeleteTransaction@authorize",
            "file": "app/Jobs/Banking/DeleteTransaction.php"
          },
          {
            "surface_id": "method::app/Jobs/Banking/DuplicateTransaction.php::App\\Jobs\\Banking\\DuplicateTransaction::__construct",
            "fqmn": "App\\Jobs\\Banking\\DuplicateTransaction@__construct",
            "file": "app/Jobs/Banking/DuplicateTransaction.php"
          },
          {
            "surface_id": "method::app/Jobs/Banking/MatchBankingDocumentTransaction.php::App\\Jobs\\Banking\\MatchBankingDocumentTransaction::__construct",
            "fqmn": "App\\Jobs\\Banking\\MatchBankingDocumentTransaction@__construct",
            "file": "app/Jobs/Banking/MatchBankingDocumentTransaction.php"
          },
          {
            "surface_id": "method::app/Jobs/Banking/SendTransaction.php::App\\Jobs\\Banking\\SendTransaction::__construct",
            "fqmn": "App\\Jobs\\Banking\\SendTransaction@__construct",
            "file": "app/Jobs/Banking/SendTransaction.php"
          },
          {
            "surface_id": "method::app/Jobs/Banking/SendTransaction.php::App\\Jobs\\Banking\\SendTransaction::handle",
            "fqmn": "App\\Jobs\\Banking\\SendTransaction@handle",
            "file": "app/Jobs/Banking/SendTransaction.php"
          },
          {
            "surface_id": "method::app/Jobs/Banking/SendTransactionAsCustomMail.php::App\\Jobs\\Banking\\SendTransactionAsCustomMail::__construct",
            "fqmn": "App\\Jobs\\Banking\\SendTransactionAsCustomMail@__construct",
            "file": "app/Jobs/Banking/SendTransactionAsCustomMail.php"
          },
          {
            "surface_id": "method::app/Jobs/Banking/SendTransactionAsCustomMail.php::App\\Jobs\\Banking\\SendTransactionAsCustomMail::handle",
            "fqmn": "App\\Jobs\\Banking\\SendTransactionAsCustomMail@handle",
            "file": "app/Jobs/Banking/SendTransactionAsCustomMail.php"
          },
          {
            "surface_id": "method::app/Jobs/Banking/SplitTransaction.php::App\\Jobs\\Banking\\SplitTransaction::authorize",
            "fqmn": "App\\Jobs\\Banking\\SplitTransaction@authorize",
            "file": "app/Jobs/Banking/SplitTransaction.php"
          },
          {
            "surface_id": "method::app/Jobs/Banking/UpdateBankingDocumentTransaction.php::App\\Jobs\\Banking\\UpdateBankingDocumentTransaction::__construct",
            "fqmn": "App\\Jobs\\Banking\\UpdateBankingDocumentTransaction@__construct",
            "file": "app/Jobs/Banking/UpdateBankingDocumentTransaction.php"
          },
          {
            "surface_id": "method::app/Jobs/Banking/UpdateTransaction.php::App\\Jobs\\Banking\\UpdateTransaction::authorize",
            "fqmn": "App\\Jobs\\Banking\\UpdateTransaction@authorize",
            "file": "app/Jobs/Banking/UpdateTransaction.php"
          },
          {
            "surface_id": "method::app/Jobs/Banking/UpdateTransfer.php::App\\Jobs\\Banking\\UpdateTransfer::authorize",
            "fqmn": "App\\Jobs\\Banking\\UpdateTransfer@authorize",
            "file": "app/Jobs/Banking/UpdateTransfer.php"
          },
          {
            "surface_id": "method::app/Jobs/Common/CreateCompany.php::App\\Jobs\\Common\\CreateCompany::authorize",
            "fqmn": "App\\Jobs\\Common\\CreateCompany@authorize",
            "file": "app/Jobs/Common/CreateCompany.php"
          },
          {
            "surface_id": "method::app/Jobs/Common/CreateContactPersons.php::App\\Jobs\\Common\\CreateContactPersons::__construct",
            "fqmn": "App\\Jobs\\Common\\CreateContactPersons@__construct",
            "file": "app/Jobs/Common/CreateContactPersons.php"
          },
          {
            "surface_id": "method::app/Jobs/Common/CreateItemTaxes.php::App\\Jobs\\Common\\CreateItemTaxes::__construct",
            "fqmn": "App\\Jobs\\Common\\CreateItemTaxes@__construct",
            "file": "app/Jobs/Common/CreateItemTaxes.php"
          },
          {
            "surface_id": "method::app/Jobs/Common/CreateMediableForDownload.php::App\\Jobs\\Common\\CreateMediableForDownload::__construct",
            "fqmn": "App\\Jobs\\Common\\CreateMediableForDownload@__construct",
            "file": "app/Jobs/Common/CreateMediableForDownload.php"
          },
          {
            "surface_id": "method::app/Jobs/Common/CreateMediableForDownload.php::App\\Jobs\\Common\\CreateMediableForDownload::handle",
            "fqmn": "App\\Jobs\\Common\\CreateMediableForDownload@handle",
            "file": "app/Jobs/Common/CreateMediableForDownload.php"
          },
          {
            "surface_id": "method::app/Jobs/Common/CreateMediableForExport.php::App\\Jobs\\Common\\CreateMediableForExport::__construct",
            "fqmn": "App\\Jobs\\Common\\CreateMediableForExport@__construct",
            "file": "app/Jobs/Common/CreateMediableForExport.php"
          },
          {
            "surface_id": "method::app/Jobs/Common/CreateMediableForExport.php::App\\Jobs\\Common\\CreateMediableForExport::handle",
            "fqmn": "App\\Jobs\\Common\\CreateMediableForExport@handle",
            "file": "app/Jobs/Common/CreateMediableForExport.php"
          },
          {
            "surface_id": "method::app/Jobs/Common/CreateZipForDownload.php::App\\Jobs\\Common\\CreateZipForDownload::__construct",
            "fqmn": "App\\Jobs\\Common\\CreateZipForDownload@__construct",
            "file": "app/Jobs/Common/CreateZipForDownload.php"
          },
          {
            "surface_id": "method::app/Jobs/Common/DeleteCompany.php::App\\Jobs\\Common\\DeleteCompany::authorize",
            "fqmn": "App\\Jobs\\Common\\DeleteCompany@authorize",
            "file": "app/Jobs/Common/DeleteCompany.php"
          },
          {
            "surface_id": "method::app/Jobs/Common/DeleteCompany.php::App\\Jobs\\Common\\DeleteCompany::booted",
            "fqmn": "App\\Jobs\\Common\\DeleteCompany@booted",
            "file": "app/Jobs/Common/DeleteCompany.php"
          },
          {
            "surface_id": "method::app/Jobs/Common/DeleteContact.php::App\\Jobs\\Common\\DeleteContact::authorize",
            "fqmn": "App\\Jobs\\Common\\DeleteContact@authorize",
            "file": "app/Jobs/Common/DeleteContact.php"
          },
          {
            "surface_id": "method::app/Jobs/Common/DeleteDashboard.php::App\\Jobs\\Common\\DeleteDashboard::authorize",
            "fqmn": "App\\Jobs\\Common\\DeleteDashboard@authorize",
            "file": "app/Jobs/Common/DeleteDashboard.php"
          },
          {
            "surface_id": "method::app/Jobs/Common/DeleteItem.php::App\\Jobs\\Common\\DeleteItem::authorize",
            "fqmn": "App\\Jobs\\Common\\DeleteItem@authorize",
            "file": "app/Jobs/Common/DeleteItem.php"
          },
          {
            "surface_id": "method::app/Jobs/Common/DuplicateContact.php::App\\Jobs\\Common\\DuplicateContact::__construct",
            "fqmn": "App\\Jobs\\Common\\DuplicateContact@__construct",
            "file": "app/Jobs/Common/DuplicateContact.php"
          },
          {
            "surface_id": "method::app/Jobs/Common/UpdateCompany.php::App\\Jobs\\Common\\UpdateCompany::authorize",
            "fqmn": "App\\Jobs\\Common\\UpdateCompany@authorize",
            "file": "app/Jobs/Common/UpdateCompany.php"
          },
          {
            "surface_id": "method::app/Jobs/Common/UpdateCompany.php::App\\Jobs\\Common\\UpdateCompany::booted",
            "fqmn": "App\\Jobs\\Common\\UpdateCompany@booted",
            "file": "app/Jobs/Common/UpdateCompany.php"
          },
          {
            "surface_id": "method::app/Jobs/Common/UpdateContact.php::App\\Jobs\\Common\\UpdateContact::authorize",
            "fqmn": "App\\Jobs\\Common\\UpdateContact@authorize",
            "file": "app/Jobs/Common/UpdateContact.php"
          },
          {
            "surface_id": "method::app/Jobs/Common/UpdateContact.php::App\\Jobs\\Common\\UpdateContact::updateRecurringDocument",
            "fqmn": "App\\Jobs\\Common\\UpdateContact@updateRecurringDocument",
            "file": "app/Jobs/Common/UpdateContact.php"
          },
          {
            "surface_id": "method::app/Jobs/Common/UpdateDashboard.php::App\\Jobs\\Common\\UpdateDashboard::authorize",
            "fqmn": "App\\Jobs\\Common\\UpdateDashboard@authorize",
            "file": "app/Jobs/Common/UpdateDashboard.php"
          },
          {
            "surface_id": "method::app/Jobs/Document/CancelDocument.php::App\\Jobs\\Document\\CancelDocument::__construct",
            "fqmn": "App\\Jobs\\Document\\CancelDocument@__construct",
            "file": "app/Jobs/Document/CancelDocument.php"
          },
          {
            "surface_id": "method::app/Jobs/Document/CancelDocument.php::App\\Jobs\\Document\\CancelDocument::authorize",
            "fqmn": "App\\Jobs\\Document\\CancelDocument@authorize",
            "file": "app/Jobs/Document/CancelDocument.php"
          },
          {
            "surface_id": "method::app/Jobs/Document/CreateDocument.php::App\\Jobs\\Document\\CreateDocument::authorize",
            "fqmn": "App\\Jobs\\Document\\CreateDocument@authorize",
            "file": "app/Jobs/Document/CreateDocument.php"
          },
          {
            "surface_id": "method::app/Jobs/Document/CreateDocumentHistory.php::App\\Jobs\\Document\\CreateDocumentHistory::__construct",
            "fqmn": "App\\Jobs\\Document\\CreateDocumentHistory@__construct",
            "file": "app/Jobs/Document/CreateDocumentHistory.php"
          },
          {
            "surface_id": "method::app/Jobs/Document/CreateDocumentItem.php::App\\Jobs\\Document\\CreateDocumentItem::__construct",
            "fqmn": "App\\Jobs\\Document\\CreateDocumentItem@__construct",
            "file": "app/Jobs/Document/CreateDocumentItem.php"
          },
          {
            "surface_id": "method::app/Jobs/Document/CreateDocumentItemsAndTotals.php::App\\Jobs\\Document\\CreateDocumentItemsAndTotals::__construct",
            "fqmn": "App\\Jobs\\Document\\CreateDocumentItemsAndTotals@__construct",
            "file": "app/Jobs/Document/CreateDocumentItemsAndTotals.php"
          },
          {
            "surface_id": "method::app/Jobs/Document/CreateDocumentItemsAndTotals.php::App\\Jobs\\Document\\CreateDocumentItemsAndTotals::handle",
            "fqmn": "App\\Jobs\\Document\\CreateDocumentItemsAndTotals@handle",
            "file": "app/Jobs/Document/CreateDocumentItemsAndTotals.php"
          },
          {
            "surface_id": "method::app/Jobs/Document/DeleteDocument.php::App\\Jobs\\Document\\DeleteDocument::authorize",
            "fqmn": "App\\Jobs\\Document\\DeleteDocument@authorize",
            "file": "app/Jobs/Document/DeleteDocument.php"
          },
          {
            "surface_id": "method::app/Jobs/Document/DownloadDocument.php::App\\Jobs\\Document\\DownloadDocument::__construct",
            "fqmn": "App\\Jobs\\Document\\DownloadDocument@__construct",
            "file": "app/Jobs/Document/DownloadDocument.php"
          },
          {
            "surface_id": "method::app/Jobs/Document/DuplicateDocument.php::App\\Jobs\\Document\\DuplicateDocument::__construct",
            "fqmn": "App\\Jobs\\Document\\DuplicateDocument@__construct",
            "file": "app/Jobs/Document/DuplicateDocument.php"
          },
          {
            "surface_id": "method::app/Jobs/Document/RestoreDocument.php::App\\Jobs\\Document\\RestoreDocument::__construct",
            "fqmn": "App\\Jobs\\Document\\RestoreDocument@__construct",
            "file": "app/Jobs/Document/RestoreDocument.php"
          },
          {
            "surface_id": "method::app/Jobs/Document/SendDocument.php::App\\Jobs\\Document\\SendDocument::__construct",
            "fqmn": "App\\Jobs\\Document\\SendDocument@__construct",
            "file": "app/Jobs/Document/SendDocument.php"
          },
          {
            "surface_id": "method::app/Jobs/Document/SendDocument.php::App\\Jobs\\Document\\SendDocument::handle",
            "fqmn": "App\\Jobs\\Document\\SendDocument@handle",
            "file": "app/Jobs/Document/SendDocument.php"
          },
          {
            "surface_id": "method::app/Jobs/Document/SendDocumentAsCustomMail.php::App\\Jobs\\Document\\SendDocumentAsCustomMail::__construct",
            "fqmn": "App\\Jobs\\Document\\SendDocumentAsCustomMail@__construct",
            "file": "app/Jobs/Document/SendDocumentAsCustomMail.php"
          },
          {
            "surface_id": "method::app/Jobs/Document/SendDocumentAsCustomMail.php::App\\Jobs\\Document\\SendDocumentAsCustomMail::handle",
            "fqmn": "App\\Jobs\\Document\\SendDocumentAsCustomMail@handle",
            "file": "app/Jobs/Document/SendDocumentAsCustomMail.php"
          },
          {
            "surface_id": "method::app/Jobs/Document/UpdateDocument.php::App\\Jobs\\Document\\UpdateDocument::authorize",
            "fqmn": "App\\Jobs\\Document\\UpdateDocument@authorize",
            "file": "app/Jobs/Document/UpdateDocument.php"
          },
          {
            "surface_id": "method::app/Jobs/Install/CopyFiles.php::App\\Jobs\\Install\\CopyFiles::__construct",
            "fqmn": "App\\Jobs\\Install\\CopyFiles@__construct",
            "file": "app/Jobs/Install/CopyFiles.php"
          },
          {
            "surface_id": "method::app/Jobs/Install/CopyFiles.php::App\\Jobs\\Install\\CopyFiles::handle",
            "fqmn": "App\\Jobs\\Install\\CopyFiles@handle",
            "file": "app/Jobs/Install/CopyFiles.php"
          },
          {
            "surface_id": "method::app/Jobs/Install/DisableModule.php::App\\Jobs\\Install\\DisableModule::__construct",
            "fqmn": "App\\Jobs\\Install\\DisableModule@__construct",
            "file": "app/Jobs/Install/DisableModule.php"
          },
          {
            "surface_id": "method::app/Jobs/Install/DisableModule.php::App\\Jobs\\Install\\DisableModule::authorize",
            "fqmn": "App\\Jobs\\Install\\DisableModule@authorize",
            "file": "app/Jobs/Install/DisableModule.php"
          },
          {
            "surface_id": "method::app/Jobs/Install/DisableModule.php::App\\Jobs\\Install\\DisableModule::handle",
            "fqmn": "App\\Jobs\\Install\\DisableModule@handle",
            "file": "app/Jobs/Install/DisableModule.php"
          },
          {
            "surface_id": "method::app/Jobs/Install/DownloadFile.php::App\\Jobs\\Install\\DownloadFile::__construct",
            "fqmn": "App\\Jobs\\Install\\DownloadFile@__construct",
            "file": "app/Jobs/Install/DownloadFile.php"
          },
          {
            "surface_id": "method::app/Jobs/Install/DownloadModule.php::App\\Jobs\\Install\\DownloadModule::__construct",
            "fqmn": "App\\Jobs\\Install\\DownloadModule@__construct",
            "file": "app/Jobs/Install/DownloadModule.php"
          },
          {
            "surface_id": "method::app/Jobs/Install/DownloadModule.php::App\\Jobs\\Install\\DownloadModule::handle",
            "fqmn": "App\\Jobs\\Install\\DownloadModule@handle",
            "file": "app/Jobs/Install/DownloadModule.php"
          },
          {
            "surface_id": "method::app/Jobs/Install/EnableModule.php::App\\Jobs\\Install\\EnableModule::__construct",
            "fqmn": "App\\Jobs\\Install\\EnableModule@__construct",
            "file": "app/Jobs/Install/EnableModule.php"
          },
          {
            "surface_id": "method::app/Jobs/Install/EnableModule.php::App\\Jobs\\Install\\EnableModule::authorize",
            "fqmn": "App\\Jobs\\Install\\EnableModule@authorize",
            "file": "app/Jobs/Install/EnableModule.php"
          },
          {
            "surface_id": "method::app/Jobs/Install/EnableModule.php::App\\Jobs\\Install\\EnableModule::handle",
            "fqmn": "App\\Jobs\\Install\\EnableModule@handle",
            "file": "app/Jobs/Install/EnableModule.php"
          },
          {
            "surface_id": "method::app/Jobs/Install/FinishUpdate.php::App\\Jobs\\Install\\FinishUpdate::__construct",
            "fqmn": "App\\Jobs\\Install\\FinishUpdate@__construct",
            "file": "app/Jobs/Install/FinishUpdate.php"
          },
          {
            "surface_id": "method::app/Jobs/Install/FinishUpdate.php::App\\Jobs\\Install\\FinishUpdate::authorize",
            "fqmn": "App\\Jobs\\Install\\FinishUpdate@authorize",
            "file": "app/Jobs/Install/FinishUpdate.php"
          },
          {
            "surface_id": "method::app/Jobs/Install/FinishUpdate.php::App\\Jobs\\Install\\FinishUpdate::handle",
            "fqmn": "App\\Jobs\\Install\\FinishUpdate@handle",
            "file": "app/Jobs/Install/FinishUpdate.php"
          },
          {
            "surface_id": "method::app/Jobs/Install/InstallModule.php::App\\Jobs\\Install\\InstallModule::__construct",
            "fqmn": "App\\Jobs\\Install\\InstallModule@__construct",
            "file": "app/Jobs/Install/InstallModule.php"
          },
          {
            "surface_id": "method::app/Jobs/Install/InstallModule.php::App\\Jobs\\Install\\InstallModule::authorize",
            "fqmn": "App\\Jobs\\Install\\InstallModule@authorize",
            "file": "app/Jobs/Install/InstallModule.php"
          },
          {
            "surface_id": "method::app/Jobs/Install/InstallModule.php::App\\Jobs\\Install\\InstallModule::handle",
            "fqmn": "App\\Jobs\\Install\\InstallModule@handle",
            "file": "app/Jobs/Install/InstallModule.php"
          },
          {
            "surface_id": "method::app/Jobs/Install/UninstallModule.php::App\\Jobs\\Install\\UninstallModule::__construct",
            "fqmn": "App\\Jobs\\Install\\UninstallModule@__construct",
            "file": "app/Jobs/Install/UninstallModule.php"
          },
          {
            "surface_id": "method::app/Jobs/Install/UninstallModule.php::App\\Jobs\\Install\\UninstallModule::authorize",
            "fqmn": "App\\Jobs\\Install\\UninstallModule@authorize",
            "file": "app/Jobs/Install/UninstallModule.php"
          },
          {
            "surface_id": "method::app/Jobs/Install/UninstallModule.php::App\\Jobs\\Install\\UninstallModule::handle",
            "fqmn": "App\\Jobs\\Install\\UninstallModule@handle",
            "file": "app/Jobs/Install/UninstallModule.php"
          },
          {
            "surface_id": "method::app/Jobs/Install/UnzipFile.php::App\\Jobs\\Install\\UnzipFile::__construct",
            "fqmn": "App\\Jobs\\Install\\UnzipFile@__construct",
            "file": "app/Jobs/Install/UnzipFile.php"
          },
          {
            "surface_id": "method::app/Jobs/Setting/DeleteCategory.php::App\\Jobs\\Setting\\DeleteCategory::authorize",
            "fqmn": "App\\Jobs\\Setting\\DeleteCategory@authorize",
            "file": "app/Jobs/Setting/DeleteCategory.php"
          },
          {
            "surface_id": "method::app/Jobs/Setting/DeleteCategory.php::App\\Jobs\\Setting\\DeleteCategory::deleteSubCategories",
            "fqmn": "App\\Jobs\\Setting\\DeleteCategory@deleteSubCategories",
            "file": "app/Jobs/Setting/DeleteCategory.php"
          },
          {
            "surface_id": "method::app/Jobs/Setting/DeleteCategory.php::App\\Jobs\\Setting\\DeleteCategory::getSubCategoryRelationships",
            "fqmn": "App\\Jobs\\Setting\\DeleteCategory@getSubCategoryRelationships",
            "file": "app/Jobs/Setting/DeleteCategory.php"
          },
          {
            "surface_id": "method::app/Jobs/Setting/DeleteCurrency.php::App\\Jobs\\Setting\\DeleteCurrency::authorize",
            "fqmn": "App\\Jobs\\Setting\\DeleteCurrency@authorize",
            "file": "app/Jobs/Setting/DeleteCurrency.php"
          },
          {
            "surface_id": "method::app/Jobs/Setting/DeleteTax.php::App\\Jobs\\Setting\\DeleteTax::authorize",
            "fqmn": "App\\Jobs\\Setting\\DeleteTax@authorize",
            "file": "app/Jobs/Setting/DeleteTax.php"
          },
          {
            "surface_id": "method::app/Listeners/Auth/AddLandingPages.php::App\\Listeners\\Auth\\AddLandingPages::handle",
            "fqmn": "App\\Listeners\\Auth\\AddLandingPages@handle",
            "file": "app/Listeners/Auth/AddLandingPages.php"
          },
          {
            "surface_id": "method::app/Listeners/Auth/Login.php::App\\Listeners\\Auth\\Login::handle",
            "fqmn": "App\\Listeners\\Auth\\Login@handle",
            "file": "app/Listeners/Auth/Login.php"
          },
          {
            "surface_id": "method::app/Listeners/Auth/Logout.php::App\\Listeners\\Auth\\Logout::handle",
            "fqmn": "App\\Listeners\\Auth\\Logout@handle",
            "file": "app/Listeners/Auth/Logout.php"
          },
          {
            "surface_id": "method::app/Listeners/Banking/IncreaseNextTransactionNumber.php::App\\Listeners\\Banking\\IncreaseNextTransactionNumber::handle",
            "fqmn": "App\\Listeners\\Banking\\IncreaseNextTransactionNumber@handle",
            "file": "app/Listeners/Banking/IncreaseNextTransactionNumber.php"
          },
          {
            "surface_id": "method::app/Listeners/Common/ClearPlansCache.php::App\\Listeners\\Common\\ClearPlansCache::handle",
            "fqmn": "App\\Listeners\\Common\\ClearPlansCache@handle",
            "file": "app/Listeners/Common/ClearPlansCache.php"
          },
          {
            "surface_id": "method::app/Listeners/Document/CreateDocumentCreatedHistory.php::App\\Listeners\\Document\\CreateDocumentCreatedHistory::handle",
            "fqmn": "App\\Listeners\\Document\\CreateDocumentCreatedHistory@handle",
            "file": "app/Listeners/Document/CreateDocumentCreatedHistory.php"
          },
          {
            "surface_id": "method::app/Listeners/Document/IncreaseNextDocumentNumber.php::App\\Listeners\\Document\\IncreaseNextDocumentNumber::handle",
            "fqmn": "App\\Listeners\\Document\\IncreaseNextDocumentNumber@handle",
            "file": "app/Listeners/Document/IncreaseNextDocumentNumber.php"
          },
          {
            "surface_id": "method::app/Listeners/Document/MarkDocumentCancelled.php::App\\Listeners\\Document\\MarkDocumentCancelled::handle",
            "fqmn": "App\\Listeners\\Document\\MarkDocumentCancelled@handle",
            "file": "app/Listeners/Document/MarkDocumentCancelled.php"
          },
          {
            "surface_id": "method::app/Listeners/Document/MarkDocumentReceived.php::App\\Listeners\\Document\\MarkDocumentReceived::handle",
            "fqmn": "App\\Listeners\\Document\\MarkDocumentReceived@handle",
            "file": "app/Listeners/Document/MarkDocumentReceived.php"
          },
          {
            "surface_id": "method::app/Listeners/Document/MarkDocumentSent.php::App\\Listeners\\Document\\MarkDocumentSent::handle",
            "fqmn": "App\\Listeners\\Document\\MarkDocumentSent@handle",
            "file": "app/Listeners/Document/MarkDocumentSent.php"
          },
          {
            "surface_id": "method::app/Listeners/Document/RestoreDocument.php::App\\Listeners\\Document\\RestoreDocument::handle",
            "fqmn": "App\\Listeners\\Document\\RestoreDocument@handle",
            "file": "app/Listeners/Document/RestoreDocument.php"
          },
          {
            "surface_id": "method::app/Listeners/Document/SendDocumentReminderNotification.php::App\\Listeners\\Document\\SendDocumentReminderNotification::handle",
            "fqmn": "App\\Listeners\\Document\\SendDocumentReminderNotification@handle",
            "file": "app/Listeners/Document/SendDocumentReminderNotification.php"
          },
          {
            "surface_id": "method::app/Listeners/Email/DisablePersonDueToInvalidEmail.php::App\\Listeners\\Email\\DisablePersonDueToInvalidEmail::handle",
            "fqmn": "App\\Listeners\\Email\\DisablePersonDueToInvalidEmail@handle",
            "file": "app/Listeners/Email/DisablePersonDueToInvalidEmail.php"
          },
          {
            "surface_id": "method::app/Listeners/Email/ReportTooManyEmailsSent.php::App\\Listeners\\Email\\ReportTooManyEmailsSent::handle",
            "fqmn": "App\\Listeners\\Email\\ReportTooManyEmailsSent@handle",
            "file": "app/Listeners/Email/ReportTooManyEmailsSent.php"
          },
          {
            "surface_id": "method::app/Listeners/Menu/ShowInAdmin.php::App\\Listeners\\Menu\\ShowInAdmin::handle",
            "fqmn": "App\\Listeners\\Menu\\ShowInAdmin@handle",
            "file": "app/Listeners/Menu/ShowInAdmin.php"
          },
          {
            "surface_id": "method::app/Listeners/Menu/ShowInNeww.php::App\\Listeners\\Menu\\ShowInNeww::handle",
            "fqmn": "App\\Listeners\\Menu\\ShowInNeww@handle",
            "file": "app/Listeners/Menu/ShowInNeww.php"
          },
          {
            "surface_id": "method::app/Listeners/Menu/ShowInPortal.php::App\\Listeners\\Menu\\ShowInPortal::handle",
            "fqmn": "App\\Listeners\\Menu\\ShowInPortal@handle",
            "file": "app/Listeners/Menu/ShowInPortal.php"
          },
          {
            "surface_id": "method::app/Listeners/Menu/ShowInProfile.php::App\\Listeners\\Menu\\ShowInProfile::handle",
            "fqmn": "App\\Listeners\\Menu\\ShowInProfile@handle",
            "file": "app/Listeners/Menu/ShowInProfile.php"
          },
          {
            "surface_id": "method::app/Listeners/Menu/ShowInSettings.php::App\\Listeners\\Menu\\ShowInSettings::handle",
            "fqmn": "App\\Listeners\\Menu\\ShowInSettings@handle",
            "file": "app/Listeners/Menu/ShowInSettings.php"
          },
          {
            "surface_id": "method::app/Listeners/Module/ClearCache.php::App\\Listeners\\Module\\ClearCache::handle",
            "fqmn": "App\\Listeners\\Module\\ClearCache@handle",
            "file": "app/Listeners/Module/ClearCache.php"
          },
          {
            "surface_id": "method::app/Listeners/Module/ClearCache.php::App\\Listeners\\Module\\ClearCache::subscribe",
            "fqmn": "App\\Listeners\\Module\\ClearCache@subscribe",
            "file": "app/Listeners/Module/ClearCache.php"
          },
          {
            "surface_id": "method::app/Listeners/Module/FinishInstallation.php::App\\Listeners\\Module\\FinishInstallation::handle",
            "fqmn": "App\\Listeners\\Module\\FinishInstallation@handle",
            "file": "app/Listeners/Module/FinishInstallation.php"
          },
          {
            "surface_id": "method::app/Listeners/Module/FinishUninstallation.php::App\\Listeners\\Module\\FinishUninstallation::handle",
            "fqmn": "App\\Listeners\\Module\\FinishUninstallation@handle",
            "file": "app/Listeners/Module/FinishUninstallation.php"
          },
          {
            "surface_id": "method::app/Listeners/Report/AddIncomeExpenseCategories.php::App\\Listeners\\Report\\AddIncomeExpenseCategories::setRowNamesAndValuesForCategories",
            "fqmn": "App\\Listeners\\Report\\AddIncomeExpenseCategories@setRowNamesAndValuesForCategories",
            "file": "app/Listeners/Report/AddIncomeExpenseCategories.php"
          },
          {
            "surface_id": "method::app/Listeners/Report/AddIncomeExpenseCategories.php::App\\Listeners\\Report\\AddIncomeExpenseCategories::setTreeNodesForCategories",
            "fqmn": "App\\Listeners\\Report\\AddIncomeExpenseCategories@setTreeNodesForCategories",
            "file": "app/Listeners/Report/AddIncomeExpenseCategories.php"
          },
          {
            "surface_id": "method::app/Listeners/Update/SendNotificationOnFailure.php::App\\Listeners\\Update\\SendNotificationOnFailure::handle",
            "fqmn": "App\\Listeners\\Update\\SendNotificationOnFailure@handle",
            "file": "app/Listeners/Update/SendNotificationOnFailure.php"
          },
          {
            "surface_id": "method::app/Listeners/Update/V30/Version300.php::App\\Listeners\\Update\\V30\\Version300::clearNotifications",
            "fqmn": "App\\Listeners\\Update\\V30\\Version300@clearNotifications",
            "file": "app/Listeners/Update/V30/Version300.php"
          },
          {
            "surface_id": "method::app/Listeners/Update/V30/Version300.php::App\\Listeners\\Update\\V30\\Version300::createNewWidgets",
            "fqmn": "App\\Listeners\\Update\\V30\\Version300@createNewWidgets",
            "file": "app/Listeners/Update/V30/Version300.php"
          },
          {
            "surface_id": "method::app/Listeners/Update/V30/Version300.php::App\\Listeners\\Update\\V30\\Version300::deleteOldFiles",
            "fqmn": "App\\Listeners\\Update\\V30\\Version300@deleteOldFiles",
            "file": "app/Listeners/Update/V30/Version300.php"
          },
          {
            "surface_id": "method::app/Listeners/Update/V30/Version300.php::App\\Listeners\\Update\\V30\\Version300::deleteOldWidgets",
            "fqmn": "App\\Listeners\\Update\\V30\\Version300@deleteOldWidgets",
            "file": "app/Listeners/Update/V30/Version300.php"
          },
          {
            "surface_id": "method::app/Listeners/Update/V30/Version300.php::App\\Listeners\\Update\\V30\\Version300::saveNextTransactionNumber",
            "fqmn": "App\\Listeners\\Update\\V30\\Version300@saveNextTransactionNumber",
            "file": "app/Listeners/Update/V30/Version300.php"
          },
          {
            "surface_id": "method::app/Listeners/Update/V30/Version300.php::App\\Listeners\\Update\\V30\\Version300::updateCompanies",
            "fqmn": "App\\Listeners\\Update\\V30\\Version300@updateCompanies",
            "file": "app/Listeners/Update/V30/Version300.php"
          },
          {
            "surface_id": "method::app/Listeners/Update/V30/Version300.php::App\\Listeners\\Update\\V30\\Version300::updateDatabase",
            "fqmn": "App\\Listeners\\Update\\V30\\Version300@updateDatabase",
            "file": "app/Listeners/Update/V30/Version300.php"
          },
          {
            "surface_id": "method::app/Listeners/Update/V30/Version300.php::App\\Listeners\\Update\\V30\\Version300::updateEmailTemplates",
            "fqmn": "App\\Listeners\\Update\\V30\\Version300@updateEmailTemplates",
            "file": "app/Listeners/Update/V30/Version300.php"
          },
          {
            "surface_id": "method::app/Listeners/Update/V30/Version300.php::App\\Listeners\\Update\\V30\\Version300::updatePermissions",
            "fqmn": "App\\Listeners\\Update\\V30\\Version300@updatePermissions",
            "file": "app/Listeners/Update/V30/Version300.php"
          },
          {
            "surface_id": "method::app/Listeners/Update/V30/Version300.php::App\\Listeners\\Update\\V30\\Version300::updateRecurables",
            "fqmn": "App\\Listeners\\Update\\V30\\Version300@updateRecurables",
            "file": "app/Listeners/Update/V30/Version300.php"
          },
          {
            "surface_id": "method::app/Listeners/Update/V30/Version300.php::App\\Listeners\\Update\\V30\\Version300::updateTransactions",
            "fqmn": "App\\Listeners\\Update\\V30\\Version300@updateTransactions",
            "file": "app/Listeners/Update/V30/Version300.php"
          },
          {
            "surface_id": "method::app/Listeners/Update/V30/Version3015.php::App\\Listeners\\Update\\V30\\Version3015::updateDatabase",
            "fqmn": "App\\Listeners\\Update\\V30\\Version3015@updateDatabase",
            "file": "app/Listeners/Update/V30/Version3015.php"
          },
          {
            "surface_id": "method::app/Listeners/Update/V30/Version3016.php::App\\Listeners\\Update\\V30\\Version3016::updateDatabase",
            "fqmn": "App\\Listeners\\Update\\V30\\Version3016@updateDatabase",
            "file": "app/Listeners/Update/V30/Version3016.php"
          },
          {
            "surface_id": "method::app/Listeners/Update/V30/Version3017.php::App\\Listeners\\Update\\V30\\Version3017::updateDatabase",
            "fqmn": "App\\Listeners\\Update\\V30\\Version3017@updateDatabase",
            "file": "app/Listeners/Update/V30/Version3017.php"
          },
          {
            "surface_id": "method::app/Listeners/Update/V30/Version303.php::App\\Listeners\\Update\\V30\\Version303::updateCompanies",
            "fqmn": "App\\Listeners\\Update\\V30\\Version303@updateCompanies",
            "file": "app/Listeners/Update/V30/Version303.php"
          },
          {
            "surface_id": "method::app/Listeners/Update/V30/Version303.php::App\\Listeners\\Update\\V30\\Version303::updateWidgets",
            "fqmn": "App\\Listeners\\Update\\V30\\Version303@updateWidgets",
            "file": "app/Listeners/Update/V30/Version303.php"
          },
          {
            "surface_id": "method::app/Listeners/Update/V30/Version304.php::App\\Listeners\\Update\\V30\\Version304::deleteOldFiles",
            "fqmn": "App\\Listeners\\Update\\V30\\Version304@deleteOldFiles",
            "file": "app/Listeners/Update/V30/Version304.php"
          },
          {
            "surface_id": "method::app/Listeners/Update/V30/Version304.php::App\\Listeners\\Update\\V30\\Version304::updateCompanies",
            "fqmn": "App\\Listeners\\Update\\V30\\Version304@updateCompanies",
            "file": "app/Listeners/Update/V30/Version304.php"
          },
          {
            "surface_id": "method::app/Listeners/Update/V30/Version304.php::App\\Listeners\\Update\\V30\\Version304::updateDatabase",
            "fqmn": "App\\Listeners\\Update\\V30\\Version304@updateDatabase",
            "file": "app/Listeners/Update/V30/Version304.php"
          },
          {
            "surface_id": "method::app/Listeners/Update/V30/Version304.php::App\\Listeners\\Update\\V30\\Version304::updateEmailTemplates",
            "fqmn": "App\\Listeners\\Update\\V30\\Version304@updateEmailTemplates",
            "file": "app/Listeners/Update/V30/Version304.php"
          },
          {
            "surface_id": "method::app/Listeners/Update/V30/Version305.php::App\\Listeners\\Update\\V30\\Version305::updateDatabase",
            "fqmn": "App\\Listeners\\Update\\V30\\Version305@updateDatabase",
            "file": "app/Listeners/Update/V30/Version305.php"
          },
          {
            "surface_id": "method::app/Listeners/Update/V30/Version305.php::App\\Listeners\\Update\\V30\\Version305::updateSettings",
            "fqmn": "App\\Listeners\\Update\\V30\\Version305@updateSettings",
            "file": "app/Listeners/Update/V30/Version305.php"
          },
          {
            "surface_id": "method::app/Listeners/Update/V30/Version305.php::App\\Listeners\\Update\\V30\\Version305::updateTransfers",
            "fqmn": "App\\Listeners\\Update\\V30\\Version305@updateTransfers",
            "file": "app/Listeners/Update/V30/Version305.php"
          },
          {
            "surface_id": "method::app/Listeners/Update/V30/Version307.php::App\\Listeners\\Update\\V30\\Version307::updateDatabase",
            "fqmn": "App\\Listeners\\Update\\V30\\Version307@updateDatabase",
            "file": "app/Listeners/Update/V30/Version307.php"
          },
          {
            "surface_id": "method::app/Listeners/Update/V30/Version309.php::App\\Listeners\\Update\\V30\\Version309::updatePermissions",
            "fqmn": "App\\Listeners\\Update\\V30\\Version309@updatePermissions",
            "file": "app/Listeners/Update/V30/Version309.php"
          },
          {
            "surface_id": "method::app/Listeners/Update/V31/Version310.php::App\\Listeners\\Update\\V31\\Version310::updateDatabase",
            "fqmn": "App\\Listeners\\Update\\V31\\Version310@updateDatabase",
            "file": "app/Listeners/Update/V31/Version310.php"
          },
          {
            "surface_id": "method::app/Listeners/Update/V31/Version3112.php::App\\Listeners\\Update\\V31\\Version3112::updateDatabase",
            "fqmn": "App\\Listeners\\Update\\V31\\Version3112@updateDatabase",
            "file": "app/Listeners/Update/V31/Version3112.php"
          },
          {
            "surface_id": "method::app/Listeners/Update/V31/Version3115.php::App\\Listeners\\Update\\V31\\Version3115::updateDatabase",
            "fqmn": "App\\Listeners\\Update\\V31\\Version3115@updateDatabase",
            "file": "app/Listeners/Update/V31/Version3115.php"
          },
          {
            "surface_id": "method::app/Listeners/Update/V31/Version3119.php::App\\Listeners\\Update\\V31\\Version3119::updatePermissions",
            "fqmn": "App\\Listeners\\Update\\V31\\Version3119@updatePermissions",
            "file": "app/Listeners/Update/V31/Version3119.php"
          },
          {
            "surface_id": "method::app/Listeners/Update/V31/Version3122.php::App\\Listeners\\Update\\V31\\Version3122::updateDatabase",
            "fqmn": "App\\Listeners\\Update\\V31\\Version3122@updateDatabase",
            "file": "app/Listeners/Update/V31/Version3122.php"
          },
          {
            "surface_id": "method::app/Listeners/Update/V31/Version3122.php::App\\Listeners\\Update\\V31\\Version3122::updateDocumentItems",
            "fqmn": "App\\Listeners\\Update\\V31\\Version3122@updateDocumentItems",
            "file": "app/Listeners/Update/V31/Version3122.php"
          },
          {
            "surface_id": "method::app/Listeners/Update/V31/Version315.php::App\\Listeners\\Update\\V31\\Version315::clearCache",
            "fqmn": "App\\Listeners\\Update\\V31\\Version315@clearCache",
            "file": "app/Listeners/Update/V31/Version315.php"
          },
          {
            "surface_id": "method::app/Listeners/Update/V31/Version315.php::App\\Listeners\\Update\\V31\\Version315::updateWidgets",
            "fqmn": "App\\Listeners\\Update\\V31\\Version315@updateWidgets",
            "file": "app/Listeners/Update/V31/Version315.php"
          },
          {
            "surface_id": "method::app/Listeners/Update/V31/Version317.php::App\\Listeners\\Update\\V31\\Version317::clearCache",
            "fqmn": "App\\Listeners\\Update\\V31\\Version317@clearCache",
            "file": "app/Listeners/Update/V31/Version317.php"
          },
          {
            "surface_id": "method::app/Listeners/Update/V31/Version317.php::App\\Listeners\\Update\\V31\\Version317::deleteOldFiles",
            "fqmn": "App\\Listeners\\Update\\V31\\Version317@deleteOldFiles",
            "file": "app/Listeners/Update/V31/Version317.php"
          },
          {
            "surface_id": "method::app/Listeners/Update/V31/Version318.php::App\\Listeners\\Update\\V31\\Version318::clearCache",
            "fqmn": "App\\Listeners\\Update\\V31\\Version318@clearCache",
            "file": "app/Listeners/Update/V31/Version318.php"
          },
          {
            "surface_id": "method::app/Listeners/Update/V31/Version318.php::App\\Listeners\\Update\\V31\\Version318::deleteOldFiles",
            "fqmn": "App\\Listeners\\Update\\V31\\Version318@deleteOldFiles",
            "file": "app/Listeners/Update/V31/Version318.php"
          },
          {
            "surface_id": "method::app/Listeners/Update/V31/Version318.php::App\\Listeners\\Update\\V31\\Version318::updatePermissions",
            "fqmn": "App\\Listeners\\Update\\V31\\Version318@updatePermissions",
            "file": "app/Listeners/Update/V31/Version318.php"
          },
          {
            "surface_id": "method::app/Utilities/Installer.php::App\\Utilities\\Installer::createCompany",
            "fqmn": "App\\Utilities\\Installer@createCompany",
            "file": "app/Utilities/Installer.php"
          },
          {
            "surface_id": "method::app/Utilities/Installer.php::App\\Utilities\\Installer::createDefaultEnvFile",
            "fqmn": "App\\Utilities\\Installer@createDefaultEnvFile",
            "file": "app/Utilities/Installer.php"
          },
          {
            "surface_id": "method::app/Utilities/Installer.php::App\\Utilities\\Installer::createUser",
            "fqmn": "App\\Utilities\\Installer@createUser",
            "file": "app/Utilities/Installer.php"
          },
          {
            "surface_id": "method::app/Utilities/Installer.php::App\\Utilities\\Installer::finalTouches",
            "fqmn": "App\\Utilities\\Installer@finalTouches",
            "file": "app/Utilities/Installer.php"
          },
          {
            "surface_id": "method::app/Utilities/Modules.php::App\\Utilities\\Modules::clearPaymentMethodsCache",
            "fqmn": "App\\Utilities\\Modules@clearPaymentMethodsCache",
            "file": "app/Utilities/Modules.php"
          },
          {
            "surface_id": "route::routes/admin.php::delete::/accounts/{id}::closure::destroy",
            "fqmn": "route::routes/admin.php::delete::/accounts/{id}::closure::destroy",
            "file": "routes/admin.php"
          },
          {
            "surface_id": "route::routes/admin.php::delete::/api-key/{id}::closure::destroy",
            "fqmn": "route::routes/admin.php::delete::/api-key/{id}::closure::destroy",
            "file": "routes/admin.php"
          },
          {
            "surface_id": "route::routes/admin.php::get::/{alias}/settings::Settings\\Modules::edit",
            "fqmn": "Settings\\Modules@edit",
            "file": "routes/admin.php"
          },
          {
            "surface_id": "route::routes/admin.php::get::/{id}/inline::Common\\Uploads::inline",
            "fqmn": "Common\\Uploads@inline",
            "file": "routes/admin.php"
          },
          {
            "surface_id": "route::routes/admin.php::get::/accounts::closure::index",
            "fqmn": "route::routes/admin.php::get::/accounts::closure::index",
            "file": "routes/admin.php"
          },
          {
            "surface_id": "route::routes/admin.php::get::/accounts/{id}::closure::show",
            "fqmn": "route::routes/admin.php::get::/accounts/{id}::closure::show",
            "file": "routes/admin.php"
          },
          {
            "surface_id": "route::routes/admin.php::get::/accounts/{id}/edit::closure::edit",
            "fqmn": "route::routes/admin.php::get::/accounts/{id}/edit::closure::edit",
            "file": "routes/admin.php"
          },
          {
            "surface_id": "route::routes/admin.php::get::/accounts/create::closure::create",
            "fqmn": "route::routes/admin.php::get::/accounts/create::closure::create",
            "file": "routes/admin.php"
          },
          {
            "surface_id": "route::routes/admin.php::get::/accounts/currency::Banking\\Accounts::currency",
            "fqmn": "Banking\\Accounts@currency",
            "file": "routes/admin.php"
          },
          {
            "surface_id": "route::routes/admin.php::get::/api-key::closure::index",
            "fqmn": "route::routes/admin.php::get::/api-key::closure::index",
            "file": "routes/admin.php"
          },
          {
            "surface_id": "route::routes/admin.php::get::/api-key/{id}::closure::show",
            "fqmn": "route::routes/admin.php::get::/api-key/{id}::closure::show",
            "file": "routes/admin.php"
          },
          {
            "surface_id": "route::routes/admin.php::get::/api-key/{id}/edit::closure::edit",
            "fqmn": "route::routes/admin.php::get::/api-key/{id}/edit::closure::edit",
            "file": "routes/admin.php"
          },
          {
            "surface_id": "route::routes/admin.php::get::/api-key/create::closure::create",
            "fqmn": "route::routes/admin.php::get::/api-key/create::closure::create",
            "file": "routes/admin.php"
          },
          {
            "surface_id": "route::routes/admin.php::get::/bills/{bill}/received::Purchases\\Bills::markReceived",
            "fqmn": "Purchases\\Bills@markReceived",
            "file": "routes/admin.php"
          },
          {
            "surface_id": "route::routes/admin.php::get::/categories/{category}/enable::Settings\\Categories::enable",
            "fqmn": "Settings\\Categories@enable",
            "file": "routes/admin.php"
          },
          {
            "surface_id": "route::routes/admin.php::get::/companies/autocomplete::Common\\Companies::autocomplete",
            "fqmn": "Common\\Companies@autocomplete",
            "file": "routes/admin.php"
          },
          {
            "surface_id": "route::routes/admin.php::get::/invoices/{invoice}/sent::Sales\\Invoices::markSent",
            "fqmn": "Sales\\Invoices@markSent",
            "file": "routes/admin.php"
          },
          {
            "surface_id": "route::routes/admin.php::get::/logout::Auth\\Login::destroy",
            "fqmn": "Auth\\Login@destroy",
            "file": "routes/admin.php"
          },
          {
            "surface_id": "route::routes/admin.php::get::/updates::Install\\Updates::index",
            "fqmn": "Install\\Updates@index",
            "file": "routes/admin.php"
          },
          {
            "surface_id": "route::routes/admin.php::post::/accounts::closure::store",
            "fqmn": "route::routes/admin.php::post::/accounts::closure::store",
            "file": "routes/admin.php"
          },
          {
            "surface_id": "route::routes/admin.php::post::/api-key::closure::store",
            "fqmn": "route::routes/admin.php::post::/api-key::closure::store",
            "file": "routes/admin.php"
          },
          {
            "surface_id": "route::routes/admin.php::put::/accounts/{id}::closure::update",
            "fqmn": "route::routes/admin.php::put::/accounts/{id}::closure::update",
            "file": "routes/admin.php"
          },
          {
            "surface_id": "route::routes/admin.php::put::/api-key/{id}::closure::update",
            "fqmn": "route::routes/admin.php::put::/api-key/{id}::closure::update",
            "file": "routes/admin.php"
          },
          {
            "surface_id": "route::routes/api.php::get::/ping::Common\\Ping::pong",
            "fqmn": "Common\\Ping@pong",
            "file": "routes/api.php"
          },
          {
            "surface_id": "route::routes/common.php::get::/{id}::Common\\Uploads::get",
            "fqmn": "Common\\Uploads@get",
            "file": "routes/common.php"
          },
          {
            "surface_id": "route::routes/common.php::post::/livewire/update::closure",
            "fqmn": "route::routes/common.php::post::/livewire/update::closure",
            "file": "routes/common.php"
          },
          {
            "surface_id": "route::routes/guest.php::get::/login::Auth\\Login::create",
            "fqmn": "Auth\\Login@create",
            "file": "routes/guest.php"
          },
          {
            "surface_id": "route::routes/install.php::get::/::Install\\Requirements::show",
            "fqmn": "Install\\Requirements@show",
            "file": "routes/install.php"
          },
          {
            "surface_id": "route::routes/install.php::get::/database::Install\\Database::create",
            "fqmn": "Install\\Database@create",
            "file": "routes/install.php"
          },
          {
            "surface_id": "route::routes/install.php::get::/language::Install\\Language::create",
            "fqmn": "Install\\Language@create",
            "file": "routes/install.php"
          },
          {
            "surface_id": "route::routes/install.php::get::/language/getLanguages::Install\\Language::getLanguages",
            "fqmn": "Install\\Language@getLanguages",
            "file": "routes/install.php"
          },
          {
            "surface_id": "route::routes/install.php::get::/requirements::Install\\Requirements::show",
            "fqmn": "Install\\Requirements@show",
            "file": "routes/install.php"
          },
          {
            "surface_id": "route::routes/install.php::get::/settings::Install\\Settings::create",
            "fqmn": "Install\\Settings@create",
            "file": "routes/install.php"
          },
          {
            "surface_id": "route::routes/install.php::post::/database::Install\\Database::store",
            "fqmn": "Install\\Database@store",
            "file": "routes/install.php"
          },
          {
            "surface_id": "route::routes/install.php::post::/language::Install\\Language::store",
            "fqmn": "Install\\Language@store",
            "file": "routes/install.php"
          },
          {
            "surface_id": "route::routes/install.php::post::/settings::Install\\Settings::store",
            "fqmn": "Install\\Settings@store",
            "file": "routes/install.php"
          },
          {
            "surface_id": "route::routes/portal.php::get::/invoices/{invoice}/print::Portal\\Invoices::printInvoice",
            "fqmn": "Portal\\Invoices@printInvoice",
            "file": "routes/portal.php"
          },
          {
            "surface_id": "route::routes/preview.php::get::/invoices/{invoice}::Portal\\Invoices::preview",
            "fqmn": "Portal\\Invoices@preview",
            "file": "routes/preview.php"
          },
          {
            "surface_id": "route::routes/signed.php::get::/invoices/{invoice}::Portal\\Invoices::signed",
            "fqmn": "Portal\\Invoices@signed",
            "file": "routes/signed.php"
          },
          {
            "surface_id": "route::routes/signed.php::get::/invoices/{invoice}/finish::Portal\\Invoices::finish",
            "fqmn": "Portal\\Invoices@finish",
            "file": "routes/signed.php"
          },
          {
            "surface_id": "route::routes/signed.php::get::/invoices/{invoice}/pdf::Portal\\Invoices::pdfInvoice",
            "fqmn": "Portal\\Invoices@pdfInvoice",
            "file": "routes/signed.php"
          },
          {
            "surface_id": "route::routes/signed.php::get::/invoices/{invoice}/print::Portal\\Invoices::printInvoice",
            "fqmn": "Portal\\Invoices@printInvoice",
            "file": "routes/signed.php"
          },
          {
            "surface_id": "route::routes/signed.php::get::/payments/{payment}::Portal\\Payments::signed",
            "fqmn": "Portal\\Payments@signed",
            "file": "routes/signed.php"
          },
          {
            "surface_id": "route::routes/signed.php::get::/payments/{payment}/pdf::Portal\\Payments::pdfPayment",
            "fqmn": "Portal\\Payments@pdfPayment",
            "file": "routes/signed.php"
          },
          {
            "surface_id": "route::routes/signed.php::get::/payments/{payment}/print::Portal\\Payments::printPayment",
            "fqmn": "Portal\\Payments@printPayment",
            "file": "routes/signed.php"
          },
          {
            "surface_id": "route::routes/signed.php::post::/invoices/{invoice}/confirm::Portal\\Invoices::confirm",
            "fqmn": "Portal\\Invoices@confirm",
            "file": "routes/signed.php"
          },
          {
            "surface_id": "route::routes/signed.php::post::/invoices/{invoice}/payment::Portal\\Invoices::payment",
            "fqmn": "Portal\\Invoices@payment",
            "file": "routes/signed.php"
          },
          {
            "surface_id": "route::routes/wizard.php::get::/companies::Wizard\\Companies::edit",
            "fqmn": "Wizard\\Companies@edit",
            "file": "routes/wizard.php"
          }
        ]
      }
    }
  },
  "dead_code_triage": {
    "delete": [],
    "defer": [
      {
        "surface_id": "method::app/Abstracts/Http/ApiController.php::App\\Abstracts\\Http\\ApiController::__construct",
        "fqmn": "App\\Abstracts\\Http\\ApiController@__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/Abstracts/Http/ApiController.php::App\\Abstracts\\Http\\ApiController::accepted",
        "fqmn": "App\\Abstracts\\Http\\ApiController@accepted",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Http/ApiController.php::App\\Abstracts\\Http\\ApiController::created",
        "fqmn": "App\\Abstracts\\Http\\ApiController@created",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Http/ApiController.php::App\\Abstracts\\Http\\ApiController::error",
        "fqmn": "App\\Abstracts\\Http\\ApiController@error",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Http/ApiController.php::App\\Abstracts\\Http\\ApiController::errorBadRequest",
        "fqmn": "App\\Abstracts\\Http\\ApiController@errorBadRequest",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Http/ApiController.php::App\\Abstracts\\Http\\ApiController::errorForbidden",
        "fqmn": "App\\Abstracts\\Http\\ApiController@errorForbidden",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Http/ApiController.php::App\\Abstracts\\Http\\ApiController::errorInternal",
        "fqmn": "App\\Abstracts\\Http\\ApiController@errorInternal",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Http/ApiController.php::App\\Abstracts\\Http\\ApiController::errorMethodNotAllowed",
        "fqmn": "App\\Abstracts\\Http\\ApiController@errorMethodNotAllowed",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Http/ApiController.php::App\\Abstracts\\Http\\ApiController::errorNotFound",
        "fqmn": "App\\Abstracts\\Http\\ApiController@errorNotFound",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Http/ApiController.php::App\\Abstracts\\Http\\ApiController::errorUnauthorized",
        "fqmn": "App\\Abstracts\\Http\\ApiController@errorUnauthorized",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Http/ApiController.php::App\\Abstracts\\Http\\ApiController::noContent",
        "fqmn": "App\\Abstracts\\Http\\ApiController@noContent",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Http/Controller.php::App\\Abstracts\\Http\\Controller::__construct",
        "fqmn": "App\\Abstracts\\Http\\Controller@__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/Abstracts/Http/Controller.php::App\\Abstracts\\Http\\Controller::exportExcel",
        "fqmn": "App\\Abstracts\\Http\\Controller@exportExcel",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Http/Controller.php::App\\Abstracts\\Http\\Controller::importExcel",
        "fqmn": "App\\Abstracts\\Http\\Controller@importExcel",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Http/Controller.php::App\\Abstracts\\Http\\Controller::paginate",
        "fqmn": "App\\Abstracts\\Http\\Controller@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/Abstracts/Http/Controller.php::App\\Abstracts\\Http\\Controller::response",
        "fqmn": "App\\Abstracts\\Http\\Controller@response",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Http/Controller.php::App\\Abstracts\\Http\\Controller::setActiveTabForCategories",
        "fqmn": "App\\Abstracts\\Http\\Controller@setActiveTabForCategories",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Http/Controller.php::App\\Abstracts\\Http\\Controller::setActiveTabForDocuments",
        "fqmn": "App\\Abstracts\\Http\\Controller@setActiveTabForDocuments",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Http/Controller.php::App\\Abstracts\\Http\\Controller::setActiveTabForTransactions",
        "fqmn": "App\\Abstracts\\Http\\Controller@setActiveTabForTransactions",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::__construct",
        "fqmn": "App\\Abstracts\\Http\\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/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::cancel",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@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/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::dispatchPaidEvent",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@dispatchPaidEvent",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::finish",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@finish",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::forgetReference",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@forgetReference",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::getCancelUrl",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@getCancelUrl",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::getConfirmUrl",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@getConfirmUrl",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::getFinishUrl",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@getFinishUrl",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::getInvoiceUrl",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@getInvoiceUrl",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::getLogger",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@getLogger",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::getModuleUrl",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@getModuleUrl",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::getNotifyUrl",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@getNotifyUrl",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::getReference",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@getReference",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::getReturnUrl",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@getReturnUrl",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::setContactFirstLastName",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@setContactFirstLastName",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::setReference",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@setReference",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::show",
        "fqmn": "App\\Abstracts\\Http\\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/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::signed",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@signed",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Http/SettingController.php::App\\Abstracts\\Http\\SettingController::update",
        "fqmn": "App\\Abstracts\\Http\\SettingController@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/Abstracts/Job.php::App\\Abstracts\\Job::__construct",
        "fqmn": "App\\Abstracts\\Job@__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/Abstracts/Job.php::App\\Abstracts\\Job::bootCreate",
        "fqmn": "App\\Abstracts\\Job@bootCreate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Job.php::App\\Abstracts\\Job::bootDelete",
        "fqmn": "App\\Abstracts\\Job@bootDelete",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Job.php::App\\Abstracts\\Job::booted",
        "fqmn": "App\\Abstracts\\Job@booted",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Job.php::App\\Abstracts\\Job::booting",
        "fqmn": "App\\Abstracts\\Job@booting",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Job.php::App\\Abstracts\\Job::bootUpdate",
        "fqmn": "App\\Abstracts\\Job@bootUpdate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Job.php::App\\Abstracts\\Job::getRequestInstance",
        "fqmn": "App\\Abstracts\\Job@getRequestInstance",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Job.php::App\\Abstracts\\Job::setOwner",
        "fqmn": "App\\Abstracts\\Job@setOwner",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Job.php::App\\Abstracts\\Job::setSource",
        "fqmn": "App\\Abstracts\\Job@setSource",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::applyAccountGroup",
        "fqmn": "App\\Abstracts\\Listeners\\Report@applyAccountGroup",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::applyCustomerGroup",
        "fqmn": "App\\Abstracts\\Listeners\\Report@applyCustomerGroup",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::applyDateFilter",
        "fqmn": "App\\Abstracts\\Listeners\\Report@applyDateFilter",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::applyDiscountFilter",
        "fqmn": "App\\Abstracts\\Listeners\\Report@applyDiscountFilter",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::applySearchStringFilter",
        "fqmn": "App\\Abstracts\\Listeners\\Report@applySearchStringFilter",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::applyVendorGroup",
        "fqmn": "App\\Abstracts\\Listeners\\Report@applyVendorGroup",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::getAccounts",
        "fqmn": "App\\Abstracts\\Listeners\\Report@getAccounts",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::getBasis",
        "fqmn": "App\\Abstracts\\Listeners\\Report@getBasis",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::getCategories",
        "fqmn": "App\\Abstracts\\Listeners\\Report@getCategories",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::getCategoriesNodes",
        "fqmn": "App\\Abstracts\\Listeners\\Report@getCategoriesNodes",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::getContacts",
        "fqmn": "App\\Abstracts\\Listeners\\Report@getContacts",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::getCustomers",
        "fqmn": "App\\Abstracts\\Listeners\\Report@getCustomers",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::getDateRange",
        "fqmn": "App\\Abstracts\\Listeners\\Report@getDateRange",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::getDiscount",
        "fqmn": "App\\Abstracts\\Listeners\\Report@getDiscount",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::getExpenseCategories",
        "fqmn": "App\\Abstracts\\Listeners\\Report@getExpenseCategories",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::getFormattedDate",
        "fqmn": "App\\Abstracts\\Listeners\\Report@getFormattedDate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::getIncomeCategories",
        "fqmn": "App\\Abstracts\\Listeners\\Report@getIncomeCategories",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::getIncomeExpenseCategories",
        "fqmn": "App\\Abstracts\\Listeners\\Report@getIncomeExpenseCategories",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::getItemCategories",
        "fqmn": "App\\Abstracts\\Listeners\\Report@getItemCategories",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::getPeriod",
        "fqmn": "App\\Abstracts\\Listeners\\Report@getPeriod",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::getSubCategories",
        "fqmn": "App\\Abstracts\\Listeners\\Report@getSubCategories",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::getVendors",
        "fqmn": "App\\Abstracts\\Listeners\\Report@getVendors",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::setDateFilter",
        "fqmn": "App\\Abstracts\\Listeners\\Report@setDateFilter",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::setRowNamesAndValues",
        "fqmn": "App\\Abstracts\\Listeners\\Report@setRowNamesAndValues",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::setTreeNodes",
        "fqmn": "App\\Abstracts\\Listeners\\Report@setTreeNodes",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::skipRowsShowing",
        "fqmn": "App\\Abstracts\\Listeners\\Report@skipRowsShowing",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::skipThisClass",
        "fqmn": "App\\Abstracts\\Listeners\\Report@skipThisClass",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::subscribe",
        "fqmn": "App\\Abstracts\\Listeners\\Report@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/Abstracts/Listeners/Update.php::App\\Abstracts\\Listeners\\Update::check",
        "fqmn": "App\\Abstracts\\Listeners\\Update@check",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Abstracts/Listeners/Update.php::App\\Abstracts\\Listeners\\Update::skipThisUpdate",
        "fqmn": "App\\Abstracts\\Listeners\\Update@skipThisUpdate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Classifiers/Job.php::App\\Classifiers\\Job::countsTowardsApplicationCode",
        "fqmn": "App\\Classifiers\\Job@countsTowardsApplicationCode",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Classifiers/Job.php::App\\Classifiers\\Job::countsTowardsTests",
        "fqmn": "App\\Classifiers\\Job@countsTowardsTests",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Classifiers/Job.php::App\\Classifiers\\Job::name",
        "fqmn": "App\\Classifiers\\Job@name",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Classifiers/Job.php::App\\Classifiers\\Job::satisfies",
        "fqmn": "App\\Classifiers\\Job@satisfies",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Console/Commands/DownloadModule.php::App\\Console\\Commands\\DownloadModule::copyFiles",
        "fqmn": "App\\Console\\Commands\\DownloadModule@copyFiles",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Console/Commands/DownloadModule.php::App\\Console\\Commands\\DownloadModule::download",
        "fqmn": "App\\Console\\Commands\\DownloadModule@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/Console/Commands/DownloadModule.php::App\\Console\\Commands\\DownloadModule::unzip",
        "fqmn": "App\\Console\\Commands\\DownloadModule@unzip",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Console/Commands/RecurringCheck.php::App\\Console\\Commands\\RecurringCheck::getRealType",
        "fqmn": "App\\Console\\Commands\\RecurringCheck@getRealType",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Console/Commands/RecurringCheck.php::App\\Console\\Commands\\RecurringCheck::updateRelationTypes",
        "fqmn": "App\\Console\\Commands\\RecurringCheck@updateRelationTypes",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Console/Commands/Update.php::App\\Console\\Commands\\Update::copyFiles",
        "fqmn": "App\\Console\\Commands\\Update@copyFiles",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Console/Commands/Update.php::App\\Console\\Commands\\Update::download",
        "fqmn": "App\\Console\\Commands\\Update@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/Console/Commands/Update.php::App\\Console\\Commands\\Update::finish",
        "fqmn": "App\\Console\\Commands\\Update@finish",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Console/Commands/Update.php::App\\Console\\Commands\\Update::getNewVersion",
        "fqmn": "App\\Console\\Commands\\Update@getNewVersion",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Console/Commands/Update.php::App\\Console\\Commands\\Update::getOldVersion",
        "fqmn": "App\\Console\\Commands\\Update@getOldVersion",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Console/Commands/Update.php::App\\Console\\Commands\\Update::unzip",
        "fqmn": "App\\Console\\Commands\\Update@unzip",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Exceptions/Http/Resource.php::App\\Exceptions\\Http\\Resource::__construct",
        "fqmn": "App\\Exceptions\\Http\\Resource@__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/Exceptions/Http/Resource.php::App\\Exceptions\\Http\\Resource::getErrors",
        "fqmn": "App\\Exceptions\\Http\\Resource@getErrors",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Exceptions/Http/Resource.php::App\\Exceptions\\Http\\Resource::hasErrors",
        "fqmn": "App\\Exceptions\\Http\\Resource@hasErrors",
        "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/Api/Auth/Users.php::App\\Http\\Controllers\\Api\\Auth\\Users::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Auth\\Users@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/Auth/Users.php::App\\Http\\Controllers\\Api\\Auth\\Users::disable",
        "fqmn": "App\\Http\\Controllers\\Api\\Auth\\Users@disable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Auth/Users.php::App\\Http\\Controllers\\Api\\Auth\\Users::enable",
        "fqmn": "App\\Http\\Controllers\\Api\\Auth\\Users@enable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Auth/Users.php::App\\Http\\Controllers\\Api\\Auth\\Users::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Auth\\Users@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/Auth/Users.php::App\\Http\\Controllers\\Api\\Auth\\Users::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Auth\\Users@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/Auth/Users.php::App\\Http\\Controllers\\Api\\Auth\\Users::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Auth\\Users@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/Auth/Users.php::App\\Http\\Controllers\\Api\\Auth\\Users::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Auth\\Users@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/Banking/Accounts.php::App\\Http\\Controllers\\Api\\Banking\\Accounts::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Accounts@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/Banking/Accounts.php::App\\Http\\Controllers\\Api\\Banking\\Accounts::disable",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Accounts@disable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Banking/Accounts.php::App\\Http\\Controllers\\Api\\Banking\\Accounts::enable",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Accounts@enable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Banking/Accounts.php::App\\Http\\Controllers\\Api\\Banking\\Accounts::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Accounts@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/Banking/Accounts.php::App\\Http\\Controllers\\Api\\Banking\\Accounts::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Accounts@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/Banking/Accounts.php::App\\Http\\Controllers\\Api\\Banking\\Accounts::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Accounts@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/Banking/Accounts.php::App\\Http\\Controllers\\Api\\Banking\\Accounts::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Accounts@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/Banking/Reconciliations.php::App\\Http\\Controllers\\Api\\Banking\\Reconciliations::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Reconciliations@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/Banking/Reconciliations.php::App\\Http\\Controllers\\Api\\Banking\\Reconciliations::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Reconciliations@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/Banking/Reconciliations.php::App\\Http\\Controllers\\Api\\Banking\\Reconciliations::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Reconciliations@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/Banking/Reconciliations.php::App\\Http\\Controllers\\Api\\Banking\\Reconciliations::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Reconciliations@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/Banking/Reconciliations.php::App\\Http\\Controllers\\Api\\Banking\\Reconciliations::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Reconciliations@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/Banking/Transactions.php::App\\Http\\Controllers\\Api\\Banking\\Transactions::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Transactions@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/Banking/Transactions.php::App\\Http\\Controllers\\Api\\Banking\\Transactions::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Transactions@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/Banking/Transactions.php::App\\Http\\Controllers\\Api\\Banking\\Transactions::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Transactions@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/Banking/Transactions.php::App\\Http\\Controllers\\Api\\Banking\\Transactions::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Transactions@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/Banking/Transactions.php::App\\Http\\Controllers\\Api\\Banking\\Transactions::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Transactions@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/Banking/Transfers.php::App\\Http\\Controllers\\Api\\Banking\\Transfers::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Transfers@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/Banking/Transfers.php::App\\Http\\Controllers\\Api\\Banking\\Transfers::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Transfers@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/Banking/Transfers.php::App\\Http\\Controllers\\Api\\Banking\\Transfers::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Transfers@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/Banking/Transfers.php::App\\Http\\Controllers\\Api\\Banking\\Transfers::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Transfers@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/Banking/Transfers.php::App\\Http\\Controllers\\Api\\Banking\\Transfers::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Transfers@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/Common/Companies.php::App\\Http\\Controllers\\Api\\Common\\Companies::canAccess",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Companies@canAccess",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Companies.php::App\\Http\\Controllers\\Api\\Common\\Companies::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Companies@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/Common/Companies.php::App\\Http\\Controllers\\Api\\Common\\Companies::disable",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Companies@disable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Companies.php::App\\Http\\Controllers\\Api\\Common\\Companies::enable",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Companies@enable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Companies.php::App\\Http\\Controllers\\Api\\Common\\Companies::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Companies@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/Common/Companies.php::App\\Http\\Controllers\\Api\\Common\\Companies::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Companies@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/Common/Companies.php::App\\Http\\Controllers\\Api\\Common\\Companies::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Companies@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/Common/Companies.php::App\\Http\\Controllers\\Api\\Common\\Companies::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Companies@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/Common/Contacts.php::App\\Http\\Controllers\\Api\\Common\\Contacts::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Contacts@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/Common/Contacts.php::App\\Http\\Controllers\\Api\\Common\\Contacts::disable",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Contacts@disable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Contacts.php::App\\Http\\Controllers\\Api\\Common\\Contacts::enable",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Contacts@enable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Contacts.php::App\\Http\\Controllers\\Api\\Common\\Contacts::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Contacts@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/Common/Contacts.php::App\\Http\\Controllers\\Api\\Common\\Contacts::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Contacts@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/Common/Contacts.php::App\\Http\\Controllers\\Api\\Common\\Contacts::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Contacts@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/Common/Contacts.php::App\\Http\\Controllers\\Api\\Common\\Contacts::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Contacts@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/Common/Dashboards.php::App\\Http\\Controllers\\Api\\Common\\Dashboards::canAccess",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Dashboards@canAccess",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Dashboards.php::App\\Http\\Controllers\\Api\\Common\\Dashboards::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Dashboards@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/Common/Dashboards.php::App\\Http\\Controllers\\Api\\Common\\Dashboards::disable",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Dashboards@disable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Dashboards.php::App\\Http\\Controllers\\Api\\Common\\Dashboards::enable",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Dashboards@enable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Dashboards.php::App\\Http\\Controllers\\Api\\Common\\Dashboards::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Dashboards@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/Common/Dashboards.php::App\\Http\\Controllers\\Api\\Common\\Dashboards::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Dashboards@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/Common/Dashboards.php::App\\Http\\Controllers\\Api\\Common\\Dashboards::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Dashboards@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/Common/Dashboards.php::App\\Http\\Controllers\\Api\\Common\\Dashboards::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Dashboards@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/Common/Items.php::App\\Http\\Controllers\\Api\\Common\\Items::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Items@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/Common/Items.php::App\\Http\\Controllers\\Api\\Common\\Items::disable",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Items@disable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Items.php::App\\Http\\Controllers\\Api\\Common\\Items::enable",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Items@enable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Items.php::App\\Http\\Controllers\\Api\\Common\\Items::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Items@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/Common/Items.php::App\\Http\\Controllers\\Api\\Common\\Items::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Items@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/Common/Items.php::App\\Http\\Controllers\\Api\\Common\\Items::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Items@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/Common/Items.php::App\\Http\\Controllers\\Api\\Common\\Items::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Items@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/Common/Ping.php::App\\Http\\Controllers\\Api\\Common\\Ping::__construct",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Ping@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Ping.php::App\\Http\\Controllers\\Api\\Common\\Ping::pong",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Ping@pong",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Reports.php::App\\Http\\Controllers\\Api\\Common\\Reports::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Reports@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/Common/Reports.php::App\\Http\\Controllers\\Api\\Common\\Reports::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Reports@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/Common/Reports.php::App\\Http\\Controllers\\Api\\Common\\Reports::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Reports@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/Common/Reports.php::App\\Http\\Controllers\\Api\\Common\\Reports::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Reports@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/Common/Reports.php::App\\Http\\Controllers\\Api\\Common\\Reports::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Reports@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/Common/Translations.php::App\\Http\\Controllers\\Api\\Common\\Translations::all",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Translations@all",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Translations.php::App\\Http\\Controllers\\Api\\Common\\Translations::file",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Translations@file",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Document/Documents.php::App\\Http\\Controllers\\Api\\Document\\Documents::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\Documents@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/Document/Documents.php::App\\Http\\Controllers\\Api\\Document\\Documents::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\Documents@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/Document/Documents.php::App\\Http\\Controllers\\Api\\Document\\Documents::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\Documents@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/Document/Documents.php::App\\Http\\Controllers\\Api\\Document\\Documents::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\Documents@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/Document/Documents.php::App\\Http\\Controllers\\Api\\Document\\Documents::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\Documents@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/Document/DocumentTransactions.php::App\\Http\\Controllers\\Api\\Document\\DocumentTransactions::__construct",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\DocumentTransactions@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Document/DocumentTransactions.php::App\\Http\\Controllers\\Api\\Document\\DocumentTransactions::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\DocumentTransactions@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/Document/DocumentTransactions.php::App\\Http\\Controllers\\Api\\Document\\DocumentTransactions::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\DocumentTransactions@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/Document/DocumentTransactions.php::App\\Http\\Controllers\\Api\\Document\\DocumentTransactions::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\DocumentTransactions@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/Document/DocumentTransactions.php::App\\Http\\Controllers\\Api\\Document\\DocumentTransactions::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\DocumentTransactions@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/Document/DocumentTransactions.php::App\\Http\\Controllers\\Api\\Document\\DocumentTransactions::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\DocumentTransactions@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/Settings/Categories.php::App\\Http\\Controllers\\Api\\Settings\\Categories::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Categories@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/Settings/Categories.php::App\\Http\\Controllers\\Api\\Settings\\Categories::disable",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Categories@disable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Settings/Categories.php::App\\Http\\Controllers\\Api\\Settings\\Categories::enable",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Categories@enable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Settings/Categories.php::App\\Http\\Controllers\\Api\\Settings\\Categories::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Categories@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/Settings/Categories.php::App\\Http\\Controllers\\Api\\Settings\\Categories::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Categories@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/Settings/Categories.php::App\\Http\\Controllers\\Api\\Settings\\Categories::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Categories@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/Settings/Categories.php::App\\Http\\Controllers\\Api\\Settings\\Categories::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Categories@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/Settings/Currencies.php::App\\Http\\Controllers\\Api\\Settings\\Currencies::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Currencies@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/Settings/Currencies.php::App\\Http\\Controllers\\Api\\Settings\\Currencies::disable",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Currencies@disable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Settings/Currencies.php::App\\Http\\Controllers\\Api\\Settings\\Currencies::enable",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Currencies@enable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Settings/Currencies.php::App\\Http\\Controllers\\Api\\Settings\\Currencies::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Currencies@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/Settings/Currencies.php::App\\Http\\Controllers\\Api\\Settings\\Currencies::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Currencies@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/Settings/Currencies.php::App\\Http\\Controllers\\Api\\Settings\\Currencies::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Currencies@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/Settings/Currencies.php::App\\Http\\Controllers\\Api\\Settings\\Currencies::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Currencies@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/Settings/Settings.php::App\\Http\\Controllers\\Api\\Settings\\Settings::__construct",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Settings@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Settings/Settings.php::App\\Http\\Controllers\\Api\\Settings\\Settings::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Settings@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/Settings/Settings.php::App\\Http\\Controllers\\Api\\Settings\\Settings::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Settings@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/Settings/Settings.php::App\\Http\\Controllers\\Api\\Settings\\Settings::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Settings@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/Settings/Settings.php::App\\Http\\Controllers\\Api\\Settings\\Settings::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Settings@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/Settings/Settings.php::App\\Http\\Controllers\\Api\\Settings\\Settings::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Settings@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/Settings/Taxes.php::App\\Http\\Controllers\\Api\\Settings\\Taxes::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Taxes@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/Settings/Taxes.php::App\\Http\\Controllers\\Api\\Settings\\Taxes::disable",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Taxes@disable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Settings/Taxes.php::App\\Http\\Controllers\\Api\\Settings\\Taxes::enable",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Taxes@enable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Settings/Taxes.php::App\\Http\\Controllers\\Api\\Settings\\Taxes::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Taxes@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/Settings/Taxes.php::App\\Http\\Controllers\\Api\\Settings\\Taxes::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Taxes@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/Settings/Taxes.php::App\\Http\\Controllers\\Api\\Settings\\Taxes::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Taxes@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/Settings/Taxes.php::App\\Http\\Controllers\\Api\\Settings\\Taxes::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Taxes@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/Forgot.php::App\\Http\\Controllers\\Auth\\Forgot::__construct",
        "fqmn": "App\\Http\\Controllers\\Auth\\Forgot@__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/Forgot.php::App\\Http\\Controllers\\Auth\\Forgot::create",
        "fqmn": "App\\Http\\Controllers\\Auth\\Forgot@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/Forgot.php::App\\Http\\Controllers\\Auth\\Forgot::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\Forgot@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/Login.php::App\\Http\\Controllers\\Auth\\Login::__construct",
        "fqmn": "App\\Http\\Controllers\\Auth\\Login@__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/Login.php::App\\Http\\Controllers\\Auth\\Login::create",
        "fqmn": "App\\Http\\Controllers\\Auth\\Login@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/Login.php::App\\Http\\Controllers\\Auth\\Login::destroy",
        "fqmn": "App\\Http\\Controllers\\Auth\\Login@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/Login.php::App\\Http\\Controllers\\Auth\\Login::logout",
        "fqmn": "App\\Http\\Controllers\\Auth\\Login@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/Login.php::App\\Http\\Controllers\\Auth\\Login::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\Login@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/Register.php::App\\Http\\Controllers\\Auth\\Register::__construct",
        "fqmn": "App\\Http\\Controllers\\Auth\\Register@__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/Register.php::App\\Http\\Controllers\\Auth\\Register::create",
        "fqmn": "App\\Http\\Controllers\\Auth\\Register@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/Register.php::App\\Http\\Controllers\\Auth\\Register::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\Register@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/Reset.php::App\\Http\\Controllers\\Auth\\Reset::__construct",
        "fqmn": "App\\Http\\Controllers\\Auth\\Reset@__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/Reset.php::App\\Http\\Controllers\\Auth\\Reset::create",
        "fqmn": "App\\Http\\Controllers\\Auth\\Reset@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/Reset.php::App\\Http\\Controllers\\Auth\\Reset::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\Reset@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/Users.php::App\\Http\\Controllers\\Auth\\Users::__construct",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@__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/Users.php::App\\Http\\Controllers\\Auth\\Users::autocomplete",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@autocomplete",
        "bucket": "DEFER",
        "signals": [
          "zero_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/Users.php::App\\Http\\Controllers\\Auth\\Users::create",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/Users.php::App\\Http\\Controllers\\Auth\\Users::destroy",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/Users.php::App\\Http\\Controllers\\Auth\\Users::disable",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@disable",
        "bucket": "DEFER",
        "signals": [
          "zero_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/Users.php::App\\Http\\Controllers\\Auth\\Users::edit",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/Users.php::App\\Http\\Controllers\\Auth\\Users::enable",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@enable",
        "bucket": "DEFER",
        "signals": [
          "zero_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/Users.php::App\\Http\\Controllers\\Auth\\Users::index",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@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/Users.php::App\\Http\\Controllers\\Auth\\Users::invite",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@invite",
        "bucket": "DEFER",
        "signals": [
          "zero_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/Users.php::App\\Http\\Controllers\\Auth\\Users::landingPages",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@landingPages",
        "bucket": "DEFER",
        "signals": [
          "zero_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/Users.php::App\\Http\\Controllers\\Auth\\Users::readOverdueInvoices",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@readOverdueInvoices",
        "bucket": "DEFER",
        "signals": [
          "zero_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/Users.php::App\\Http\\Controllers\\Auth\\Users::readUpcomingBills",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@readUpcomingBills",
        "bucket": "DEFER",
        "signals": [
          "zero_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/Users.php::App\\Http\\Controllers\\Auth\\Users::show",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/Users.php::App\\Http\\Controllers\\Auth\\Users::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/Users.php::App\\Http\\Controllers\\Auth\\Users::update",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@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/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::create",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::createExpense",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@createExpense",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::createIncome",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@createIncome",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::createTransfer",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@createTransfer",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::currency",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@currency",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::destroy",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@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/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::disable",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@disable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::duplicate",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@duplicate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::edit",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::enable",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@enable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::index",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@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/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::seePerformance",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@seePerformance",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::show",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@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/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::store",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@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/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::update",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@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/Banking/Reconciliations.php::App\\Http\\Controllers\\Banking\\Reconciliations::calculate",
        "fqmn": "App\\Http\\Controllers\\Banking\\Reconciliations@calculate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Reconciliations.php::App\\Http\\Controllers\\Banking\\Reconciliations::create",
        "fqmn": "App\\Http\\Controllers\\Banking\\Reconciliations@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Reconciliations.php::App\\Http\\Controllers\\Banking\\Reconciliations::destroy",
        "fqmn": "App\\Http\\Controllers\\Banking\\Reconciliations@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/Banking/Reconciliations.php::App\\Http\\Controllers\\Banking\\Reconciliations::edit",
        "fqmn": "App\\Http\\Controllers\\Banking\\Reconciliations@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Reconciliations.php::App\\Http\\Controllers\\Banking\\Reconciliations::getOpeningBalance",
        "fqmn": "App\\Http\\Controllers\\Banking\\Reconciliations@getOpeningBalance",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Reconciliations.php::App\\Http\\Controllers\\Banking\\Reconciliations::index",
        "fqmn": "App\\Http\\Controllers\\Banking\\Reconciliations@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/Banking/Reconciliations.php::App\\Http\\Controllers\\Banking\\Reconciliations::show",
        "fqmn": "App\\Http\\Controllers\\Banking\\Reconciliations@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/Banking/Reconciliations.php::App\\Http\\Controllers\\Banking\\Reconciliations::store",
        "fqmn": "App\\Http\\Controllers\\Banking\\Reconciliations@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/Banking/Reconciliations.php::App\\Http\\Controllers\\Banking\\Reconciliations::update",
        "fqmn": "App\\Http\\Controllers\\Banking\\Reconciliations@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/Banking/RecurringTransactions.php::App\\Http\\Controllers\\Banking\\RecurringTransactions::__construct",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@__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/Banking/RecurringTransactions.php::App\\Http\\Controllers\\Banking\\RecurringTransactions::create",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/RecurringTransactions.php::App\\Http\\Controllers\\Banking\\RecurringTransactions::duplicate",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@duplicate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/RecurringTransactions.php::App\\Http\\Controllers\\Banking\\RecurringTransactions::edit",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/RecurringTransactions.php::App\\Http\\Controllers\\Banking\\RecurringTransactions::end",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@end",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/RecurringTransactions.php::App\\Http\\Controllers\\Banking\\RecurringTransactions::export",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@export",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/RecurringTransactions.php::App\\Http\\Controllers\\Banking\\RecurringTransactions::import",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@import",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/RecurringTransactions.php::App\\Http\\Controllers\\Banking\\RecurringTransactions::index",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@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/Banking/RecurringTransactions.php::App\\Http\\Controllers\\Banking\\RecurringTransactions::show",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@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/Banking/RecurringTransactions.php::App\\Http\\Controllers\\Banking\\RecurringTransactions::store",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@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/Banking/RecurringTransactions.php::App\\Http\\Controllers\\Banking\\RecurringTransactions::update",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@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/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::connect",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@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/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::create",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::destroy",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@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/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::dial",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@dial",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::duplicate",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@duplicate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::edit",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::emailTransaction",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@emailTransaction",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::export",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@export",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::import",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@import",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::index",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@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/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::pdfTransaction",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@pdfTransaction",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::printTransaction",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@printTransaction",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::show",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@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/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::store",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@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/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::update",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@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/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::create",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::destroy",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@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/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::duplicate",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@duplicate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::edit",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::export",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@export",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::import",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@import",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::index",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@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/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::pdfTransfer",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@pdfTransfer",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::printTransfer",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@printTransfer",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::show",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@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/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::store",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@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/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::update",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@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/Common/BulkActions.php::App\\Http\\Controllers\\Common\\BulkActions::action",
        "fqmn": "App\\Http\\Controllers\\Common\\BulkActions@action",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::__construct",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@__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/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::autocomplete",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@autocomplete",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::create",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::destroy",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@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/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::disable",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@disable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::edit",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::enable",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@enable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::index",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@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/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::show",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@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/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::store",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@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/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::switch",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@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/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::update",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@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/Common/Contacts.php::App\\Http\\Controllers\\Common\\Contacts::__construct",
        "fqmn": "App\\Http\\Controllers\\Common\\Contacts@__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/Common/Contacts.php::App\\Http\\Controllers\\Common\\Contacts::index",
        "fqmn": "App\\Http\\Controllers\\Common\\Contacts@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/Common/Dashboards.php::App\\Http\\Controllers\\Common\\Dashboards::__construct",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@__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/Common/Dashboards.php::App\\Http\\Controllers\\Common\\Dashboards::create",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Dashboards.php::App\\Http\\Controllers\\Common\\Dashboards::destroy",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@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/Common/Dashboards.php::App\\Http\\Controllers\\Common\\Dashboards::disable",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@disable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Dashboards.php::App\\Http\\Controllers\\Common\\Dashboards::edit",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Dashboards.php::App\\Http\\Controllers\\Common\\Dashboards::enable",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@enable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Dashboards.php::App\\Http\\Controllers\\Common\\Dashboards::index",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@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/Common/Dashboards.php::App\\Http\\Controllers\\Common\\Dashboards::show",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@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/Common/Dashboards.php::App\\Http\\Controllers\\Common\\Dashboards::store",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@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/Common/Dashboards.php::App\\Http\\Controllers\\Common\\Dashboards::switch",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@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/Common/Dashboards.php::App\\Http\\Controllers\\Common\\Dashboards::update",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@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/Common/Import.php::App\\Http\\Controllers\\Common\\Import::create",
        "fqmn": "App\\Http\\Controllers\\Common\\Import@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::autocomplete",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@autocomplete",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::create",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::destroy",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@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/Common/Items.php::App\\Http\\Controllers\\Common\\Items::disable",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@disable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::duplicate",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@duplicate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::edit",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::enable",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@enable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::export",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@export",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::import",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@import",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::index",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@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/Common/Items.php::App\\Http\\Controllers\\Common\\Items::show",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@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/Common/Items.php::App\\Http\\Controllers\\Common\\Items::store",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@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/Common/Items.php::App\\Http\\Controllers\\Common\\Items::update",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@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/Common/Plans.php::App\\Http\\Controllers\\Common\\Plans::check",
        "fqmn": "App\\Http\\Controllers\\Common\\Plans@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/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::__construct",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@__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/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::create",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::destroy",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@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/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::duplicate",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@duplicate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::edit",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::export",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@export",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::fields",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@fields",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::index",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@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/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::pdf",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@pdf",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::print",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@print",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::show",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@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/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::store",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@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/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::update",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@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/Common/Uploads.php::App\\Http\\Controllers\\Common\\Uploads::destroy",
        "fqmn": "App\\Http\\Controllers\\Common\\Uploads@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/Common/Uploads.php::App\\Http\\Controllers\\Common\\Uploads::download",
        "fqmn": "App\\Http\\Controllers\\Common\\Uploads@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/Common/Uploads.php::App\\Http\\Controllers\\Common\\Uploads::get",
        "fqmn": "App\\Http\\Controllers\\Common\\Uploads@get",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Uploads.php::App\\Http\\Controllers\\Common\\Uploads::inline",
        "fqmn": "App\\Http\\Controllers\\Common\\Uploads@inline",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Uploads.php::App\\Http\\Controllers\\Common\\Uploads::show",
        "fqmn": "App\\Http\\Controllers\\Common\\Uploads@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/Common/Widgets.php::App\\Http\\Controllers\\Common\\Widgets::destroy",
        "fqmn": "App\\Http\\Controllers\\Common\\Widgets@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/Common/Widgets.php::App\\Http\\Controllers\\Common\\Widgets::edit",
        "fqmn": "App\\Http\\Controllers\\Common\\Widgets@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Widgets.php::App\\Http\\Controllers\\Common\\Widgets::getData",
        "fqmn": "App\\Http\\Controllers\\Common\\Widgets@getData",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Widgets.php::App\\Http\\Controllers\\Common\\Widgets::index",
        "fqmn": "App\\Http\\Controllers\\Common\\Widgets@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/Common/Widgets.php::App\\Http\\Controllers\\Common\\Widgets::show",
        "fqmn": "App\\Http\\Controllers\\Common\\Widgets@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/Common/Widgets.php::App\\Http\\Controllers\\Common\\Widgets::store",
        "fqmn": "App\\Http\\Controllers\\Common\\Widgets@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/Common/Widgets.php::App\\Http\\Controllers\\Common\\Widgets::update",
        "fqmn": "App\\Http\\Controllers\\Common\\Widgets@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/Install/Database.php::App\\Http\\Controllers\\Install\\Database::create",
        "fqmn": "App\\Http\\Controllers\\Install\\Database@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Install/Database.php::App\\Http\\Controllers\\Install\\Database::store",
        "fqmn": "App\\Http\\Controllers\\Install\\Database@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/Install/Language.php::App\\Http\\Controllers\\Install\\Language::create",
        "fqmn": "App\\Http\\Controllers\\Install\\Language@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Install/Language.php::App\\Http\\Controllers\\Install\\Language::getLanguages",
        "fqmn": "App\\Http\\Controllers\\Install\\Language@getLanguages",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Install/Language.php::App\\Http\\Controllers\\Install\\Language::store",
        "fqmn": "App\\Http\\Controllers\\Install\\Language@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/Install/Requirements.php::App\\Http\\Controllers\\Install\\Requirements::show",
        "fqmn": "App\\Http\\Controllers\\Install\\Requirements@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/Install/Settings.php::App\\Http\\Controllers\\Install\\Settings::create",
        "fqmn": "App\\Http\\Controllers\\Install\\Settings@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Install/Settings.php::App\\Http\\Controllers\\Install\\Settings::store",
        "fqmn": "App\\Http\\Controllers\\Install\\Settings@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/Install/Updates.php::App\\Http\\Controllers\\Install\\Updates::changelog",
        "fqmn": "App\\Http\\Controllers\\Install\\Updates@changelog",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Install/Updates.php::App\\Http\\Controllers\\Install\\Updates::check",
        "fqmn": "App\\Http\\Controllers\\Install\\Updates@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/Install/Updates.php::App\\Http\\Controllers\\Install\\Updates::copyFiles",
        "fqmn": "App\\Http\\Controllers\\Install\\Updates@copyFiles",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Install/Updates.php::App\\Http\\Controllers\\Install\\Updates::download",
        "fqmn": "App\\Http\\Controllers\\Install\\Updates@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/Install/Updates.php::App\\Http\\Controllers\\Install\\Updates::finish",
        "fqmn": "App\\Http\\Controllers\\Install\\Updates@finish",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Install/Updates.php::App\\Http\\Controllers\\Install\\Updates::index",
        "fqmn": "App\\Http\\Controllers\\Install\\Updates@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/Install/Updates.php::App\\Http\\Controllers\\Install\\Updates::redirect",
        "fqmn": "App\\Http\\Controllers\\Install\\Updates@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/Install/Updates.php::App\\Http\\Controllers\\Install\\Updates::run",
        "fqmn": "App\\Http\\Controllers\\Install\\Updates@run",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Install/Updates.php::App\\Http\\Controllers\\Install\\Updates::steps",
        "fqmn": "App\\Http\\Controllers\\Install\\Updates@steps",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Install/Updates.php::App\\Http\\Controllers\\Install\\Updates::unzip",
        "fqmn": "App\\Http\\Controllers\\Install\\Updates@unzip",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/Accounts.php::App\\Http\\Controllers\\Modals\\Accounts::__construct",
        "fqmn": "App\\Http\\Controllers\\Modals\\Accounts@__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/Modals/Accounts.php::App\\Http\\Controllers\\Modals\\Accounts::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\Accounts@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/Accounts.php::App\\Http\\Controllers\\Modals\\Accounts::store",
        "fqmn": "App\\Http\\Controllers\\Modals\\Accounts@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/Modals/Categories.php::App\\Http\\Controllers\\Modals\\Categories::__construct",
        "fqmn": "App\\Http\\Controllers\\Modals\\Categories@__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/Modals/Categories.php::App\\Http\\Controllers\\Modals\\Categories::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\Categories@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/Categories.php::App\\Http\\Controllers\\Modals\\Categories::store",
        "fqmn": "App\\Http\\Controllers\\Modals\\Categories@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/Modals/Companies.php::App\\Http\\Controllers\\Modals\\Companies::__construct",
        "fqmn": "App\\Http\\Controllers\\Modals\\Companies@__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/Modals/Companies.php::App\\Http\\Controllers\\Modals\\Companies::edit",
        "fqmn": "App\\Http\\Controllers\\Modals\\Companies@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/Currencies.php::App\\Http\\Controllers\\Modals\\Currencies::__construct",
        "fqmn": "App\\Http\\Controllers\\Modals\\Currencies@__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/Modals/Currencies.php::App\\Http\\Controllers\\Modals\\Currencies::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\Currencies@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/Currencies.php::App\\Http\\Controllers\\Modals\\Currencies::store",
        "fqmn": "App\\Http\\Controllers\\Modals\\Currencies@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/Modals/Customers.php::App\\Http\\Controllers\\Modals\\Customers::__construct",
        "fqmn": "App\\Http\\Controllers\\Modals\\Customers@__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/Modals/Customers.php::App\\Http\\Controllers\\Modals\\Customers::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\Customers@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/Customers.php::App\\Http\\Controllers\\Modals\\Customers::edit",
        "fqmn": "App\\Http\\Controllers\\Modals\\Customers@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/Customers.php::App\\Http\\Controllers\\Modals\\Customers::store",
        "fqmn": "App\\Http\\Controllers\\Modals\\Customers@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/Modals/Customers.php::App\\Http\\Controllers\\Modals\\Customers::update",
        "fqmn": "App\\Http\\Controllers\\Modals\\Customers@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/Modals/DocumentItemColumns.php::App\\Http\\Controllers\\Modals\\DocumentItemColumns::__construct",
        "fqmn": "App\\Http\\Controllers\\Modals\\DocumentItemColumns@__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/Modals/DocumentItemColumns.php::App\\Http\\Controllers\\Modals\\DocumentItemColumns::edit",
        "fqmn": "App\\Http\\Controllers\\Modals\\DocumentItemColumns@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/DocumentItemColumns.php::App\\Http\\Controllers\\Modals\\DocumentItemColumns::update",
        "fqmn": "App\\Http\\Controllers\\Modals\\DocumentItemColumns@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/Modals/DocumentTransactions.php::App\\Http\\Controllers\\Modals\\DocumentTransactions::__construct",
        "fqmn": "App\\Http\\Controllers\\Modals\\DocumentTransactions@__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/Modals/DocumentTransactions.php::App\\Http\\Controllers\\Modals\\DocumentTransactions::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\DocumentTransactions@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/DocumentTransactions.php::App\\Http\\Controllers\\Modals\\DocumentTransactions::destroy",
        "fqmn": "App\\Http\\Controllers\\Modals\\DocumentTransactions@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/Modals/DocumentTransactions.php::App\\Http\\Controllers\\Modals\\DocumentTransactions::edit",
        "fqmn": "App\\Http\\Controllers\\Modals\\DocumentTransactions@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/DocumentTransactions.php::App\\Http\\Controllers\\Modals\\DocumentTransactions::store",
        "fqmn": "App\\Http\\Controllers\\Modals\\DocumentTransactions@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/Modals/DocumentTransactions.php::App\\Http\\Controllers\\Modals\\DocumentTransactions::update",
        "fqmn": "App\\Http\\Controllers\\Modals\\DocumentTransactions@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/Modals/InvoiceEmails.php::App\\Http\\Controllers\\Modals\\InvoiceEmails::__construct",
        "fqmn": "App\\Http\\Controllers\\Modals\\InvoiceEmails@__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/Modals/InvoiceEmails.php::App\\Http\\Controllers\\Modals\\InvoiceEmails::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\InvoiceEmails@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/InvoiceEmails.php::App\\Http\\Controllers\\Modals\\InvoiceEmails::store",
        "fqmn": "App\\Http\\Controllers\\Modals\\InvoiceEmails@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/Modals/InvoiceShare.php::App\\Http\\Controllers\\Modals\\InvoiceShare::__construct",
        "fqmn": "App\\Http\\Controllers\\Modals\\InvoiceShare@__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/Modals/InvoiceShare.php::App\\Http\\Controllers\\Modals\\InvoiceShare::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\InvoiceShare@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/InvoiceTemplates.php::App\\Http\\Controllers\\Modals\\InvoiceTemplates::__construct",
        "fqmn": "App\\Http\\Controllers\\Modals\\InvoiceTemplates@__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/Modals/InvoiceTemplates.php::App\\Http\\Controllers\\Modals\\InvoiceTemplates::update",
        "fqmn": "App\\Http\\Controllers\\Modals\\InvoiceTemplates@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/Modals/Items.php::App\\Http\\Controllers\\Modals\\Items::__construct",
        "fqmn": "App\\Http\\Controllers\\Modals\\Items@__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/Modals/Items.php::App\\Http\\Controllers\\Modals\\Items::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\Items@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/Items.php::App\\Http\\Controllers\\Modals\\Items::store",
        "fqmn": "App\\Http\\Controllers\\Modals\\Items@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/Modals/Taxes.php::App\\Http\\Controllers\\Modals\\Taxes::__construct",
        "fqmn": "App\\Http\\Controllers\\Modals\\Taxes@__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/Modals/Taxes.php::App\\Http\\Controllers\\Modals\\Taxes::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\Taxes@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/Taxes.php::App\\Http\\Controllers\\Modals\\Taxes::store",
        "fqmn": "App\\Http\\Controllers\\Modals\\Taxes@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/Modals/TransactionEmails.php::App\\Http\\Controllers\\Modals\\TransactionEmails::__construct",
        "fqmn": "App\\Http\\Controllers\\Modals\\TransactionEmails@__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/Modals/TransactionEmails.php::App\\Http\\Controllers\\Modals\\TransactionEmails::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\TransactionEmails@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/TransactionEmails.php::App\\Http\\Controllers\\Modals\\TransactionEmails::store",
        "fqmn": "App\\Http\\Controllers\\Modals\\TransactionEmails@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/Modals/TransactionShare.php::App\\Http\\Controllers\\Modals\\TransactionShare::__construct",
        "fqmn": "App\\Http\\Controllers\\Modals\\TransactionShare@__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/Modals/TransactionShare.php::App\\Http\\Controllers\\Modals\\TransactionShare::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\TransactionShare@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/TransferTemplates.php::App\\Http\\Controllers\\Modals\\TransferTemplates::__construct",
        "fqmn": "App\\Http\\Controllers\\Modals\\TransferTemplates@__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/Modals/TransferTemplates.php::App\\Http\\Controllers\\Modals\\TransferTemplates::update",
        "fqmn": "App\\Http\\Controllers\\Modals\\TransferTemplates@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/Modals/Vendors.php::App\\Http\\Controllers\\Modals\\Vendors::__construct",
        "fqmn": "App\\Http\\Controllers\\Modals\\Vendors@__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/Modals/Vendors.php::App\\Http\\Controllers\\Modals\\Vendors::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\Vendors@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/Vendors.php::App\\Http\\Controllers\\Modals\\Vendors::edit",
        "fqmn": "App\\Http\\Controllers\\Modals\\Vendors@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/Vendors.php::App\\Http\\Controllers\\Modals\\Vendors::store",
        "fqmn": "App\\Http\\Controllers\\Modals\\Vendors@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/Modals/Vendors.php::App\\Http\\Controllers\\Modals\\Vendors::update",
        "fqmn": "App\\Http\\Controllers\\Modals\\Vendors@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/Modules/ApiKey.php::App\\Http\\Controllers\\Modules\\ApiKey::create",
        "fqmn": "App\\Http\\Controllers\\Modules\\ApiKey@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Modules/ApiKey.php::App\\Http\\Controllers\\Modules\\ApiKey::store",
        "fqmn": "App\\Http\\Controllers\\Modules\\ApiKey@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/Modules/Home.php::App\\Http\\Controllers\\Modules\\Home::index",
        "fqmn": "App\\Http\\Controllers\\Modules\\Home@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/Modules/Home.php::App\\Http\\Controllers\\Modules\\Home::show",
        "fqmn": "App\\Http\\Controllers\\Modules\\Home@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/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::__construct",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@__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/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::copy",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@copy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::disable",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@disable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::documentation",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@documentation",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::download",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@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/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::enable",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@enable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::install",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@install",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::releases",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@releases",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::reviews",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@reviews",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::show",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@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/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::steps",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@steps",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::uninstall",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@uninstall",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::unzip",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@unzip",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Modules/My.php::App\\Http\\Controllers\\Modules\\My::index",
        "fqmn": "App\\Http\\Controllers\\Modules\\My@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/Modules/Tiles.php::App\\Http\\Controllers\\Modules\\Tiles::categoryModules",
        "fqmn": "App\\Http\\Controllers\\Modules\\Tiles@categoryModules",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Modules/Tiles.php::App\\Http\\Controllers\\Modules\\Tiles::freeModules",
        "fqmn": "App\\Http\\Controllers\\Modules\\Tiles@freeModules",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Modules/Tiles.php::App\\Http\\Controllers\\Modules\\Tiles::loadMore",
        "fqmn": "App\\Http\\Controllers\\Modules\\Tiles@loadMore",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Modules/Tiles.php::App\\Http\\Controllers\\Modules\\Tiles::newModules",
        "fqmn": "App\\Http\\Controllers\\Modules\\Tiles@newModules",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Modules/Tiles.php::App\\Http\\Controllers\\Modules\\Tiles::paidModules",
        "fqmn": "App\\Http\\Controllers\\Modules\\Tiles@paidModules",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Modules/Tiles.php::App\\Http\\Controllers\\Modules\\Tiles::searchModules",
        "fqmn": "App\\Http\\Controllers\\Modules\\Tiles@searchModules",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Modules/Tiles.php::App\\Http\\Controllers\\Modules\\Tiles::vendorModules",
        "fqmn": "App\\Http\\Controllers\\Modules\\Tiles@vendorModules",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Portal/Dashboard.php::App\\Http\\Controllers\\Portal\\Dashboard::index",
        "fqmn": "App\\Http\\Controllers\\Portal\\Dashboard@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/Portal/Invoices.php::App\\Http\\Controllers\\Portal\\Invoices::finish",
        "fqmn": "App\\Http\\Controllers\\Portal\\Invoices@finish",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Portal/Invoices.php::App\\Http\\Controllers\\Portal\\Invoices::index",
        "fqmn": "App\\Http\\Controllers\\Portal\\Invoices@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/Portal/Invoices.php::App\\Http\\Controllers\\Portal\\Invoices::pdfInvoice",
        "fqmn": "App\\Http\\Controllers\\Portal\\Invoices@pdfInvoice",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Portal/Invoices.php::App\\Http\\Controllers\\Portal\\Invoices::preview",
        "fqmn": "App\\Http\\Controllers\\Portal\\Invoices@preview",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Portal/Invoices.php::App\\Http\\Controllers\\Portal\\Invoices::printInvoice",
        "fqmn": "App\\Http\\Controllers\\Portal\\Invoices@printInvoice",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Portal/Invoices.php::App\\Http\\Controllers\\Portal\\Invoices::show",
        "fqmn": "App\\Http\\Controllers\\Portal\\Invoices@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/Portal/Invoices.php::App\\Http\\Controllers\\Portal\\Invoices::signed",
        "fqmn": "App\\Http\\Controllers\\Portal\\Invoices@signed",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Portal/Payments.php::App\\Http\\Controllers\\Portal\\Payments::currencies",
        "fqmn": "App\\Http\\Controllers\\Portal\\Payments@currencies",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Portal/Payments.php::App\\Http\\Controllers\\Portal\\Payments::index",
        "fqmn": "App\\Http\\Controllers\\Portal\\Payments@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/Portal/Payments.php::App\\Http\\Controllers\\Portal\\Payments::pdfPayment",
        "fqmn": "App\\Http\\Controllers\\Portal\\Payments@pdfPayment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Portal/Payments.php::App\\Http\\Controllers\\Portal\\Payments::preview",
        "fqmn": "App\\Http\\Controllers\\Portal\\Payments@preview",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Portal/Payments.php::App\\Http\\Controllers\\Portal\\Payments::printPayment",
        "fqmn": "App\\Http\\Controllers\\Portal\\Payments@printPayment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Portal/Payments.php::App\\Http\\Controllers\\Portal\\Payments::show",
        "fqmn": "App\\Http\\Controllers\\Portal\\Payments@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/Portal/Payments.php::App\\Http\\Controllers\\Portal\\Payments::signed",
        "fqmn": "App\\Http\\Controllers\\Portal\\Payments@signed",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Portal/Profile.php::App\\Http\\Controllers\\Portal\\Profile::edit",
        "fqmn": "App\\Http\\Controllers\\Portal\\Profile@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Portal/Profile.php::App\\Http\\Controllers\\Portal\\Profile::index",
        "fqmn": "App\\Http\\Controllers\\Portal\\Profile@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/Portal/Profile.php::App\\Http\\Controllers\\Portal\\Profile::readOverdueInvoices",
        "fqmn": "App\\Http\\Controllers\\Portal\\Profile@readOverdueInvoices",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Portal/Profile.php::App\\Http\\Controllers\\Portal\\Profile::show",
        "fqmn": "App\\Http\\Controllers\\Portal\\Profile@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/Portal/Profile.php::App\\Http\\Controllers\\Portal\\Profile::update",
        "fqmn": "App\\Http\\Controllers\\Portal\\Profile@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/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::create",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::destroy",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@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/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::duplicate",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@duplicate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::edit",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::export",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@export",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::import",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@import",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::index",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@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/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::markCancelled",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@markCancelled",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::markReceived",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@markReceived",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::pdfBill",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@pdfBill",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::printBill",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@printBill",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::restoreBill",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@restoreBill",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::show",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@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/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::store",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@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/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::update",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@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/Purchases/RecurringBills.php::App\\Http\\Controllers\\Purchases\\RecurringBills::__construct",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@__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/Purchases/RecurringBills.php::App\\Http\\Controllers\\Purchases\\RecurringBills::create",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/RecurringBills.php::App\\Http\\Controllers\\Purchases\\RecurringBills::duplicate",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@duplicate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/RecurringBills.php::App\\Http\\Controllers\\Purchases\\RecurringBills::edit",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/RecurringBills.php::App\\Http\\Controllers\\Purchases\\RecurringBills::end",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@end",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/RecurringBills.php::App\\Http\\Controllers\\Purchases\\RecurringBills::export",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@export",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/RecurringBills.php::App\\Http\\Controllers\\Purchases\\RecurringBills::import",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@import",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/RecurringBills.php::App\\Http\\Controllers\\Purchases\\RecurringBills::index",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@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/Purchases/RecurringBills.php::App\\Http\\Controllers\\Purchases\\RecurringBills::show",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@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/Purchases/RecurringBills.php::App\\Http\\Controllers\\Purchases\\RecurringBills::store",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@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/Purchases/RecurringBills.php::App\\Http\\Controllers\\Purchases\\RecurringBills::update",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@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/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::create",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::createBill",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@createBill",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::createExpense",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@createExpense",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::destroy",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@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/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::disable",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@disable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::duplicate",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@duplicate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::edit",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::enable",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@enable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::export",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@export",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::import",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@import",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::index",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@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/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::show",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@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/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::store",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@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/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::update",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@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/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::create",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::createIncome",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@createIncome",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::createInvoice",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@createInvoice",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::destroy",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@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/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::disable",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@disable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::duplicate",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@duplicate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::edit",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::enable",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@enable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::export",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@export",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::import",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@import",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::index",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@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/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::show",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@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/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::store",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@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/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::update",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@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/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::create",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::destroy",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@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/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::duplicate",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@duplicate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::edit",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::emailInvoice",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@emailInvoice",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::export",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@export",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::import",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@import",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::index",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@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/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::markCancelled",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@markCancelled",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::markSent",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@markSent",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::pdfInvoice",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@pdfInvoice",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::printInvoice",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@printInvoice",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::restoreInvoice",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@restoreInvoice",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::show",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@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/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::store",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@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/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::update",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@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/Sales/RecurringInvoices.php::App\\Http\\Controllers\\Sales\\RecurringInvoices::__construct",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@__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/Sales/RecurringInvoices.php::App\\Http\\Controllers\\Sales\\RecurringInvoices::create",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/RecurringInvoices.php::App\\Http\\Controllers\\Sales\\RecurringInvoices::duplicate",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@duplicate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/RecurringInvoices.php::App\\Http\\Controllers\\Sales\\RecurringInvoices::edit",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/RecurringInvoices.php::App\\Http\\Controllers\\Sales\\RecurringInvoices::end",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@end",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/RecurringInvoices.php::App\\Http\\Controllers\\Sales\\RecurringInvoices::export",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@export",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/RecurringInvoices.php::App\\Http\\Controllers\\Sales\\RecurringInvoices::import",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@import",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/RecurringInvoices.php::App\\Http\\Controllers\\Sales\\RecurringInvoices::index",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@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/Sales/RecurringInvoices.php::App\\Http\\Controllers\\Sales\\RecurringInvoices::show",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@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/Sales/RecurringInvoices.php::App\\Http\\Controllers\\Sales\\RecurringInvoices::store",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@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/Sales/RecurringInvoices.php::App\\Http\\Controllers\\Sales\\RecurringInvoices::update",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@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/Settings/Categories.php::App\\Http\\Controllers\\Settings\\Categories::create",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Settings/Categories.php::App\\Http\\Controllers\\Settings\\Categories::destroy",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@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/Settings/Categories.php::App\\Http\\Controllers\\Settings\\Categories::disable",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@disable",
        "bucket": "DEFER",
        "signals": [
          "zero_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/Categories.php::App\\Http\\Controllers\\Settings\\Categories::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Settings/Categories.php::App\\Http\\Controllers\\Settings\\Categories::enable",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@enable",
        "bucket": "DEFER",
        "signals": [
          "zero_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/Categories.php::App\\Http\\Controllers\\Settings\\Categories::export",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@export",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Settings/Categories.php::App\\Http\\Controllers\\Settings\\Categories::import",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@import",
        "bucket": "DEFER",
        "signals": [
          "zero_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/Categories.php::App\\Http\\Controllers\\Settings\\Categories::index",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@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/Settings/Categories.php::App\\Http\\Controllers\\Settings\\Categories::show",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@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/Categories.php::App\\Http\\Controllers\\Settings\\Categories::store",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@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/Settings/Categories.php::App\\Http\\Controllers\\Settings\\Categories::update",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@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/Settings/Company.php::App\\Http\\Controllers\\Settings\\Company::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\Company@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Settings/Currencies.php::App\\Http\\Controllers\\Settings\\Currencies::config",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@config",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Settings/Currencies.php::App\\Http\\Controllers\\Settings\\Currencies::create",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Settings/Currencies.php::App\\Http\\Controllers\\Settings\\Currencies::destroy",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@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/Settings/Currencies.php::App\\Http\\Controllers\\Settings\\Currencies::disable",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@disable",
        "bucket": "DEFER",
        "signals": [
          "zero_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/Currencies.php::App\\Http\\Controllers\\Settings\\Currencies::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Settings/Currencies.php::App\\Http\\Controllers\\Settings\\Currencies::enable",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@enable",
        "bucket": "DEFER",
        "signals": [
          "zero_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/Currencies.php::App\\Http\\Controllers\\Settings\\Currencies::index",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@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/Settings/Currencies.php::App\\Http\\Controllers\\Settings\\Currencies::show",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@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/Currencies.php::App\\Http\\Controllers\\Settings\\Currencies::store",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@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/Settings/Currencies.php::App\\Http\\Controllers\\Settings\\Currencies::update",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@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/Settings/Defaults.php::App\\Http\\Controllers\\Settings\\Defaults::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\Defaults@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Settings/Email.php::App\\Http\\Controllers\\Settings\\Email::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\Email@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Settings/EmailTemplates.php::App\\Http\\Controllers\\Settings\\EmailTemplates::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\EmailTemplates@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Settings/EmailTemplates.php::App\\Http\\Controllers\\Settings\\EmailTemplates::get",
        "fqmn": "App\\Http\\Controllers\\Settings\\EmailTemplates@get",
        "bucket": "DEFER",
        "signals": [
          "zero_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/EmailTemplates.php::App\\Http\\Controllers\\Settings\\EmailTemplates::update",
        "fqmn": "App\\Http\\Controllers\\Settings\\EmailTemplates@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/Settings/Invoice.php::App\\Http\\Controllers\\Settings\\Invoice::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\Invoice@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Settings/Localisation.php::App\\Http\\Controllers\\Settings\\Localisation::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\Localisation@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Settings/Modules.php::App\\Http\\Controllers\\Settings\\Modules::__construct",
        "fqmn": "App\\Http\\Controllers\\Settings\\Modules@__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/Settings/Modules.php::App\\Http\\Controllers\\Settings\\Modules::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\Modules@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Settings/Modules.php::App\\Http\\Controllers\\Settings\\Modules::update",
        "fqmn": "App\\Http\\Controllers\\Settings\\Modules@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/Settings/Schedule.php::App\\Http\\Controllers\\Settings\\Schedule::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\Schedule@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Settings/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::create",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Settings/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::destroy",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@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/Settings/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::disable",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@disable",
        "bucket": "DEFER",
        "signals": [
          "zero_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/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Settings/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::enable",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@enable",
        "bucket": "DEFER",
        "signals": [
          "zero_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/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::export",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@export",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Settings/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::import",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@import",
        "bucket": "DEFER",
        "signals": [
          "zero_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/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::index",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@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/Settings/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::show",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@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/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::store",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@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/Settings/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::update",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@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/Wizard/Companies.php::App\\Http\\Controllers\\Wizard\\Companies::__construct",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Companies@__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/Wizard/Companies.php::App\\Http\\Controllers\\Wizard\\Companies::edit",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Companies@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Wizard/Companies.php::App\\Http\\Controllers\\Wizard\\Companies::update",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Companies@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/Wizard/Currencies.php::App\\Http\\Controllers\\Wizard\\Currencies::__construct",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Currencies@__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/Wizard/Currencies.php::App\\Http\\Controllers\\Wizard\\Currencies::destroy",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Currencies@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/Wizard/Currencies.php::App\\Http\\Controllers\\Wizard\\Currencies::index",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Currencies@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/Wizard/Currencies.php::App\\Http\\Controllers\\Wizard\\Currencies::show",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Currencies@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/Wizard/Currencies.php::App\\Http\\Controllers\\Wizard\\Currencies::store",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Currencies@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/Wizard/Currencies.php::App\\Http\\Controllers\\Wizard\\Currencies::update",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Currencies@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/Wizard/Finish.php::App\\Http\\Controllers\\Wizard\\Finish::__construct",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Finish@__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/Wizard/Finish.php::App\\Http\\Controllers\\Wizard\\Finish::index",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Finish@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/Wizard/Finish.php::App\\Http\\Controllers\\Wizard\\Finish::update",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Finish@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/Requests/Common/Item.php::App\\Http\\Requests\\Common\\Item::maxSizePrice",
        "fqmn": "App\\Http\\Requests\\Common\\Item@maxSizePrice",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Requests/Module/Module.php::App\\Http\\Requests\\Module\\Module::__construct",
        "fqmn": "App\\Http\\Requests\\Module\\Module@__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/Http/Requests/Wizard/Company.php::App\\Http\\Requests\\Wizard\\Company::__construct",
        "fqmn": "App\\Http\\Requests\\Wizard\\Company@__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/Http/Resources/Auth/Role.php::App\\Http\\Resources\\Auth\\Role::toArray",
        "fqmn": "App\\Http\\Resources\\Auth\\Role@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Resources/Auth/User.php::App\\Http\\Resources\\Auth\\User::toArray",
        "fqmn": "App\\Http\\Resources\\Auth\\User@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Resources/Banking/Account.php::App\\Http\\Resources\\Banking\\Account::toArray",
        "fqmn": "App\\Http\\Resources\\Banking\\Account@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Resources/Banking/Reconciliation.php::App\\Http\\Resources\\Banking\\Reconciliation::toArray",
        "fqmn": "App\\Http\\Resources\\Banking\\Reconciliation@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Resources/Banking/Transaction.php::App\\Http\\Resources\\Banking\\Transaction::toArray",
        "fqmn": "App\\Http\\Resources\\Banking\\Transaction@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Resources/Banking/TransactionTax.php::App\\Http\\Resources\\Banking\\TransactionTax::toArray",
        "fqmn": "App\\Http\\Resources\\Banking\\TransactionTax@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Resources/Banking/Transfer.php::App\\Http\\Resources\\Banking\\Transfer::toArray",
        "fqmn": "App\\Http\\Resources\\Banking\\Transfer@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Resources/Common/Company.php::App\\Http\\Resources\\Common\\Company::toArray",
        "fqmn": "App\\Http\\Resources\\Common\\Company@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Resources/Common/Contact.php::App\\Http\\Resources\\Common\\Contact::toArray",
        "fqmn": "App\\Http\\Resources\\Common\\Contact@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Resources/Common/ContactPerson.php::App\\Http\\Resources\\Common\\ContactPerson::toArray",
        "fqmn": "App\\Http\\Resources\\Common\\ContactPerson@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Resources/Common/Dashboard.php::App\\Http\\Resources\\Common\\Dashboard::toArray",
        "fqmn": "App\\Http\\Resources\\Common\\Dashboard@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Resources/Common/Item.php::App\\Http\\Resources\\Common\\Item::toArray",
        "fqmn": "App\\Http\\Resources\\Common\\Item@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Resources/Common/ItemTax.php::App\\Http\\Resources\\Common\\ItemTax::toArray",
        "fqmn": "App\\Http\\Resources\\Common\\ItemTax@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Resources/Common/Report.php::App\\Http\\Resources\\Common\\Report::toArray",
        "fqmn": "App\\Http\\Resources\\Common\\Report@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Resources/Common/Widget.php::App\\Http\\Resources\\Common\\Widget::toArray",
        "fqmn": "App\\Http\\Resources\\Common\\Widget@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Resources/Document/Document.php::App\\Http\\Resources\\Document\\Document::toArray",
        "fqmn": "App\\Http\\Resources\\Document\\Document@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Resources/Document/DocumentHistory.php::App\\Http\\Resources\\Document\\DocumentHistory::toArray",
        "fqmn": "App\\Http\\Resources\\Document\\DocumentHistory@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Resources/Document/DocumentItem.php::App\\Http\\Resources\\Document\\DocumentItem::toArray",
        "fqmn": "App\\Http\\Resources\\Document\\DocumentItem@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Resources/Document/DocumentItemTax.php::App\\Http\\Resources\\Document\\DocumentItemTax::toArray",
        "fqmn": "App\\Http\\Resources\\Document\\DocumentItemTax@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Resources/Document/DocumentTotal.php::App\\Http\\Resources\\Document\\DocumentTotal::toArray",
        "fqmn": "App\\Http\\Resources\\Document\\DocumentTotal@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Resources/Setting/Category.php::App\\Http\\Resources\\Setting\\Category::toArray",
        "fqmn": "App\\Http\\Resources\\Setting\\Category@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Resources/Setting/Currency.php::App\\Http\\Resources\\Setting\\Currency::toArray",
        "fqmn": "App\\Http\\Resources\\Setting\\Currency@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Resources/Setting/Setting.php::App\\Http\\Resources\\Setting\\Setting::toArray",
        "fqmn": "App\\Http\\Resources\\Setting\\Setting@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Resources/Setting/Tax.php::App\\Http\\Resources\\Setting\\Tax::toArray",
        "fqmn": "App\\Http\\Resources\\Setting\\Tax@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/Auth/CreateInvitation.php::App\\Jobs\\Auth\\CreateInvitation::__construct",
        "fqmn": "App\\Jobs\\Auth\\CreateInvitation@__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/Auth/CreateUser.php::App\\Jobs\\Auth\\CreateUser::authorize",
        "fqmn": "App\\Jobs\\Auth\\CreateUser@authorize",
        "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/Auth/DeleteUser.php::App\\Jobs\\Auth\\DeleteUser::authorize",
        "fqmn": "App\\Jobs\\Auth\\DeleteUser@authorize",
        "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/Auth/NotifyUser.php::App\\Jobs\\Auth\\NotifyUser::__construct",
        "fqmn": "App\\Jobs\\Auth\\NotifyUser@__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/Auth/UpdateUser.php::App\\Jobs\\Auth\\UpdateUser::authorize",
        "fqmn": "App\\Jobs\\Auth\\UpdateUser@authorize",
        "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/Banking/CreateBankingDocumentTransaction.php::App\\Jobs\\Banking\\CreateBankingDocumentTransaction::__construct",
        "fqmn": "App\\Jobs\\Banking\\CreateBankingDocumentTransaction@__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/Banking/CreateTransactionTaxes.php::App\\Jobs\\Banking\\CreateTransactionTaxes::__construct",
        "fqmn": "App\\Jobs\\Banking\\CreateTransactionTaxes@__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/Banking/CreateTransactionTaxes.php::App\\Jobs\\Banking\\CreateTransactionTaxes::getTaxesCalculated",
        "fqmn": "App\\Jobs\\Banking\\CreateTransactionTaxes@getTaxesCalculated",
        "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/Banking/CreateTransfer.php::App\\Jobs\\Banking\\CreateTransfer::authorize",
        "fqmn": "App\\Jobs\\Banking\\CreateTransfer@authorize",
        "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/Banking/DeleteAccount.php::App\\Jobs\\Banking\\DeleteAccount::authorize",
        "fqmn": "App\\Jobs\\Banking\\DeleteAccount@authorize",
        "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/Banking/DeleteAccount.php::App\\Jobs\\Banking\\DeleteAccount::getRelationships",
        "fqmn": "App\\Jobs\\Banking\\DeleteAccount@getRelationships",
        "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/Banking/DeleteTransaction.php::App\\Jobs\\Banking\\DeleteTransaction::authorize",
        "fqmn": "App\\Jobs\\Banking\\DeleteTransaction@authorize",
        "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/Banking/DuplicateTransaction.php::App\\Jobs\\Banking\\DuplicateTransaction::__construct",
        "fqmn": "App\\Jobs\\Banking\\DuplicateTransaction@__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/Banking/MatchBankingDocumentTransaction.php::App\\Jobs\\Banking\\MatchBankingDocumentTransaction::__construct",
        "fqmn": "App\\Jobs\\Banking\\MatchBankingDocumentTransaction@__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/Banking/SendTransaction.php::App\\Jobs\\Banking\\SendTransaction::__construct",
        "fqmn": "App\\Jobs\\Banking\\SendTransaction@__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/Banking/SendTransactionAsCustomMail.php::App\\Jobs\\Banking\\SendTransactionAsCustomMail::__construct",
        "fqmn": "App\\Jobs\\Banking\\SendTransactionAsCustomMail@__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/Banking/SplitTransaction.php::App\\Jobs\\Banking\\SplitTransaction::authorize",
        "fqmn": "App\\Jobs\\Banking\\SplitTransaction@authorize",
        "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/Banking/UpdateAccount.php::App\\Jobs\\Banking\\UpdateAccount::authorize",
        "fqmn": "App\\Jobs\\Banking\\UpdateAccount@authorize",
        "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/Banking/UpdateAccount.php::App\\Jobs\\Banking\\UpdateAccount::getRelationships",
        "fqmn": "App\\Jobs\\Banking\\UpdateAccount@getRelationships",
        "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/Banking/UpdateBankingDocumentTransaction.php::App\\Jobs\\Banking\\UpdateBankingDocumentTransaction::__construct",
        "fqmn": "App\\Jobs\\Banking\\UpdateBankingDocumentTransaction@__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/Banking/UpdateTransaction.php::App\\Jobs\\Banking\\UpdateTransaction::authorize",
        "fqmn": "App\\Jobs\\Banking\\UpdateTransaction@authorize",
        "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/Banking/UpdateTransfer.php::App\\Jobs\\Banking\\UpdateTransfer::authorize",
        "fqmn": "App\\Jobs\\Banking\\UpdateTransfer@authorize",
        "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/Common/CreateCompany.php::App\\Jobs\\Common\\CreateCompany::authorize",
        "fqmn": "App\\Jobs\\Common\\CreateCompany@authorize",
        "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/Common/CreateContact.php::App\\Jobs\\Common\\CreateContact::createUser",
        "fqmn": "App\\Jobs\\Common\\CreateContact@createUser",
        "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/Common/CreateContactPersons.php::App\\Jobs\\Common\\CreateContactPersons::__construct",
        "fqmn": "App\\Jobs\\Common\\CreateContactPersons@__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/Common/CreateItemTaxes.php::App\\Jobs\\Common\\CreateItemTaxes::__construct",
        "fqmn": "App\\Jobs\\Common\\CreateItemTaxes@__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/Common/CreateMediableForDownload.php::App\\Jobs\\Common\\CreateMediableForDownload::__construct",
        "fqmn": "App\\Jobs\\Common\\CreateMediableForDownload@__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/Common/CreateMediableForDownload.php::App\\Jobs\\Common\\CreateMediableForDownload::getLocalQueuedMedia",
        "fqmn": "App\\Jobs\\Common\\CreateMediableForDownload@getLocalQueuedMedia",
        "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/Common/CreateMediableForDownload.php::App\\Jobs\\Common\\CreateMediableForDownload::getQueuedMedia",
        "fqmn": "App\\Jobs\\Common\\CreateMediableForDownload@getQueuedMedia",
        "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/Common/CreateMediableForDownload.php::App\\Jobs\\Common\\CreateMediableForDownload::getRemoteQueuedMedia",
        "fqmn": "App\\Jobs\\Common\\CreateMediableForDownload@getRemoteQueuedMedia",
        "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/Common/CreateMediableForExport.php::App\\Jobs\\Common\\CreateMediableForExport::__construct",
        "fqmn": "App\\Jobs\\Common\\CreateMediableForExport@__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/Common/CreateMediableForExport.php::App\\Jobs\\Common\\CreateMediableForExport::getLocalQueuedMedia",
        "fqmn": "App\\Jobs\\Common\\CreateMediableForExport@getLocalQueuedMedia",
        "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/Common/CreateMediableForExport.php::App\\Jobs\\Common\\CreateMediableForExport::getQueuedMedia",
        "fqmn": "App\\Jobs\\Common\\CreateMediableForExport@getQueuedMedia",
        "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/Common/CreateMediableForExport.php::App\\Jobs\\Common\\CreateMediableForExport::getRemoteQueuedMedia",
        "fqmn": "App\\Jobs\\Common\\CreateMediableForExport@getRemoteQueuedMedia",
        "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/Common/CreateZipForDownload.php::App\\Jobs\\Common\\CreateZipForDownload::__construct",
        "fqmn": "App\\Jobs\\Common\\CreateZipForDownload@__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/Common/CreateZipForDownload.php::App\\Jobs\\Common\\CreateZipForDownload::copyQueuedFile",
        "fqmn": "App\\Jobs\\Common\\CreateZipForDownload@copyQueuedFile",
        "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/Common/CreateZipForDownload.php::App\\Jobs\\Common\\CreateZipForDownload::copyRemoteQueuedMedia",
        "fqmn": "App\\Jobs\\Common\\CreateZipForDownload@copyRemoteQueuedMedia",
        "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/Common/CreateZipForDownload.php::App\\Jobs\\Common\\CreateZipForDownload::getLocalQueuedMedia",
        "fqmn": "App\\Jobs\\Common\\CreateZipForDownload@getLocalQueuedMedia",
        "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/Common/CreateZipForDownload.php::App\\Jobs\\Common\\CreateZipForDownload::getQueuedFile",
        "fqmn": "App\\Jobs\\Common\\CreateZipForDownload@getQueuedFile",
        "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/Common/CreateZipForDownload.php::App\\Jobs\\Common\\CreateZipForDownload::getRemoteQueuedMedia",
        "fqmn": "App\\Jobs\\Common\\CreateZipForDownload@getRemoteQueuedMedia",
        "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/Common/DeleteCompany.php::App\\Jobs\\Common\\DeleteCompany::authorize",
        "fqmn": "App\\Jobs\\Common\\DeleteCompany@authorize",
        "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/Common/DeleteCompany.php::App\\Jobs\\Common\\DeleteCompany::booted",
        "fqmn": "App\\Jobs\\Common\\DeleteCompany@booted",
        "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/Common/DeleteCompany.php::App\\Jobs\\Common\\DeleteCompany::getRelationshipsToDelete",
        "fqmn": "App\\Jobs\\Common\\DeleteCompany@getRelationshipsToDelete",
        "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/Common/DeleteContact.php::App\\Jobs\\Common\\DeleteContact::authorize",
        "fqmn": "App\\Jobs\\Common\\DeleteContact@authorize",
        "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/Common/DeleteContact.php::App\\Jobs\\Common\\DeleteContact::getRelationships",
        "fqmn": "App\\Jobs\\Common\\DeleteContact@getRelationships",
        "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/Common/DeleteDashboard.php::App\\Jobs\\Common\\DeleteDashboard::authorize",
        "fqmn": "App\\Jobs\\Common\\DeleteDashboard@authorize",
        "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/Common/DeleteItem.php::App\\Jobs\\Common\\DeleteItem::authorize",
        "fqmn": "App\\Jobs\\Common\\DeleteItem@authorize",
        "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/Common/DeleteItem.php::App\\Jobs\\Common\\DeleteItem::getRelationships",
        "fqmn": "App\\Jobs\\Common\\DeleteItem@getRelationships",
        "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/Common/DeleteReport.php::App\\Jobs\\Common\\DeleteReport::deleteFavorite",
        "fqmn": "App\\Jobs\\Common\\DeleteReport@deleteFavorite",
        "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/Common/DeleteReport.php::App\\Jobs\\Common\\DeleteReport::deletePin",
        "fqmn": "App\\Jobs\\Common\\DeleteReport@deletePin",
        "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/Common/DuplicateContact.php::App\\Jobs\\Common\\DuplicateContact::__construct",
        "fqmn": "App\\Jobs\\Common\\DuplicateContact@__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/Common/UpdateCompany.php::App\\Jobs\\Common\\UpdateCompany::authorize",
        "fqmn": "App\\Jobs\\Common\\UpdateCompany@authorize",
        "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/Common/UpdateCompany.php::App\\Jobs\\Common\\UpdateCompany::booted",
        "fqmn": "App\\Jobs\\Common\\UpdateCompany@booted",
        "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/Common/UpdateContact.php::App\\Jobs\\Common\\UpdateContact::authorize",
        "fqmn": "App\\Jobs\\Common\\UpdateContact@authorize",
        "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/Common/UpdateContact.php::App\\Jobs\\Common\\UpdateContact::createUser",
        "fqmn": "App\\Jobs\\Common\\UpdateContact@createUser",
        "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/Common/UpdateContact.php::App\\Jobs\\Common\\UpdateContact::getRelationships",
        "fqmn": "App\\Jobs\\Common\\UpdateContact@getRelationships",
        "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/Common/UpdateContact.php::App\\Jobs\\Common\\UpdateContact::updateRecurringDocument",
        "fqmn": "App\\Jobs\\Common\\UpdateContact@updateRecurringDocument",
        "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/Common/UpdateDashboard.php::App\\Jobs\\Common\\UpdateDashboard::authorize",
        "fqmn": "App\\Jobs\\Common\\UpdateDashboard@authorize",
        "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/Document/CancelDocument.php::App\\Jobs\\Document\\CancelDocument::__construct",
        "fqmn": "App\\Jobs\\Document\\CancelDocument@__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/Document/CancelDocument.php::App\\Jobs\\Document\\CancelDocument::authorize",
        "fqmn": "App\\Jobs\\Document\\CancelDocument@authorize",
        "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/Document/CreateDocument.php::App\\Jobs\\Document\\CreateDocument::authorize",
        "fqmn": "App\\Jobs\\Document\\CreateDocument@authorize",
        "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/Document/CreateDocumentHistory.php::App\\Jobs\\Document\\CreateDocumentHistory::__construct",
        "fqmn": "App\\Jobs\\Document\\CreateDocumentHistory@__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/Document/CreateDocumentHistory.php::App\\Jobs\\Document\\CreateDocumentHistory::getCustomSourceName",
        "fqmn": "App\\Jobs\\Document\\CreateDocumentHistory@getCustomSourceName",
        "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/Document/CreateDocumentItem.php::App\\Jobs\\Document\\CreateDocumentItem::__construct",
        "fqmn": "App\\Jobs\\Document\\CreateDocumentItem@__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/Document/CreateDocumentItemsAndTotals.php::App\\Jobs\\Document\\CreateDocumentItemsAndTotals::__construct",
        "fqmn": "App\\Jobs\\Document\\CreateDocumentItemsAndTotals@__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/Document/CreateDocumentItemsAndTotals.php::App\\Jobs\\Document\\CreateDocumentItemsAndTotals::fixedDiscountCalculate",
        "fqmn": "App\\Jobs\\Document\\CreateDocumentItemsAndTotals@fixedDiscountCalculate",
        "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/Document/DeleteDocument.php::App\\Jobs\\Document\\DeleteDocument::authorize",
        "fqmn": "App\\Jobs\\Document\\DeleteDocument@authorize",
        "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/Document/DownloadDocument.php::App\\Jobs\\Document\\DownloadDocument::__construct",
        "fqmn": "App\\Jobs\\Document\\DownloadDocument@__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/Document/DuplicateDocument.php::App\\Jobs\\Document\\DuplicateDocument::__construct",
        "fqmn": "App\\Jobs\\Document\\DuplicateDocument@__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/Document/RestoreDocument.php::App\\Jobs\\Document\\RestoreDocument::__construct",
        "fqmn": "App\\Jobs\\Document\\RestoreDocument@__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/Document/SendDocument.php::App\\Jobs\\Document\\SendDocument::__construct",
        "fqmn": "App\\Jobs\\Document\\SendDocument@__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/Document/SendDocumentAsCustomMail.php::App\\Jobs\\Document\\SendDocumentAsCustomMail::__construct",
        "fqmn": "App\\Jobs\\Document\\SendDocumentAsCustomMail@__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/Document/UpdateDocument.php::App\\Jobs\\Document\\UpdateDocument::authorize",
        "fqmn": "App\\Jobs\\Document\\UpdateDocument@authorize",
        "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/Install/CopyFiles.php::App\\Jobs\\Install\\CopyFiles::__construct",
        "fqmn": "App\\Jobs\\Install\\CopyFiles@__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/Install/DisableModule.php::App\\Jobs\\Install\\DisableModule::__construct",
        "fqmn": "App\\Jobs\\Install\\DisableModule@__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/Install/DisableModule.php::App\\Jobs\\Install\\DisableModule::authorize",
        "fqmn": "App\\Jobs\\Install\\DisableModule@authorize",
        "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/Install/DownloadFile.php::App\\Jobs\\Install\\DownloadFile::__construct",
        "fqmn": "App\\Jobs\\Install\\DownloadFile@__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/Install/DownloadModule.php::App\\Jobs\\Install\\DownloadModule::__construct",
        "fqmn": "App\\Jobs\\Install\\DownloadModule@__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/Install/EnableModule.php::App\\Jobs\\Install\\EnableModule::__construct",
        "fqmn": "App\\Jobs\\Install\\EnableModule@__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/Install/EnableModule.php::App\\Jobs\\Install\\EnableModule::authorize",
        "fqmn": "App\\Jobs\\Install\\EnableModule@authorize",
        "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/Install/FinishUpdate.php::App\\Jobs\\Install\\FinishUpdate::__construct",
        "fqmn": "App\\Jobs\\Install\\FinishUpdate@__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/Install/FinishUpdate.php::App\\Jobs\\Install\\FinishUpdate::authorize",
        "fqmn": "App\\Jobs\\Install\\FinishUpdate@authorize",
        "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/Install/FinishUpdate.php::App\\Jobs\\Install\\FinishUpdate::getCompanies",
        "fqmn": "App\\Jobs\\Install\\FinishUpdate@getCompanies",
        "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/Install/FinishUpdate.php::App\\Jobs\\Install\\FinishUpdate::getCompaniesOfModule",
        "fqmn": "App\\Jobs\\Install\\FinishUpdate@getCompaniesOfModule",
        "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/Install/FinishUpdate.php::App\\Jobs\\Install\\FinishUpdate::getListenerTypeOfModule",
        "fqmn": "App\\Jobs\\Install\\FinishUpdate@getListenerTypeOfModule",
        "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/Install/InstallModule.php::App\\Jobs\\Install\\InstallModule::__construct",
        "fqmn": "App\\Jobs\\Install\\InstallModule@__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/Install/InstallModule.php::App\\Jobs\\Install\\InstallModule::authorize",
        "fqmn": "App\\Jobs\\Install\\InstallModule@authorize",
        "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/Install/UninstallModule.php::App\\Jobs\\Install\\UninstallModule::__construct",
        "fqmn": "App\\Jobs\\Install\\UninstallModule@__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/Install/UninstallModule.php::App\\Jobs\\Install\\UninstallModule::authorize",
        "fqmn": "App\\Jobs\\Install\\UninstallModule@authorize",
        "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/Install/UnzipFile.php::App\\Jobs\\Install\\UnzipFile::__construct",
        "fqmn": "App\\Jobs\\Install\\UnzipFile@__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/Setting/DeleteCategory.php::App\\Jobs\\Setting\\DeleteCategory::authorize",
        "fqmn": "App\\Jobs\\Setting\\DeleteCategory@authorize",
        "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/Setting/DeleteCategory.php::App\\Jobs\\Setting\\DeleteCategory::deleteSubCategories",
        "fqmn": "App\\Jobs\\Setting\\DeleteCategory@deleteSubCategories",
        "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/Setting/DeleteCategory.php::App\\Jobs\\Setting\\DeleteCategory::getRelationships",
        "fqmn": "App\\Jobs\\Setting\\DeleteCategory@getRelationships",
        "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/Setting/DeleteCategory.php::App\\Jobs\\Setting\\DeleteCategory::getSubCategoryRelationships",
        "fqmn": "App\\Jobs\\Setting\\DeleteCategory@getSubCategoryRelationships",
        "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/Setting/DeleteCurrency.php::App\\Jobs\\Setting\\DeleteCurrency::authorize",
        "fqmn": "App\\Jobs\\Setting\\DeleteCurrency@authorize",
        "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/Setting/DeleteCurrency.php::App\\Jobs\\Setting\\DeleteCurrency::getRelationships",
        "fqmn": "App\\Jobs\\Setting\\DeleteCurrency@getRelationships",
        "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/Setting/DeleteTax.php::App\\Jobs\\Setting\\DeleteTax::authorize",
        "fqmn": "App\\Jobs\\Setting\\DeleteTax@authorize",
        "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/Setting/DeleteTax.php::App\\Jobs\\Setting\\DeleteTax::getRelationships",
        "fqmn": "App\\Jobs\\Setting\\DeleteTax@getRelationships",
        "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/Setting/UpdateCategory.php::App\\Jobs\\Setting\\UpdateCategory::authorize",
        "fqmn": "App\\Jobs\\Setting\\UpdateCategory@authorize",
        "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/Setting/UpdateCategory.php::App\\Jobs\\Setting\\UpdateCategory::getRelationships",
        "fqmn": "App\\Jobs\\Setting\\UpdateCategory@getRelationships",
        "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/Setting/UpdateCurrency.php::App\\Jobs\\Setting\\UpdateCurrency::authorize",
        "fqmn": "App\\Jobs\\Setting\\UpdateCurrency@authorize",
        "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/Setting/UpdateCurrency.php::App\\Jobs\\Setting\\UpdateCurrency::getRelationships",
        "fqmn": "App\\Jobs\\Setting\\UpdateCurrency@getRelationships",
        "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/Setting/UpdateTax.php::App\\Jobs\\Setting\\UpdateTax::authorize",
        "fqmn": "App\\Jobs\\Setting\\UpdateTax@authorize",
        "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/Setting/UpdateTax.php::App\\Jobs\\Setting\\UpdateTax::getRelationships",
        "fqmn": "App\\Jobs\\Setting\\UpdateTax@getRelationships",
        "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/Common/ClearPlansCache.php::App\\Listeners\\Common\\ClearPlansCache::subscribe",
        "fqmn": "App\\Listeners\\Common\\ClearPlansCache@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/Listeners/Document/MarkDocumentSent.php::App\\Listeners\\Document\\MarkDocumentSent::getDescription",
        "fqmn": "App\\Listeners\\Document\\MarkDocumentSent@getDescription",
        "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/Email/DisablePersonDueToInvalidEmail.php::App\\Listeners\\Email\\DisablePersonDueToInvalidEmail::disableContact",
        "fqmn": "App\\Listeners\\Email\\DisablePersonDueToInvalidEmail@disableContact",
        "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/Email/DisablePersonDueToInvalidEmail.php::App\\Listeners\\Email\\DisablePersonDueToInvalidEmail::disableUser",
        "fqmn": "App\\Listeners\\Email\\DisablePersonDueToInvalidEmail@disableUser",
        "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/Email/SendInvalidEmailNotification.php::App\\Listeners\\Email\\SendInvalidEmailNotification::notifyAdminsAboutInvalidContactEmail",
        "fqmn": "App\\Listeners\\Email\\SendInvalidEmailNotification@notifyAdminsAboutInvalidContactEmail",
        "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/Email/SendInvalidEmailNotification.php::App\\Listeners\\Email\\SendInvalidEmailNotification::notifyAdminsAboutInvalidUserEmail",
        "fqmn": "App\\Listeners\\Email\\SendInvalidEmailNotification@notifyAdminsAboutInvalidUserEmail",
        "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/Email/TellFirewallTooManyEmailsSent.php::App\\Listeners\\Email\\TellFirewallTooManyEmailsSent::skip",
        "fqmn": "App\\Listeners\\Email\\TellFirewallTooManyEmailsSent@skip",
        "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/Module/ClearCache.php::App\\Listeners\\Module\\ClearCache::subscribe",
        "fqmn": "App\\Listeners\\Module\\ClearCache@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/Listeners/Report/AddAccounts.php::App\\Listeners\\Report\\AddAccounts::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddAccounts@handleFilterShowing",
        "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/Report/AddAccounts.php::App\\Listeners\\Report\\AddAccounts::handleGroupApplying",
        "fqmn": "App\\Listeners\\Report\\AddAccounts@handleGroupApplying",
        "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/Report/AddAccounts.php::App\\Listeners\\Report\\AddAccounts::handleGroupShowing",
        "fqmn": "App\\Listeners\\Report\\AddAccounts@handleGroupShowing",
        "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/Report/AddAccounts.php::App\\Listeners\\Report\\AddAccounts::handleRowsShowing",
        "fqmn": "App\\Listeners\\Report\\AddAccounts@handleRowsShowing",
        "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/Report/AddBasis.php::App\\Listeners\\Report\\AddBasis::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddBasis@handleFilterShowing",
        "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/Report/AddContacts.php::App\\Listeners\\Report\\AddContacts::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddContacts@handleFilterShowing",
        "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/Report/AddContacts.php::App\\Listeners\\Report\\AddContacts::handleGroupShowing",
        "fqmn": "App\\Listeners\\Report\\AddContacts@handleGroupShowing",
        "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/Report/AddContacts.php::App\\Listeners\\Report\\AddContacts::handleRowsShowing",
        "fqmn": "App\\Listeners\\Report\\AddContacts@handleRowsShowing",
        "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/Report/AddCustomers.php::App\\Listeners\\Report\\AddCustomers::handleFilterApplying",
        "fqmn": "App\\Listeners\\Report\\AddCustomers@handleFilterApplying",
        "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/Report/AddCustomers.php::App\\Listeners\\Report\\AddCustomers::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddCustomers@handleFilterShowing",
        "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/Report/AddCustomers.php::App\\Listeners\\Report\\AddCustomers::handleGroupApplying",
        "fqmn": "App\\Listeners\\Report\\AddCustomers@handleGroupApplying",
        "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/Report/AddCustomers.php::App\\Listeners\\Report\\AddCustomers::handleGroupShowing",
        "fqmn": "App\\Listeners\\Report\\AddCustomers@handleGroupShowing",
        "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/Report/AddCustomers.php::App\\Listeners\\Report\\AddCustomers::handleRowsShowing",
        "fqmn": "App\\Listeners\\Report\\AddCustomers@handleRowsShowing",
        "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/Report/AddDate.php::App\\Listeners\\Report\\AddDate::handleFilterApplying",
        "fqmn": "App\\Listeners\\Report\\AddDate@handleFilterApplying",
        "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/Report/AddDate.php::App\\Listeners\\Report\\AddDate::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddDate@handleFilterShowing",
        "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/Report/AddDiscount.php::App\\Listeners\\Report\\AddDiscount::handleFilterApplying",
        "fqmn": "App\\Listeners\\Report\\AddDiscount@handleFilterApplying",
        "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/Report/AddDiscount.php::App\\Listeners\\Report\\AddDiscount::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddDiscount@handleFilterShowing",
        "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/Report/AddExpenseCategories.php::App\\Listeners\\Report\\AddExpenseCategories::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddExpenseCategories@handleFilterShowing",
        "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/Report/AddExpenseCategories.php::App\\Listeners\\Report\\AddExpenseCategories::handleGroupShowing",
        "fqmn": "App\\Listeners\\Report\\AddExpenseCategories@handleGroupShowing",
        "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/Report/AddExpenseCategories.php::App\\Listeners\\Report\\AddExpenseCategories::handleRowsShowing",
        "fqmn": "App\\Listeners\\Report\\AddExpenseCategories@handleRowsShowing",
        "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/Report/AddGroup.php::App\\Listeners\\Report\\AddGroup::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddGroup@handleFilterShowing",
        "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/Report/AddIncomeCategories.php::App\\Listeners\\Report\\AddIncomeCategories::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddIncomeCategories@handleFilterShowing",
        "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/Report/AddIncomeCategories.php::App\\Listeners\\Report\\AddIncomeCategories::handleGroupShowing",
        "fqmn": "App\\Listeners\\Report\\AddIncomeCategories@handleGroupShowing",
        "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/Report/AddIncomeCategories.php::App\\Listeners\\Report\\AddIncomeCategories::handleRowsShowing",
        "fqmn": "App\\Listeners\\Report\\AddIncomeCategories@handleRowsShowing",
        "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/Report/AddIncomeExpenseCategories.php::App\\Listeners\\Report\\AddIncomeExpenseCategories::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddIncomeExpenseCategories@handleFilterShowing",
        "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/Report/AddIncomeExpenseCategories.php::App\\Listeners\\Report\\AddIncomeExpenseCategories::handleGroupShowing",
        "fqmn": "App\\Listeners\\Report\\AddIncomeExpenseCategories@handleGroupShowing",
        "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/Report/AddIncomeExpenseCategories.php::App\\Listeners\\Report\\AddIncomeExpenseCategories::handleRowsShowing",
        "fqmn": "App\\Listeners\\Report\\AddIncomeExpenseCategories@handleRowsShowing",
        "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/Report/AddIncomeExpenseCategories.php::App\\Listeners\\Report\\AddIncomeExpenseCategories::setRowNamesAndValuesForCategories",
        "fqmn": "App\\Listeners\\Report\\AddIncomeExpenseCategories@setRowNamesAndValuesForCategories",
        "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/Report/AddIncomeExpenseCategories.php::App\\Listeners\\Report\\AddIncomeExpenseCategories::setTreeNodesForCategories",
        "fqmn": "App\\Listeners\\Report\\AddIncomeExpenseCategories@setTreeNodesForCategories",
        "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/Report/AddPeriod.php::App\\Listeners\\Report\\AddPeriod::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddPeriod@handleFilterShowing",
        "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/Report/AddRowsToTax.php::App\\Listeners\\Report\\AddRowsToTax::handleRowsShowing",
        "fqmn": "App\\Listeners\\Report\\AddRowsToTax@handleRowsShowing",
        "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/Report/AddSearchString.php::App\\Listeners\\Report\\AddSearchString::handleFilterApplying",
        "fqmn": "App\\Listeners\\Report\\AddSearchString@handleFilterApplying",
        "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/Report/AddVendors.php::App\\Listeners\\Report\\AddVendors::handleFilterApplying",
        "fqmn": "App\\Listeners\\Report\\AddVendors@handleFilterApplying",
        "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/Report/AddVendors.php::App\\Listeners\\Report\\AddVendors::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddVendors@handleFilterShowing",
        "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/Report/AddVendors.php::App\\Listeners\\Report\\AddVendors::handleGroupApplying",
        "fqmn": "App\\Listeners\\Report\\AddVendors@handleGroupApplying",
        "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/Report/AddVendors.php::App\\Listeners\\Report\\AddVendors::handleGroupShowing",
        "fqmn": "App\\Listeners\\Report\\AddVendors@handleGroupShowing",
        "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/Report/AddVendors.php::App\\Listeners\\Report\\AddVendors::handleRowsShowing",
        "fqmn": "App\\Listeners\\Report\\AddVendors@handleRowsShowing",
        "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/Update/SendNotificationOnFailure.php::App\\Listeners\\Update\\SendNotificationOnFailure::getKey",
        "fqmn": "App\\Listeners\\Update\\SendNotificationOnFailure@getKey",
        "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/Update/SendNotificationOnFailure.php::App\\Listeners\\Update\\SendNotificationOnFailure::routeNotificationForMail",
        "fqmn": "App\\Listeners\\Update\\SendNotificationOnFailure@routeNotificationForMail",
        "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/Update/SendNotificationOnFailure.php::App\\Listeners\\Update\\SendNotificationOnFailure::routeNotificationForSlack",
        "fqmn": "App\\Listeners\\Update\\SendNotificationOnFailure@routeNotificationForSlack",
        "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/Update/V30/Version300.php::App\\Listeners\\Update\\V30\\Version300::clearNotifications",
        "fqmn": "App\\Listeners\\Update\\V30\\Version300@clearNotifications",
        "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/Update/V30/Version300.php::App\\Listeners\\Update\\V30\\Version300::createNewWidgets",
        "fqmn": "App\\Listeners\\Update\\V30\\Version300@createNewWidgets",
        "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/Update/V30/Version300.php::App\\Listeners\\Update\\V30\\Version300::deleteOldFiles",
        "fqmn": "App\\Listeners\\Update\\V30\\Version300@deleteOldFiles",
        "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/Update/V30/Version300.php::App\\Listeners\\Update\\V30\\Version300::deleteOldWidgets",
        "fqmn": "App\\Listeners\\Update\\V30\\Version300@deleteOldWidgets",
        "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/Update/V30/Version300.php::App\\Listeners\\Update\\V30\\Version300::getTransactionNumber",
        "fqmn": "App\\Listeners\\Update\\V30\\Version300@getTransactionNumber",
        "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/Update/V30/Version300.php::App\\Listeners\\Update\\V30\\Version300::saveNextTransactionNumber",
        "fqmn": "App\\Listeners\\Update\\V30\\Version300@saveNextTransactionNumber",
        "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/Update/V30/Version300.php::App\\Listeners\\Update\\V30\\Version300::updateCompanies",
        "fqmn": "App\\Listeners\\Update\\V30\\Version300@updateCompanies",
        "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/Update/V30/Version300.php::App\\Listeners\\Update\\V30\\Version300::updateDatabase",
        "fqmn": "App\\Listeners\\Update\\V30\\Version300@updateDatabase",
        "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/Update/V30/Version300.php::App\\Listeners\\Update\\V30\\Version300::updateEmailTemplates",
        "fqmn": "App\\Listeners\\Update\\V30\\Version300@updateEmailTemplates",
        "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/Update/V30/Version300.php::App\\Listeners\\Update\\V30\\Version300::updatePermissions",
        "fqmn": "App\\Listeners\\Update\\V30\\Version300@updatePermissions",
        "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/Update/V30/Version300.php::App\\Listeners\\Update\\V30\\Version300::updateRecurables",
        "fqmn": "App\\Listeners\\Update\\V30\\Version300@updateRecurables",
        "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/Update/V30/Version300.php::App\\Listeners\\Update\\V30\\Version300::updateTransactions",
        "fqmn": "App\\Listeners\\Update\\V30\\Version300@updateTransactions",
        "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/Update/V30/Version3015.php::App\\Listeners\\Update\\V30\\Version3015::updateDatabase",
        "fqmn": "App\\Listeners\\Update\\V30\\Version3015@updateDatabase",
        "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/Update/V30/Version3016.php::App\\Listeners\\Update\\V30\\Version3016::updateDatabase",
        "fqmn": "App\\Listeners\\Update\\V30\\Version3016@updateDatabase",
        "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/Update/V30/Version3017.php::App\\Listeners\\Update\\V30\\Version3017::updateDatabase",
        "fqmn": "App\\Listeners\\Update\\V30\\Version3017@updateDatabase",
        "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/Update/V30/Version303.php::App\\Listeners\\Update\\V30\\Version303::updateCompanies",
        "fqmn": "App\\Listeners\\Update\\V30\\Version303@updateCompanies",
        "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/Update/V30/Version303.php::App\\Listeners\\Update\\V30\\Version303::updateWidgets",
        "fqmn": "App\\Listeners\\Update\\V30\\Version303@updateWidgets",
        "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/Update/V30/Version304.php::App\\Listeners\\Update\\V30\\Version304::deleteOldFiles",
        "fqmn": "App\\Listeners\\Update\\V30\\Version304@deleteOldFiles",
        "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/Update/V30/Version304.php::App\\Listeners\\Update\\V30\\Version304::updateCompanies",
        "fqmn": "App\\Listeners\\Update\\V30\\Version304@updateCompanies",
        "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/Update/V30/Version304.php::App\\Listeners\\Update\\V30\\Version304::updateDatabase",
        "fqmn": "App\\Listeners\\Update\\V30\\Version304@updateDatabase",
        "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/Update/V30/Version304.php::App\\Listeners\\Update\\V30\\Version304::updateEmailTemplates",
        "fqmn": "App\\Listeners\\Update\\V30\\Version304@updateEmailTemplates",
        "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/Update/V30/Version305.php::App\\Listeners\\Update\\V30\\Version305::updateDatabase",
        "fqmn": "App\\Listeners\\Update\\V30\\Version305@updateDatabase",
        "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/Update/V30/Version305.php::App\\Listeners\\Update\\V30\\Version305::updateSettings",
        "fqmn": "App\\Listeners\\Update\\V30\\Version305@updateSettings",
        "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/Update/V30/Version305.php::App\\Listeners\\Update\\V30\\Version305::updateTransfers",
        "fqmn": "App\\Listeners\\Update\\V30\\Version305@updateTransfers",
        "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/Update/V30/Version307.php::App\\Listeners\\Update\\V30\\Version307::updateDatabase",
        "fqmn": "App\\Listeners\\Update\\V30\\Version307@updateDatabase",
        "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/Update/V30/Version309.php::App\\Listeners\\Update\\V30\\Version309::updatePermissions",
        "fqmn": "App\\Listeners\\Update\\V30\\Version309@updatePermissions",
        "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/Update/V31/Version310.php::App\\Listeners\\Update\\V31\\Version310::updateDatabase",
        "fqmn": "App\\Listeners\\Update\\V31\\Version310@updateDatabase",
        "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/Update/V31/Version3112.php::App\\Listeners\\Update\\V31\\Version3112::updateDatabase",
        "fqmn": "App\\Listeners\\Update\\V31\\Version3112@updateDatabase",
        "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/Update/V31/Version3115.php::App\\Listeners\\Update\\V31\\Version3115::updateDatabase",
        "fqmn": "App\\Listeners\\Update\\V31\\Version3115@updateDatabase",
        "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/Update/V31/Version3119.php::App\\Listeners\\Update\\V31\\Version3119::updatePermissions",
        "fqmn": "App\\Listeners\\Update\\V31\\Version3119@updatePermissions",
        "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/Update/V31/Version3122.php::App\\Listeners\\Update\\V31\\Version3122::updateDatabase",
        "fqmn": "App\\Listeners\\Update\\V31\\Version3122@updateDatabase",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Listeners/Update/V31/Version3122.php::App\\Listeners\\Update\\V31\\Version3122::updateDocumentItems",
        "fqmn": "App\\Listeners\\Update\\V31\\Version3122@updateDocumentItems",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Listeners/Update/V31/Version315.php::App\\Listeners\\Update\\V31\\Version315::clearCache",
        "fqmn": "App\\Listeners\\Update\\V31\\Version315@clearCache",
        "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/Update/V31/Version315.php::App\\Listeners\\Update\\V31\\Version315::updateWidgets",
        "fqmn": "App\\Listeners\\Update\\V31\\Version315@updateWidgets",
        "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/Update/V31/Version317.php::App\\Listeners\\Update\\V31\\Version317::clearCache",
        "fqmn": "App\\Listeners\\Update\\V31\\Version317@clearCache",
        "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/Update/V31/Version317.php::App\\Listeners\\Update\\V31\\Version317::deleteOldFiles",
        "fqmn": "App\\Listeners\\Update\\V31\\Version317@deleteOldFiles",
        "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/Update/V31/Version318.php::App\\Listeners\\Update\\V31\\Version318::clearCache",
        "fqmn": "App\\Listeners\\Update\\V31\\Version318@clearCache",
        "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/Update/V31/Version318.php::App\\Listeners\\Update\\V31\\Version318::deleteOldFiles",
        "fqmn": "App\\Listeners\\Update\\V31\\Version318@deleteOldFiles",
        "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/Update/V31/Version318.php::App\\Listeners\\Update\\V31\\Version318::updatePermissions",
        "fqmn": "App\\Listeners\\Update\\V31\\Version318@updatePermissions",
        "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/Common/Company.php::App\\Models\\Common\\Company::forgetCurrent",
        "fqmn": "App\\Models\\Common\\Company@forgetCurrent",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Utilities/Console.php::App\\Utilities\\Console::run",
        "fqmn": "App\\Utilities\\Console@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/Utilities/Export.php::App\\Utilities\\Export::toExcel",
        "fqmn": "App\\Utilities\\Export@toExcel",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Utilities/Import.php::App\\Utilities\\Import::fromExcel",
        "fqmn": "App\\Utilities\\Import@fromExcel",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Utilities/Installer.php::App\\Utilities\\Installer::createCompany",
        "fqmn": "App\\Utilities\\Installer@createCompany",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Utilities/Installer.php::App\\Utilities\\Installer::createDbTables",
        "fqmn": "App\\Utilities\\Installer@createDbTables",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Utilities/Installer.php::App\\Utilities\\Installer::createDefaultEnvFile",
        "fqmn": "App\\Utilities\\Installer@createDefaultEnvFile",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Utilities/Installer.php::App\\Utilities\\Installer::createUser",
        "fqmn": "App\\Utilities\\Installer@createUser",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Utilities/Installer.php::App\\Utilities\\Installer::finalTouches",
        "fqmn": "App\\Utilities\\Installer@finalTouches",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Utilities/Modules.php::App\\Utilities\\Modules::clearPaymentMethodsCache",
        "fqmn": "App\\Utilities\\Modules@clearPaymentMethodsCache",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Utilities/Modules.php::App\\Utilities\\Modules::getPaymentMethods",
        "fqmn": "App\\Utilities\\Modules@getPaymentMethods",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Utilities/Reports.php::App\\Utilities\\Reports::cannotShow",
        "fqmn": "App\\Utilities\\Reports@cannotShow",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Utilities/Reports.php::App\\Utilities\\Reports::getClasses",
        "fqmn": "App\\Utilities\\Reports@getClasses",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Utilities/Reports.php::App\\Utilities\\Reports::getClassInstance",
        "fqmn": "App\\Utilities\\Reports@getClassInstance",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Utilities/Versions.php::App\\Utilities\\Versions::changelog",
        "fqmn": "App\\Utilities\\Versions@changelog",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Utilities/Versions.php::App\\Utilities\\Versions::getUpdates",
        "fqmn": "App\\Utilities\\Versions@getUpdates",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Utilities/Versions.php::App\\Utilities\\Versions::latest",
        "fqmn": "App\\Utilities\\Versions@latest",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Utilities/Versions.php::App\\Utilities\\Versions::shouldUpdate",
        "fqmn": "App\\Utilities\\Versions@shouldUpdate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Utilities/Widgets.php::App\\Utilities\\Widgets::canShow",
        "fqmn": "App\\Utilities\\Widgets@canShow",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Utilities/Widgets.php::App\\Utilities\\Widgets::getClasses",
        "fqmn": "App\\Utilities\\Widgets@getClasses",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::overrides/akaunting/laravel-module/Commands/DisableCommand.php::Akaunting\\Module\\Commands\\DisableCommand::handle",
        "fqmn": "Akaunting\\Module\\Commands\\DisableCommand@handle",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::overrides/akaunting/laravel-module/Commands/EnableCommand.php::Akaunting\\Module\\Commands\\EnableCommand::handle",
        "fqmn": "Akaunting\\Module\\Commands\\EnableCommand@handle",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::overrides/akaunting/laravel-module/Commands/InstallCommand.php::Akaunting\\Module\\Commands\\InstallCommand::handle",
        "fqmn": "Akaunting\\Module\\Commands\\InstallCommand@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/admin.php::delete::/accounts/{id}::closure::destroy",
        "fqmn": "route::routes/admin.php::delete::/accounts/{id}::closure::destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/admin.php::delete::/api-key/{id}::closure::destroy",
        "fqmn": "route::routes/admin.php::delete::/api-key/{id}::closure::destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/admin.php::get::/{alias}/settings::Settings\\Modules::edit",
        "fqmn": "Settings\\Modules@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/admin.php::get::/{id}/inline::Common\\Uploads::inline",
        "fqmn": "Common\\Uploads@inline",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/admin.php::get::/accounts::closure::index",
        "fqmn": "route::routes/admin.php::get::/accounts::closure::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/admin.php::get::/accounts/{id}::closure::show",
        "fqmn": "route::routes/admin.php::get::/accounts/{id}::closure::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/admin.php::get::/accounts/{id}/edit::closure::edit",
        "fqmn": "route::routes/admin.php::get::/accounts/{id}/edit::closure::edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/admin.php::get::/accounts/create::closure::create",
        "fqmn": "route::routes/admin.php::get::/accounts/create::closure::create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/admin.php::get::/accounts/currency::Banking\\Accounts::currency",
        "fqmn": "Banking\\Accounts@currency",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/admin.php::get::/api-key::closure::index",
        "fqmn": "route::routes/admin.php::get::/api-key::closure::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/admin.php::get::/api-key/{id}::closure::show",
        "fqmn": "route::routes/admin.php::get::/api-key/{id}::closure::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/admin.php::get::/api-key/{id}/edit::closure::edit",
        "fqmn": "route::routes/admin.php::get::/api-key/{id}/edit::closure::edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/admin.php::get::/api-key/create::closure::create",
        "fqmn": "route::routes/admin.php::get::/api-key/create::closure::create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/admin.php::get::/bills/{bill}/received::Purchases\\Bills::markReceived",
        "fqmn": "Purchases\\Bills@markReceived",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/admin.php::get::/categories/{category}/enable::Settings\\Categories::enable",
        "fqmn": "Settings\\Categories@enable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/admin.php::get::/companies/autocomplete::Common\\Companies::autocomplete",
        "fqmn": "Common\\Companies@autocomplete",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/admin.php::get::/invoices/{invoice}/sent::Sales\\Invoices::markSent",
        "fqmn": "Sales\\Invoices@markSent",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/admin.php::get::/logout::Auth\\Login::destroy",
        "fqmn": "Auth\\Login@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/admin.php::get::/updates::Install\\Updates::index",
        "fqmn": "Install\\Updates@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/admin.php::post::/accounts::closure::store",
        "fqmn": "route::routes/admin.php::post::/accounts::closure::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/admin.php::post::/api-key::closure::store",
        "fqmn": "route::routes/admin.php::post::/api-key::closure::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/admin.php::put::/accounts/{id}::closure::update",
        "fqmn": "route::routes/admin.php::put::/accounts/{id}::closure::update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/admin.php::put::/api-key/{id}::closure::update",
        "fqmn": "route::routes/admin.php::put::/api-key/{id}::closure::update",
        "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::/ping::Common\\Ping::pong",
        "fqmn": "Common\\Ping@pong",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/common.php::get::/{id}::Common\\Uploads::get",
        "fqmn": "Common\\Uploads@get",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/common.php::post::/livewire/update::closure",
        "fqmn": "route::routes/common.php::post::/livewire/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/guest.php::get::/::closure",
        "fqmn": "route::routes/guest.php::get::/::closure",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/guest.php::get::/login::Auth\\Login::create",
        "fqmn": "Auth\\Login@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/install.php::get::/::Install\\Requirements::show",
        "fqmn": "Install\\Requirements@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/install.php::get::/database::Install\\Database::create",
        "fqmn": "Install\\Database@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/install.php::get::/language::Install\\Language::create",
        "fqmn": "Install\\Language@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/install.php::get::/language/getLanguages::Install\\Language::getLanguages",
        "fqmn": "Install\\Language@getLanguages",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/install.php::get::/requirements::Install\\Requirements::show",
        "fqmn": "Install\\Requirements@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/install.php::get::/settings::Install\\Settings::create",
        "fqmn": "Install\\Settings@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/install.php::post::/database::Install\\Database::store",
        "fqmn": "Install\\Database@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/install.php::post::/language::Install\\Language::store",
        "fqmn": "Install\\Language@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/install.php::post::/settings::Install\\Settings::store",
        "fqmn": "Install\\Settings@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/portal.php::get::/invoices/{invoice}/print::Portal\\Invoices::printInvoice",
        "fqmn": "Portal\\Invoices@printInvoice",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/preview.php::get::/invoices/{invoice}::Portal\\Invoices::preview",
        "fqmn": "Portal\\Invoices@preview",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/signed.php::get::/invoices/{invoice}::Portal\\Invoices::signed",
        "fqmn": "Portal\\Invoices@signed",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/signed.php::get::/invoices/{invoice}/finish::Portal\\Invoices::finish",
        "fqmn": "Portal\\Invoices@finish",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/signed.php::get::/invoices/{invoice}/pdf::Portal\\Invoices::pdfInvoice",
        "fqmn": "Portal\\Invoices@pdfInvoice",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/signed.php::get::/invoices/{invoice}/print::Portal\\Invoices::printInvoice",
        "fqmn": "Portal\\Invoices@printInvoice",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/signed.php::get::/payments/{payment}::Portal\\Payments::signed",
        "fqmn": "Portal\\Payments@signed",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/signed.php::get::/payments/{payment}/pdf::Portal\\Payments::pdfPayment",
        "fqmn": "Portal\\Payments@pdfPayment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/signed.php::get::/payments/{payment}/print::Portal\\Payments::printPayment",
        "fqmn": "Portal\\Payments@printPayment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/signed.php::post::/invoices/{invoice}/confirm::Portal\\Invoices::confirm",
        "fqmn": "Portal\\Invoices@confirm",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/signed.php::post::/invoices/{invoice}/payment::Portal\\Invoices::payment",
        "fqmn": "Portal\\Invoices@payment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/wizard.php::get::/companies::Wizard\\Companies::edit",
        "fqmn": "Wizard\\Companies@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      }
    ],
    "wire": [],
    "promote": [],
    "total_triaged": 898,
    "framework_entry_points_excluded": 233
  },
  "framework_entry_points": {
    "total": 233,
    "by_kind": {
      "console_command": 15,
      "form_request": 68,
      "queued_job": 92,
      "event_listener": 58
    },
    "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\\Abstracts\\Http\\ApiController@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Abstracts\\Http\\Controller@__construct",
          "App\\Console\\Commands\\BillReminder@handle",
          "App\\Console\\Commands\\CompanySeed@handle",
          "App\\Console\\Commands\\InstallRefresh@handle",
          "App\\Console\\Commands\\InvoiceReminder@handle",
          "App\\Console\\Commands\\SampleData@handle",
          "App\\Console\\Commands\\UserSeed@handle",
          "App\\Http\\Controllers\\Api\\Document\\DocumentTransactions@__construct",
          "App\\Http\\Controllers\\Api\\Settings\\Settings@__construct",
          "App\\Jobs\\Auth\\NotifyUser@handle",
          "App\\Jobs\\Common\\CreateMediableForExport@handle",
          "App\\Listeners\\Update\\V30\\Version300@deleteOldFiles",
          "App\\Listeners\\Update\\V30\\Version300@updateCompanies",
          "App\\Listeners\\Update\\V30\\Version300@updatePermissions",
          "App\\Listeners\\Update\\V30\\Version300@updateTransactions",
          "App\\Listeners\\Update\\V30\\Version303@updateCompanies",
          "App\\Listeners\\Update\\V30\\Version304@deleteOldFiles",
          "App\\Listeners\\Update\\V30\\Version304@updateCompanies",
          "App\\Listeners\\Update\\V30\\Version304@updateDatabase",
          "App\\Listeners\\Update\\V31\\Version3119@updatePermissions",
          "App\\Listeners\\Update\\V31\\Version318@updatePermissions",
          "App\\Utilities\\Installer@finalTouches",
          "route::routes/common.php::post::/livewire/update::closure"
        ],
        "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_002",
        "canonical": "App\\Abstracts\\Http\\ApiController@accepted",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Abstracts\\Http\\ApiController@created"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "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\\Abstracts\\Http\\Controller@setActiveTabForCategories",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Abstracts\\Http\\Controller@setActiveTabForDocuments",
          "App\\Abstracts\\Http\\Controller@setActiveTabForTransactions",
          "App\\Abstracts\\Job@setOwner",
          "App\\Abstracts\\Job@setSource"
        ],
        "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_004",
        "canonical": "App\\Abstracts\\Http\\PaymentController@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Console\\Commands\\UpdateAll@handle",
          "App\\Http\\Controllers\\Settings\\Invoice@edit",
          "App\\Http\\Controllers\\Settings\\Localisation@edit",
          "App\\Jobs\\Common\\CreateMediableForDownload@getQueuedMedia",
          "App\\Jobs\\Common\\CreateMediableForExport@getQueuedMedia"
        ],
        "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_005",
        "canonical": "App\\Abstracts\\Http\\PaymentController@getCancelUrl",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Abstracts\\Http\\PaymentController@getConfirmUrl",
          "App\\Abstracts\\Http\\PaymentController@getReturnUrl"
        ],
        "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_006",
        "canonical": "App\\Abstracts\\Http\\PaymentController@getFinishUrl",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Abstracts\\Http\\PaymentController@getInvoiceUrl"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_007",
        "canonical": "App\\Abstracts\\Http\\PaymentController@getLogger",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Abstracts\\Listeners\\Report@getDateRange",
          "App\\Console\\Commands\\Update@getNewVersion",
          "App\\Exceptions\\Http\\Resource@getErrors",
          "App\\Exceptions\\Http\\Resource@hasErrors",
          "App\\Http\\Controllers\\Settings\\Company@edit",
          "App\\Http\\Controllers\\Settings\\Email@edit",
          "App\\Http\\Controllers\\Settings\\Schedule@edit",
          "App\\Http\\Requests\\Document\\Document@messages",
          "App\\Http\\Requests\\Setting\\Module@rules",
          "App\\Http\\Requests\\Setting\\Setting@rules",
          "App\\Http\\Requests\\Wizard\\Company@rules",
          "App\\Jobs\\Common\\CreateMediableForDownload@getLocalQueuedMedia",
          "App\\Jobs\\Common\\CreateMediableForExport@getLocalQueuedMedia",
          "App\\Listeners\\Update\\SendNotificationOnFailure@routeNotificationForMail",
          "App\\Listeners\\Update\\SendNotificationOnFailure@routeNotificationForSlack"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 16,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_008",
        "canonical": "App\\Abstracts\\Http\\PaymentController@getNotifyUrl",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Abstracts\\Http\\PaymentController@getReference"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "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\\Abstracts\\Job@bootCreate",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Abstracts\\Job@bootDelete",
          "App\\Abstracts\\Job@bootUpdate"
        ],
        "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_010",
        "canonical": "App\\Abstracts\\Job@booted",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Abstracts\\Job@booting",
          "App\\Jobs\\Common\\DeleteCompany@booted",
          "App\\Jobs\\Common\\UpdateCompany@booted"
        ],
        "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_011",
        "canonical": "App\\Abstracts\\Listeners\\Report@applyCustomerGroup",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Abstracts\\Listeners\\Report@applyDateFilter",
          "App\\Abstracts\\Listeners\\Report@applyDiscountFilter",
          "App\\Abstracts\\Listeners\\Report@applySearchStringFilter",
          "App\\Abstracts\\Listeners\\Report@applyVendorGroup",
          "App\\Abstracts\\Listeners\\Report@setDateFilter"
        ],
        "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_012",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Abstracts\\Listeners\\Report@getDiscount",
          "App\\Abstracts\\Listeners\\Report@getPeriod",
          "App\\Http\\Requests\\Auth\\Forgot@rules",
          "App\\Http\\Requests\\Auth\\Login@rules",
          "App\\Http\\Requests\\Auth\\Register@rules",
          "App\\Http\\Requests\\Auth\\Reset@rules",
          "App\\Http\\Requests\\Auth\\User@messages",
          "App\\Http\\Requests\\Banking\\Account@rules",
          "App\\Http\\Requests\\Banking\\Reconciliation@rules",
          "App\\Http\\Requests\\Banking\\ReconciliationCalculate@rules",
          "App\\Http\\Requests\\Banking\\TransactionConnect@rules",
          "App\\Http\\Requests\\Banking\\Transfer@rules",
          "App\\Http\\Requests\\Common\\BulkAction@rules",
          "App\\Http\\Requests\\Common\\Company@messages",
          "App\\Http\\Requests\\Common\\Company@rules",
          "App\\Http\\Requests\\Common\\Contact@messages",
          "App\\Http\\Requests\\Common\\ContactPerson@rules",
          "App\\Http\\Requests\\Common\\CustomMail@rules",
          "App\\Http\\Requests\\Common\\Dashboard@rules",
          "App\\Http\\Requests\\Common\\Import@rules",
          "App\\Http\\Requests\\Common\\Item@messages",
          "App\\Http\\Requests\\Common\\Item@rules",
          "App\\Http\\Requests\\Common\\ItemTax@rules",
          "App\\Http\\Requests\\Common\\Notification@rules",
          "App\\Http\\Requests\\Common\\Report@rules",
          "App\\Http\\Requests\\Common\\ReportShow@rules",
          "App\\Http\\Requests\\Common\\TotalItem@messages",
          "App\\Http\\Requests\\Common\\TotalItem@rules",
          "App\\Http\\Requests\\Common\\Widget@messages",
          "App\\Http\\Requests\\Common\\Widget@rules",
          "App\\Http\\Requests\\Document\\DocumentAddItem@rules",
          "App\\Http\\Requests\\Document\\DocumentHistory@rules",
          "App\\Http\\Requests\\Document\\DocumentItem@messages",
          "App\\Http\\Requests\\Document\\DocumentItem@rules",
          "App\\Http\\Requests\\Document\\DocumentItemTax@rules",
          "App\\Http\\Requests\\Document\\DocumentTotal@rules",
          "App\\Http\\Requests\\Install\\Database@rules",
          "App\\Http\\Requests\\Install\\Setting@rules",
          "App\\Http\\Requests\\Module\\Install@rules",
          "App\\Http\\Requests\\Module\\Module@rules",
          "App\\Http\\Requests\\Portal\\InvoiceConfirm@rules",
          "App\\Http\\Requests\\Portal\\InvoicePayment@rules",
          "App\\Http\\Requests\\Portal\\InvoiceShow@rules",
          "App\\Http\\Requests\\Portal\\PaymentShow@rules",
          "App\\Http\\Requests\\Portal\\Profile@messages",
          "App\\Http\\Requests\\Setting\\Category@rules",
          "App\\Http\\Requests\\Setting\\EmailTemplate@rules",
          "App\\Http\\Requests\\Setting\\Setting@messages",
          "App\\Http\\Requests\\Wizard\\Company@messages"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 50,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_013",
        "canonical": "App\\Abstracts\\Listeners\\Report@getCustomers",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Abstracts\\Listeners\\Report@getExpenseCategories",
          "App\\Abstracts\\Listeners\\Report@getIncomeCategories",
          "App\\Abstracts\\Listeners\\Report@getItemCategories",
          "App\\Abstracts\\Listeners\\Report@getVendors"
        ],
        "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_014",
        "canonical": "App\\Abstracts\\Listeners\\Report@skipThisClass",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Abstracts\\Listeners\\Update@check"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_015",
        "canonical": "App\\Console\\Commands\\DownloadModule@copyFiles",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Console\\Commands\\Update@copyFiles",
          "App\\Console\\Commands\\Update@unzip"
        ],
        "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_016",
        "canonical": "App\\Http\\Controllers\\Api\\Auth\\Users@disable",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\Auth\\Users@enable"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_017",
        "canonical": "App\\Http\\Controllers\\Api\\Auth\\Users@index",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\Banking\\Accounts@index",
          "App\\Http\\Controllers\\Api\\Banking\\Reconciliations@index",
          "App\\Http\\Controllers\\Api\\Banking\\Transactions@index",
          "App\\Http\\Controllers\\Api\\Common\\Companies@index",
          "App\\Http\\Controllers\\Api\\Common\\Contacts@index",
          "App\\Http\\Controllers\\Api\\Common\\Dashboards@index",
          "App\\Http\\Controllers\\Api\\Common\\Items@index",
          "App\\Http\\Controllers\\Api\\Common\\Reports@index",
          "App\\Http\\Controllers\\Api\\Document\\Documents@index",
          "App\\Http\\Controllers\\Api\\Settings\\Categories@index",
          "App\\Http\\Controllers\\Api\\Settings\\Currencies@index",
          "App\\Http\\Controllers\\Api\\Settings\\Taxes@index"
        ],
        "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_018",
        "canonical": "App\\Http\\Controllers\\Api\\Auth\\Users@show",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\Banking\\Accounts@show",
          "App\\Http\\Controllers\\Api\\Common\\Contacts@show",
          "App\\Http\\Controllers\\Api\\Common\\Items@show",
          "App\\Http\\Controllers\\Api\\Document\\Documents@show",
          "App\\Http\\Controllers\\Api\\Settings\\Currencies@show",
          "App\\Http\\Controllers\\Api\\Settings\\Settings@show"
        ],
        "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_019",
        "canonical": "App\\Http\\Controllers\\Api\\Auth\\Users@store",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\Banking\\Accounts@store",
          "App\\Http\\Controllers\\Api\\Banking\\Reconciliations@store",
          "App\\Http\\Controllers\\Api\\Banking\\Transactions@store",
          "App\\Http\\Controllers\\Api\\Banking\\Transfers@store",
          "App\\Http\\Controllers\\Api\\Common\\Companies@store",
          "App\\Http\\Controllers\\Api\\Common\\Contacts@store",
          "App\\Http\\Controllers\\Api\\Common\\Dashboards@store",
          "App\\Http\\Controllers\\Api\\Common\\Items@store",
          "App\\Http\\Controllers\\Api\\Common\\Reports@store",
          "App\\Http\\Controllers\\Api\\Document\\Documents@store",
          "App\\Http\\Controllers\\Api\\Settings\\Categories@store",
          "App\\Http\\Controllers\\Api\\Settings\\Currencies@store",
          "App\\Http\\Controllers\\Api\\Settings\\Taxes@store"
        ],
        "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_020",
        "canonical": "App\\Http\\Controllers\\Api\\Common\\Companies@canAccess",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\Common\\Companies@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_021",
        "canonical": "App\\Http\\Controllers\\Api\\Common\\Companies@disable",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\Common\\Companies@enable"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_022",
        "canonical": "App\\Http\\Controllers\\Api\\Common\\Dashboards@disable",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\Common\\Dashboards@enable"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_023",
        "canonical": "App\\Http\\Controllers\\Api\\Common\\Items@disable",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\Common\\Items@enable"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "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\\Http\\Controllers\\Auth\\Forgot@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Auth\\Login@__construct",
          "App\\Http\\Controllers\\Auth\\Login@logout",
          "App\\Http\\Controllers\\Auth\\Register@__construct",
          "App\\Http\\Controllers\\Auth\\Reset@__construct",
          "App\\Http\\Controllers\\Auth\\Users@__construct",
          "App\\Http\\Controllers\\Banking\\RecurringTransactions@__construct",
          "App\\Http\\Controllers\\Common\\Companies@__construct",
          "App\\Http\\Controllers\\Common\\Contacts@__construct",
          "App\\Http\\Controllers\\Common\\Dashboards@__construct",
          "App\\Http\\Controllers\\Common\\Reports@__construct",
          "App\\Http\\Controllers\\Modals\\Accounts@__construct",
          "App\\Http\\Controllers\\Modals\\Categories@__construct",
          "App\\Http\\Controllers\\Modals\\Companies@__construct",
          "App\\Http\\Controllers\\Modals\\Currencies@__construct",
          "App\\Http\\Controllers\\Modals\\Customers@__construct",
          "App\\Http\\Controllers\\Modals\\DocumentItemColumns@__construct",
          "App\\Http\\Controllers\\Modals\\DocumentTransactions@__construct",
          "App\\Http\\Controllers\\Modals\\InvoiceEmails@__construct",
          "App\\Http\\Controllers\\Modals\\InvoiceShare@__construct",
          "App\\Http\\Controllers\\Modals\\InvoiceTemplates@__construct",
          "App\\Http\\Controllers\\Modals\\Items@__construct",
          "App\\Http\\Controllers\\Modals\\Taxes@__construct",
          "App\\Http\\Controllers\\Modals\\TransactionEmails@__construct",
          "App\\Http\\Controllers\\Modals\\TransactionShare@__construct",
          "App\\Http\\Controllers\\Modals\\TransferTemplates@__construct",
          "App\\Http\\Controllers\\Modals\\Vendors@__construct",
          "App\\Http\\Controllers\\Modules\\Item@__construct",
          "App\\Http\\Controllers\\Purchases\\RecurringBills@__construct",
          "App\\Http\\Controllers\\Sales\\RecurringInvoices@__construct",
          "App\\Http\\Controllers\\Settings\\Modules@__construct",
          "App\\Http\\Controllers\\Wizard\\Companies@__construct",
          "App\\Http\\Controllers\\Wizard\\Currencies@__construct",
          "App\\Http\\Controllers\\Wizard\\Finish@__construct"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 34,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_025",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@create",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Auth\\Login@create",
          "App\\Http\\Controllers\\Banking\\Accounts@create",
          "App\\Http\\Controllers\\Common\\Companies@create",
          "App\\Http\\Controllers\\Common\\Reports@create",
          "App\\Http\\Controllers\\Install\\Language@create",
          "App\\Http\\Controllers\\Install\\Settings@create",
          "App\\Http\\Controllers\\Modules\\ApiKey@create",
          "App\\Http\\Controllers\\Portal\\Profile@edit",
          "App\\Http\\Controllers\\Purchases\\Bills@create",
          "App\\Http\\Controllers\\Purchases\\RecurringBills@create",
          "App\\Http\\Controllers\\Purchases\\Vendors@create",
          "App\\Http\\Controllers\\Sales\\Customers@create",
          "App\\Http\\Controllers\\Sales\\Invoices@create",
          "App\\Http\\Controllers\\Sales\\RecurringInvoices@create",
          "App\\Http\\Controllers\\Settings\\Taxes@create"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 16,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_026",
        "canonical": "App\\Http\\Controllers\\Auth\\Login@destroy",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Banking\\Reconciliations@show",
          "App\\Http\\Controllers\\Common\\Companies@show",
          "App\\Http\\Controllers\\Common\\Items@show",
          "App\\Http\\Controllers\\Common\\Plans@check",
          "App\\Http\\Controllers\\Common\\Widgets@show",
          "App\\Http\\Controllers\\Modules\\Home@show",
          "App\\Http\\Controllers\\Portal\\Profile@readOverdueInvoices",
          "App\\Http\\Controllers\\Settings\\Categories@show",
          "App\\Http\\Controllers\\Settings\\Currencies@show",
          "App\\Http\\Controllers\\Settings\\Taxes@show",
          "App\\Http\\Controllers\\Wizard\\Currencies@show"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 12,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_027",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@destroy",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Auth\\Users@disable",
          "App\\Http\\Controllers\\Auth\\Users@enable"
        ],
        "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_028",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@index",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Banking\\Accounts@index",
          "App\\Http\\Controllers\\Banking\\Reconciliations@index",
          "App\\Http\\Controllers\\Banking\\RecurringTransactions@index",
          "App\\Http\\Controllers\\Banking\\Transfers@index",
          "App\\Http\\Controllers\\Common\\Companies@index",
          "App\\Http\\Controllers\\Common\\Dashboards@index",
          "App\\Http\\Controllers\\Common\\Items@index",
          "App\\Http\\Controllers\\Modules\\My@index",
          "App\\Http\\Controllers\\Portal\\Invoices@index",
          "App\\Http\\Controllers\\Portal\\Payments@currencies",
          "App\\Http\\Controllers\\Portal\\Payments@index",
          "App\\Http\\Controllers\\Purchases\\Bills@index",
          "App\\Http\\Controllers\\Purchases\\RecurringBills@index",
          "App\\Http\\Controllers\\Sales\\Customers@index",
          "App\\Http\\Controllers\\Sales\\Invoices@index",
          "App\\Http\\Controllers\\Sales\\RecurringInvoices@index",
          "App\\Http\\Controllers\\Settings\\Categories@index",
          "App\\Http\\Controllers\\Settings\\Currencies@index",
          "App\\Http\\Controllers\\Settings\\Taxes@index",
          "App\\Http\\Controllers\\Wizard\\Companies@edit"
        ],
        "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_029",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@readOverdueInvoices",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Auth\\Users@readUpcomingBills"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "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\\Http\\Controllers\\Auth\\Users@store",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Banking\\Accounts@store",
          "App\\Http\\Controllers\\Banking\\Reconciliations@store",
          "App\\Http\\Controllers\\Banking\\RecurringTransactions@store",
          "App\\Http\\Controllers\\Banking\\Transactions@store",
          "App\\Http\\Controllers\\Banking\\Transfers@store",
          "App\\Http\\Controllers\\Common\\Companies@store",
          "App\\Http\\Controllers\\Common\\Dashboards@store",
          "App\\Http\\Controllers\\Common\\Items@store",
          "App\\Http\\Controllers\\Common\\Reports@store",
          "App\\Http\\Controllers\\Common\\Widgets@store",
          "App\\Http\\Controllers\\Install\\Database@store",
          "App\\Http\\Controllers\\Install\\Language@store",
          "App\\Http\\Controllers\\Modals\\Accounts@store",
          "App\\Http\\Controllers\\Modals\\Categories@store",
          "App\\Http\\Controllers\\Modals\\Customers@store",
          "App\\Http\\Controllers\\Modals\\Taxes@store",
          "App\\Http\\Controllers\\Modals\\Vendors@store",
          "App\\Http\\Controllers\\Purchases\\Bills@store",
          "App\\Http\\Controllers\\Purchases\\RecurringBills@store",
          "App\\Http\\Controllers\\Purchases\\Vendors@store",
          "App\\Http\\Controllers\\Sales\\Customers@store",
          "App\\Http\\Controllers\\Sales\\Invoices@store",
          "App\\Http\\Controllers\\Sales\\RecurringInvoices@store",
          "App\\Http\\Controllers\\Settings\\Categories@store",
          "App\\Http\\Controllers\\Settings\\Currencies@store",
          "App\\Http\\Controllers\\Settings\\EmailTemplates@update",
          "App\\Http\\Controllers\\Settings\\Taxes@store",
          "App\\Http\\Controllers\\Wizard\\Currencies@store"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 29,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_031",
        "canonical": "App\\Http\\Controllers\\Banking\\Accounts@createExpense",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Banking\\Accounts@createIncome",
          "App\\Http\\Controllers\\Banking\\Accounts@createTransfer",
          "App\\Http\\Controllers\\Banking\\Accounts@duplicate"
        ],
        "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_032",
        "canonical": "App\\Http\\Controllers\\Banking\\Accounts@destroy",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Banking\\Accounts@disable",
          "App\\Http\\Controllers\\Banking\\Accounts@enable"
        ],
        "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_033",
        "canonical": "App\\Http\\Controllers\\Banking\\Accounts@edit",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Banking\\Accounts@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_034",
        "canonical": "App\\Http\\Controllers\\Banking\\RecurringTransactions@create",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Banking\\Transactions@create"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_035",
        "canonical": "App\\Http\\Controllers\\Banking\\RecurringTransactions@duplicate",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Banking\\RecurringTransactions@end"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_036",
        "canonical": "App\\Http\\Controllers\\Banking\\RecurringTransactions@export",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Banking\\Transactions@export",
          "App\\Http\\Controllers\\Banking\\Transfers@export",
          "App\\Http\\Controllers\\Common\\Items@export",
          "App\\Http\\Controllers\\Purchases\\Bills@export",
          "App\\Http\\Controllers\\Purchases\\RecurringBills@export",
          "App\\Http\\Controllers\\Purchases\\Vendors@export",
          "App\\Http\\Controllers\\Sales\\Customers@export",
          "App\\Http\\Controllers\\Sales\\Invoices@export",
          "App\\Http\\Controllers\\Sales\\RecurringInvoices@export",
          "App\\Http\\Controllers\\Settings\\Categories@export",
          "App\\Http\\Controllers\\Settings\\Taxes@export"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 12,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_037",
        "canonical": "App\\Http\\Controllers\\Banking\\RecurringTransactions@import",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Banking\\Transactions@import",
          "App\\Http\\Controllers\\Banking\\Transfers@import",
          "App\\Http\\Controllers\\Common\\Items@import",
          "App\\Http\\Controllers\\Purchases\\Bills@import",
          "App\\Http\\Controllers\\Purchases\\RecurringBills@import",
          "App\\Http\\Controllers\\Purchases\\Vendors@import",
          "App\\Http\\Controllers\\Sales\\Customers@import",
          "App\\Http\\Controllers\\Sales\\Invoices@import",
          "App\\Http\\Controllers\\Sales\\RecurringInvoices@import",
          "App\\Http\\Controllers\\Settings\\Categories@import",
          "App\\Http\\Controllers\\Settings\\Taxes@import"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 12,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_038",
        "canonical": "App\\Http\\Controllers\\Banking\\Transfers@create",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Common\\Items@create",
          "App\\Http\\Controllers\\Settings\\Categories@create"
        ],
        "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\\Http\\Controllers\\Common\\Companies@autocomplete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Common\\Items@autocomplete"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "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\\Http\\Controllers\\Common\\Companies@destroy",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Common\\Companies@disable",
          "App\\Http\\Controllers\\Common\\Companies@enable"
        ],
        "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_041",
        "canonical": "App\\Http\\Controllers\\Common\\Contacts@index",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Common\\Reports@fields",
          "App\\Http\\Controllers\\Modals\\Accounts@create",
          "App\\Http\\Controllers\\Modals\\Currencies@create",
          "App\\Http\\Controllers\\Modals\\Customers@create",
          "App\\Http\\Controllers\\Modals\\DocumentItemColumns@edit",
          "App\\Http\\Controllers\\Modals\\Taxes@create",
          "App\\Http\\Controllers\\Modals\\Vendors@create",
          "App\\Http\\Controllers\\Settings\\EmailTemplates@get"
        ],
        "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_042",
        "canonical": "App\\Http\\Controllers\\Common\\Dashboards@destroy",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Common\\Dashboards@disable",
          "App\\Http\\Controllers\\Common\\Dashboards@enable"
        ],
        "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_043",
        "canonical": "App\\Http\\Controllers\\Common\\Items@destroy",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Common\\Items@disable",
          "App\\Http\\Controllers\\Common\\Items@enable"
        ],
        "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_044",
        "canonical": "App\\Http\\Controllers\\Common\\Reports@export",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Common\\Reports@pdf",
          "App\\Http\\Controllers\\Common\\Reports@print"
        ],
        "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_045",
        "canonical": "App\\Http\\Controllers\\Common\\Uploads@get",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Common\\Uploads@inline"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "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\\Http\\Controllers\\Common\\Widgets@index",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Install\\Language@getLanguages",
          "App\\Http\\Controllers\\Install\\Updates@redirect"
        ],
        "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\\Http\\Controllers\\Install\\Updates@copyFiles",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Install\\Updates@download",
          "App\\Http\\Controllers\\Install\\Updates@unzip",
          "App\\Http\\Controllers\\Modules\\Item@copy",
          "App\\Http\\Controllers\\Modules\\Item@install"
        ],
        "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_048",
        "canonical": "App\\Http\\Controllers\\Install\\Updates@finish",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Modules\\Item@download",
          "App\\Http\\Controllers\\Modules\\Item@unzip"
        ],
        "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_049",
        "canonical": "App\\Http\\Controllers\\Install\\Updates@steps",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Modules\\Item@steps"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_050",
        "canonical": "App\\Http\\Controllers\\Modals\\Categories@create",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Modals\\Items@create"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_051",
        "canonical": "App\\Http\\Controllers\\Modals\\Customers@update",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Sales\\Customers@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_052",
        "canonical": "App\\Http\\Controllers\\Modals\\DocumentItemColumns@update",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Modals\\InvoiceTemplates@update",
          "App\\Http\\Controllers\\Modals\\TransferTemplates@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_053",
        "canonical": "App\\Http\\Controllers\\Modals\\InvoiceEmails@store",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Modals\\TransactionEmails@store"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_054",
        "canonical": "App\\Http\\Controllers\\Modals\\Vendors@update",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Purchases\\Vendors@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_055",
        "canonical": "App\\Http\\Controllers\\Modules\\Item@disable",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Modules\\Item@enable",
          "App\\Http\\Controllers\\Modules\\Item@uninstall"
        ],
        "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_056",
        "canonical": "App\\Http\\Controllers\\Modules\\Item@releases",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Modules\\Item@reviews"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_057",
        "canonical": "App\\Http\\Controllers\\Modules\\Tiles@freeModules",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Modules\\Tiles@newModules",
          "App\\Http\\Controllers\\Modules\\Tiles@paidModules"
        ],
        "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_058",
        "canonical": "App\\Http\\Controllers\\Portal\\Invoices@printInvoice",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Portal\\Invoices@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_059",
        "canonical": "App\\Http\\Controllers\\Portal\\Payments@preview",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Portal\\Payments@signed"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_060",
        "canonical": "App\\Http\\Controllers\\Portal\\Profile@index",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Portal\\Profile@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_061",
        "canonical": "App\\Http\\Controllers\\Purchases\\Bills@edit",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Purchases\\Bills@printBill",
          "App\\Http\\Controllers\\Purchases\\Bills@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_062",
        "canonical": "App\\Http\\Controllers\\Purchases\\Bills@markCancelled",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Purchases\\Bills@markReceived",
          "App\\Http\\Controllers\\Purchases\\Bills@restoreBill"
        ],
        "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_063",
        "canonical": "App\\Http\\Controllers\\Purchases\\RecurringBills@edit",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Purchases\\RecurringBills@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_064",
        "canonical": "App\\Http\\Controllers\\Purchases\\Vendors@createBill",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Purchases\\Vendors@createExpense"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_065",
        "canonical": "App\\Http\\Controllers\\Purchases\\Vendors@destroy",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Purchases\\Vendors@disable",
          "App\\Http\\Controllers\\Purchases\\Vendors@enable"
        ],
        "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_066",
        "canonical": "App\\Http\\Controllers\\Purchases\\Vendors@edit",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Purchases\\Vendors@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_067",
        "canonical": "App\\Http\\Controllers\\Sales\\Customers@createIncome",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Sales\\Customers@createInvoice"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_068",
        "canonical": "App\\Http\\Controllers\\Sales\\Customers@destroy",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Sales\\Customers@disable",
          "App\\Http\\Controllers\\Sales\\Customers@enable"
        ],
        "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_069",
        "canonical": "App\\Http\\Controllers\\Sales\\Customers@edit",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Sales\\Customers@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_070",
        "canonical": "App\\Http\\Controllers\\Sales\\Invoices@edit",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Sales\\Invoices@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_071",
        "canonical": "App\\Http\\Controllers\\Sales\\Invoices@markCancelled",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Sales\\Invoices@markSent",
          "App\\Http\\Controllers\\Sales\\Invoices@restoreInvoice"
        ],
        "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_072",
        "canonical": "App\\Http\\Controllers\\Sales\\RecurringInvoices@edit",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Sales\\RecurringInvoices@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_073",
        "canonical": "App\\Http\\Controllers\\Settings\\Categories@destroy",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Settings\\Categories@disable",
          "App\\Http\\Controllers\\Settings\\Categories@enable"
        ],
        "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\\Http\\Controllers\\Settings\\Currencies@destroy",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Settings\\Currencies@disable",
          "App\\Http\\Controllers\\Settings\\Currencies@enable",
          "App\\Http\\Controllers\\Wizard\\Currencies@destroy"
        ],
        "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_075",
        "canonical": "App\\Http\\Controllers\\Settings\\Currencies@update",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Wizard\\Currencies@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_076",
        "canonical": "App\\Http\\Controllers\\Settings\\Taxes@destroy",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Settings\\Taxes@disable",
          "App\\Http\\Controllers\\Settings\\Taxes@enable"
        ],
        "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_077",
        "canonical": "App\\Http\\Requests\\Auth\\Forgot@authorize",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Requests\\Auth\\Login@authorize",
          "App\\Http\\Requests\\Auth\\Register@authorize",
          "App\\Http\\Requests\\Auth\\Reset@authorize",
          "App\\Http\\Requests\\Auth\\User@authorize",
          "App\\Http\\Requests\\Portal\\InvoiceShow@authorize",
          "App\\Http\\Requests\\Portal\\PaymentShow@authorize"
        ],
        "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_078",
        "canonical": "App\\Http\\Requests\\Auth\\User@rules",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Requests\\Portal\\Profile@rules",
          "App\\Http\\Requests\\Setting\\Currency@rules",
          "App\\Http\\Requests\\Setting\\Tax@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_079",
        "canonical": "App\\Http\\Requests\\Banking\\Transaction@rules",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Requests\\Document\\Document@rules"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_080",
        "canonical": "App\\Http\\Requests\\Banking\\Transaction@withValidator",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Requests\\Document\\Document@withValidator"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_081",
        "canonical": "App\\Http\\Requests\\Module\\Module@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Requests\\Wizard\\Company@__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_082",
        "canonical": "App\\Http\\Resources\\Auth\\Role@toArray",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Resources\\Banking\\Account@toArray",
          "App\\Http\\Resources\\Banking\\Reconciliation@toArray",
          "App\\Http\\Resources\\Banking\\TransactionTax@toArray",
          "App\\Http\\Resources\\Banking\\Transfer@toArray",
          "App\\Http\\Resources\\Common\\Company@toArray",
          "App\\Http\\Resources\\Common\\ContactPerson@toArray",
          "App\\Http\\Resources\\Common\\ItemTax@toArray",
          "App\\Http\\Resources\\Common\\Report@toArray",
          "App\\Http\\Resources\\Common\\Widget@toArray",
          "App\\Http\\Resources\\Document\\DocumentHistory@toArray",
          "App\\Http\\Resources\\Document\\DocumentItemTax@toArray",
          "App\\Http\\Resources\\Document\\DocumentTotal@toArray",
          "App\\Http\\Resources\\Setting\\Category@toArray",
          "App\\Http\\Resources\\Setting\\Currency@toArray",
          "App\\Http\\Resources\\Setting\\Setting@toArray",
          "App\\Http\\Resources\\Setting\\Tax@toArray"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 17,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_083",
        "canonical": "App\\Http\\Resources\\Banking\\Transaction@toArray",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Resources\\Common\\Contact@toArray",
          "App\\Http\\Resources\\Common\\Item@toArray",
          "App\\Http\\Resources\\Document\\Document@toArray",
          "App\\Http\\Resources\\Document\\DocumentItem@toArray"
        ],
        "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_084",
        "canonical": "App\\Jobs\\Auth\\CreateUser@authorize",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\Auth\\DeleteUser@authorize",
          "App\\Jobs\\Banking\\CreateTransfer@authorize",
          "App\\Jobs\\Banking\\DeleteAccount@authorize",
          "App\\Jobs\\Banking\\DeleteTransaction@authorize",
          "App\\Jobs\\Banking\\SplitTransaction@authorize",
          "App\\Jobs\\Banking\\UpdateTransaction@authorize",
          "App\\Jobs\\Banking\\UpdateTransfer@authorize",
          "App\\Jobs\\Common\\CreateCompany@authorize",
          "App\\Jobs\\Common\\DeleteCompany@authorize",
          "App\\Jobs\\Common\\DeleteContact@authorize",
          "App\\Jobs\\Common\\DeleteItem@authorize",
          "App\\Jobs\\Common\\UpdateCompany@authorize",
          "App\\Jobs\\Common\\UpdateContact@authorize",
          "App\\Jobs\\Common\\UpdateDashboard@authorize",
          "App\\Jobs\\Document\\CancelDocument@authorize",
          "App\\Jobs\\Document\\CreateDocument@authorize",
          "App\\Jobs\\Document\\DeleteDocument@authorize",
          "App\\Jobs\\Install\\DisableModule@authorize",
          "App\\Jobs\\Install\\EnableModule@authorize",
          "App\\Jobs\\Install\\FinishUpdate@authorize",
          "App\\Jobs\\Install\\FinishUpdate@handle",
          "App\\Jobs\\Install\\InstallModule@authorize",
          "App\\Jobs\\Install\\UninstallModule@authorize",
          "App\\Jobs\\Setting\\DeleteCurrency@authorize",
          "App\\Jobs\\Setting\\DeleteTax@authorize"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 26,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_085",
        "canonical": "App\\Jobs\\Auth\\DeleteInvitation@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\Auth\\DeletePermission@handle",
          "App\\Jobs\\Banking\\DeleteReconciliation@handle",
          "App\\Jobs\\Common\\DeleteContactPerson@handle",
          "App\\Jobs\\Common\\DeleteDashboard@handle",
          "App\\Jobs\\Common\\DeleteReport@handle",
          "App\\Jobs\\Common\\DeleteWidget@handle",
          "App\\Jobs\\Setting\\DeleteEmailTemplate@handle"
        ],
        "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_086",
        "canonical": "App\\Jobs\\Auth\\DeleteRole@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\Auth\\DeleteUser@handle",
          "App\\Jobs\\Banking\\DeleteAccount@handle",
          "App\\Jobs\\Banking\\DeleteTransaction@handle",
          "App\\Jobs\\Banking\\DeleteTransfer@handle",
          "App\\Jobs\\Common\\DeleteCompany@handle",
          "App\\Jobs\\Common\\DeleteItem@handle",
          "App\\Jobs\\Document\\DeleteDocument@handle",
          "App\\Jobs\\Setting\\DeleteCategory@handle",
          "App\\Jobs\\Setting\\DeleteCurrency@handle",
          "App\\Jobs\\Setting\\DeleteTax@handle"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 11,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_087",
        "canonical": "App\\Jobs\\Banking\\CreateAccount@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\Banking\\UpdateAccount@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_088",
        "canonical": "App\\Jobs\\Banking\\CreateBankingDocumentTransaction@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\Banking\\UpdateBankingDocumentTransaction@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_089",
        "canonical": "App\\Jobs\\Banking\\CreateTransactionTaxes@getTaxesCalculated",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\Document\\CreateDocumentItemsAndTotals@fixedDiscountCalculate"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "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\\Jobs\\Banking\\DeleteAccount@getRelationships",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\Setting\\DeleteCurrency@getRelationships",
          "App\\Jobs\\Setting\\UpdateCurrency@getRelationships"
        ],
        "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\\Jobs\\Banking\\SendTransactionAsCustomMail@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\Document\\SendDocumentAsCustomMail@__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_092",
        "canonical": "App\\Jobs\\Banking\\SendTransactionAsCustomMail@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\Document\\SendDocumentAsCustomMail@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_093",
        "canonical": "App\\Jobs\\Banking\\UpdateAccount@authorize",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\Setting\\UpdateCategory@authorize",
          "App\\Jobs\\Setting\\UpdateCurrency@authorize",
          "App\\Jobs\\Setting\\UpdateTax@authorize"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 4,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_094",
        "canonical": "App\\Jobs\\Banking\\UpdateAccount@getRelationships",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\Common\\DeleteContact@getRelationships",
          "App\\Jobs\\Common\\DeleteItem@getRelationships",
          "App\\Jobs\\Common\\UpdateContact@getRelationships",
          "App\\Jobs\\Setting\\DeleteTax@getRelationships",
          "App\\Jobs\\Setting\\UpdateCategory@getRelationships",
          "App\\Jobs\\Setting\\UpdateTax@getRelationships"
        ],
        "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_095",
        "canonical": "App\\Jobs\\Common\\CreateContact@createUser",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\Common\\UpdateContact@createUser"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "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\\Jobs\\Common\\CreateContactPersons@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\Common\\CreateItemTaxes@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_097",
        "canonical": "App\\Jobs\\Common\\CreateMediableForDownload@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\Common\\CreateMediableForExport@__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_098",
        "canonical": "App\\Jobs\\Common\\CreateMediableForDownload@getRemoteQueuedMedia",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\Common\\CreateMediableForExport@getRemoteQueuedMedia"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "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\\Jobs\\Common\\CreateZipForDownload@getLocalQueuedMedia",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\Common\\CreateZipForDownload@getRemoteQueuedMedia"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "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\\Jobs\\Common\\DeleteReport@deleteFavorite",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\Common\\DeleteReport@deletePin"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_101",
        "canonical": "App\\Jobs\\Document\\CancelDocument@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\Document\\DuplicateDocument@__construct",
          "App\\Jobs\\Document\\RestoreDocument@__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_102",
        "canonical": "App\\Jobs\\Document\\CancelDocument@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\Document\\RestoreDocument@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_103",
        "canonical": "App\\Jobs\\Document\\CreateDocumentItem@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\Document\\CreateDocumentItemsAndTotals@__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_104",
        "canonical": "App\\Jobs\\Install\\CopyFiles@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\Install\\UnzipFile@__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_105",
        "canonical": "App\\Jobs\\Install\\CopyFiles@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\Install\\DownloadModule@handle",
          "App\\Jobs\\Install\\EnableModule@handle",
          "App\\Jobs\\Install\\InstallModule@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_106",
        "canonical": "App\\Jobs\\Install\\DisableModule@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\Install\\EnableModule@__construct",
          "App\\Jobs\\Install\\InstallModule@__construct",
          "App\\Jobs\\Install\\UninstallModule@__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_107",
        "canonical": "App\\Jobs\\Install\\DisableModule@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\Install\\UninstallModule@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_108",
        "canonical": "App\\Jobs\\Setting\\CreateCurrency@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\Setting\\UpdateCurrency@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_109",
        "canonical": "App\\Listeners\\Auth\\AddLandingPages@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Listeners\\Banking\\IncreaseNextTransactionNumber@handle",
          "App\\Listeners\\Document\\IncreaseNextDocumentNumber@handle",
          "App\\Listeners\\Document\\SendDocumentReminderNotification@handle",
          "App\\Listeners\\Menu\\ShowInAdmin@handle",
          "App\\Listeners\\Menu\\ShowInNeww@handle",
          "App\\Listeners\\Menu\\ShowInPortal@handle",
          "App\\Listeners\\Menu\\ShowInProfile@handle",
          "App\\Listeners\\Menu\\ShowInSettings@handle",
          "App\\Listeners\\Module\\FinishInstallation@handle",
          "App\\Listeners\\Module\\FinishUninstallation@handle",
          "App\\Listeners\\Update\\SendNotificationOnFailure@handle"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 12,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_110",
        "canonical": "App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Listeners\\Document\\SendDocumentPaymentNotification@handle",
          "App\\Listeners\\Document\\SendDocumentViewNotification@handle",
          "App\\Listeners\\Update\\V30\\Version300@handle",
          "App\\Listeners\\Update\\V30\\Version3013@handle",
          "App\\Listeners\\Update\\V30\\Version3015@handle",
          "App\\Listeners\\Update\\V30\\Version3016@handle",
          "App\\Listeners\\Update\\V30\\Version3017@handle",
          "App\\Listeners\\Update\\V30\\Version303@handle",
          "App\\Listeners\\Update\\V30\\Version304@handle",
          "App\\Listeners\\Update\\V30\\Version305@handle",
          "App\\Listeners\\Update\\V30\\Version307@handle",
          "App\\Listeners\\Update\\V30\\Version309@handle",
          "App\\Listeners\\Update\\V31\\Version310@handle",
          "App\\Listeners\\Update\\V31\\Version3112@handle",
          "App\\Listeners\\Update\\V31\\Version3115@handle",
          "App\\Listeners\\Update\\V31\\Version3119@handle",
          "App\\Listeners\\Update\\V31\\Version3122@handle",
          "App\\Listeners\\Update\\V31\\Version315@handle",
          "App\\Listeners\\Update\\V31\\Version317@handle",
          "App\\Listeners\\Update\\V31\\Version318@handle"
        ],
        "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_111",
        "canonical": "App\\Listeners\\Document\\SettingFieldCreated@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Listeners\\Document\\SettingFieldUpdated@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_112",
        "canonical": "App\\Listeners\\Email\\DisablePersonDueToInvalidEmail@disableContact",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Listeners\\Email\\DisablePersonDueToInvalidEmail@disableUser"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_113",
        "canonical": "App\\Listeners\\Email\\DisablePersonDueToInvalidEmail@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Listeners\\Email\\ReportTooManyEmailsSent@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_114",
        "canonical": "App\\Listeners\\Email\\SendInvalidEmailNotification@notifyAdminsAboutInvalidContactEmail",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Listeners\\Email\\SendInvalidEmailNotification@notifyAdminsAboutInvalidUserEmail"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "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\\Listeners\\Report\\AddAccounts@handleFilterShowing",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Listeners\\Report\\AddBasis@handleFilterShowing",
          "App\\Listeners\\Report\\AddContacts@handleFilterShowing",
          "App\\Listeners\\Report\\AddCustomers@handleFilterShowing",
          "App\\Listeners\\Report\\AddDate@handleFilterShowing",
          "App\\Listeners\\Report\\AddDiscount@handleFilterShowing",
          "App\\Listeners\\Report\\AddExpenseCategories@handleFilterShowing",
          "App\\Listeners\\Report\\AddGroup@handleFilterShowing",
          "App\\Listeners\\Report\\AddIncomeCategories@handleFilterShowing",
          "App\\Listeners\\Report\\AddIncomeExpenseCategories@handleFilterShowing",
          "App\\Listeners\\Report\\AddPeriod@handleFilterShowing",
          "App\\Listeners\\Report\\AddVendors@handleFilterShowing"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 12,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_116",
        "canonical": "App\\Listeners\\Report\\AddAccounts@handleGroupApplying",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Listeners\\Report\\AddCustomers@handleGroupApplying",
          "App\\Listeners\\Report\\AddVendors@handleGroupApplying"
        ],
        "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_117",
        "canonical": "App\\Listeners\\Report\\AddAccounts@handleGroupShowing",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Listeners\\Report\\AddContacts@handleGroupShowing",
          "App\\Listeners\\Report\\AddCustomers@handleGroupShowing",
          "App\\Listeners\\Report\\AddExpenseCategories@handleGroupShowing",
          "App\\Listeners\\Report\\AddIncomeCategories@handleGroupShowing",
          "App\\Listeners\\Report\\AddIncomeExpenseCategories@handleGroupShowing"
        ],
        "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_118",
        "canonical": "App\\Listeners\\Report\\AddAccounts@handleRowsShowing",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Listeners\\Report\\AddContacts@handleRowsShowing",
          "App\\Listeners\\Report\\AddCustomers@handleRowsShowing",
          "App\\Listeners\\Report\\AddExpenseCategories@handleRowsShowing",
          "App\\Listeners\\Report\\AddIncomeCategories@handleRowsShowing",
          "App\\Listeners\\Report\\AddRowsToTax@handleRowsShowing"
        ],
        "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_119",
        "canonical": "App\\Listeners\\Report\\AddCustomers@handleFilterApplying",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Listeners\\Report\\AddVendors@handleFilterApplying"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_120",
        "canonical": "App\\Listeners\\Report\\AddDate@handleFilterApplying",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Listeners\\Report\\AddDiscount@handleFilterApplying"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "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\\Listeners\\Update\\V30\\Version300@updateDatabase",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Listeners\\Update\\V30\\Version300@updateRecurables"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "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\\Listeners\\Update\\V30\\Version3015@updateDatabase",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Listeners\\Update\\V30\\Version3016@updateDatabase",
          "App\\Listeners\\Update\\V30\\Version3017@updateDatabase",
          "App\\Listeners\\Update\\V30\\Version305@updateDatabase",
          "App\\Listeners\\Update\\V30\\Version307@updateDatabase",
          "App\\Listeners\\Update\\V30\\Version309@updatePermissions",
          "App\\Listeners\\Update\\V31\\Version310@updateDatabase",
          "App\\Listeners\\Update\\V31\\Version3112@updateDatabase",
          "App\\Listeners\\Update\\V31\\Version3115@updateDatabase",
          "App\\Listeners\\Update\\V31\\Version3122@updateDatabase",
          "App\\Listeners\\Update\\V31\\Version315@clearCache",
          "App\\Listeners\\Update\\V31\\Version317@clearCache",
          "App\\Listeners\\Update\\V31\\Version318@clearCache"
        ],
        "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_123",
        "canonical": "App\\Listeners\\Update\\V30\\Version303@updateWidgets",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Listeners\\Update\\V30\\Version304@updateEmailTemplates"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "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\\Listeners\\Update\\V31\\Version317@deleteOldFiles",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Listeners\\Update\\V31\\Version318@deleteOldFiles"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_125",
        "canonical": "App\\Utilities\\Reports@cannotShow",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Utilities\\Widgets@canShow"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "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": "Akaunting\\Module\\Commands\\DisableCommand@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "Akaunting\\Module\\Commands\\EnableCommand@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_127",
        "canonical": "Auth\\Login@create",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "Auth\\Login@destroy",
          "Banking\\Accounts@currency",
          "Common\\Companies@autocomplete",
          "Common\\Ping@pong",
          "Common\\Uploads@get",
          "Common\\Uploads@inline",
          "Install\\Database@create",
          "Install\\Database@store",
          "Install\\Language@create",
          "Install\\Language@getLanguages",
          "Install\\Language@store",
          "Install\\Requirements@show",
          "Install\\Requirements@show",
          "Install\\Settings@create",
          "Install\\Settings@store",
          "Install\\Updates@index",
          "Portal\\Invoices@confirm",
          "Portal\\Invoices@finish",
          "Portal\\Invoices@payment",
          "Portal\\Invoices@pdfInvoice",
          "Portal\\Invoices@preview",
          "Portal\\Invoices@printInvoice",
          "Portal\\Invoices@printInvoice",
          "Portal\\Invoices@signed",
          "Portal\\Payments@pdfPayment",
          "Portal\\Payments@printPayment",
          "Portal\\Payments@signed",
          "Purchases\\Bills@markReceived",
          "route::routes/admin.php::delete::/accounts/{id}::closure::destroy",
          "route::routes/admin.php::delete::/api-key/{id}::closure::destroy",
          "route::routes/admin.php::get::/accounts::closure::index",
          "route::routes/admin.php::get::/accounts/{id}::closure::show",
          "route::routes/admin.php::get::/accounts/{id}/edit::closure::edit",
          "route::routes/admin.php::get::/accounts/create::closure::create",
          "route::routes/admin.php::get::/api-key::closure::index",
          "route::routes/admin.php::get::/api-key/{id}::closure::show",
          "route::routes/admin.php::get::/api-key/{id}/edit::closure::edit",
          "route::routes/admin.php::get::/api-key/create::closure::create",
          "route::routes/admin.php::post::/accounts::closure::store",
          "route::routes/admin.php::post::/api-key::closure::store",
          "route::routes/admin.php::put::/accounts/{id}::closure::update",
          "route::routes/admin.php::put::/api-key/{id}::closure::update",
          "Sales\\Invoices@markSent",
          "Settings\\Categories@enable",
          "Settings\\Modules@edit",
          "Wizard\\Companies@edit"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 47,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      }
    ],
    "total_clusters": 127,
    "total_surfaces_in_clusters": 721
  },
  "coverage_gaps": {
    "gaps": [
      {
        "surface_id": "method::app/Abstracts/Http/ApiController.php::App\\Abstracts\\Http\\ApiController::accepted",
        "fqmn": "App\\Abstracts\\Http\\ApiController@accepted",
        "expected_test_path": "tests/Feature/ApiControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Abstracts/Http/ApiController.php::App\\Abstracts\\Http\\ApiController::created",
        "fqmn": "App\\Abstracts\\Http\\ApiController@created",
        "expected_test_path": "tests/Feature/ApiControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Abstracts/Http/ApiController.php::App\\Abstracts\\Http\\ApiController::noContent",
        "fqmn": "App\\Abstracts\\Http\\ApiController@noContent",
        "expected_test_path": "tests/Feature/ApiControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Abstracts/Http/Controller.php::App\\Abstracts\\Http\\Controller::exportExcel",
        "fqmn": "App\\Abstracts\\Http\\Controller@exportExcel",
        "expected_test_path": "tests/Feature/ControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Abstracts/Http/Controller.php::App\\Abstracts\\Http\\Controller::importExcel",
        "fqmn": "App\\Abstracts\\Http\\Controller@importExcel",
        "expected_test_path": "tests/Feature/ControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Abstracts/Http/Controller.php::App\\Abstracts\\Http\\Controller::paginate",
        "fqmn": "App\\Abstracts\\Http\\Controller@paginate",
        "expected_test_path": "tests/Feature/ControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Abstracts/Http/Controller.php::App\\Abstracts\\Http\\Controller::response",
        "fqmn": "App\\Abstracts\\Http\\Controller@response",
        "expected_test_path": "tests/Feature/ControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Abstracts/Http/Controller.php::App\\Abstracts\\Http\\Controller::setActiveTabForCategories",
        "fqmn": "App\\Abstracts\\Http\\Controller@setActiveTabForCategories",
        "expected_test_path": "tests/Feature/ControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Abstracts/Http/Controller.php::App\\Abstracts\\Http\\Controller::setActiveTabForDocuments",
        "fqmn": "App\\Abstracts\\Http\\Controller@setActiveTabForDocuments",
        "expected_test_path": "tests/Feature/ControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Abstracts/Http/Controller.php::App\\Abstracts\\Http\\Controller::setActiveTabForTransactions",
        "fqmn": "App\\Abstracts\\Http\\Controller@setActiveTabForTransactions",
        "expected_test_path": "tests/Feature/ControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::__construct",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@__construct",
        "expected_test_path": "tests/Feature/PaymentControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::cancel",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@cancel",
        "expected_test_path": "tests/Feature/PaymentControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::finish",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@finish",
        "expected_test_path": "tests/Feature/PaymentControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::getCancelUrl",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@getCancelUrl",
        "expected_test_path": "tests/Feature/PaymentControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::getConfirmUrl",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@getConfirmUrl",
        "expected_test_path": "tests/Feature/PaymentControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::getFinishUrl",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@getFinishUrl",
        "expected_test_path": "tests/Feature/PaymentControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::getInvoiceUrl",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@getInvoiceUrl",
        "expected_test_path": "tests/Feature/PaymentControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::getLogger",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@getLogger",
        "expected_test_path": "tests/Feature/PaymentControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::getModuleUrl",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@getModuleUrl",
        "expected_test_path": "tests/Feature/PaymentControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::getNotifyUrl",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@getNotifyUrl",
        "expected_test_path": "tests/Feature/PaymentControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::getReference",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@getReference",
        "expected_test_path": "tests/Feature/PaymentControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::getReturnUrl",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@getReturnUrl",
        "expected_test_path": "tests/Feature/PaymentControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::show",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@show",
        "expected_test_path": "tests/Feature/PaymentControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::signed",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@signed",
        "expected_test_path": "tests/Feature/PaymentControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Abstracts/Http/SettingController.php::App\\Abstracts\\Http\\SettingController::update",
        "fqmn": "App\\Abstracts\\Http\\SettingController@update",
        "expected_test_path": "tests/Feature/SettingControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Abstracts/Job.php::App\\Abstracts\\Job::bootCreate",
        "fqmn": "App\\Abstracts\\Job@bootCreate",
        "expected_test_path": "tests/Unit/JobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Abstracts/Job.php::App\\Abstracts\\Job::bootDelete",
        "fqmn": "App\\Abstracts\\Job@bootDelete",
        "expected_test_path": "tests/Unit/JobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Abstracts/Job.php::App\\Abstracts\\Job::bootUpdate",
        "fqmn": "App\\Abstracts\\Job@bootUpdate",
        "expected_test_path": "tests/Unit/JobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Abstracts/Job.php::App\\Abstracts\\Job::getRequestInstance",
        "fqmn": "App\\Abstracts\\Job@getRequestInstance",
        "expected_test_path": "tests/Unit/JobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Abstracts/Job.php::App\\Abstracts\\Job::setOwner",
        "fqmn": "App\\Abstracts\\Job@setOwner",
        "expected_test_path": "tests/Unit/JobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Abstracts/Job.php::App\\Abstracts\\Job::setSource",
        "fqmn": "App\\Abstracts\\Job@setSource",
        "expected_test_path": "tests/Unit/JobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Abstracts/Listeners/Update.php::App\\Abstracts\\Listeners\\Update::check",
        "fqmn": "App\\Abstracts\\Listeners\\Update@check",
        "expected_test_path": "tests/Feature/UpdateTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Abstracts/Listeners/Update.php::App\\Abstracts\\Listeners\\Update::skipThisUpdate",
        "fqmn": "App\\Abstracts\\Listeners\\Update@skipThisUpdate",
        "expected_test_path": "tests/Feature/UpdateTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Classifiers/Job.php::App\\Classifiers\\Job::countsTowardsApplicationCode",
        "fqmn": "App\\Classifiers\\Job@countsTowardsApplicationCode",
        "expected_test_path": "tests/Unit/JobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Classifiers/Job.php::App\\Classifiers\\Job::countsTowardsTests",
        "fqmn": "App\\Classifiers\\Job@countsTowardsTests",
        "expected_test_path": "tests/Unit/JobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Classifiers/Job.php::App\\Classifiers\\Job::name",
        "fqmn": "App\\Classifiers\\Job@name",
        "expected_test_path": "tests/Unit/JobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Classifiers/Job.php::App\\Classifiers\\Job::satisfies",
        "fqmn": "App\\Classifiers\\Job@satisfies",
        "expected_test_path": "tests/Unit/JobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/DownloadModule.php::App\\Console\\Commands\\DownloadModule::copyFiles",
        "fqmn": "App\\Console\\Commands\\DownloadModule@copyFiles",
        "expected_test_path": "tests/Unit/DownloadModuleTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/DownloadModule.php::App\\Console\\Commands\\DownloadModule::download",
        "fqmn": "App\\Console\\Commands\\DownloadModule@download",
        "expected_test_path": "tests/Unit/DownloadModuleTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/DownloadModule.php::App\\Console\\Commands\\DownloadModule::handle",
        "fqmn": "App\\Console\\Commands\\DownloadModule@handle",
        "expected_test_path": "tests/Unit/DownloadModuleTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/DownloadModule.php::App\\Console\\Commands\\DownloadModule::unzip",
        "fqmn": "App\\Console\\Commands\\DownloadModule@unzip",
        "expected_test_path": "tests/Unit/DownloadModuleTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/FinishUpdate.php::App\\Console\\Commands\\FinishUpdate::handle",
        "fqmn": "App\\Console\\Commands\\FinishUpdate@handle",
        "expected_test_path": "tests/Unit/FinishUpdateTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/Install.php::App\\Console\\Commands\\Install::handle",
        "fqmn": "App\\Console\\Commands\\Install@handle",
        "expected_test_path": "tests/Unit/InstallTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/RecurringCheck.php::App\\Console\\Commands\\RecurringCheck::getRealType",
        "fqmn": "App\\Console\\Commands\\RecurringCheck@getRealType",
        "expected_test_path": "tests/Unit/RecurringCheckTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/UninstallModule.php::App\\Console\\Commands\\UninstallModule::handle",
        "fqmn": "App\\Console\\Commands\\UninstallModule@handle",
        "expected_test_path": "tests/Unit/UninstallModuleTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/Update.php::App\\Console\\Commands\\Update::copyFiles",
        "fqmn": "App\\Console\\Commands\\Update@copyFiles",
        "expected_test_path": "tests/Unit/UpdateTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/Update.php::App\\Console\\Commands\\Update::download",
        "fqmn": "App\\Console\\Commands\\Update@download",
        "expected_test_path": "tests/Unit/UpdateTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/Update.php::App\\Console\\Commands\\Update::finish",
        "fqmn": "App\\Console\\Commands\\Update@finish",
        "expected_test_path": "tests/Unit/UpdateTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/Update.php::App\\Console\\Commands\\Update::getNewVersion",
        "fqmn": "App\\Console\\Commands\\Update@getNewVersion",
        "expected_test_path": "tests/Unit/UpdateTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/Update.php::App\\Console\\Commands\\Update::getOldVersion",
        "fqmn": "App\\Console\\Commands\\Update@getOldVersion",
        "expected_test_path": "tests/Unit/UpdateTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/Update.php::App\\Console\\Commands\\Update::handle",
        "fqmn": "App\\Console\\Commands\\Update@handle",
        "expected_test_path": "tests/Unit/UpdateTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/Update.php::App\\Console\\Commands\\Update::unzip",
        "fqmn": "App\\Console\\Commands\\Update@unzip",
        "expected_test_path": "tests/Unit/UpdateTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/UpdateAll.php::App\\Console\\Commands\\UpdateAll::handle",
        "fqmn": "App\\Console\\Commands\\UpdateAll@handle",
        "expected_test_path": "tests/Unit/UpdateAllTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Exceptions/Http/Resource.php::App\\Exceptions\\Http\\Resource::getErrors",
        "fqmn": "App\\Exceptions\\Http\\Resource@getErrors",
        "expected_test_path": "tests/Feature/ResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Exceptions/Http/Resource.php::App\\Exceptions\\Http\\Resource::hasErrors",
        "fqmn": "App\\Exceptions\\Http\\Resource@hasErrors",
        "expected_test_path": "tests/Feature/ResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Auth/Users.php::App\\Http\\Controllers\\Api\\Auth\\Users::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Auth\\Users@destroy",
        "expected_test_path": "tests/Feature/UsersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Auth/Users.php::App\\Http\\Controllers\\Api\\Auth\\Users::disable",
        "fqmn": "App\\Http\\Controllers\\Api\\Auth\\Users@disable",
        "expected_test_path": "tests/Feature/UsersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Auth/Users.php::App\\Http\\Controllers\\Api\\Auth\\Users::enable",
        "fqmn": "App\\Http\\Controllers\\Api\\Auth\\Users@enable",
        "expected_test_path": "tests/Feature/UsersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Auth/Users.php::App\\Http\\Controllers\\Api\\Auth\\Users::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Auth\\Users@index",
        "expected_test_path": "tests/Feature/UsersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Auth/Users.php::App\\Http\\Controllers\\Api\\Auth\\Users::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Auth\\Users@show",
        "expected_test_path": "tests/Feature/UsersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Auth/Users.php::App\\Http\\Controllers\\Api\\Auth\\Users::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Auth\\Users@store",
        "expected_test_path": "tests/Feature/UsersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Auth/Users.php::App\\Http\\Controllers\\Api\\Auth\\Users::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Auth\\Users@update",
        "expected_test_path": "tests/Feature/UsersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Banking/Accounts.php::App\\Http\\Controllers\\Api\\Banking\\Accounts::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Accounts@destroy",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Banking/Accounts.php::App\\Http\\Controllers\\Api\\Banking\\Accounts::disable",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Accounts@disable",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Banking/Accounts.php::App\\Http\\Controllers\\Api\\Banking\\Accounts::enable",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Accounts@enable",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Banking/Accounts.php::App\\Http\\Controllers\\Api\\Banking\\Accounts::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Accounts@index",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Banking/Accounts.php::App\\Http\\Controllers\\Api\\Banking\\Accounts::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Accounts@show",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Banking/Accounts.php::App\\Http\\Controllers\\Api\\Banking\\Accounts::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Accounts@store",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Banking/Accounts.php::App\\Http\\Controllers\\Api\\Banking\\Accounts::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Accounts@update",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Banking/Reconciliations.php::App\\Http\\Controllers\\Api\\Banking\\Reconciliations::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Reconciliations@destroy",
        "expected_test_path": "tests/Feature/ReconciliationsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Banking/Reconciliations.php::App\\Http\\Controllers\\Api\\Banking\\Reconciliations::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Reconciliations@index",
        "expected_test_path": "tests/Feature/ReconciliationsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Banking/Reconciliations.php::App\\Http\\Controllers\\Api\\Banking\\Reconciliations::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Reconciliations@show",
        "expected_test_path": "tests/Feature/ReconciliationsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Banking/Reconciliations.php::App\\Http\\Controllers\\Api\\Banking\\Reconciliations::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Reconciliations@store",
        "expected_test_path": "tests/Feature/ReconciliationsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Banking/Reconciliations.php::App\\Http\\Controllers\\Api\\Banking\\Reconciliations::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Reconciliations@update",
        "expected_test_path": "tests/Feature/ReconciliationsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Banking/Transactions.php::App\\Http\\Controllers\\Api\\Banking\\Transactions::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Transactions@destroy",
        "expected_test_path": "tests/Feature/TransactionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Banking/Transactions.php::App\\Http\\Controllers\\Api\\Banking\\Transactions::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Transactions@index",
        "expected_test_path": "tests/Feature/TransactionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Banking/Transactions.php::App\\Http\\Controllers\\Api\\Banking\\Transactions::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Transactions@show",
        "expected_test_path": "tests/Feature/TransactionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Banking/Transactions.php::App\\Http\\Controllers\\Api\\Banking\\Transactions::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Transactions@store",
        "expected_test_path": "tests/Feature/TransactionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Banking/Transactions.php::App\\Http\\Controllers\\Api\\Banking\\Transactions::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Transactions@update",
        "expected_test_path": "tests/Feature/TransactionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Banking/Transfers.php::App\\Http\\Controllers\\Api\\Banking\\Transfers::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Transfers@destroy",
        "expected_test_path": "tests/Feature/TransfersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Banking/Transfers.php::App\\Http\\Controllers\\Api\\Banking\\Transfers::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Transfers@index",
        "expected_test_path": "tests/Feature/TransfersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Banking/Transfers.php::App\\Http\\Controllers\\Api\\Banking\\Transfers::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Transfers@show",
        "expected_test_path": "tests/Feature/TransfersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Banking/Transfers.php::App\\Http\\Controllers\\Api\\Banking\\Transfers::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Transfers@store",
        "expected_test_path": "tests/Feature/TransfersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Banking/Transfers.php::App\\Http\\Controllers\\Api\\Banking\\Transfers::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Transfers@update",
        "expected_test_path": "tests/Feature/TransfersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Companies.php::App\\Http\\Controllers\\Api\\Common\\Companies::canAccess",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Companies@canAccess",
        "expected_test_path": "tests/Feature/CompaniesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Companies.php::App\\Http\\Controllers\\Api\\Common\\Companies::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Companies@destroy",
        "expected_test_path": "tests/Feature/CompaniesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Companies.php::App\\Http\\Controllers\\Api\\Common\\Companies::disable",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Companies@disable",
        "expected_test_path": "tests/Feature/CompaniesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Companies.php::App\\Http\\Controllers\\Api\\Common\\Companies::enable",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Companies@enable",
        "expected_test_path": "tests/Feature/CompaniesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Companies.php::App\\Http\\Controllers\\Api\\Common\\Companies::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Companies@index",
        "expected_test_path": "tests/Feature/CompaniesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Companies.php::App\\Http\\Controllers\\Api\\Common\\Companies::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Companies@show",
        "expected_test_path": "tests/Feature/CompaniesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Companies.php::App\\Http\\Controllers\\Api\\Common\\Companies::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Companies@store",
        "expected_test_path": "tests/Feature/CompaniesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Companies.php::App\\Http\\Controllers\\Api\\Common\\Companies::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Companies@update",
        "expected_test_path": "tests/Feature/CompaniesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Contacts.php::App\\Http\\Controllers\\Api\\Common\\Contacts::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Contacts@destroy",
        "expected_test_path": "tests/Feature/ContactsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Contacts.php::App\\Http\\Controllers\\Api\\Common\\Contacts::disable",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Contacts@disable",
        "expected_test_path": "tests/Feature/ContactsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Contacts.php::App\\Http\\Controllers\\Api\\Common\\Contacts::enable",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Contacts@enable",
        "expected_test_path": "tests/Feature/ContactsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Contacts.php::App\\Http\\Controllers\\Api\\Common\\Contacts::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Contacts@index",
        "expected_test_path": "tests/Feature/ContactsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Contacts.php::App\\Http\\Controllers\\Api\\Common\\Contacts::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Contacts@show",
        "expected_test_path": "tests/Feature/ContactsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Contacts.php::App\\Http\\Controllers\\Api\\Common\\Contacts::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Contacts@store",
        "expected_test_path": "tests/Feature/ContactsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Contacts.php::App\\Http\\Controllers\\Api\\Common\\Contacts::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Contacts@update",
        "expected_test_path": "tests/Feature/ContactsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Dashboards.php::App\\Http\\Controllers\\Api\\Common\\Dashboards::canAccess",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Dashboards@canAccess",
        "expected_test_path": "tests/Feature/DashboardsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Dashboards.php::App\\Http\\Controllers\\Api\\Common\\Dashboards::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Dashboards@destroy",
        "expected_test_path": "tests/Feature/DashboardsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Dashboards.php::App\\Http\\Controllers\\Api\\Common\\Dashboards::disable",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Dashboards@disable",
        "expected_test_path": "tests/Feature/DashboardsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Dashboards.php::App\\Http\\Controllers\\Api\\Common\\Dashboards::enable",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Dashboards@enable",
        "expected_test_path": "tests/Feature/DashboardsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Dashboards.php::App\\Http\\Controllers\\Api\\Common\\Dashboards::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Dashboards@index",
        "expected_test_path": "tests/Feature/DashboardsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Dashboards.php::App\\Http\\Controllers\\Api\\Common\\Dashboards::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Dashboards@show",
        "expected_test_path": "tests/Feature/DashboardsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Dashboards.php::App\\Http\\Controllers\\Api\\Common\\Dashboards::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Dashboards@store",
        "expected_test_path": "tests/Feature/DashboardsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Dashboards.php::App\\Http\\Controllers\\Api\\Common\\Dashboards::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Dashboards@update",
        "expected_test_path": "tests/Feature/DashboardsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Items.php::App\\Http\\Controllers\\Api\\Common\\Items::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Items@destroy",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Items.php::App\\Http\\Controllers\\Api\\Common\\Items::disable",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Items@disable",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Items.php::App\\Http\\Controllers\\Api\\Common\\Items::enable",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Items@enable",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Items.php::App\\Http\\Controllers\\Api\\Common\\Items::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Items@index",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Items.php::App\\Http\\Controllers\\Api\\Common\\Items::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Items@show",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Items.php::App\\Http\\Controllers\\Api\\Common\\Items::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Items@store",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Items.php::App\\Http\\Controllers\\Api\\Common\\Items::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Items@update",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Ping.php::App\\Http\\Controllers\\Api\\Common\\Ping::pong",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Ping@pong",
        "expected_test_path": "tests/Feature/PingTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Reports.php::App\\Http\\Controllers\\Api\\Common\\Reports::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Reports@destroy",
        "expected_test_path": "tests/Feature/ReportsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Reports.php::App\\Http\\Controllers\\Api\\Common\\Reports::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Reports@index",
        "expected_test_path": "tests/Feature/ReportsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Reports.php::App\\Http\\Controllers\\Api\\Common\\Reports::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Reports@show",
        "expected_test_path": "tests/Feature/ReportsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Reports.php::App\\Http\\Controllers\\Api\\Common\\Reports::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Reports@store",
        "expected_test_path": "tests/Feature/ReportsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Reports.php::App\\Http\\Controllers\\Api\\Common\\Reports::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Reports@update",
        "expected_test_path": "tests/Feature/ReportsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Translations.php::App\\Http\\Controllers\\Api\\Common\\Translations::all",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Translations@all",
        "expected_test_path": "tests/Feature/TranslationsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Common/Translations.php::App\\Http\\Controllers\\Api\\Common\\Translations::file",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Translations@file",
        "expected_test_path": "tests/Feature/TranslationsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Document/Documents.php::App\\Http\\Controllers\\Api\\Document\\Documents::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\Documents@destroy",
        "expected_test_path": "tests/Feature/DocumentsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Document/Documents.php::App\\Http\\Controllers\\Api\\Document\\Documents::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\Documents@index",
        "expected_test_path": "tests/Feature/DocumentsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Document/Documents.php::App\\Http\\Controllers\\Api\\Document\\Documents::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\Documents@show",
        "expected_test_path": "tests/Feature/DocumentsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Document/Documents.php::App\\Http\\Controllers\\Api\\Document\\Documents::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\Documents@store",
        "expected_test_path": "tests/Feature/DocumentsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Document/Documents.php::App\\Http\\Controllers\\Api\\Document\\Documents::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\Documents@update",
        "expected_test_path": "tests/Feature/DocumentsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Document/DocumentTransactions.php::App\\Http\\Controllers\\Api\\Document\\DocumentTransactions::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\DocumentTransactions@destroy",
        "expected_test_path": "tests/Feature/DocumentTransactionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Document/DocumentTransactions.php::App\\Http\\Controllers\\Api\\Document\\DocumentTransactions::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\DocumentTransactions@index",
        "expected_test_path": "tests/Feature/DocumentTransactionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Document/DocumentTransactions.php::App\\Http\\Controllers\\Api\\Document\\DocumentTransactions::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\DocumentTransactions@show",
        "expected_test_path": "tests/Feature/DocumentTransactionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Document/DocumentTransactions.php::App\\Http\\Controllers\\Api\\Document\\DocumentTransactions::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\DocumentTransactions@store",
        "expected_test_path": "tests/Feature/DocumentTransactionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Document/DocumentTransactions.php::App\\Http\\Controllers\\Api\\Document\\DocumentTransactions::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\DocumentTransactions@update",
        "expected_test_path": "tests/Feature/DocumentTransactionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Settings/Categories.php::App\\Http\\Controllers\\Api\\Settings\\Categories::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Categories@destroy",
        "expected_test_path": "tests/Feature/CategoriesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Settings/Categories.php::App\\Http\\Controllers\\Api\\Settings\\Categories::disable",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Categories@disable",
        "expected_test_path": "tests/Feature/CategoriesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Settings/Categories.php::App\\Http\\Controllers\\Api\\Settings\\Categories::enable",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Categories@enable",
        "expected_test_path": "tests/Feature/CategoriesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Settings/Categories.php::App\\Http\\Controllers\\Api\\Settings\\Categories::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Categories@index",
        "expected_test_path": "tests/Feature/CategoriesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Settings/Categories.php::App\\Http\\Controllers\\Api\\Settings\\Categories::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Categories@show",
        "expected_test_path": "tests/Feature/CategoriesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Settings/Categories.php::App\\Http\\Controllers\\Api\\Settings\\Categories::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Categories@store",
        "expected_test_path": "tests/Feature/CategoriesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Settings/Categories.php::App\\Http\\Controllers\\Api\\Settings\\Categories::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Categories@update",
        "expected_test_path": "tests/Feature/CategoriesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Settings/Currencies.php::App\\Http\\Controllers\\Api\\Settings\\Currencies::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Currencies@destroy",
        "expected_test_path": "tests/Feature/CurrenciesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Settings/Currencies.php::App\\Http\\Controllers\\Api\\Settings\\Currencies::disable",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Currencies@disable",
        "expected_test_path": "tests/Feature/CurrenciesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Settings/Currencies.php::App\\Http\\Controllers\\Api\\Settings\\Currencies::enable",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Currencies@enable",
        "expected_test_path": "tests/Feature/CurrenciesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Settings/Currencies.php::App\\Http\\Controllers\\Api\\Settings\\Currencies::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Currencies@index",
        "expected_test_path": "tests/Feature/CurrenciesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Settings/Currencies.php::App\\Http\\Controllers\\Api\\Settings\\Currencies::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Currencies@show",
        "expected_test_path": "tests/Feature/CurrenciesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Settings/Currencies.php::App\\Http\\Controllers\\Api\\Settings\\Currencies::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Currencies@store",
        "expected_test_path": "tests/Feature/CurrenciesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Settings/Currencies.php::App\\Http\\Controllers\\Api\\Settings\\Currencies::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Currencies@update",
        "expected_test_path": "tests/Feature/CurrenciesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Settings/Settings.php::App\\Http\\Controllers\\Api\\Settings\\Settings::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Settings@destroy",
        "expected_test_path": "tests/Feature/SettingsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Settings/Settings.php::App\\Http\\Controllers\\Api\\Settings\\Settings::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Settings@index",
        "expected_test_path": "tests/Feature/SettingsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Settings/Settings.php::App\\Http\\Controllers\\Api\\Settings\\Settings::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Settings@show",
        "expected_test_path": "tests/Feature/SettingsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Settings/Settings.php::App\\Http\\Controllers\\Api\\Settings\\Settings::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Settings@store",
        "expected_test_path": "tests/Feature/SettingsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Settings/Settings.php::App\\Http\\Controllers\\Api\\Settings\\Settings::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Settings@update",
        "expected_test_path": "tests/Feature/SettingsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Settings/Taxes.php::App\\Http\\Controllers\\Api\\Settings\\Taxes::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Taxes@destroy",
        "expected_test_path": "tests/Feature/TaxesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Settings/Taxes.php::App\\Http\\Controllers\\Api\\Settings\\Taxes::disable",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Taxes@disable",
        "expected_test_path": "tests/Feature/TaxesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Settings/Taxes.php::App\\Http\\Controllers\\Api\\Settings\\Taxes::enable",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Taxes@enable",
        "expected_test_path": "tests/Feature/TaxesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Settings/Taxes.php::App\\Http\\Controllers\\Api\\Settings\\Taxes::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Taxes@index",
        "expected_test_path": "tests/Feature/TaxesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Settings/Taxes.php::App\\Http\\Controllers\\Api\\Settings\\Taxes::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Taxes@show",
        "expected_test_path": "tests/Feature/TaxesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Settings/Taxes.php::App\\Http\\Controllers\\Api\\Settings\\Taxes::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Taxes@store",
        "expected_test_path": "tests/Feature/TaxesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Settings/Taxes.php::App\\Http\\Controllers\\Api\\Settings\\Taxes::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Taxes@update",
        "expected_test_path": "tests/Feature/TaxesTest.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/Forgot.php::App\\Http\\Controllers\\Auth\\Forgot::create",
        "fqmn": "App\\Http\\Controllers\\Auth\\Forgot@create",
        "expected_test_path": "tests/Feature/ForgotTest.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/Forgot.php::App\\Http\\Controllers\\Auth\\Forgot::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\Forgot@store",
        "expected_test_path": "tests/Feature/ForgotTest.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/Login.php::App\\Http\\Controllers\\Auth\\Login::create",
        "fqmn": "App\\Http\\Controllers\\Auth\\Login@create",
        "expected_test_path": "tests/Feature/LoginTest.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/Login.php::App\\Http\\Controllers\\Auth\\Login::destroy",
        "fqmn": "App\\Http\\Controllers\\Auth\\Login@destroy",
        "expected_test_path": "tests/Feature/LoginTest.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/Login.php::App\\Http\\Controllers\\Auth\\Login::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\Login@store",
        "expected_test_path": "tests/Feature/LoginTest.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/Register.php::App\\Http\\Controllers\\Auth\\Register::create",
        "fqmn": "App\\Http\\Controllers\\Auth\\Register@create",
        "expected_test_path": "tests/Feature/RegisterTest.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/Register.php::App\\Http\\Controllers\\Auth\\Register::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\Register@store",
        "expected_test_path": "tests/Feature/RegisterTest.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/Reset.php::App\\Http\\Controllers\\Auth\\Reset::create",
        "fqmn": "App\\Http\\Controllers\\Auth\\Reset@create",
        "expected_test_path": "tests/Feature/ResetTest.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/Reset.php::App\\Http\\Controllers\\Auth\\Reset::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\Reset@store",
        "expected_test_path": "tests/Feature/ResetTest.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/Users.php::App\\Http\\Controllers\\Auth\\Users::autocomplete",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@autocomplete",
        "expected_test_path": "tests/Feature/UsersTest.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/Users.php::App\\Http\\Controllers\\Auth\\Users::create",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@create",
        "expected_test_path": "tests/Feature/UsersTest.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/Users.php::App\\Http\\Controllers\\Auth\\Users::destroy",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@destroy",
        "expected_test_path": "tests/Feature/UsersTest.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/Users.php::App\\Http\\Controllers\\Auth\\Users::disable",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@disable",
        "expected_test_path": "tests/Feature/UsersTest.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/Users.php::App\\Http\\Controllers\\Auth\\Users::edit",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@edit",
        "expected_test_path": "tests/Feature/UsersTest.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/Users.php::App\\Http\\Controllers\\Auth\\Users::enable",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@enable",
        "expected_test_path": "tests/Feature/UsersTest.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/Users.php::App\\Http\\Controllers\\Auth\\Users::index",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@index",
        "expected_test_path": "tests/Feature/UsersTest.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/Users.php::App\\Http\\Controllers\\Auth\\Users::invite",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@invite",
        "expected_test_path": "tests/Feature/UsersTest.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/Users.php::App\\Http\\Controllers\\Auth\\Users::landingPages",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@landingPages",
        "expected_test_path": "tests/Feature/UsersTest.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/Users.php::App\\Http\\Controllers\\Auth\\Users::readOverdueInvoices",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@readOverdueInvoices",
        "expected_test_path": "tests/Feature/UsersTest.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/Users.php::App\\Http\\Controllers\\Auth\\Users::readUpcomingBills",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@readUpcomingBills",
        "expected_test_path": "tests/Feature/UsersTest.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/Users.php::App\\Http\\Controllers\\Auth\\Users::show",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@show",
        "expected_test_path": "tests/Feature/UsersTest.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/Users.php::App\\Http\\Controllers\\Auth\\Users::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@store",
        "expected_test_path": "tests/Feature/UsersTest.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/Users.php::App\\Http\\Controllers\\Auth\\Users::update",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@update",
        "expected_test_path": "tests/Feature/UsersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::create",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@create",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::createExpense",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@createExpense",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::createIncome",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@createIncome",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::createTransfer",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@createTransfer",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::currency",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@currency",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::destroy",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@destroy",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::disable",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@disable",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::duplicate",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@duplicate",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::edit",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@edit",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::enable",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@enable",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::index",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@index",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::seePerformance",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@seePerformance",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::show",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@show",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::store",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@store",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::update",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@update",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Reconciliations.php::App\\Http\\Controllers\\Banking\\Reconciliations::calculate",
        "fqmn": "App\\Http\\Controllers\\Banking\\Reconciliations@calculate",
        "expected_test_path": "tests/Feature/ReconciliationsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Reconciliations.php::App\\Http\\Controllers\\Banking\\Reconciliations::create",
        "fqmn": "App\\Http\\Controllers\\Banking\\Reconciliations@create",
        "expected_test_path": "tests/Feature/ReconciliationsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Reconciliations.php::App\\Http\\Controllers\\Banking\\Reconciliations::destroy",
        "fqmn": "App\\Http\\Controllers\\Banking\\Reconciliations@destroy",
        "expected_test_path": "tests/Feature/ReconciliationsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Reconciliations.php::App\\Http\\Controllers\\Banking\\Reconciliations::edit",
        "fqmn": "App\\Http\\Controllers\\Banking\\Reconciliations@edit",
        "expected_test_path": "tests/Feature/ReconciliationsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Reconciliations.php::App\\Http\\Controllers\\Banking\\Reconciliations::getOpeningBalance",
        "fqmn": "App\\Http\\Controllers\\Banking\\Reconciliations@getOpeningBalance",
        "expected_test_path": "tests/Feature/ReconciliationsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Reconciliations.php::App\\Http\\Controllers\\Banking\\Reconciliations::index",
        "fqmn": "App\\Http\\Controllers\\Banking\\Reconciliations@index",
        "expected_test_path": "tests/Feature/ReconciliationsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Reconciliations.php::App\\Http\\Controllers\\Banking\\Reconciliations::show",
        "fqmn": "App\\Http\\Controllers\\Banking\\Reconciliations@show",
        "expected_test_path": "tests/Feature/ReconciliationsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Reconciliations.php::App\\Http\\Controllers\\Banking\\Reconciliations::store",
        "fqmn": "App\\Http\\Controllers\\Banking\\Reconciliations@store",
        "expected_test_path": "tests/Feature/ReconciliationsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Reconciliations.php::App\\Http\\Controllers\\Banking\\Reconciliations::update",
        "fqmn": "App\\Http\\Controllers\\Banking\\Reconciliations@update",
        "expected_test_path": "tests/Feature/ReconciliationsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/RecurringTransactions.php::App\\Http\\Controllers\\Banking\\RecurringTransactions::create",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@create",
        "expected_test_path": "tests/Feature/RecurringTransactionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/RecurringTransactions.php::App\\Http\\Controllers\\Banking\\RecurringTransactions::duplicate",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@duplicate",
        "expected_test_path": "tests/Feature/RecurringTransactionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/RecurringTransactions.php::App\\Http\\Controllers\\Banking\\RecurringTransactions::edit",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@edit",
        "expected_test_path": "tests/Feature/RecurringTransactionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/RecurringTransactions.php::App\\Http\\Controllers\\Banking\\RecurringTransactions::end",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@end",
        "expected_test_path": "tests/Feature/RecurringTransactionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/RecurringTransactions.php::App\\Http\\Controllers\\Banking\\RecurringTransactions::export",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@export",
        "expected_test_path": "tests/Feature/RecurringTransactionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/RecurringTransactions.php::App\\Http\\Controllers\\Banking\\RecurringTransactions::import",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@import",
        "expected_test_path": "tests/Feature/RecurringTransactionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/RecurringTransactions.php::App\\Http\\Controllers\\Banking\\RecurringTransactions::index",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@index",
        "expected_test_path": "tests/Feature/RecurringTransactionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/RecurringTransactions.php::App\\Http\\Controllers\\Banking\\RecurringTransactions::show",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@show",
        "expected_test_path": "tests/Feature/RecurringTransactionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/RecurringTransactions.php::App\\Http\\Controllers\\Banking\\RecurringTransactions::store",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@store",
        "expected_test_path": "tests/Feature/RecurringTransactionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/RecurringTransactions.php::App\\Http\\Controllers\\Banking\\RecurringTransactions::update",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@update",
        "expected_test_path": "tests/Feature/RecurringTransactionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::connect",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@connect",
        "expected_test_path": "tests/Feature/TransactionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::create",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@create",
        "expected_test_path": "tests/Feature/TransactionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::destroy",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@destroy",
        "expected_test_path": "tests/Feature/TransactionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::dial",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@dial",
        "expected_test_path": "tests/Feature/TransactionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::duplicate",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@duplicate",
        "expected_test_path": "tests/Feature/TransactionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::edit",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@edit",
        "expected_test_path": "tests/Feature/TransactionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::emailTransaction",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@emailTransaction",
        "expected_test_path": "tests/Feature/TransactionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::export",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@export",
        "expected_test_path": "tests/Feature/TransactionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::import",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@import",
        "expected_test_path": "tests/Feature/TransactionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::index",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@index",
        "expected_test_path": "tests/Feature/TransactionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::pdfTransaction",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@pdfTransaction",
        "expected_test_path": "tests/Feature/TransactionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::printTransaction",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@printTransaction",
        "expected_test_path": "tests/Feature/TransactionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::show",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@show",
        "expected_test_path": "tests/Feature/TransactionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::store",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@store",
        "expected_test_path": "tests/Feature/TransactionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::update",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@update",
        "expected_test_path": "tests/Feature/TransactionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::create",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@create",
        "expected_test_path": "tests/Feature/TransfersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::destroy",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@destroy",
        "expected_test_path": "tests/Feature/TransfersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::duplicate",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@duplicate",
        "expected_test_path": "tests/Feature/TransfersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::edit",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@edit",
        "expected_test_path": "tests/Feature/TransfersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::export",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@export",
        "expected_test_path": "tests/Feature/TransfersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::import",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@import",
        "expected_test_path": "tests/Feature/TransfersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::index",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@index",
        "expected_test_path": "tests/Feature/TransfersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::pdfTransfer",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@pdfTransfer",
        "expected_test_path": "tests/Feature/TransfersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::printTransfer",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@printTransfer",
        "expected_test_path": "tests/Feature/TransfersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::show",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@show",
        "expected_test_path": "tests/Feature/TransfersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::store",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@store",
        "expected_test_path": "tests/Feature/TransfersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::update",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@update",
        "expected_test_path": "tests/Feature/TransfersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/BulkActions.php::App\\Http\\Controllers\\Common\\BulkActions::action",
        "fqmn": "App\\Http\\Controllers\\Common\\BulkActions@action",
        "expected_test_path": "tests/Feature/BulkActionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::autocomplete",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@autocomplete",
        "expected_test_path": "tests/Feature/CompaniesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::create",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@create",
        "expected_test_path": "tests/Feature/CompaniesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::destroy",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@destroy",
        "expected_test_path": "tests/Feature/CompaniesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::disable",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@disable",
        "expected_test_path": "tests/Feature/CompaniesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::edit",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@edit",
        "expected_test_path": "tests/Feature/CompaniesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::enable",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@enable",
        "expected_test_path": "tests/Feature/CompaniesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::index",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@index",
        "expected_test_path": "tests/Feature/CompaniesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::show",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@show",
        "expected_test_path": "tests/Feature/CompaniesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::store",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@store",
        "expected_test_path": "tests/Feature/CompaniesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::switch",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@switch",
        "expected_test_path": "tests/Feature/CompaniesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::update",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@update",
        "expected_test_path": "tests/Feature/CompaniesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Contacts.php::App\\Http\\Controllers\\Common\\Contacts::index",
        "fqmn": "App\\Http\\Controllers\\Common\\Contacts@index",
        "expected_test_path": "tests/Feature/ContactsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Dashboards.php::App\\Http\\Controllers\\Common\\Dashboards::create",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@create",
        "expected_test_path": "tests/Feature/DashboardsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Dashboards.php::App\\Http\\Controllers\\Common\\Dashboards::destroy",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@destroy",
        "expected_test_path": "tests/Feature/DashboardsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Dashboards.php::App\\Http\\Controllers\\Common\\Dashboards::disable",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@disable",
        "expected_test_path": "tests/Feature/DashboardsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Dashboards.php::App\\Http\\Controllers\\Common\\Dashboards::edit",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@edit",
        "expected_test_path": "tests/Feature/DashboardsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Dashboards.php::App\\Http\\Controllers\\Common\\Dashboards::enable",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@enable",
        "expected_test_path": "tests/Feature/DashboardsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Dashboards.php::App\\Http\\Controllers\\Common\\Dashboards::index",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@index",
        "expected_test_path": "tests/Feature/DashboardsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Dashboards.php::App\\Http\\Controllers\\Common\\Dashboards::show",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@show",
        "expected_test_path": "tests/Feature/DashboardsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Dashboards.php::App\\Http\\Controllers\\Common\\Dashboards::store",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@store",
        "expected_test_path": "tests/Feature/DashboardsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Dashboards.php::App\\Http\\Controllers\\Common\\Dashboards::switch",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@switch",
        "expected_test_path": "tests/Feature/DashboardsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Dashboards.php::App\\Http\\Controllers\\Common\\Dashboards::update",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@update",
        "expected_test_path": "tests/Feature/DashboardsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Import.php::App\\Http\\Controllers\\Common\\Import::create",
        "fqmn": "App\\Http\\Controllers\\Common\\Import@create",
        "expected_test_path": "tests/Feature/ImportTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::autocomplete",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@autocomplete",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::create",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@create",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::destroy",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@destroy",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::disable",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@disable",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::duplicate",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@duplicate",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::edit",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@edit",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::enable",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@enable",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::export",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@export",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::import",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@import",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::index",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@index",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::show",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@show",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::store",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@store",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::update",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@update",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Plans.php::App\\Http\\Controllers\\Common\\Plans::check",
        "fqmn": "App\\Http\\Controllers\\Common\\Plans@check",
        "expected_test_path": "tests/Feature/PlansTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::create",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@create",
        "expected_test_path": "tests/Feature/ReportsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::destroy",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@destroy",
        "expected_test_path": "tests/Feature/ReportsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::duplicate",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@duplicate",
        "expected_test_path": "tests/Feature/ReportsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::edit",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@edit",
        "expected_test_path": "tests/Feature/ReportsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::export",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@export",
        "expected_test_path": "tests/Feature/ReportsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::fields",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@fields",
        "expected_test_path": "tests/Feature/ReportsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::index",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@index",
        "expected_test_path": "tests/Feature/ReportsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::pdf",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@pdf",
        "expected_test_path": "tests/Feature/ReportsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::print",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@print",
        "expected_test_path": "tests/Feature/ReportsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::show",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@show",
        "expected_test_path": "tests/Feature/ReportsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::store",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@store",
        "expected_test_path": "tests/Feature/ReportsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::update",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@update",
        "expected_test_path": "tests/Feature/ReportsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Uploads.php::App\\Http\\Controllers\\Common\\Uploads::destroy",
        "fqmn": "App\\Http\\Controllers\\Common\\Uploads@destroy",
        "expected_test_path": "tests/Feature/UploadsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Uploads.php::App\\Http\\Controllers\\Common\\Uploads::download",
        "fqmn": "App\\Http\\Controllers\\Common\\Uploads@download",
        "expected_test_path": "tests/Feature/UploadsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Uploads.php::App\\Http\\Controllers\\Common\\Uploads::get",
        "fqmn": "App\\Http\\Controllers\\Common\\Uploads@get",
        "expected_test_path": "tests/Feature/UploadsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Uploads.php::App\\Http\\Controllers\\Common\\Uploads::inline",
        "fqmn": "App\\Http\\Controllers\\Common\\Uploads@inline",
        "expected_test_path": "tests/Feature/UploadsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Uploads.php::App\\Http\\Controllers\\Common\\Uploads::show",
        "fqmn": "App\\Http\\Controllers\\Common\\Uploads@show",
        "expected_test_path": "tests/Feature/UploadsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Widgets.php::App\\Http\\Controllers\\Common\\Widgets::destroy",
        "fqmn": "App\\Http\\Controllers\\Common\\Widgets@destroy",
        "expected_test_path": "tests/Feature/WidgetsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Widgets.php::App\\Http\\Controllers\\Common\\Widgets::edit",
        "fqmn": "App\\Http\\Controllers\\Common\\Widgets@edit",
        "expected_test_path": "tests/Feature/WidgetsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Widgets.php::App\\Http\\Controllers\\Common\\Widgets::getData",
        "fqmn": "App\\Http\\Controllers\\Common\\Widgets@getData",
        "expected_test_path": "tests/Feature/WidgetsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Widgets.php::App\\Http\\Controllers\\Common\\Widgets::index",
        "fqmn": "App\\Http\\Controllers\\Common\\Widgets@index",
        "expected_test_path": "tests/Feature/WidgetsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Widgets.php::App\\Http\\Controllers\\Common\\Widgets::show",
        "fqmn": "App\\Http\\Controllers\\Common\\Widgets@show",
        "expected_test_path": "tests/Feature/WidgetsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Widgets.php::App\\Http\\Controllers\\Common\\Widgets::store",
        "fqmn": "App\\Http\\Controllers\\Common\\Widgets@store",
        "expected_test_path": "tests/Feature/WidgetsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Common/Widgets.php::App\\Http\\Controllers\\Common\\Widgets::update",
        "fqmn": "App\\Http\\Controllers\\Common\\Widgets@update",
        "expected_test_path": "tests/Feature/WidgetsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Install/Database.php::App\\Http\\Controllers\\Install\\Database::create",
        "fqmn": "App\\Http\\Controllers\\Install\\Database@create",
        "expected_test_path": "tests/Feature/DatabaseTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Install/Database.php::App\\Http\\Controllers\\Install\\Database::store",
        "fqmn": "App\\Http\\Controllers\\Install\\Database@store",
        "expected_test_path": "tests/Feature/DatabaseTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Install/Language.php::App\\Http\\Controllers\\Install\\Language::create",
        "fqmn": "App\\Http\\Controllers\\Install\\Language@create",
        "expected_test_path": "tests/Feature/LanguageTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Install/Language.php::App\\Http\\Controllers\\Install\\Language::getLanguages",
        "fqmn": "App\\Http\\Controllers\\Install\\Language@getLanguages",
        "expected_test_path": "tests/Feature/LanguageTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Install/Language.php::App\\Http\\Controllers\\Install\\Language::store",
        "fqmn": "App\\Http\\Controllers\\Install\\Language@store",
        "expected_test_path": "tests/Feature/LanguageTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Install/Requirements.php::App\\Http\\Controllers\\Install\\Requirements::show",
        "fqmn": "App\\Http\\Controllers\\Install\\Requirements@show",
        "expected_test_path": "tests/Feature/RequirementsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Install/Settings.php::App\\Http\\Controllers\\Install\\Settings::create",
        "fqmn": "App\\Http\\Controllers\\Install\\Settings@create",
        "expected_test_path": "tests/Feature/SettingsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Install/Settings.php::App\\Http\\Controllers\\Install\\Settings::store",
        "fqmn": "App\\Http\\Controllers\\Install\\Settings@store",
        "expected_test_path": "tests/Feature/SettingsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Install/Updates.php::App\\Http\\Controllers\\Install\\Updates::changelog",
        "fqmn": "App\\Http\\Controllers\\Install\\Updates@changelog",
        "expected_test_path": "tests/Feature/UpdatesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Install/Updates.php::App\\Http\\Controllers\\Install\\Updates::check",
        "fqmn": "App\\Http\\Controllers\\Install\\Updates@check",
        "expected_test_path": "tests/Feature/UpdatesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Install/Updates.php::App\\Http\\Controllers\\Install\\Updates::copyFiles",
        "fqmn": "App\\Http\\Controllers\\Install\\Updates@copyFiles",
        "expected_test_path": "tests/Feature/UpdatesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Install/Updates.php::App\\Http\\Controllers\\Install\\Updates::download",
        "fqmn": "App\\Http\\Controllers\\Install\\Updates@download",
        "expected_test_path": "tests/Feature/UpdatesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Install/Updates.php::App\\Http\\Controllers\\Install\\Updates::finish",
        "fqmn": "App\\Http\\Controllers\\Install\\Updates@finish",
        "expected_test_path": "tests/Feature/UpdatesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Install/Updates.php::App\\Http\\Controllers\\Install\\Updates::index",
        "fqmn": "App\\Http\\Controllers\\Install\\Updates@index",
        "expected_test_path": "tests/Feature/UpdatesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Install/Updates.php::App\\Http\\Controllers\\Install\\Updates::redirect",
        "fqmn": "App\\Http\\Controllers\\Install\\Updates@redirect",
        "expected_test_path": "tests/Feature/UpdatesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Install/Updates.php::App\\Http\\Controllers\\Install\\Updates::run",
        "fqmn": "App\\Http\\Controllers\\Install\\Updates@run",
        "expected_test_path": "tests/Feature/UpdatesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Install/Updates.php::App\\Http\\Controllers\\Install\\Updates::steps",
        "fqmn": "App\\Http\\Controllers\\Install\\Updates@steps",
        "expected_test_path": "tests/Feature/UpdatesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Install/Updates.php::App\\Http\\Controllers\\Install\\Updates::unzip",
        "fqmn": "App\\Http\\Controllers\\Install\\Updates@unzip",
        "expected_test_path": "tests/Feature/UpdatesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/Accounts.php::App\\Http\\Controllers\\Modals\\Accounts::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\Accounts@create",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/Accounts.php::App\\Http\\Controllers\\Modals\\Accounts::store",
        "fqmn": "App\\Http\\Controllers\\Modals\\Accounts@store",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/Categories.php::App\\Http\\Controllers\\Modals\\Categories::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\Categories@create",
        "expected_test_path": "tests/Feature/CategoriesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/Categories.php::App\\Http\\Controllers\\Modals\\Categories::store",
        "fqmn": "App\\Http\\Controllers\\Modals\\Categories@store",
        "expected_test_path": "tests/Feature/CategoriesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/Companies.php::App\\Http\\Controllers\\Modals\\Companies::edit",
        "fqmn": "App\\Http\\Controllers\\Modals\\Companies@edit",
        "expected_test_path": "tests/Feature/CompaniesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/Currencies.php::App\\Http\\Controllers\\Modals\\Currencies::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\Currencies@create",
        "expected_test_path": "tests/Feature/CurrenciesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/Currencies.php::App\\Http\\Controllers\\Modals\\Currencies::store",
        "fqmn": "App\\Http\\Controllers\\Modals\\Currencies@store",
        "expected_test_path": "tests/Feature/CurrenciesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/Customers.php::App\\Http\\Controllers\\Modals\\Customers::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\Customers@create",
        "expected_test_path": "tests/Feature/CustomersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/Customers.php::App\\Http\\Controllers\\Modals\\Customers::edit",
        "fqmn": "App\\Http\\Controllers\\Modals\\Customers@edit",
        "expected_test_path": "tests/Feature/CustomersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/Customers.php::App\\Http\\Controllers\\Modals\\Customers::store",
        "fqmn": "App\\Http\\Controllers\\Modals\\Customers@store",
        "expected_test_path": "tests/Feature/CustomersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/Customers.php::App\\Http\\Controllers\\Modals\\Customers::update",
        "fqmn": "App\\Http\\Controllers\\Modals\\Customers@update",
        "expected_test_path": "tests/Feature/CustomersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/DocumentItemColumns.php::App\\Http\\Controllers\\Modals\\DocumentItemColumns::edit",
        "fqmn": "App\\Http\\Controllers\\Modals\\DocumentItemColumns@edit",
        "expected_test_path": "tests/Feature/DocumentItemColumnsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/DocumentItemColumns.php::App\\Http\\Controllers\\Modals\\DocumentItemColumns::update",
        "fqmn": "App\\Http\\Controllers\\Modals\\DocumentItemColumns@update",
        "expected_test_path": "tests/Feature/DocumentItemColumnsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/DocumentTransactions.php::App\\Http\\Controllers\\Modals\\DocumentTransactions::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\DocumentTransactions@create",
        "expected_test_path": "tests/Feature/DocumentTransactionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/DocumentTransactions.php::App\\Http\\Controllers\\Modals\\DocumentTransactions::destroy",
        "fqmn": "App\\Http\\Controllers\\Modals\\DocumentTransactions@destroy",
        "expected_test_path": "tests/Feature/DocumentTransactionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/DocumentTransactions.php::App\\Http\\Controllers\\Modals\\DocumentTransactions::edit",
        "fqmn": "App\\Http\\Controllers\\Modals\\DocumentTransactions@edit",
        "expected_test_path": "tests/Feature/DocumentTransactionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/DocumentTransactions.php::App\\Http\\Controllers\\Modals\\DocumentTransactions::store",
        "fqmn": "App\\Http\\Controllers\\Modals\\DocumentTransactions@store",
        "expected_test_path": "tests/Feature/DocumentTransactionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/DocumentTransactions.php::App\\Http\\Controllers\\Modals\\DocumentTransactions::update",
        "fqmn": "App\\Http\\Controllers\\Modals\\DocumentTransactions@update",
        "expected_test_path": "tests/Feature/DocumentTransactionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/InvoiceEmails.php::App\\Http\\Controllers\\Modals\\InvoiceEmails::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\InvoiceEmails@create",
        "expected_test_path": "tests/Feature/InvoiceEmailsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/InvoiceEmails.php::App\\Http\\Controllers\\Modals\\InvoiceEmails::store",
        "fqmn": "App\\Http\\Controllers\\Modals\\InvoiceEmails@store",
        "expected_test_path": "tests/Feature/InvoiceEmailsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/InvoiceShare.php::App\\Http\\Controllers\\Modals\\InvoiceShare::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\InvoiceShare@create",
        "expected_test_path": "tests/Feature/InvoiceShareTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/InvoiceTemplates.php::App\\Http\\Controllers\\Modals\\InvoiceTemplates::update",
        "fqmn": "App\\Http\\Controllers\\Modals\\InvoiceTemplates@update",
        "expected_test_path": "tests/Feature/InvoiceTemplatesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/Items.php::App\\Http\\Controllers\\Modals\\Items::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\Items@create",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/Items.php::App\\Http\\Controllers\\Modals\\Items::store",
        "fqmn": "App\\Http\\Controllers\\Modals\\Items@store",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/Taxes.php::App\\Http\\Controllers\\Modals\\Taxes::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\Taxes@create",
        "expected_test_path": "tests/Feature/TaxesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/Taxes.php::App\\Http\\Controllers\\Modals\\Taxes::store",
        "fqmn": "App\\Http\\Controllers\\Modals\\Taxes@store",
        "expected_test_path": "tests/Feature/TaxesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/TransactionEmails.php::App\\Http\\Controllers\\Modals\\TransactionEmails::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\TransactionEmails@create",
        "expected_test_path": "tests/Feature/TransactionEmailsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/TransactionEmails.php::App\\Http\\Controllers\\Modals\\TransactionEmails::store",
        "fqmn": "App\\Http\\Controllers\\Modals\\TransactionEmails@store",
        "expected_test_path": "tests/Feature/TransactionEmailsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/TransactionShare.php::App\\Http\\Controllers\\Modals\\TransactionShare::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\TransactionShare@create",
        "expected_test_path": "tests/Feature/TransactionShareTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/TransferTemplates.php::App\\Http\\Controllers\\Modals\\TransferTemplates::update",
        "fqmn": "App\\Http\\Controllers\\Modals\\TransferTemplates@update",
        "expected_test_path": "tests/Feature/TransferTemplatesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/Vendors.php::App\\Http\\Controllers\\Modals\\Vendors::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\Vendors@create",
        "expected_test_path": "tests/Feature/VendorsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/Vendors.php::App\\Http\\Controllers\\Modals\\Vendors::edit",
        "fqmn": "App\\Http\\Controllers\\Modals\\Vendors@edit",
        "expected_test_path": "tests/Feature/VendorsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/Vendors.php::App\\Http\\Controllers\\Modals\\Vendors::store",
        "fqmn": "App\\Http\\Controllers\\Modals\\Vendors@store",
        "expected_test_path": "tests/Feature/VendorsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modals/Vendors.php::App\\Http\\Controllers\\Modals\\Vendors::update",
        "fqmn": "App\\Http\\Controllers\\Modals\\Vendors@update",
        "expected_test_path": "tests/Feature/VendorsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modules/ApiKey.php::App\\Http\\Controllers\\Modules\\ApiKey::create",
        "fqmn": "App\\Http\\Controllers\\Modules\\ApiKey@create",
        "expected_test_path": "tests/Feature/ApiKeyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modules/ApiKey.php::App\\Http\\Controllers\\Modules\\ApiKey::store",
        "fqmn": "App\\Http\\Controllers\\Modules\\ApiKey@store",
        "expected_test_path": "tests/Feature/ApiKeyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modules/Home.php::App\\Http\\Controllers\\Modules\\Home::index",
        "fqmn": "App\\Http\\Controllers\\Modules\\Home@index",
        "expected_test_path": "tests/Feature/HomeTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modules/Home.php::App\\Http\\Controllers\\Modules\\Home::show",
        "fqmn": "App\\Http\\Controllers\\Modules\\Home@show",
        "expected_test_path": "tests/Feature/HomeTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::copy",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@copy",
        "expected_test_path": "tests/Feature/ItemTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::disable",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@disable",
        "expected_test_path": "tests/Feature/ItemTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::documentation",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@documentation",
        "expected_test_path": "tests/Feature/ItemTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::download",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@download",
        "expected_test_path": "tests/Feature/ItemTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::enable",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@enable",
        "expected_test_path": "tests/Feature/ItemTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::install",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@install",
        "expected_test_path": "tests/Feature/ItemTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::releases",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@releases",
        "expected_test_path": "tests/Feature/ItemTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::reviews",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@reviews",
        "expected_test_path": "tests/Feature/ItemTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::show",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@show",
        "expected_test_path": "tests/Feature/ItemTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::steps",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@steps",
        "expected_test_path": "tests/Feature/ItemTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::uninstall",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@uninstall",
        "expected_test_path": "tests/Feature/ItemTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::unzip",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@unzip",
        "expected_test_path": "tests/Feature/ItemTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modules/My.php::App\\Http\\Controllers\\Modules\\My::index",
        "fqmn": "App\\Http\\Controllers\\Modules\\My@index",
        "expected_test_path": "tests/Feature/MyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modules/Tiles.php::App\\Http\\Controllers\\Modules\\Tiles::categoryModules",
        "fqmn": "App\\Http\\Controllers\\Modules\\Tiles@categoryModules",
        "expected_test_path": "tests/Feature/TilesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modules/Tiles.php::App\\Http\\Controllers\\Modules\\Tiles::freeModules",
        "fqmn": "App\\Http\\Controllers\\Modules\\Tiles@freeModules",
        "expected_test_path": "tests/Feature/TilesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modules/Tiles.php::App\\Http\\Controllers\\Modules\\Tiles::loadMore",
        "fqmn": "App\\Http\\Controllers\\Modules\\Tiles@loadMore",
        "expected_test_path": "tests/Feature/TilesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modules/Tiles.php::App\\Http\\Controllers\\Modules\\Tiles::newModules",
        "fqmn": "App\\Http\\Controllers\\Modules\\Tiles@newModules",
        "expected_test_path": "tests/Feature/TilesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modules/Tiles.php::App\\Http\\Controllers\\Modules\\Tiles::paidModules",
        "fqmn": "App\\Http\\Controllers\\Modules\\Tiles@paidModules",
        "expected_test_path": "tests/Feature/TilesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modules/Tiles.php::App\\Http\\Controllers\\Modules\\Tiles::searchModules",
        "fqmn": "App\\Http\\Controllers\\Modules\\Tiles@searchModules",
        "expected_test_path": "tests/Feature/TilesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Modules/Tiles.php::App\\Http\\Controllers\\Modules\\Tiles::vendorModules",
        "fqmn": "App\\Http\\Controllers\\Modules\\Tiles@vendorModules",
        "expected_test_path": "tests/Feature/TilesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Portal/Dashboard.php::App\\Http\\Controllers\\Portal\\Dashboard::index",
        "fqmn": "App\\Http\\Controllers\\Portal\\Dashboard@index",
        "expected_test_path": "tests/Feature/DashboardTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Portal/Invoices.php::App\\Http\\Controllers\\Portal\\Invoices::finish",
        "fqmn": "App\\Http\\Controllers\\Portal\\Invoices@finish",
        "expected_test_path": "tests/Feature/InvoicesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Portal/Invoices.php::App\\Http\\Controllers\\Portal\\Invoices::index",
        "fqmn": "App\\Http\\Controllers\\Portal\\Invoices@index",
        "expected_test_path": "tests/Feature/InvoicesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Portal/Invoices.php::App\\Http\\Controllers\\Portal\\Invoices::pdfInvoice",
        "fqmn": "App\\Http\\Controllers\\Portal\\Invoices@pdfInvoice",
        "expected_test_path": "tests/Feature/InvoicesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Portal/Invoices.php::App\\Http\\Controllers\\Portal\\Invoices::preview",
        "fqmn": "App\\Http\\Controllers\\Portal\\Invoices@preview",
        "expected_test_path": "tests/Feature/InvoicesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Portal/Invoices.php::App\\Http\\Controllers\\Portal\\Invoices::printInvoice",
        "fqmn": "App\\Http\\Controllers\\Portal\\Invoices@printInvoice",
        "expected_test_path": "tests/Feature/InvoicesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Portal/Invoices.php::App\\Http\\Controllers\\Portal\\Invoices::show",
        "fqmn": "App\\Http\\Controllers\\Portal\\Invoices@show",
        "expected_test_path": "tests/Feature/InvoicesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Portal/Invoices.php::App\\Http\\Controllers\\Portal\\Invoices::signed",
        "fqmn": "App\\Http\\Controllers\\Portal\\Invoices@signed",
        "expected_test_path": "tests/Feature/InvoicesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Portal/Payments.php::App\\Http\\Controllers\\Portal\\Payments::currencies",
        "fqmn": "App\\Http\\Controllers\\Portal\\Payments@currencies",
        "expected_test_path": "tests/Feature/PaymentsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Portal/Payments.php::App\\Http\\Controllers\\Portal\\Payments::index",
        "fqmn": "App\\Http\\Controllers\\Portal\\Payments@index",
        "expected_test_path": "tests/Feature/PaymentsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Portal/Payments.php::App\\Http\\Controllers\\Portal\\Payments::pdfPayment",
        "fqmn": "App\\Http\\Controllers\\Portal\\Payments@pdfPayment",
        "expected_test_path": "tests/Feature/PaymentsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Portal/Payments.php::App\\Http\\Controllers\\Portal\\Payments::preview",
        "fqmn": "App\\Http\\Controllers\\Portal\\Payments@preview",
        "expected_test_path": "tests/Feature/PaymentsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Portal/Payments.php::App\\Http\\Controllers\\Portal\\Payments::printPayment",
        "fqmn": "App\\Http\\Controllers\\Portal\\Payments@printPayment",
        "expected_test_path": "tests/Feature/PaymentsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Portal/Payments.php::App\\Http\\Controllers\\Portal\\Payments::show",
        "fqmn": "App\\Http\\Controllers\\Portal\\Payments@show",
        "expected_test_path": "tests/Feature/PaymentsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Portal/Payments.php::App\\Http\\Controllers\\Portal\\Payments::signed",
        "fqmn": "App\\Http\\Controllers\\Portal\\Payments@signed",
        "expected_test_path": "tests/Feature/PaymentsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Portal/Profile.php::App\\Http\\Controllers\\Portal\\Profile::edit",
        "fqmn": "App\\Http\\Controllers\\Portal\\Profile@edit",
        "expected_test_path": "tests/Feature/ProfileTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Portal/Profile.php::App\\Http\\Controllers\\Portal\\Profile::index",
        "fqmn": "App\\Http\\Controllers\\Portal\\Profile@index",
        "expected_test_path": "tests/Feature/ProfileTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Portal/Profile.php::App\\Http\\Controllers\\Portal\\Profile::readOverdueInvoices",
        "fqmn": "App\\Http\\Controllers\\Portal\\Profile@readOverdueInvoices",
        "expected_test_path": "tests/Feature/ProfileTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Portal/Profile.php::App\\Http\\Controllers\\Portal\\Profile::show",
        "fqmn": "App\\Http\\Controllers\\Portal\\Profile@show",
        "expected_test_path": "tests/Feature/ProfileTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Portal/Profile.php::App\\Http\\Controllers\\Portal\\Profile::update",
        "fqmn": "App\\Http\\Controllers\\Portal\\Profile@update",
        "expected_test_path": "tests/Feature/ProfileTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::create",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@create",
        "expected_test_path": "tests/Feature/BillsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::destroy",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@destroy",
        "expected_test_path": "tests/Feature/BillsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::duplicate",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@duplicate",
        "expected_test_path": "tests/Feature/BillsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::edit",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@edit",
        "expected_test_path": "tests/Feature/BillsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::export",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@export",
        "expected_test_path": "tests/Feature/BillsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::import",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@import",
        "expected_test_path": "tests/Feature/BillsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::index",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@index",
        "expected_test_path": "tests/Feature/BillsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::markCancelled",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@markCancelled",
        "expected_test_path": "tests/Feature/BillsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::markReceived",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@markReceived",
        "expected_test_path": "tests/Feature/BillsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::pdfBill",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@pdfBill",
        "expected_test_path": "tests/Feature/BillsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::printBill",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@printBill",
        "expected_test_path": "tests/Feature/BillsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::restoreBill",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@restoreBill",
        "expected_test_path": "tests/Feature/BillsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::show",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@show",
        "expected_test_path": "tests/Feature/BillsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::store",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@store",
        "expected_test_path": "tests/Feature/BillsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::update",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@update",
        "expected_test_path": "tests/Feature/BillsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/RecurringBills.php::App\\Http\\Controllers\\Purchases\\RecurringBills::create",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@create",
        "expected_test_path": "tests/Feature/RecurringBillsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/RecurringBills.php::App\\Http\\Controllers\\Purchases\\RecurringBills::duplicate",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@duplicate",
        "expected_test_path": "tests/Feature/RecurringBillsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/RecurringBills.php::App\\Http\\Controllers\\Purchases\\RecurringBills::edit",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@edit",
        "expected_test_path": "tests/Feature/RecurringBillsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/RecurringBills.php::App\\Http\\Controllers\\Purchases\\RecurringBills::end",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@end",
        "expected_test_path": "tests/Feature/RecurringBillsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/RecurringBills.php::App\\Http\\Controllers\\Purchases\\RecurringBills::export",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@export",
        "expected_test_path": "tests/Feature/RecurringBillsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/RecurringBills.php::App\\Http\\Controllers\\Purchases\\RecurringBills::import",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@import",
        "expected_test_path": "tests/Feature/RecurringBillsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/RecurringBills.php::App\\Http\\Controllers\\Purchases\\RecurringBills::index",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@index",
        "expected_test_path": "tests/Feature/RecurringBillsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/RecurringBills.php::App\\Http\\Controllers\\Purchases\\RecurringBills::show",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@show",
        "expected_test_path": "tests/Feature/RecurringBillsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/RecurringBills.php::App\\Http\\Controllers\\Purchases\\RecurringBills::store",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@store",
        "expected_test_path": "tests/Feature/RecurringBillsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/RecurringBills.php::App\\Http\\Controllers\\Purchases\\RecurringBills::update",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@update",
        "expected_test_path": "tests/Feature/RecurringBillsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::create",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@create",
        "expected_test_path": "tests/Feature/VendorsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::createBill",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@createBill",
        "expected_test_path": "tests/Feature/VendorsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::createExpense",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@createExpense",
        "expected_test_path": "tests/Feature/VendorsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::destroy",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@destroy",
        "expected_test_path": "tests/Feature/VendorsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::disable",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@disable",
        "expected_test_path": "tests/Feature/VendorsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::duplicate",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@duplicate",
        "expected_test_path": "tests/Feature/VendorsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::edit",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@edit",
        "expected_test_path": "tests/Feature/VendorsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::enable",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@enable",
        "expected_test_path": "tests/Feature/VendorsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::export",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@export",
        "expected_test_path": "tests/Feature/VendorsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::import",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@import",
        "expected_test_path": "tests/Feature/VendorsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::index",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@index",
        "expected_test_path": "tests/Feature/VendorsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::show",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@show",
        "expected_test_path": "tests/Feature/VendorsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::store",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@store",
        "expected_test_path": "tests/Feature/VendorsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::update",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@update",
        "expected_test_path": "tests/Feature/VendorsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::create",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@create",
        "expected_test_path": "tests/Feature/CustomersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::createIncome",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@createIncome",
        "expected_test_path": "tests/Feature/CustomersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::createInvoice",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@createInvoice",
        "expected_test_path": "tests/Feature/CustomersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::destroy",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@destroy",
        "expected_test_path": "tests/Feature/CustomersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::disable",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@disable",
        "expected_test_path": "tests/Feature/CustomersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::duplicate",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@duplicate",
        "expected_test_path": "tests/Feature/CustomersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::edit",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@edit",
        "expected_test_path": "tests/Feature/CustomersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::enable",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@enable",
        "expected_test_path": "tests/Feature/CustomersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::export",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@export",
        "expected_test_path": "tests/Feature/CustomersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::import",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@import",
        "expected_test_path": "tests/Feature/CustomersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::index",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@index",
        "expected_test_path": "tests/Feature/CustomersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::show",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@show",
        "expected_test_path": "tests/Feature/CustomersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::store",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@store",
        "expected_test_path": "tests/Feature/CustomersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::update",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@update",
        "expected_test_path": "tests/Feature/CustomersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::create",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@create",
        "expected_test_path": "tests/Feature/InvoicesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::destroy",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@destroy",
        "expected_test_path": "tests/Feature/InvoicesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::duplicate",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@duplicate",
        "expected_test_path": "tests/Feature/InvoicesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::edit",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@edit",
        "expected_test_path": "tests/Feature/InvoicesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::emailInvoice",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@emailInvoice",
        "expected_test_path": "tests/Feature/InvoicesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::export",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@export",
        "expected_test_path": "tests/Feature/InvoicesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::import",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@import",
        "expected_test_path": "tests/Feature/InvoicesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::index",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@index",
        "expected_test_path": "tests/Feature/InvoicesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::markCancelled",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@markCancelled",
        "expected_test_path": "tests/Feature/InvoicesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::markSent",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@markSent",
        "expected_test_path": "tests/Feature/InvoicesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::pdfInvoice",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@pdfInvoice",
        "expected_test_path": "tests/Feature/InvoicesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::printInvoice",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@printInvoice",
        "expected_test_path": "tests/Feature/InvoicesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::restoreInvoice",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@restoreInvoice",
        "expected_test_path": "tests/Feature/InvoicesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::show",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@show",
        "expected_test_path": "tests/Feature/InvoicesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::store",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@store",
        "expected_test_path": "tests/Feature/InvoicesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::update",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@update",
        "expected_test_path": "tests/Feature/InvoicesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/RecurringInvoices.php::App\\Http\\Controllers\\Sales\\RecurringInvoices::create",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@create",
        "expected_test_path": "tests/Feature/RecurringInvoicesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/RecurringInvoices.php::App\\Http\\Controllers\\Sales\\RecurringInvoices::duplicate",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@duplicate",
        "expected_test_path": "tests/Feature/RecurringInvoicesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/RecurringInvoices.php::App\\Http\\Controllers\\Sales\\RecurringInvoices::edit",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@edit",
        "expected_test_path": "tests/Feature/RecurringInvoicesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/RecurringInvoices.php::App\\Http\\Controllers\\Sales\\RecurringInvoices::end",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@end",
        "expected_test_path": "tests/Feature/RecurringInvoicesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/RecurringInvoices.php::App\\Http\\Controllers\\Sales\\RecurringInvoices::export",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@export",
        "expected_test_path": "tests/Feature/RecurringInvoicesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/RecurringInvoices.php::App\\Http\\Controllers\\Sales\\RecurringInvoices::import",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@import",
        "expected_test_path": "tests/Feature/RecurringInvoicesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/RecurringInvoices.php::App\\Http\\Controllers\\Sales\\RecurringInvoices::index",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@index",
        "expected_test_path": "tests/Feature/RecurringInvoicesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/RecurringInvoices.php::App\\Http\\Controllers\\Sales\\RecurringInvoices::show",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@show",
        "expected_test_path": "tests/Feature/RecurringInvoicesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/RecurringInvoices.php::App\\Http\\Controllers\\Sales\\RecurringInvoices::store",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@store",
        "expected_test_path": "tests/Feature/RecurringInvoicesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Sales/RecurringInvoices.php::App\\Http\\Controllers\\Sales\\RecurringInvoices::update",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@update",
        "expected_test_path": "tests/Feature/RecurringInvoicesTest.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/Categories.php::App\\Http\\Controllers\\Settings\\Categories::create",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@create",
        "expected_test_path": "tests/Feature/CategoriesTest.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/Categories.php::App\\Http\\Controllers\\Settings\\Categories::destroy",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@destroy",
        "expected_test_path": "tests/Feature/CategoriesTest.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/Categories.php::App\\Http\\Controllers\\Settings\\Categories::disable",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@disable",
        "expected_test_path": "tests/Feature/CategoriesTest.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/Categories.php::App\\Http\\Controllers\\Settings\\Categories::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@edit",
        "expected_test_path": "tests/Feature/CategoriesTest.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/Categories.php::App\\Http\\Controllers\\Settings\\Categories::enable",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@enable",
        "expected_test_path": "tests/Feature/CategoriesTest.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/Categories.php::App\\Http\\Controllers\\Settings\\Categories::export",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@export",
        "expected_test_path": "tests/Feature/CategoriesTest.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/Categories.php::App\\Http\\Controllers\\Settings\\Categories::import",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@import",
        "expected_test_path": "tests/Feature/CategoriesTest.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/Categories.php::App\\Http\\Controllers\\Settings\\Categories::index",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@index",
        "expected_test_path": "tests/Feature/CategoriesTest.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/Categories.php::App\\Http\\Controllers\\Settings\\Categories::show",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@show",
        "expected_test_path": "tests/Feature/CategoriesTest.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/Categories.php::App\\Http\\Controllers\\Settings\\Categories::store",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@store",
        "expected_test_path": "tests/Feature/CategoriesTest.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/Categories.php::App\\Http\\Controllers\\Settings\\Categories::update",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@update",
        "expected_test_path": "tests/Feature/CategoriesTest.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/Company.php::App\\Http\\Controllers\\Settings\\Company::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\Company@edit",
        "expected_test_path": "tests/Feature/CompanyTest.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/Currencies.php::App\\Http\\Controllers\\Settings\\Currencies::config",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@config",
        "expected_test_path": "tests/Feature/CurrenciesTest.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/Currencies.php::App\\Http\\Controllers\\Settings\\Currencies::create",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@create",
        "expected_test_path": "tests/Feature/CurrenciesTest.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/Currencies.php::App\\Http\\Controllers\\Settings\\Currencies::destroy",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@destroy",
        "expected_test_path": "tests/Feature/CurrenciesTest.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/Currencies.php::App\\Http\\Controllers\\Settings\\Currencies::disable",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@disable",
        "expected_test_path": "tests/Feature/CurrenciesTest.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/Currencies.php::App\\Http\\Controllers\\Settings\\Currencies::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@edit",
        "expected_test_path": "tests/Feature/CurrenciesTest.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/Currencies.php::App\\Http\\Controllers\\Settings\\Currencies::enable",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@enable",
        "expected_test_path": "tests/Feature/CurrenciesTest.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/Currencies.php::App\\Http\\Controllers\\Settings\\Currencies::index",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@index",
        "expected_test_path": "tests/Feature/CurrenciesTest.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/Currencies.php::App\\Http\\Controllers\\Settings\\Currencies::show",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@show",
        "expected_test_path": "tests/Feature/CurrenciesTest.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/Currencies.php::App\\Http\\Controllers\\Settings\\Currencies::store",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@store",
        "expected_test_path": "tests/Feature/CurrenciesTest.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/Currencies.php::App\\Http\\Controllers\\Settings\\Currencies::update",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@update",
        "expected_test_path": "tests/Feature/CurrenciesTest.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/Defaults.php::App\\Http\\Controllers\\Settings\\Defaults::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\Defaults@edit",
        "expected_test_path": "tests/Feature/DefaultsTest.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/Email.php::App\\Http\\Controllers\\Settings\\Email::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\Email@edit",
        "expected_test_path": "tests/Feature/EmailTest.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/EmailTemplates.php::App\\Http\\Controllers\\Settings\\EmailTemplates::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\EmailTemplates@edit",
        "expected_test_path": "tests/Feature/EmailTemplatesTest.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/EmailTemplates.php::App\\Http\\Controllers\\Settings\\EmailTemplates::get",
        "fqmn": "App\\Http\\Controllers\\Settings\\EmailTemplates@get",
        "expected_test_path": "tests/Feature/EmailTemplatesTest.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/EmailTemplates.php::App\\Http\\Controllers\\Settings\\EmailTemplates::update",
        "fqmn": "App\\Http\\Controllers\\Settings\\EmailTemplates@update",
        "expected_test_path": "tests/Feature/EmailTemplatesTest.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/Invoice.php::App\\Http\\Controllers\\Settings\\Invoice::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\Invoice@edit",
        "expected_test_path": "tests/Feature/InvoiceTest.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/Localisation.php::App\\Http\\Controllers\\Settings\\Localisation::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\Localisation@edit",
        "expected_test_path": "tests/Feature/LocalisationTest.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/Modules.php::App\\Http\\Controllers\\Settings\\Modules::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\Modules@edit",
        "expected_test_path": "tests/Feature/ModulesTest.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/Modules.php::App\\Http\\Controllers\\Settings\\Modules::update",
        "fqmn": "App\\Http\\Controllers\\Settings\\Modules@update",
        "expected_test_path": "tests/Feature/ModulesTest.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/Schedule.php::App\\Http\\Controllers\\Settings\\Schedule::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\Schedule@edit",
        "expected_test_path": "tests/Feature/ScheduleTest.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/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::create",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@create",
        "expected_test_path": "tests/Feature/TaxesTest.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/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::destroy",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@destroy",
        "expected_test_path": "tests/Feature/TaxesTest.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/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::disable",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@disable",
        "expected_test_path": "tests/Feature/TaxesTest.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/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@edit",
        "expected_test_path": "tests/Feature/TaxesTest.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/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::enable",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@enable",
        "expected_test_path": "tests/Feature/TaxesTest.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/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::export",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@export",
        "expected_test_path": "tests/Feature/TaxesTest.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/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::import",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@import",
        "expected_test_path": "tests/Feature/TaxesTest.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/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::index",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@index",
        "expected_test_path": "tests/Feature/TaxesTest.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/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::show",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@show",
        "expected_test_path": "tests/Feature/TaxesTest.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/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::store",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@store",
        "expected_test_path": "tests/Feature/TaxesTest.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/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::update",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@update",
        "expected_test_path": "tests/Feature/TaxesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Wizard/Companies.php::App\\Http\\Controllers\\Wizard\\Companies::edit",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Companies@edit",
        "expected_test_path": "tests/Feature/CompaniesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Wizard/Companies.php::App\\Http\\Controllers\\Wizard\\Companies::update",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Companies@update",
        "expected_test_path": "tests/Feature/CompaniesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Wizard/Currencies.php::App\\Http\\Controllers\\Wizard\\Currencies::destroy",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Currencies@destroy",
        "expected_test_path": "tests/Feature/CurrenciesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Wizard/Currencies.php::App\\Http\\Controllers\\Wizard\\Currencies::index",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Currencies@index",
        "expected_test_path": "tests/Feature/CurrenciesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Wizard/Currencies.php::App\\Http\\Controllers\\Wizard\\Currencies::show",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Currencies@show",
        "expected_test_path": "tests/Feature/CurrenciesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Wizard/Currencies.php::App\\Http\\Controllers\\Wizard\\Currencies::store",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Currencies@store",
        "expected_test_path": "tests/Feature/CurrenciesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Wizard/Currencies.php::App\\Http\\Controllers\\Wizard\\Currencies::update",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Currencies@update",
        "expected_test_path": "tests/Feature/CurrenciesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Wizard/Finish.php::App\\Http\\Controllers\\Wizard\\Finish::index",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Finish@index",
        "expected_test_path": "tests/Feature/FinishTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Wizard/Finish.php::App\\Http\\Controllers\\Wizard\\Finish::update",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Finish@update",
        "expected_test_path": "tests/Feature/FinishTest.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/Forgot.php::App\\Http\\Requests\\Auth\\Forgot::authorize",
        "fqmn": "App\\Http\\Requests\\Auth\\Forgot@authorize",
        "expected_test_path": "tests/Feature/ForgotTest.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/Forgot.php::App\\Http\\Requests\\Auth\\Forgot::rules",
        "fqmn": "App\\Http\\Requests\\Auth\\Forgot@rules",
        "expected_test_path": "tests/Feature/ForgotTest.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/Login.php::App\\Http\\Requests\\Auth\\Login::authorize",
        "fqmn": "App\\Http\\Requests\\Auth\\Login@authorize",
        "expected_test_path": "tests/Feature/LoginTest.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/Login.php::App\\Http\\Requests\\Auth\\Login::rules",
        "fqmn": "App\\Http\\Requests\\Auth\\Login@rules",
        "expected_test_path": "tests/Feature/LoginTest.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/Register.php::App\\Http\\Requests\\Auth\\Register::authorize",
        "fqmn": "App\\Http\\Requests\\Auth\\Register@authorize",
        "expected_test_path": "tests/Feature/RegisterTest.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/Register.php::App\\Http\\Requests\\Auth\\Register::rules",
        "fqmn": "App\\Http\\Requests\\Auth\\Register@rules",
        "expected_test_path": "tests/Feature/RegisterTest.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/Reset.php::App\\Http\\Requests\\Auth\\Reset::authorize",
        "fqmn": "App\\Http\\Requests\\Auth\\Reset@authorize",
        "expected_test_path": "tests/Feature/ResetTest.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/Reset.php::App\\Http\\Requests\\Auth\\Reset::rules",
        "fqmn": "App\\Http\\Requests\\Auth\\Reset@rules",
        "expected_test_path": "tests/Feature/ResetTest.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/User.php::App\\Http\\Requests\\Auth\\User::authorize",
        "fqmn": "App\\Http\\Requests\\Auth\\User@authorize",
        "expected_test_path": "tests/Feature/UserTest.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/User.php::App\\Http\\Requests\\Auth\\User::messages",
        "fqmn": "App\\Http\\Requests\\Auth\\User@messages",
        "expected_test_path": "tests/Feature/UserTest.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/User.php::App\\Http\\Requests\\Auth\\User::rules",
        "fqmn": "App\\Http\\Requests\\Auth\\User@rules",
        "expected_test_path": "tests/Feature/UserTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Banking/Account.php::App\\Http\\Requests\\Banking\\Account::rules",
        "fqmn": "App\\Http\\Requests\\Banking\\Account@rules",
        "expected_test_path": "tests/Feature/AccountTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Banking/Reconciliation.php::App\\Http\\Requests\\Banking\\Reconciliation::rules",
        "fqmn": "App\\Http\\Requests\\Banking\\Reconciliation@rules",
        "expected_test_path": "tests/Feature/ReconciliationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Banking/ReconciliationCalculate.php::App\\Http\\Requests\\Banking\\ReconciliationCalculate::rules",
        "fqmn": "App\\Http\\Requests\\Banking\\ReconciliationCalculate@rules",
        "expected_test_path": "tests/Feature/ReconciliationCalculateTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Banking/Transaction.php::App\\Http\\Requests\\Banking\\Transaction::rules",
        "fqmn": "App\\Http\\Requests\\Banking\\Transaction@rules",
        "expected_test_path": "tests/Feature/TransactionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Banking/TransactionConnect.php::App\\Http\\Requests\\Banking\\TransactionConnect::rules",
        "fqmn": "App\\Http\\Requests\\Banking\\TransactionConnect@rules",
        "expected_test_path": "tests/Feature/TransactionConnectTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Banking/Transfer.php::App\\Http\\Requests\\Banking\\Transfer::rules",
        "fqmn": "App\\Http\\Requests\\Banking\\Transfer@rules",
        "expected_test_path": "tests/Feature/TransferTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Common/BulkAction.php::App\\Http\\Requests\\Common\\BulkAction::rules",
        "fqmn": "App\\Http\\Requests\\Common\\BulkAction@rules",
        "expected_test_path": "tests/Feature/BulkActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Common/Company.php::App\\Http\\Requests\\Common\\Company::messages",
        "fqmn": "App\\Http\\Requests\\Common\\Company@messages",
        "expected_test_path": "tests/Feature/CompanyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Common/Company.php::App\\Http\\Requests\\Common\\Company::rules",
        "fqmn": "App\\Http\\Requests\\Common\\Company@rules",
        "expected_test_path": "tests/Feature/CompanyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Common/Contact.php::App\\Http\\Requests\\Common\\Contact::messages",
        "fqmn": "App\\Http\\Requests\\Common\\Contact@messages",
        "expected_test_path": "tests/Feature/ContactTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Common/Contact.php::App\\Http\\Requests\\Common\\Contact::rules",
        "fqmn": "App\\Http\\Requests\\Common\\Contact@rules",
        "expected_test_path": "tests/Feature/ContactTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Common/ContactPerson.php::App\\Http\\Requests\\Common\\ContactPerson::rules",
        "fqmn": "App\\Http\\Requests\\Common\\ContactPerson@rules",
        "expected_test_path": "tests/Feature/ContactPersonTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Common/CustomMail.php::App\\Http\\Requests\\Common\\CustomMail::rules",
        "fqmn": "App\\Http\\Requests\\Common\\CustomMail@rules",
        "expected_test_path": "tests/Feature/CustomMailTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Common/Dashboard.php::App\\Http\\Requests\\Common\\Dashboard::rules",
        "fqmn": "App\\Http\\Requests\\Common\\Dashboard@rules",
        "expected_test_path": "tests/Feature/DashboardTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Common/Import.php::App\\Http\\Requests\\Common\\Import::rules",
        "fqmn": "App\\Http\\Requests\\Common\\Import@rules",
        "expected_test_path": "tests/Feature/ImportTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Common/Item.php::App\\Http\\Requests\\Common\\Item::maxSizePrice",
        "fqmn": "App\\Http\\Requests\\Common\\Item@maxSizePrice",
        "expected_test_path": "tests/Feature/ItemTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Common/Item.php::App\\Http\\Requests\\Common\\Item::messages",
        "fqmn": "App\\Http\\Requests\\Common\\Item@messages",
        "expected_test_path": "tests/Feature/ItemTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Common/Item.php::App\\Http\\Requests\\Common\\Item::rules",
        "fqmn": "App\\Http\\Requests\\Common\\Item@rules",
        "expected_test_path": "tests/Feature/ItemTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Common/ItemTax.php::App\\Http\\Requests\\Common\\ItemTax::rules",
        "fqmn": "App\\Http\\Requests\\Common\\ItemTax@rules",
        "expected_test_path": "tests/Feature/ItemTaxTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Common/Notification.php::App\\Http\\Requests\\Common\\Notification::rules",
        "fqmn": "App\\Http\\Requests\\Common\\Notification@rules",
        "expected_test_path": "tests/Feature/NotificationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Common/ReportShow.php::App\\Http\\Requests\\Common\\ReportShow::failedValidation",
        "fqmn": "App\\Http\\Requests\\Common\\ReportShow@failedValidation",
        "expected_test_path": "tests/Feature/ReportShowTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Common/ReportShow.php::App\\Http\\Requests\\Common\\ReportShow::rules",
        "fqmn": "App\\Http\\Requests\\Common\\ReportShow@rules",
        "expected_test_path": "tests/Feature/ReportShowTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Common/TotalItem.php::App\\Http\\Requests\\Common\\TotalItem::messages",
        "fqmn": "App\\Http\\Requests\\Common\\TotalItem@messages",
        "expected_test_path": "tests/Feature/TotalItemTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Common/TotalItem.php::App\\Http\\Requests\\Common\\TotalItem::rules",
        "fqmn": "App\\Http\\Requests\\Common\\TotalItem@rules",
        "expected_test_path": "tests/Feature/TotalItemTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Common/Widget.php::App\\Http\\Requests\\Common\\Widget::messages",
        "fqmn": "App\\Http\\Requests\\Common\\Widget@messages",
        "expected_test_path": "tests/Feature/WidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Common/Widget.php::App\\Http\\Requests\\Common\\Widget::rules",
        "fqmn": "App\\Http\\Requests\\Common\\Widget@rules",
        "expected_test_path": "tests/Feature/WidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Document/Document.php::App\\Http\\Requests\\Document\\Document::messages",
        "fqmn": "App\\Http\\Requests\\Document\\Document@messages",
        "expected_test_path": "tests/Feature/DocumentTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Document/Document.php::App\\Http\\Requests\\Document\\Document::rules",
        "fqmn": "App\\Http\\Requests\\Document\\Document@rules",
        "expected_test_path": "tests/Feature/DocumentTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Document/DocumentAddItem.php::App\\Http\\Requests\\Document\\DocumentAddItem::rules",
        "fqmn": "App\\Http\\Requests\\Document\\DocumentAddItem@rules",
        "expected_test_path": "tests/Feature/DocumentAddItemTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Document/DocumentHistory.php::App\\Http\\Requests\\Document\\DocumentHistory::rules",
        "fqmn": "App\\Http\\Requests\\Document\\DocumentHistory@rules",
        "expected_test_path": "tests/Feature/DocumentHistoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Document/DocumentItem.php::App\\Http\\Requests\\Document\\DocumentItem::messages",
        "fqmn": "App\\Http\\Requests\\Document\\DocumentItem@messages",
        "expected_test_path": "tests/Feature/DocumentItemTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Document/DocumentItem.php::App\\Http\\Requests\\Document\\DocumentItem::rules",
        "fqmn": "App\\Http\\Requests\\Document\\DocumentItem@rules",
        "expected_test_path": "tests/Feature/DocumentItemTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Document/DocumentItemTax.php::App\\Http\\Requests\\Document\\DocumentItemTax::rules",
        "fqmn": "App\\Http\\Requests\\Document\\DocumentItemTax@rules",
        "expected_test_path": "tests/Feature/DocumentItemTaxTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Document/DocumentTotal.php::App\\Http\\Requests\\Document\\DocumentTotal::rules",
        "fqmn": "App\\Http\\Requests\\Document\\DocumentTotal@rules",
        "expected_test_path": "tests/Feature/DocumentTotalTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Install/Database.php::App\\Http\\Requests\\Install\\Database::rules",
        "fqmn": "App\\Http\\Requests\\Install\\Database@rules",
        "expected_test_path": "tests/Feature/DatabaseTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Install/Setting.php::App\\Http\\Requests\\Install\\Setting::rules",
        "fqmn": "App\\Http\\Requests\\Install\\Setting@rules",
        "expected_test_path": "tests/Feature/SettingTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Module/Install.php::App\\Http\\Requests\\Module\\Install::rules",
        "fqmn": "App\\Http\\Requests\\Module\\Install@rules",
        "expected_test_path": "tests/Feature/InstallTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Module/Module.php::App\\Http\\Requests\\Module\\Module::__construct",
        "fqmn": "App\\Http\\Requests\\Module\\Module@__construct",
        "expected_test_path": "tests/Feature/ModuleTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Module/Module.php::App\\Http\\Requests\\Module\\Module::rules",
        "fqmn": "App\\Http\\Requests\\Module\\Module@rules",
        "expected_test_path": "tests/Feature/ModuleTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Portal/InvoiceConfirm.php::App\\Http\\Requests\\Portal\\InvoiceConfirm::rules",
        "fqmn": "App\\Http\\Requests\\Portal\\InvoiceConfirm@rules",
        "expected_test_path": "tests/Feature/InvoiceConfirmTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Portal/InvoicePayment.php::App\\Http\\Requests\\Portal\\InvoicePayment::rules",
        "fqmn": "App\\Http\\Requests\\Portal\\InvoicePayment@rules",
        "expected_test_path": "tests/Feature/InvoicePaymentTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Portal/InvoiceShow.php::App\\Http\\Requests\\Portal\\InvoiceShow::authorize",
        "fqmn": "App\\Http\\Requests\\Portal\\InvoiceShow@authorize",
        "expected_test_path": "tests/Feature/InvoiceShowTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Portal/InvoiceShow.php::App\\Http\\Requests\\Portal\\InvoiceShow::rules",
        "fqmn": "App\\Http\\Requests\\Portal\\InvoiceShow@rules",
        "expected_test_path": "tests/Feature/InvoiceShowTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Portal/PaymentShow.php::App\\Http\\Requests\\Portal\\PaymentShow::authorize",
        "fqmn": "App\\Http\\Requests\\Portal\\PaymentShow@authorize",
        "expected_test_path": "tests/Feature/PaymentShowTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Portal/PaymentShow.php::App\\Http\\Requests\\Portal\\PaymentShow::rules",
        "fqmn": "App\\Http\\Requests\\Portal\\PaymentShow@rules",
        "expected_test_path": "tests/Feature/PaymentShowTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Portal/Profile.php::App\\Http\\Requests\\Portal\\Profile::messages",
        "fqmn": "App\\Http\\Requests\\Portal\\Profile@messages",
        "expected_test_path": "tests/Feature/ProfileTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Portal/Profile.php::App\\Http\\Requests\\Portal\\Profile::rules",
        "fqmn": "App\\Http\\Requests\\Portal\\Profile@rules",
        "expected_test_path": "tests/Feature/ProfileTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Setting/Category.php::App\\Http\\Requests\\Setting\\Category::rules",
        "fqmn": "App\\Http\\Requests\\Setting\\Category@rules",
        "expected_test_path": "tests/Feature/CategoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Setting/Currency.php::App\\Http\\Requests\\Setting\\Currency::rules",
        "fqmn": "App\\Http\\Requests\\Setting\\Currency@rules",
        "expected_test_path": "tests/Feature/CurrencyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Setting/EmailTemplate.php::App\\Http\\Requests\\Setting\\EmailTemplate::rules",
        "fqmn": "App\\Http\\Requests\\Setting\\EmailTemplate@rules",
        "expected_test_path": "tests/Feature/EmailTemplateTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Setting/Module.php::App\\Http\\Requests\\Setting\\Module::rules",
        "fqmn": "App\\Http\\Requests\\Setting\\Module@rules",
        "expected_test_path": "tests/Feature/ModuleTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Setting/Setting.php::App\\Http\\Requests\\Setting\\Setting::messages",
        "fqmn": "App\\Http\\Requests\\Setting\\Setting@messages",
        "expected_test_path": "tests/Feature/SettingTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Setting/Setting.php::App\\Http\\Requests\\Setting\\Setting::rules",
        "fqmn": "App\\Http\\Requests\\Setting\\Setting@rules",
        "expected_test_path": "tests/Feature/SettingTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Setting/Tax.php::App\\Http\\Requests\\Setting\\Tax::rules",
        "fqmn": "App\\Http\\Requests\\Setting\\Tax@rules",
        "expected_test_path": "tests/Feature/TaxTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Wizard/Company.php::App\\Http\\Requests\\Wizard\\Company::__construct",
        "fqmn": "App\\Http\\Requests\\Wizard\\Company@__construct",
        "expected_test_path": "tests/Feature/CompanyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Wizard/Company.php::App\\Http\\Requests\\Wizard\\Company::messages",
        "fqmn": "App\\Http\\Requests\\Wizard\\Company@messages",
        "expected_test_path": "tests/Feature/CompanyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Wizard/Company.php::App\\Http\\Requests\\Wizard\\Company::rules",
        "fqmn": "App\\Http\\Requests\\Wizard\\Company@rules",
        "expected_test_path": "tests/Feature/CompanyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Resources/Auth/Role.php::App\\Http\\Resources\\Auth\\Role::toArray",
        "fqmn": "App\\Http\\Resources\\Auth\\Role@toArray",
        "expected_test_path": "tests/Feature/RoleTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Resources/Auth/User.php::App\\Http\\Resources\\Auth\\User::toArray",
        "fqmn": "App\\Http\\Resources\\Auth\\User@toArray",
        "expected_test_path": "tests/Feature/UserTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Resources/Banking/Account.php::App\\Http\\Resources\\Banking\\Account::toArray",
        "fqmn": "App\\Http\\Resources\\Banking\\Account@toArray",
        "expected_test_path": "tests/Feature/AccountTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Resources/Banking/Reconciliation.php::App\\Http\\Resources\\Banking\\Reconciliation::toArray",
        "fqmn": "App\\Http\\Resources\\Banking\\Reconciliation@toArray",
        "expected_test_path": "tests/Feature/ReconciliationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Resources/Banking/Transaction.php::App\\Http\\Resources\\Banking\\Transaction::toArray",
        "fqmn": "App\\Http\\Resources\\Banking\\Transaction@toArray",
        "expected_test_path": "tests/Feature/TransactionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Resources/Banking/TransactionTax.php::App\\Http\\Resources\\Banking\\TransactionTax::toArray",
        "fqmn": "App\\Http\\Resources\\Banking\\TransactionTax@toArray",
        "expected_test_path": "tests/Feature/TransactionTaxTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Resources/Banking/Transfer.php::App\\Http\\Resources\\Banking\\Transfer::toArray",
        "fqmn": "App\\Http\\Resources\\Banking\\Transfer@toArray",
        "expected_test_path": "tests/Feature/TransferTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Resources/Common/Company.php::App\\Http\\Resources\\Common\\Company::toArray",
        "fqmn": "App\\Http\\Resources\\Common\\Company@toArray",
        "expected_test_path": "tests/Feature/CompanyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Resources/Common/Contact.php::App\\Http\\Resources\\Common\\Contact::toArray",
        "fqmn": "App\\Http\\Resources\\Common\\Contact@toArray",
        "expected_test_path": "tests/Feature/ContactTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Resources/Common/ContactPerson.php::App\\Http\\Resources\\Common\\ContactPerson::toArray",
        "fqmn": "App\\Http\\Resources\\Common\\ContactPerson@toArray",
        "expected_test_path": "tests/Feature/ContactPersonTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Resources/Common/Dashboard.php::App\\Http\\Resources\\Common\\Dashboard::toArray",
        "fqmn": "App\\Http\\Resources\\Common\\Dashboard@toArray",
        "expected_test_path": "tests/Feature/DashboardTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Resources/Common/Item.php::App\\Http\\Resources\\Common\\Item::toArray",
        "fqmn": "App\\Http\\Resources\\Common\\Item@toArray",
        "expected_test_path": "tests/Feature/ItemTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Resources/Common/ItemTax.php::App\\Http\\Resources\\Common\\ItemTax::toArray",
        "fqmn": "App\\Http\\Resources\\Common\\ItemTax@toArray",
        "expected_test_path": "tests/Feature/ItemTaxTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Resources/Common/Widget.php::App\\Http\\Resources\\Common\\Widget::toArray",
        "fqmn": "App\\Http\\Resources\\Common\\Widget@toArray",
        "expected_test_path": "tests/Feature/WidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Resources/Document/Document.php::App\\Http\\Resources\\Document\\Document::toArray",
        "fqmn": "App\\Http\\Resources\\Document\\Document@toArray",
        "expected_test_path": "tests/Feature/DocumentTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Resources/Document/DocumentHistory.php::App\\Http\\Resources\\Document\\DocumentHistory::toArray",
        "fqmn": "App\\Http\\Resources\\Document\\DocumentHistory@toArray",
        "expected_test_path": "tests/Feature/DocumentHistoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Resources/Document/DocumentItem.php::App\\Http\\Resources\\Document\\DocumentItem::toArray",
        "fqmn": "App\\Http\\Resources\\Document\\DocumentItem@toArray",
        "expected_test_path": "tests/Feature/DocumentItemTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Resources/Document/DocumentItemTax.php::App\\Http\\Resources\\Document\\DocumentItemTax::toArray",
        "fqmn": "App\\Http\\Resources\\Document\\DocumentItemTax@toArray",
        "expected_test_path": "tests/Feature/DocumentItemTaxTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Resources/Document/DocumentTotal.php::App\\Http\\Resources\\Document\\DocumentTotal::toArray",
        "fqmn": "App\\Http\\Resources\\Document\\DocumentTotal@toArray",
        "expected_test_path": "tests/Feature/DocumentTotalTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Resources/Setting/Category.php::App\\Http\\Resources\\Setting\\Category::toArray",
        "fqmn": "App\\Http\\Resources\\Setting\\Category@toArray",
        "expected_test_path": "tests/Feature/CategoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Resources/Setting/Currency.php::App\\Http\\Resources\\Setting\\Currency::toArray",
        "fqmn": "App\\Http\\Resources\\Setting\\Currency@toArray",
        "expected_test_path": "tests/Feature/CurrencyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Resources/Setting/Setting.php::App\\Http\\Resources\\Setting\\Setting::toArray",
        "fqmn": "App\\Http\\Resources\\Setting\\Setting@toArray",
        "expected_test_path": "tests/Feature/SettingTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Resources/Setting/Tax.php::App\\Http\\Resources\\Setting\\Tax::toArray",
        "fqmn": "App\\Http\\Resources\\Setting\\Tax@toArray",
        "expected_test_path": "tests/Feature/TaxTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Auth/CreateInvitation.php::App\\Jobs\\Auth\\CreateInvitation::handle",
        "fqmn": "App\\Jobs\\Auth\\CreateInvitation@handle",
        "expected_test_path": "tests/Feature/CreateInvitationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Auth/CreatePermission.php::App\\Jobs\\Auth\\CreatePermission::handle",
        "fqmn": "App\\Jobs\\Auth\\CreatePermission@handle",
        "expected_test_path": "tests/Feature/CreatePermissionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Auth/CreateRole.php::App\\Jobs\\Auth\\CreateRole::handle",
        "fqmn": "App\\Jobs\\Auth\\CreateRole@handle",
        "expected_test_path": "tests/Feature/CreateRoleTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Auth/CreateUser.php::App\\Jobs\\Auth\\CreateUser::handle",
        "fqmn": "App\\Jobs\\Auth\\CreateUser@handle",
        "expected_test_path": "tests/Feature/CreateUserTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Auth/DeleteInvitation.php::App\\Jobs\\Auth\\DeleteInvitation::handle",
        "fqmn": "App\\Jobs\\Auth\\DeleteInvitation@handle",
        "expected_test_path": "tests/Feature/DeleteInvitationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Auth/DeletePermission.php::App\\Jobs\\Auth\\DeletePermission::handle",
        "fqmn": "App\\Jobs\\Auth\\DeletePermission@handle",
        "expected_test_path": "tests/Feature/DeletePermissionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Auth/DeleteRole.php::App\\Jobs\\Auth\\DeleteRole::handle",
        "fqmn": "App\\Jobs\\Auth\\DeleteRole@handle",
        "expected_test_path": "tests/Feature/DeleteRoleTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Auth/DeleteUser.php::App\\Jobs\\Auth\\DeleteUser::handle",
        "fqmn": "App\\Jobs\\Auth\\DeleteUser@handle",
        "expected_test_path": "tests/Feature/DeleteUserTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Auth/UpdatePermission.php::App\\Jobs\\Auth\\UpdatePermission::handle",
        "fqmn": "App\\Jobs\\Auth\\UpdatePermission@handle",
        "expected_test_path": "tests/Feature/UpdatePermissionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Auth/UpdateRole.php::App\\Jobs\\Auth\\UpdateRole::handle",
        "fqmn": "App\\Jobs\\Auth\\UpdateRole@handle",
        "expected_test_path": "tests/Feature/UpdateRoleTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Auth/UpdateUser.php::App\\Jobs\\Auth\\UpdateUser::handle",
        "fqmn": "App\\Jobs\\Auth\\UpdateUser@handle",
        "expected_test_path": "tests/Feature/UpdateUserTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Banking/CreateAccount.php::App\\Jobs\\Banking\\CreateAccount::handle",
        "fqmn": "App\\Jobs\\Banking\\CreateAccount@handle",
        "expected_test_path": "tests/Feature/CreateAccountTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Banking/CreateBankingDocumentTransaction.php::App\\Jobs\\Banking\\CreateBankingDocumentTransaction::handle",
        "fqmn": "App\\Jobs\\Banking\\CreateBankingDocumentTransaction@handle",
        "expected_test_path": "tests/Feature/CreateBankingDocumentTransactionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Banking/CreateReconciliation.php::App\\Jobs\\Banking\\CreateReconciliation::handle",
        "fqmn": "App\\Jobs\\Banking\\CreateReconciliation@handle",
        "expected_test_path": "tests/Feature/CreateReconciliationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Banking/CreateTransaction.php::App\\Jobs\\Banking\\CreateTransaction::handle",
        "fqmn": "App\\Jobs\\Banking\\CreateTransaction@handle",
        "expected_test_path": "tests/Feature/CreateTransactionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Banking/CreateTransactionTaxes.php::App\\Jobs\\Banking\\CreateTransactionTaxes::getTaxesCalculated",
        "fqmn": "App\\Jobs\\Banking\\CreateTransactionTaxes@getTaxesCalculated",
        "expected_test_path": "tests/Feature/CreateTransactionTaxesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Banking/CreateTransactionTaxes.php::App\\Jobs\\Banking\\CreateTransactionTaxes::handle",
        "fqmn": "App\\Jobs\\Banking\\CreateTransactionTaxes@handle",
        "expected_test_path": "tests/Feature/CreateTransactionTaxesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Banking/CreateTransfer.php::App\\Jobs\\Banking\\CreateTransfer::handle",
        "fqmn": "App\\Jobs\\Banking\\CreateTransfer@handle",
        "expected_test_path": "tests/Feature/CreateTransferTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Banking/DeleteAccount.php::App\\Jobs\\Banking\\DeleteAccount::getRelationships",
        "fqmn": "App\\Jobs\\Banking\\DeleteAccount@getRelationships",
        "expected_test_path": "tests/Feature/DeleteAccountTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Banking/DeleteAccount.php::App\\Jobs\\Banking\\DeleteAccount::handle",
        "fqmn": "App\\Jobs\\Banking\\DeleteAccount@handle",
        "expected_test_path": "tests/Feature/DeleteAccountTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Banking/DeleteReconciliation.php::App\\Jobs\\Banking\\DeleteReconciliation::handle",
        "fqmn": "App\\Jobs\\Banking\\DeleteReconciliation@handle",
        "expected_test_path": "tests/Feature/DeleteReconciliationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Banking/DeleteTransaction.php::App\\Jobs\\Banking\\DeleteTransaction::handle",
        "fqmn": "App\\Jobs\\Banking\\DeleteTransaction@handle",
        "expected_test_path": "tests/Feature/DeleteTransactionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Banking/DeleteTransfer.php::App\\Jobs\\Banking\\DeleteTransfer::handle",
        "fqmn": "App\\Jobs\\Banking\\DeleteTransfer@handle",
        "expected_test_path": "tests/Feature/DeleteTransferTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Banking/DuplicateTransaction.php::App\\Jobs\\Banking\\DuplicateTransaction::handle",
        "fqmn": "App\\Jobs\\Banking\\DuplicateTransaction@handle",
        "expected_test_path": "tests/Feature/DuplicateTransactionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Banking/MatchBankingDocumentTransaction.php::App\\Jobs\\Banking\\MatchBankingDocumentTransaction::handle",
        "fqmn": "App\\Jobs\\Banking\\MatchBankingDocumentTransaction@handle",
        "expected_test_path": "tests/Feature/MatchBankingDocumentTransactionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Banking/UpdateAccount.php::App\\Jobs\\Banking\\UpdateAccount::authorize",
        "fqmn": "App\\Jobs\\Banking\\UpdateAccount@authorize",
        "expected_test_path": "tests/Feature/UpdateAccountTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Banking/UpdateAccount.php::App\\Jobs\\Banking\\UpdateAccount::getRelationships",
        "fqmn": "App\\Jobs\\Banking\\UpdateAccount@getRelationships",
        "expected_test_path": "tests/Feature/UpdateAccountTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Banking/UpdateAccount.php::App\\Jobs\\Banking\\UpdateAccount::handle",
        "fqmn": "App\\Jobs\\Banking\\UpdateAccount@handle",
        "expected_test_path": "tests/Feature/UpdateAccountTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Banking/UpdateBankingDocumentTransaction.php::App\\Jobs\\Banking\\UpdateBankingDocumentTransaction::handle",
        "fqmn": "App\\Jobs\\Banking\\UpdateBankingDocumentTransaction@handle",
        "expected_test_path": "tests/Feature/UpdateBankingDocumentTransactionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Banking/UpdateReconciliation.php::App\\Jobs\\Banking\\UpdateReconciliation::handle",
        "fqmn": "App\\Jobs\\Banking\\UpdateReconciliation@handle",
        "expected_test_path": "tests/Feature/UpdateReconciliationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Banking/UpdateTransaction.php::App\\Jobs\\Banking\\UpdateTransaction::handle",
        "fqmn": "App\\Jobs\\Banking\\UpdateTransaction@handle",
        "expected_test_path": "tests/Feature/UpdateTransactionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Banking/UpdateTransfer.php::App\\Jobs\\Banking\\UpdateTransfer::handle",
        "fqmn": "App\\Jobs\\Banking\\UpdateTransfer@handle",
        "expected_test_path": "tests/Feature/UpdateTransferTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/CreateCompany.php::App\\Jobs\\Common\\CreateCompany::handle",
        "fqmn": "App\\Jobs\\Common\\CreateCompany@handle",
        "expected_test_path": "tests/Feature/CreateCompanyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/CreateContact.php::App\\Jobs\\Common\\CreateContact::createUser",
        "fqmn": "App\\Jobs\\Common\\CreateContact@createUser",
        "expected_test_path": "tests/Feature/CreateContactTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/CreateContact.php::App\\Jobs\\Common\\CreateContact::handle",
        "fqmn": "App\\Jobs\\Common\\CreateContact@handle",
        "expected_test_path": "tests/Feature/CreateContactTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/CreateContactPerson.php::App\\Jobs\\Common\\CreateContactPerson::handle",
        "fqmn": "App\\Jobs\\Common\\CreateContactPerson@handle",
        "expected_test_path": "tests/Feature/CreateContactPersonTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/CreateContactPersons.php::App\\Jobs\\Common\\CreateContactPersons::handle",
        "fqmn": "App\\Jobs\\Common\\CreateContactPersons@handle",
        "expected_test_path": "tests/Feature/CreateContactPersonsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/CreateDashboard.php::App\\Jobs\\Common\\CreateDashboard::handle",
        "fqmn": "App\\Jobs\\Common\\CreateDashboard@handle",
        "expected_test_path": "tests/Feature/CreateDashboardTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/CreateItem.php::App\\Jobs\\Common\\CreateItem::handle",
        "fqmn": "App\\Jobs\\Common\\CreateItem@handle",
        "expected_test_path": "tests/Feature/CreateItemTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/CreateItemTaxes.php::App\\Jobs\\Common\\CreateItemTaxes::handle",
        "fqmn": "App\\Jobs\\Common\\CreateItemTaxes@handle",
        "expected_test_path": "tests/Feature/CreateItemTaxesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/CreateMediableForDownload.php::App\\Jobs\\Common\\CreateMediableForDownload::getLocalQueuedMedia",
        "fqmn": "App\\Jobs\\Common\\CreateMediableForDownload@getLocalQueuedMedia",
        "expected_test_path": "tests/Feature/CreateMediableForDownloadTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/CreateMediableForDownload.php::App\\Jobs\\Common\\CreateMediableForDownload::getQueuedMedia",
        "fqmn": "App\\Jobs\\Common\\CreateMediableForDownload@getQueuedMedia",
        "expected_test_path": "tests/Feature/CreateMediableForDownloadTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/CreateMediableForDownload.php::App\\Jobs\\Common\\CreateMediableForDownload::getRemoteQueuedMedia",
        "fqmn": "App\\Jobs\\Common\\CreateMediableForDownload@getRemoteQueuedMedia",
        "expected_test_path": "tests/Feature/CreateMediableForDownloadTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/CreateMediableForExport.php::App\\Jobs\\Common\\CreateMediableForExport::getLocalQueuedMedia",
        "fqmn": "App\\Jobs\\Common\\CreateMediableForExport@getLocalQueuedMedia",
        "expected_test_path": "tests/Feature/CreateMediableForExportTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/CreateMediableForExport.php::App\\Jobs\\Common\\CreateMediableForExport::getQueuedMedia",
        "fqmn": "App\\Jobs\\Common\\CreateMediableForExport@getQueuedMedia",
        "expected_test_path": "tests/Feature/CreateMediableForExportTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/CreateMediableForExport.php::App\\Jobs\\Common\\CreateMediableForExport::getRemoteQueuedMedia",
        "fqmn": "App\\Jobs\\Common\\CreateMediableForExport@getRemoteQueuedMedia",
        "expected_test_path": "tests/Feature/CreateMediableForExportTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/CreateReport.php::App\\Jobs\\Common\\CreateReport::handle",
        "fqmn": "App\\Jobs\\Common\\CreateReport@handle",
        "expected_test_path": "tests/Feature/CreateReportTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/CreateWidget.php::App\\Jobs\\Common\\CreateWidget::handle",
        "fqmn": "App\\Jobs\\Common\\CreateWidget@handle",
        "expected_test_path": "tests/Feature/CreateWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/CreateZipForDownload.php::App\\Jobs\\Common\\CreateZipForDownload::copyQueuedFile",
        "fqmn": "App\\Jobs\\Common\\CreateZipForDownload@copyQueuedFile",
        "expected_test_path": "tests/Feature/CreateZipForDownloadTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/CreateZipForDownload.php::App\\Jobs\\Common\\CreateZipForDownload::copyRemoteQueuedMedia",
        "fqmn": "App\\Jobs\\Common\\CreateZipForDownload@copyRemoteQueuedMedia",
        "expected_test_path": "tests/Feature/CreateZipForDownloadTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/CreateZipForDownload.php::App\\Jobs\\Common\\CreateZipForDownload::getLocalQueuedMedia",
        "fqmn": "App\\Jobs\\Common\\CreateZipForDownload@getLocalQueuedMedia",
        "expected_test_path": "tests/Feature/CreateZipForDownloadTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/CreateZipForDownload.php::App\\Jobs\\Common\\CreateZipForDownload::getQueuedFile",
        "fqmn": "App\\Jobs\\Common\\CreateZipForDownload@getQueuedFile",
        "expected_test_path": "tests/Feature/CreateZipForDownloadTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/CreateZipForDownload.php::App\\Jobs\\Common\\CreateZipForDownload::getRemoteQueuedMedia",
        "fqmn": "App\\Jobs\\Common\\CreateZipForDownload@getRemoteQueuedMedia",
        "expected_test_path": "tests/Feature/CreateZipForDownloadTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/CreateZipForDownload.php::App\\Jobs\\Common\\CreateZipForDownload::handle",
        "fqmn": "App\\Jobs\\Common\\CreateZipForDownload@handle",
        "expected_test_path": "tests/Feature/CreateZipForDownloadTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/DeleteCompany.php::App\\Jobs\\Common\\DeleteCompany::getRelationshipsToDelete",
        "fqmn": "App\\Jobs\\Common\\DeleteCompany@getRelationshipsToDelete",
        "expected_test_path": "tests/Feature/DeleteCompanyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/DeleteCompany.php::App\\Jobs\\Common\\DeleteCompany::handle",
        "fqmn": "App\\Jobs\\Common\\DeleteCompany@handle",
        "expected_test_path": "tests/Feature/DeleteCompanyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/DeleteContact.php::App\\Jobs\\Common\\DeleteContact::getRelationships",
        "fqmn": "App\\Jobs\\Common\\DeleteContact@getRelationships",
        "expected_test_path": "tests/Feature/DeleteContactTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/DeleteContact.php::App\\Jobs\\Common\\DeleteContact::handle",
        "fqmn": "App\\Jobs\\Common\\DeleteContact@handle",
        "expected_test_path": "tests/Feature/DeleteContactTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/DeleteContactPerson.php::App\\Jobs\\Common\\DeleteContactPerson::handle",
        "fqmn": "App\\Jobs\\Common\\DeleteContactPerson@handle",
        "expected_test_path": "tests/Feature/DeleteContactPersonTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/DeleteDashboard.php::App\\Jobs\\Common\\DeleteDashboard::handle",
        "fqmn": "App\\Jobs\\Common\\DeleteDashboard@handle",
        "expected_test_path": "tests/Feature/DeleteDashboardTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/DeleteItem.php::App\\Jobs\\Common\\DeleteItem::getRelationships",
        "fqmn": "App\\Jobs\\Common\\DeleteItem@getRelationships",
        "expected_test_path": "tests/Feature/DeleteItemTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/DeleteItem.php::App\\Jobs\\Common\\DeleteItem::handle",
        "fqmn": "App\\Jobs\\Common\\DeleteItem@handle",
        "expected_test_path": "tests/Feature/DeleteItemTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/DeleteReport.php::App\\Jobs\\Common\\DeleteReport::deleteFavorite",
        "fqmn": "App\\Jobs\\Common\\DeleteReport@deleteFavorite",
        "expected_test_path": "tests/Feature/DeleteReportTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/DeleteReport.php::App\\Jobs\\Common\\DeleteReport::deletePin",
        "fqmn": "App\\Jobs\\Common\\DeleteReport@deletePin",
        "expected_test_path": "tests/Feature/DeleteReportTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/DeleteReport.php::App\\Jobs\\Common\\DeleteReport::handle",
        "fqmn": "App\\Jobs\\Common\\DeleteReport@handle",
        "expected_test_path": "tests/Feature/DeleteReportTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/DeleteWidget.php::App\\Jobs\\Common\\DeleteWidget::handle",
        "fqmn": "App\\Jobs\\Common\\DeleteWidget@handle",
        "expected_test_path": "tests/Feature/DeleteWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/DuplicateContact.php::App\\Jobs\\Common\\DuplicateContact::handle",
        "fqmn": "App\\Jobs\\Common\\DuplicateContact@handle",
        "expected_test_path": "tests/Feature/DuplicateContactTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/UpdateCompany.php::App\\Jobs\\Common\\UpdateCompany::handle",
        "fqmn": "App\\Jobs\\Common\\UpdateCompany@handle",
        "expected_test_path": "tests/Feature/UpdateCompanyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/UpdateContact.php::App\\Jobs\\Common\\UpdateContact::createUser",
        "fqmn": "App\\Jobs\\Common\\UpdateContact@createUser",
        "expected_test_path": "tests/Feature/UpdateContactTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/UpdateContact.php::App\\Jobs\\Common\\UpdateContact::getRelationships",
        "fqmn": "App\\Jobs\\Common\\UpdateContact@getRelationships",
        "expected_test_path": "tests/Feature/UpdateContactTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/UpdateContact.php::App\\Jobs\\Common\\UpdateContact::handle",
        "fqmn": "App\\Jobs\\Common\\UpdateContact@handle",
        "expected_test_path": "tests/Feature/UpdateContactTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/UpdateContactPerson.php::App\\Jobs\\Common\\UpdateContactPerson::handle",
        "fqmn": "App\\Jobs\\Common\\UpdateContactPerson@handle",
        "expected_test_path": "tests/Feature/UpdateContactPersonTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/UpdateDashboard.php::App\\Jobs\\Common\\UpdateDashboard::handle",
        "fqmn": "App\\Jobs\\Common\\UpdateDashboard@handle",
        "expected_test_path": "tests/Feature/UpdateDashboardTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/UpdateItem.php::App\\Jobs\\Common\\UpdateItem::handle",
        "fqmn": "App\\Jobs\\Common\\UpdateItem@handle",
        "expected_test_path": "tests/Feature/UpdateItemTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/UpdateReport.php::App\\Jobs\\Common\\UpdateReport::handle",
        "fqmn": "App\\Jobs\\Common\\UpdateReport@handle",
        "expected_test_path": "tests/Feature/UpdateReportTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Common/UpdateWidget.php::App\\Jobs\\Common\\UpdateWidget::handle",
        "fqmn": "App\\Jobs\\Common\\UpdateWidget@handle",
        "expected_test_path": "tests/Feature/UpdateWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Document/CreateDocument.php::App\\Jobs\\Document\\CreateDocument::handle",
        "fqmn": "App\\Jobs\\Document\\CreateDocument@handle",
        "expected_test_path": "tests/Feature/CreateDocumentTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Document/CreateDocumentHistory.php::App\\Jobs\\Document\\CreateDocumentHistory::getCustomSourceName",
        "fqmn": "App\\Jobs\\Document\\CreateDocumentHistory@getCustomSourceName",
        "expected_test_path": "tests/Feature/CreateDocumentHistoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Document/CreateDocumentHistory.php::App\\Jobs\\Document\\CreateDocumentHistory::handle",
        "fqmn": "App\\Jobs\\Document\\CreateDocumentHistory@handle",
        "expected_test_path": "tests/Feature/CreateDocumentHistoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Document/CreateDocumentItem.php::App\\Jobs\\Document\\CreateDocumentItem::handle",
        "fqmn": "App\\Jobs\\Document\\CreateDocumentItem@handle",
        "expected_test_path": "tests/Feature/CreateDocumentItemTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Document/CreateDocumentItemsAndTotals.php::App\\Jobs\\Document\\CreateDocumentItemsAndTotals::fixedDiscountCalculate",
        "fqmn": "App\\Jobs\\Document\\CreateDocumentItemsAndTotals@fixedDiscountCalculate",
        "expected_test_path": "tests/Feature/CreateDocumentItemsAndTotalsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Document/DeleteDocument.php::App\\Jobs\\Document\\DeleteDocument::handle",
        "fqmn": "App\\Jobs\\Document\\DeleteDocument@handle",
        "expected_test_path": "tests/Feature/DeleteDocumentTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Document/DownloadDocument.php::App\\Jobs\\Document\\DownloadDocument::handle",
        "fqmn": "App\\Jobs\\Document\\DownloadDocument@handle",
        "expected_test_path": "tests/Feature/DownloadDocumentTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Document/DuplicateDocument.php::App\\Jobs\\Document\\DuplicateDocument::handle",
        "fqmn": "App\\Jobs\\Document\\DuplicateDocument@handle",
        "expected_test_path": "tests/Feature/DuplicateDocumentTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Document/RestoreDocument.php::App\\Jobs\\Document\\RestoreDocument::handle",
        "fqmn": "App\\Jobs\\Document\\RestoreDocument@handle",
        "expected_test_path": "tests/Feature/RestoreDocumentTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Document/UpdateDocument.php::App\\Jobs\\Document\\UpdateDocument::handle",
        "fqmn": "App\\Jobs\\Document\\UpdateDocument@handle",
        "expected_test_path": "tests/Feature/UpdateDocumentTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Install/DownloadFile.php::App\\Jobs\\Install\\DownloadFile::handle",
        "fqmn": "App\\Jobs\\Install\\DownloadFile@handle",
        "expected_test_path": "tests/Feature/DownloadFileTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Install/FinishUpdate.php::App\\Jobs\\Install\\FinishUpdate::getCompanies",
        "fqmn": "App\\Jobs\\Install\\FinishUpdate@getCompanies",
        "expected_test_path": "tests/Feature/FinishUpdateTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Install/FinishUpdate.php::App\\Jobs\\Install\\FinishUpdate::getCompaniesOfModule",
        "fqmn": "App\\Jobs\\Install\\FinishUpdate@getCompaniesOfModule",
        "expected_test_path": "tests/Feature/FinishUpdateTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Install/FinishUpdate.php::App\\Jobs\\Install\\FinishUpdate::getListenerTypeOfModule",
        "fqmn": "App\\Jobs\\Install\\FinishUpdate@getListenerTypeOfModule",
        "expected_test_path": "tests/Feature/FinishUpdateTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Install/UnzipFile.php::App\\Jobs\\Install\\UnzipFile::handle",
        "fqmn": "App\\Jobs\\Install\\UnzipFile@handle",
        "expected_test_path": "tests/Feature/UnzipFileTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Setting/CreateCategory.php::App\\Jobs\\Setting\\CreateCategory::handle",
        "fqmn": "App\\Jobs\\Setting\\CreateCategory@handle",
        "expected_test_path": "tests/Feature/CreateCategoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Setting/CreateCurrency.php::App\\Jobs\\Setting\\CreateCurrency::handle",
        "fqmn": "App\\Jobs\\Setting\\CreateCurrency@handle",
        "expected_test_path": "tests/Feature/CreateCurrencyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Setting/CreateEmailTemplate.php::App\\Jobs\\Setting\\CreateEmailTemplate::handle",
        "fqmn": "App\\Jobs\\Setting\\CreateEmailTemplate@handle",
        "expected_test_path": "tests/Feature/CreateEmailTemplateTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Setting/CreateTax.php::App\\Jobs\\Setting\\CreateTax::handle",
        "fqmn": "App\\Jobs\\Setting\\CreateTax@handle",
        "expected_test_path": "tests/Feature/CreateTaxTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Setting/DeleteCategory.php::App\\Jobs\\Setting\\DeleteCategory::getRelationships",
        "fqmn": "App\\Jobs\\Setting\\DeleteCategory@getRelationships",
        "expected_test_path": "tests/Feature/DeleteCategoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Setting/DeleteCategory.php::App\\Jobs\\Setting\\DeleteCategory::handle",
        "fqmn": "App\\Jobs\\Setting\\DeleteCategory@handle",
        "expected_test_path": "tests/Feature/DeleteCategoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Setting/DeleteCurrency.php::App\\Jobs\\Setting\\DeleteCurrency::getRelationships",
        "fqmn": "App\\Jobs\\Setting\\DeleteCurrency@getRelationships",
        "expected_test_path": "tests/Feature/DeleteCurrencyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Setting/DeleteCurrency.php::App\\Jobs\\Setting\\DeleteCurrency::handle",
        "fqmn": "App\\Jobs\\Setting\\DeleteCurrency@handle",
        "expected_test_path": "tests/Feature/DeleteCurrencyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Setting/DeleteEmailTemplate.php::App\\Jobs\\Setting\\DeleteEmailTemplate::handle",
        "fqmn": "App\\Jobs\\Setting\\DeleteEmailTemplate@handle",
        "expected_test_path": "tests/Feature/DeleteEmailTemplateTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Setting/DeleteTax.php::App\\Jobs\\Setting\\DeleteTax::getRelationships",
        "fqmn": "App\\Jobs\\Setting\\DeleteTax@getRelationships",
        "expected_test_path": "tests/Feature/DeleteTaxTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Setting/DeleteTax.php::App\\Jobs\\Setting\\DeleteTax::handle",
        "fqmn": "App\\Jobs\\Setting\\DeleteTax@handle",
        "expected_test_path": "tests/Feature/DeleteTaxTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Setting/UpdateCategory.php::App\\Jobs\\Setting\\UpdateCategory::authorize",
        "fqmn": "App\\Jobs\\Setting\\UpdateCategory@authorize",
        "expected_test_path": "tests/Feature/UpdateCategoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Setting/UpdateCategory.php::App\\Jobs\\Setting\\UpdateCategory::getRelationships",
        "fqmn": "App\\Jobs\\Setting\\UpdateCategory@getRelationships",
        "expected_test_path": "tests/Feature/UpdateCategoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Setting/UpdateCategory.php::App\\Jobs\\Setting\\UpdateCategory::handle",
        "fqmn": "App\\Jobs\\Setting\\UpdateCategory@handle",
        "expected_test_path": "tests/Feature/UpdateCategoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Setting/UpdateCurrency.php::App\\Jobs\\Setting\\UpdateCurrency::authorize",
        "fqmn": "App\\Jobs\\Setting\\UpdateCurrency@authorize",
        "expected_test_path": "tests/Feature/UpdateCurrencyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Setting/UpdateCurrency.php::App\\Jobs\\Setting\\UpdateCurrency::getRelationships",
        "fqmn": "App\\Jobs\\Setting\\UpdateCurrency@getRelationships",
        "expected_test_path": "tests/Feature/UpdateCurrencyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Setting/UpdateCurrency.php::App\\Jobs\\Setting\\UpdateCurrency::handle",
        "fqmn": "App\\Jobs\\Setting\\UpdateCurrency@handle",
        "expected_test_path": "tests/Feature/UpdateCurrencyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Setting/UpdateEmailTemplate.php::App\\Jobs\\Setting\\UpdateEmailTemplate::handle",
        "fqmn": "App\\Jobs\\Setting\\UpdateEmailTemplate@handle",
        "expected_test_path": "tests/Feature/UpdateEmailTemplateTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Setting/UpdateTax.php::App\\Jobs\\Setting\\UpdateTax::authorize",
        "fqmn": "App\\Jobs\\Setting\\UpdateTax@authorize",
        "expected_test_path": "tests/Feature/UpdateTaxTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Setting/UpdateTax.php::App\\Jobs\\Setting\\UpdateTax::getRelationships",
        "fqmn": "App\\Jobs\\Setting\\UpdateTax@getRelationships",
        "expected_test_path": "tests/Feature/UpdateTaxTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Setting/UpdateTax.php::App\\Jobs\\Setting\\UpdateTax::handle",
        "fqmn": "App\\Jobs\\Setting\\UpdateTax@handle",
        "expected_test_path": "tests/Feature/UpdateTaxTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Common/ClearPlansCache.php::App\\Listeners\\Common\\ClearPlansCache::subscribe",
        "fqmn": "App\\Listeners\\Common\\ClearPlansCache@subscribe",
        "expected_test_path": "tests/Feature/ClearPlansCacheTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Common/PreparingResponse.php::App\\Listeners\\Common\\PreparingResponse::handle",
        "fqmn": "App\\Listeners\\Common\\PreparingResponse@handle",
        "expected_test_path": "tests/Feature/PreparingResponseTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Common/SkipScheduleInReadOnlyMode.php::App\\Listeners\\Common\\SkipScheduleInReadOnlyMode::handle",
        "fqmn": "App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@handle",
        "expected_test_path": "tests/Feature/SkipScheduleInReadOnlyModeTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Document/CreateDocumentTransaction.php::App\\Listeners\\Document\\CreateDocumentTransaction::handle",
        "fqmn": "App\\Listeners\\Document\\CreateDocumentTransaction@handle",
        "expected_test_path": "tests/Feature/CreateDocumentTransactionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Document/MarkDocumentSent.php::App\\Listeners\\Document\\MarkDocumentSent::getDescription",
        "fqmn": "App\\Listeners\\Document\\MarkDocumentSent@getDescription",
        "expected_test_path": "tests/Feature/MarkDocumentSentTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Document/MarkDocumentViewed.php::App\\Listeners\\Document\\MarkDocumentViewed::handle",
        "fqmn": "App\\Listeners\\Document\\MarkDocumentViewed@handle",
        "expected_test_path": "tests/Feature/MarkDocumentViewedTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Document/SendDocumentPaymentNotification.php::App\\Listeners\\Document\\SendDocumentPaymentNotification::handle",
        "fqmn": "App\\Listeners\\Document\\SendDocumentPaymentNotification@handle",
        "expected_test_path": "tests/Feature/SendDocumentPaymentNotificationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Document/SendDocumentRecurringNotification.php::App\\Listeners\\Document\\SendDocumentRecurringNotification::handle",
        "fqmn": "App\\Listeners\\Document\\SendDocumentRecurringNotification@handle",
        "expected_test_path": "tests/Feature/SendDocumentRecurringNotificationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Document/SendDocumentViewNotification.php::App\\Listeners\\Document\\SendDocumentViewNotification::handle",
        "fqmn": "App\\Listeners\\Document\\SendDocumentViewNotification@handle",
        "expected_test_path": "tests/Feature/SendDocumentViewNotificationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Document/SettingFieldCreated.php::App\\Listeners\\Document\\SettingFieldCreated::handle",
        "fqmn": "App\\Listeners\\Document\\SettingFieldCreated@handle",
        "expected_test_path": "tests/Feature/SettingFieldCreatedTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Document/SettingFieldUpdated.php::App\\Listeners\\Document\\SettingFieldUpdated::handle",
        "fqmn": "App\\Listeners\\Document\\SettingFieldUpdated@handle",
        "expected_test_path": "tests/Feature/SettingFieldUpdatedTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Email/DisablePersonDueToInvalidEmail.php::App\\Listeners\\Email\\DisablePersonDueToInvalidEmail::disableContact",
        "fqmn": "App\\Listeners\\Email\\DisablePersonDueToInvalidEmail@disableContact",
        "expected_test_path": "tests/Feature/DisablePersonDueToInvalidEmailTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Email/DisablePersonDueToInvalidEmail.php::App\\Listeners\\Email\\DisablePersonDueToInvalidEmail::disableUser",
        "fqmn": "App\\Listeners\\Email\\DisablePersonDueToInvalidEmail@disableUser",
        "expected_test_path": "tests/Feature/DisablePersonDueToInvalidEmailTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Email/SendInvalidEmailNotification.php::App\\Listeners\\Email\\SendInvalidEmailNotification::handle",
        "fqmn": "App\\Listeners\\Email\\SendInvalidEmailNotification@handle",
        "expected_test_path": "tests/Feature/SendInvalidEmailNotificationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Email/SendInvalidEmailNotification.php::App\\Listeners\\Email\\SendInvalidEmailNotification::notifyAdminsAboutInvalidContactEmail",
        "fqmn": "App\\Listeners\\Email\\SendInvalidEmailNotification@notifyAdminsAboutInvalidContactEmail",
        "expected_test_path": "tests/Feature/SendInvalidEmailNotificationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Email/SendInvalidEmailNotification.php::App\\Listeners\\Email\\SendInvalidEmailNotification::notifyAdminsAboutInvalidUserEmail",
        "fqmn": "App\\Listeners\\Email\\SendInvalidEmailNotification@notifyAdminsAboutInvalidUserEmail",
        "expected_test_path": "tests/Feature/SendInvalidEmailNotificationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Email/TellFirewallTooManyEmailsSent.php::App\\Listeners\\Email\\TellFirewallTooManyEmailsSent::handle",
        "fqmn": "App\\Listeners\\Email\\TellFirewallTooManyEmailsSent@handle",
        "expected_test_path": "tests/Feature/TellFirewallTooManyEmailsSentTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Email/TellFirewallTooManyEmailsSent.php::App\\Listeners\\Email\\TellFirewallTooManyEmailsSent::skip",
        "fqmn": "App\\Listeners\\Email\\TellFirewallTooManyEmailsSent@skip",
        "expected_test_path": "tests/Feature/TellFirewallTooManyEmailsSentTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Menu/ShowInNotifications.php::App\\Listeners\\Menu\\ShowInNotifications::handle",
        "fqmn": "App\\Listeners\\Menu\\ShowInNotifications@handle",
        "expected_test_path": "tests/Feature/ShowInNotificationsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Module/InstallExtraModules.php::App\\Listeners\\Module\\InstallExtraModules::handle",
        "fqmn": "App\\Listeners\\Module\\InstallExtraModules@handle",
        "expected_test_path": "tests/Feature/InstallExtraModulesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Module/UpdateExtraModules.php::App\\Listeners\\Module\\UpdateExtraModules::handle",
        "fqmn": "App\\Listeners\\Module\\UpdateExtraModules@handle",
        "expected_test_path": "tests/Feature/UpdateExtraModulesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Report/AddAccounts.php::App\\Listeners\\Report\\AddAccounts::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddAccounts@handleFilterShowing",
        "expected_test_path": "tests/Feature/AddAccountsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Report/AddAccounts.php::App\\Listeners\\Report\\AddAccounts::handleGroupApplying",
        "fqmn": "App\\Listeners\\Report\\AddAccounts@handleGroupApplying",
        "expected_test_path": "tests/Feature/AddAccountsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Report/AddAccounts.php::App\\Listeners\\Report\\AddAccounts::handleGroupShowing",
        "fqmn": "App\\Listeners\\Report\\AddAccounts@handleGroupShowing",
        "expected_test_path": "tests/Feature/AddAccountsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Report/AddAccounts.php::App\\Listeners\\Report\\AddAccounts::handleRowsShowing",
        "fqmn": "App\\Listeners\\Report\\AddAccounts@handleRowsShowing",
        "expected_test_path": "tests/Feature/AddAccountsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Report/AddBasis.php::App\\Listeners\\Report\\AddBasis::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddBasis@handleFilterShowing",
        "expected_test_path": "tests/Feature/AddBasisTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Report/AddContacts.php::App\\Listeners\\Report\\AddContacts::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddContacts@handleFilterShowing",
        "expected_test_path": "tests/Feature/AddContactsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Report/AddContacts.php::App\\Listeners\\Report\\AddContacts::handleGroupShowing",
        "fqmn": "App\\Listeners\\Report\\AddContacts@handleGroupShowing",
        "expected_test_path": "tests/Feature/AddContactsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Report/AddContacts.php::App\\Listeners\\Report\\AddContacts::handleRowsShowing",
        "fqmn": "App\\Listeners\\Report\\AddContacts@handleRowsShowing",
        "expected_test_path": "tests/Feature/AddContactsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Report/AddCustomers.php::App\\Listeners\\Report\\AddCustomers::handleFilterApplying",
        "fqmn": "App\\Listeners\\Report\\AddCustomers@handleFilterApplying",
        "expected_test_path": "tests/Feature/AddCustomersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Report/AddCustomers.php::App\\Listeners\\Report\\AddCustomers::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddCustomers@handleFilterShowing",
        "expected_test_path": "tests/Feature/AddCustomersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Report/AddCustomers.php::App\\Listeners\\Report\\AddCustomers::handleGroupApplying",
        "fqmn": "App\\Listeners\\Report\\AddCustomers@handleGroupApplying",
        "expected_test_path": "tests/Feature/AddCustomersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Report/AddCustomers.php::App\\Listeners\\Report\\AddCustomers::handleGroupShowing",
        "fqmn": "App\\Listeners\\Report\\AddCustomers@handleGroupShowing",
        "expected_test_path": "tests/Feature/AddCustomersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Report/AddCustomers.php::App\\Listeners\\Report\\AddCustomers::handleRowsShowing",
        "fqmn": "App\\Listeners\\Report\\AddCustomers@handleRowsShowing",
        "expected_test_path": "tests/Feature/AddCustomersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Report/AddDate.php::App\\Listeners\\Report\\AddDate::handleFilterApplying",
        "fqmn": "App\\Listeners\\Report\\AddDate@handleFilterApplying",
        "expected_test_path": "tests/Feature/AddDateTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Report/AddDate.php::App\\Listeners\\Report\\AddDate::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddDate@handleFilterShowing",
        "expected_test_path": "tests/Feature/AddDateTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Report/AddDiscount.php::App\\Listeners\\Report\\AddDiscount::handleFilterApplying",
        "fqmn": "App\\Listeners\\Report\\AddDiscount@handleFilterApplying",
        "expected_test_path": "tests/Feature/AddDiscountTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Report/AddDiscount.php::App\\Listeners\\Report\\AddDiscount::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddDiscount@handleFilterShowing",
        "expected_test_path": "tests/Feature/AddDiscountTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Report/AddExpenseCategories.php::App\\Listeners\\Report\\AddExpenseCategories::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddExpenseCategories@handleFilterShowing",
        "expected_test_path": "tests/Feature/AddExpenseCategoriesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Report/AddExpenseCategories.php::App\\Listeners\\Report\\AddExpenseCategories::handleGroupShowing",
        "fqmn": "App\\Listeners\\Report\\AddExpenseCategories@handleGroupShowing",
        "expected_test_path": "tests/Feature/AddExpenseCategoriesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Report/AddExpenseCategories.php::App\\Listeners\\Report\\AddExpenseCategories::handleRowsShowing",
        "fqmn": "App\\Listeners\\Report\\AddExpenseCategories@handleRowsShowing",
        "expected_test_path": "tests/Feature/AddExpenseCategoriesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Report/AddGroup.php::App\\Listeners\\Report\\AddGroup::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddGroup@handleFilterShowing",
        "expected_test_path": "tests/Feature/AddGroupTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Report/AddIncomeCategories.php::App\\Listeners\\Report\\AddIncomeCategories::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddIncomeCategories@handleFilterShowing",
        "expected_test_path": "tests/Feature/AddIncomeCategoriesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Report/AddIncomeCategories.php::App\\Listeners\\Report\\AddIncomeCategories::handleGroupShowing",
        "fqmn": "App\\Listeners\\Report\\AddIncomeCategories@handleGroupShowing",
        "expected_test_path": "tests/Feature/AddIncomeCategoriesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Report/AddIncomeCategories.php::App\\Listeners\\Report\\AddIncomeCategories::handleRowsShowing",
        "fqmn": "App\\Listeners\\Report\\AddIncomeCategories@handleRowsShowing",
        "expected_test_path": "tests/Feature/AddIncomeCategoriesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Report/AddIncomeExpenseCategories.php::App\\Listeners\\Report\\AddIncomeExpenseCategories::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddIncomeExpenseCategories@handleFilterShowing",
        "expected_test_path": "tests/Feature/AddIncomeExpenseCategoriesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Report/AddIncomeExpenseCategories.php::App\\Listeners\\Report\\AddIncomeExpenseCategories::handleGroupShowing",
        "fqmn": "App\\Listeners\\Report\\AddIncomeExpenseCategories@handleGroupShowing",
        "expected_test_path": "tests/Feature/AddIncomeExpenseCategoriesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Report/AddIncomeExpenseCategories.php::App\\Listeners\\Report\\AddIncomeExpenseCategories::handleRowsShowing",
        "fqmn": "App\\Listeners\\Report\\AddIncomeExpenseCategories@handleRowsShowing",
        "expected_test_path": "tests/Feature/AddIncomeExpenseCategoriesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Report/AddPeriod.php::App\\Listeners\\Report\\AddPeriod::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddPeriod@handleFilterShowing",
        "expected_test_path": "tests/Feature/AddPeriodTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Report/AddRowsToTax.php::App\\Listeners\\Report\\AddRowsToTax::handleRowsShowing",
        "fqmn": "App\\Listeners\\Report\\AddRowsToTax@handleRowsShowing",
        "expected_test_path": "tests/Feature/AddRowsToTaxTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Report/AddSearchString.php::App\\Listeners\\Report\\AddSearchString::handleFilterApplying",
        "fqmn": "App\\Listeners\\Report\\AddSearchString@handleFilterApplying",
        "expected_test_path": "tests/Feature/AddSearchStringTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Report/AddVendors.php::App\\Listeners\\Report\\AddVendors::handleFilterApplying",
        "fqmn": "App\\Listeners\\Report\\AddVendors@handleFilterApplying",
        "expected_test_path": "tests/Feature/AddVendorsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Report/AddVendors.php::App\\Listeners\\Report\\AddVendors::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddVendors@handleFilterShowing",
        "expected_test_path": "tests/Feature/AddVendorsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Report/AddVendors.php::App\\Listeners\\Report\\AddVendors::handleGroupApplying",
        "fqmn": "App\\Listeners\\Report\\AddVendors@handleGroupApplying",
        "expected_test_path": "tests/Feature/AddVendorsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Report/AddVendors.php::App\\Listeners\\Report\\AddVendors::handleGroupShowing",
        "fqmn": "App\\Listeners\\Report\\AddVendors@handleGroupShowing",
        "expected_test_path": "tests/Feature/AddVendorsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Report/AddVendors.php::App\\Listeners\\Report\\AddVendors::handleRowsShowing",
        "fqmn": "App\\Listeners\\Report\\AddVendors@handleRowsShowing",
        "expected_test_path": "tests/Feature/AddVendorsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Setting/DeleteCategoryDeletedSubCategories.php::App\\Listeners\\Setting\\DeleteCategoryDeletedSubCategories::handle",
        "fqmn": "App\\Listeners\\Setting\\DeleteCategoryDeletedSubCategories@handle",
        "expected_test_path": "tests/Feature/DeleteCategoryDeletedSubCategoriesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Update/CreateModuleUpdatedHistory.php::App\\Listeners\\Update\\CreateModuleUpdatedHistory::handle",
        "fqmn": "App\\Listeners\\Update\\CreateModuleUpdatedHistory@handle",
        "expected_test_path": "tests/Feature/CreateModuleUpdatedHistoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Update/SendNotificationOnFailure.php::App\\Listeners\\Update\\SendNotificationOnFailure::getKey",
        "fqmn": "App\\Listeners\\Update\\SendNotificationOnFailure@getKey",
        "expected_test_path": "tests/Feature/SendNotificationOnFailureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Update/SendNotificationOnFailure.php::App\\Listeners\\Update\\SendNotificationOnFailure::routeNotificationForMail",
        "fqmn": "App\\Listeners\\Update\\SendNotificationOnFailure@routeNotificationForMail",
        "expected_test_path": "tests/Feature/SendNotificationOnFailureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Update/SendNotificationOnFailure.php::App\\Listeners\\Update\\SendNotificationOnFailure::routeNotificationForSlack",
        "fqmn": "App\\Listeners\\Update\\SendNotificationOnFailure@routeNotificationForSlack",
        "expected_test_path": "tests/Feature/SendNotificationOnFailureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Update/V30/Version300.php::App\\Listeners\\Update\\V30\\Version300::getTransactionNumber",
        "fqmn": "App\\Listeners\\Update\\V30\\Version300@getTransactionNumber",
        "expected_test_path": "tests/Feature/Version300Test.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Update/V30/Version300.php::App\\Listeners\\Update\\V30\\Version300::handle",
        "fqmn": "App\\Listeners\\Update\\V30\\Version300@handle",
        "expected_test_path": "tests/Feature/Version300Test.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Update/V30/Version3013.php::App\\Listeners\\Update\\V30\\Version3013::handle",
        "fqmn": "App\\Listeners\\Update\\V30\\Version3013@handle",
        "expected_test_path": "tests/Feature/Version3013Test.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Update/V30/Version3014.php::App\\Listeners\\Update\\V30\\Version3014::handle",
        "fqmn": "App\\Listeners\\Update\\V30\\Version3014@handle",
        "expected_test_path": "tests/Feature/Version3014Test.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Update/V30/Version3015.php::App\\Listeners\\Update\\V30\\Version3015::handle",
        "fqmn": "App\\Listeners\\Update\\V30\\Version3015@handle",
        "expected_test_path": "tests/Feature/Version3015Test.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Update/V30/Version3016.php::App\\Listeners\\Update\\V30\\Version3016::handle",
        "fqmn": "App\\Listeners\\Update\\V30\\Version3016@handle",
        "expected_test_path": "tests/Feature/Version3016Test.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Update/V30/Version3017.php::App\\Listeners\\Update\\V30\\Version3017::handle",
        "fqmn": "App\\Listeners\\Update\\V30\\Version3017@handle",
        "expected_test_path": "tests/Feature/Version3017Test.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Update/V30/Version303.php::App\\Listeners\\Update\\V30\\Version303::handle",
        "fqmn": "App\\Listeners\\Update\\V30\\Version303@handle",
        "expected_test_path": "tests/Feature/Version303Test.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Update/V30/Version304.php::App\\Listeners\\Update\\V30\\Version304::handle",
        "fqmn": "App\\Listeners\\Update\\V30\\Version304@handle",
        "expected_test_path": "tests/Feature/Version304Test.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Update/V30/Version305.php::App\\Listeners\\Update\\V30\\Version305::handle",
        "fqmn": "App\\Listeners\\Update\\V30\\Version305@handle",
        "expected_test_path": "tests/Feature/Version305Test.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Update/V30/Version307.php::App\\Listeners\\Update\\V30\\Version307::handle",
        "fqmn": "App\\Listeners\\Update\\V30\\Version307@handle",
        "expected_test_path": "tests/Feature/Version307Test.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Update/V30/Version309.php::App\\Listeners\\Update\\V30\\Version309::handle",
        "fqmn": "App\\Listeners\\Update\\V30\\Version309@handle",
        "expected_test_path": "tests/Feature/Version309Test.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Update/V31/Version310.php::App\\Listeners\\Update\\V31\\Version310::handle",
        "fqmn": "App\\Listeners\\Update\\V31\\Version310@handle",
        "expected_test_path": "tests/Feature/Version310Test.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Update/V31/Version3112.php::App\\Listeners\\Update\\V31\\Version3112::handle",
        "fqmn": "App\\Listeners\\Update\\V31\\Version3112@handle",
        "expected_test_path": "tests/Feature/Version3112Test.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Update/V31/Version3115.php::App\\Listeners\\Update\\V31\\Version3115::handle",
        "fqmn": "App\\Listeners\\Update\\V31\\Version3115@handle",
        "expected_test_path": "tests/Feature/Version3115Test.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Update/V31/Version3119.php::App\\Listeners\\Update\\V31\\Version3119::handle",
        "fqmn": "App\\Listeners\\Update\\V31\\Version3119@handle",
        "expected_test_path": "tests/Feature/Version3119Test.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Update/V31/Version3122.php::App\\Listeners\\Update\\V31\\Version3122::handle",
        "fqmn": "App\\Listeners\\Update\\V31\\Version3122@handle",
        "expected_test_path": "tests/Feature/Version3122Test.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Update/V31/Version315.php::App\\Listeners\\Update\\V31\\Version315::handle",
        "fqmn": "App\\Listeners\\Update\\V31\\Version315@handle",
        "expected_test_path": "tests/Feature/Version315Test.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Update/V31/Version317.php::App\\Listeners\\Update\\V31\\Version317::handle",
        "fqmn": "App\\Listeners\\Update\\V31\\Version317@handle",
        "expected_test_path": "tests/Feature/Version317Test.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Update/V31/Version318.php::App\\Listeners\\Update\\V31\\Version318::handle",
        "fqmn": "App\\Listeners\\Update\\V31\\Version318@handle",
        "expected_test_path": "tests/Feature/Version318Test.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Models/Common/Company.php::App\\Models\\Common\\Company::forgetCurrent",
        "fqmn": "App\\Models\\Common\\Company@forgetCurrent",
        "expected_test_path": "tests/Unit/CompanyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Utilities/Console.php::App\\Utilities\\Console::run",
        "fqmn": "App\\Utilities\\Console@run",
        "expected_test_path": "tests/Unit/ConsoleTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Utilities/Export.php::App\\Utilities\\Export::toExcel",
        "fqmn": "App\\Utilities\\Export@toExcel",
        "expected_test_path": "tests/Unit/ExportTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Utilities/Import.php::App\\Utilities\\Import::fromExcel",
        "fqmn": "App\\Utilities\\Import@fromExcel",
        "expected_test_path": "tests/Unit/ImportTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Utilities/Installer.php::App\\Utilities\\Installer::createDbTables",
        "fqmn": "App\\Utilities\\Installer@createDbTables",
        "expected_test_path": "tests/Unit/InstallerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Utilities/Modules.php::App\\Utilities\\Modules::getPaymentMethods",
        "fqmn": "App\\Utilities\\Modules@getPaymentMethods",
        "expected_test_path": "tests/Unit/ModulesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Utilities/Reports.php::App\\Utilities\\Reports::cannotShow",
        "fqmn": "App\\Utilities\\Reports@cannotShow",
        "expected_test_path": "tests/Unit/ReportsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Utilities/Reports.php::App\\Utilities\\Reports::getClasses",
        "fqmn": "App\\Utilities\\Reports@getClasses",
        "expected_test_path": "tests/Unit/ReportsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Utilities/Reports.php::App\\Utilities\\Reports::getClassInstance",
        "fqmn": "App\\Utilities\\Reports@getClassInstance",
        "expected_test_path": "tests/Unit/ReportsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Utilities/Versions.php::App\\Utilities\\Versions::changelog",
        "fqmn": "App\\Utilities\\Versions@changelog",
        "expected_test_path": "tests/Unit/VersionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Utilities/Versions.php::App\\Utilities\\Versions::getUpdates",
        "fqmn": "App\\Utilities\\Versions@getUpdates",
        "expected_test_path": "tests/Unit/VersionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Utilities/Versions.php::App\\Utilities\\Versions::latest",
        "fqmn": "App\\Utilities\\Versions@latest",
        "expected_test_path": "tests/Unit/VersionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Utilities/Versions.php::App\\Utilities\\Versions::shouldUpdate",
        "fqmn": "App\\Utilities\\Versions@shouldUpdate",
        "expected_test_path": "tests/Unit/VersionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Utilities/Widgets.php::App\\Utilities\\Widgets::canShow",
        "fqmn": "App\\Utilities\\Widgets@canShow",
        "expected_test_path": "tests/Unit/WidgetsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Utilities/Widgets.php::App\\Utilities\\Widgets::getClasses",
        "fqmn": "App\\Utilities\\Widgets@getClasses",
        "expected_test_path": "tests/Unit/WidgetsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::overrides/akaunting/laravel-module/Commands/DisableCommand.php::Akaunting\\Module\\Commands\\DisableCommand::handle",
        "fqmn": "Akaunting\\Module\\Commands\\DisableCommand@handle",
        "expected_test_path": "tests/Unit/DisableCommandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::overrides/akaunting/laravel-module/Commands/EnableCommand.php::Akaunting\\Module\\Commands\\EnableCommand::handle",
        "fqmn": "Akaunting\\Module\\Commands\\EnableCommand@handle",
        "expected_test_path": "tests/Unit/EnableCommandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::overrides/akaunting/laravel-module/Commands/InstallCommand.php::Akaunting\\Module\\Commands\\InstallCommand::handle",
        "fqmn": "Akaunting\\Module\\Commands\\InstallCommand@handle",
        "expected_test_path": "tests/Unit/InstallCommandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/guest.php::get::/::closure",
        "fqmn": "route::routes/guest.php::get::/::closure",
        "expected_test_path": "tests/Unit/route::routes/guest.php::get::/::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      }
    ],
    "total_gaps": 834,
    "coverage_rate": 0.0268
  },
  "candidates": {
    "dead_code": [
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Http/ApiController.php::App\\Abstracts\\Http\\ApiController::__construct",
        "fqmn": "App\\Abstracts\\Http\\ApiController@__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/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Http/ApiController.php::App\\Abstracts\\Http\\ApiController::accepted",
        "fqmn": "App\\Abstracts\\Http\\ApiController@accepted",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Http/ApiController.php::App\\Abstracts\\Http\\ApiController::created",
        "fqmn": "App\\Abstracts\\Http\\ApiController@created",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Http/ApiController.php::App\\Abstracts\\Http\\ApiController::error",
        "fqmn": "App\\Abstracts\\Http\\ApiController@error",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Http/ApiController.php::App\\Abstracts\\Http\\ApiController::errorBadRequest",
        "fqmn": "App\\Abstracts\\Http\\ApiController@errorBadRequest",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Http/ApiController.php::App\\Abstracts\\Http\\ApiController::errorForbidden",
        "fqmn": "App\\Abstracts\\Http\\ApiController@errorForbidden",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Http/ApiController.php::App\\Abstracts\\Http\\ApiController::errorInternal",
        "fqmn": "App\\Abstracts\\Http\\ApiController@errorInternal",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Http/ApiController.php::App\\Abstracts\\Http\\ApiController::errorMethodNotAllowed",
        "fqmn": "App\\Abstracts\\Http\\ApiController@errorMethodNotAllowed",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Http/ApiController.php::App\\Abstracts\\Http\\ApiController::errorNotFound",
        "fqmn": "App\\Abstracts\\Http\\ApiController@errorNotFound",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Http/ApiController.php::App\\Abstracts\\Http\\ApiController::errorUnauthorized",
        "fqmn": "App\\Abstracts\\Http\\ApiController@errorUnauthorized",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Http/ApiController.php::App\\Abstracts\\Http\\ApiController::noContent",
        "fqmn": "App\\Abstracts\\Http\\ApiController@noContent",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Http/Controller.php::App\\Abstracts\\Http\\Controller::__construct",
        "fqmn": "App\\Abstracts\\Http\\Controller@__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/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Http/Controller.php::App\\Abstracts\\Http\\Controller::exportExcel",
        "fqmn": "App\\Abstracts\\Http\\Controller@exportExcel",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Http/Controller.php::App\\Abstracts\\Http\\Controller::importExcel",
        "fqmn": "App\\Abstracts\\Http\\Controller@importExcel",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Http/Controller.php::App\\Abstracts\\Http\\Controller::paginate",
        "fqmn": "App\\Abstracts\\Http\\Controller@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/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Http/Controller.php::App\\Abstracts\\Http\\Controller::response",
        "fqmn": "App\\Abstracts\\Http\\Controller@response",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Http/Controller.php::App\\Abstracts\\Http\\Controller::setActiveTabForCategories",
        "fqmn": "App\\Abstracts\\Http\\Controller@setActiveTabForCategories",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Http/Controller.php::App\\Abstracts\\Http\\Controller::setActiveTabForDocuments",
        "fqmn": "App\\Abstracts\\Http\\Controller@setActiveTabForDocuments",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Http/Controller.php::App\\Abstracts\\Http\\Controller::setActiveTabForTransactions",
        "fqmn": "App\\Abstracts\\Http\\Controller@setActiveTabForTransactions",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::__construct",
        "fqmn": "App\\Abstracts\\Http\\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/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::cancel",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@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/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::dispatchPaidEvent",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@dispatchPaidEvent",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::finish",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@finish",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::forgetReference",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@forgetReference",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::getCancelUrl",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@getCancelUrl",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::getConfirmUrl",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@getConfirmUrl",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::getFinishUrl",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@getFinishUrl",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::getInvoiceUrl",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@getInvoiceUrl",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::getLogger",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@getLogger",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::getModuleUrl",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@getModuleUrl",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::getNotifyUrl",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@getNotifyUrl",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::getReference",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@getReference",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::getReturnUrl",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@getReturnUrl",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::setContactFirstLastName",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@setContactFirstLastName",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::setReference",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@setReference",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::show",
        "fqmn": "App\\Abstracts\\Http\\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/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::signed",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@signed",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Http/SettingController.php::App\\Abstracts\\Http\\SettingController::update",
        "fqmn": "App\\Abstracts\\Http\\SettingController@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/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Job.php::App\\Abstracts\\Job::__construct",
        "fqmn": "App\\Abstracts\\Job@__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/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Job.php::App\\Abstracts\\Job::bootCreate",
        "fqmn": "App\\Abstracts\\Job@bootCreate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Job.php::App\\Abstracts\\Job::bootDelete",
        "fqmn": "App\\Abstracts\\Job@bootDelete",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Job.php::App\\Abstracts\\Job::booted",
        "fqmn": "App\\Abstracts\\Job@booted",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Job.php::App\\Abstracts\\Job::booting",
        "fqmn": "App\\Abstracts\\Job@booting",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Job.php::App\\Abstracts\\Job::bootUpdate",
        "fqmn": "App\\Abstracts\\Job@bootUpdate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Job.php::App\\Abstracts\\Job::getRequestInstance",
        "fqmn": "App\\Abstracts\\Job@getRequestInstance",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Job.php::App\\Abstracts\\Job::setOwner",
        "fqmn": "App\\Abstracts\\Job@setOwner",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Job.php::App\\Abstracts\\Job::setSource",
        "fqmn": "App\\Abstracts\\Job@setSource",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::applyAccountGroup",
        "fqmn": "App\\Abstracts\\Listeners\\Report@applyAccountGroup",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::applyCustomerGroup",
        "fqmn": "App\\Abstracts\\Listeners\\Report@applyCustomerGroup",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::applyDateFilter",
        "fqmn": "App\\Abstracts\\Listeners\\Report@applyDateFilter",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::applyDiscountFilter",
        "fqmn": "App\\Abstracts\\Listeners\\Report@applyDiscountFilter",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::applySearchStringFilter",
        "fqmn": "App\\Abstracts\\Listeners\\Report@applySearchStringFilter",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::applyVendorGroup",
        "fqmn": "App\\Abstracts\\Listeners\\Report@applyVendorGroup",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::getAccounts",
        "fqmn": "App\\Abstracts\\Listeners\\Report@getAccounts",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::getBasis",
        "fqmn": "App\\Abstracts\\Listeners\\Report@getBasis",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::getCategories",
        "fqmn": "App\\Abstracts\\Listeners\\Report@getCategories",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::getCategoriesNodes",
        "fqmn": "App\\Abstracts\\Listeners\\Report@getCategoriesNodes",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::getContacts",
        "fqmn": "App\\Abstracts\\Listeners\\Report@getContacts",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::getCustomers",
        "fqmn": "App\\Abstracts\\Listeners\\Report@getCustomers",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::getDateRange",
        "fqmn": "App\\Abstracts\\Listeners\\Report@getDateRange",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::getDiscount",
        "fqmn": "App\\Abstracts\\Listeners\\Report@getDiscount",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::getExpenseCategories",
        "fqmn": "App\\Abstracts\\Listeners\\Report@getExpenseCategories",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::getFormattedDate",
        "fqmn": "App\\Abstracts\\Listeners\\Report@getFormattedDate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::getIncomeCategories",
        "fqmn": "App\\Abstracts\\Listeners\\Report@getIncomeCategories",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::getIncomeExpenseCategories",
        "fqmn": "App\\Abstracts\\Listeners\\Report@getIncomeExpenseCategories",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::getItemCategories",
        "fqmn": "App\\Abstracts\\Listeners\\Report@getItemCategories",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::getPeriod",
        "fqmn": "App\\Abstracts\\Listeners\\Report@getPeriod",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::getSubCategories",
        "fqmn": "App\\Abstracts\\Listeners\\Report@getSubCategories",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::getVendors",
        "fqmn": "App\\Abstracts\\Listeners\\Report@getVendors",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::setDateFilter",
        "fqmn": "App\\Abstracts\\Listeners\\Report@setDateFilter",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::setRowNamesAndValues",
        "fqmn": "App\\Abstracts\\Listeners\\Report@setRowNamesAndValues",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::setTreeNodes",
        "fqmn": "App\\Abstracts\\Listeners\\Report@setTreeNodes",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::skipRowsShowing",
        "fqmn": "App\\Abstracts\\Listeners\\Report@skipRowsShowing",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::skipThisClass",
        "fqmn": "App\\Abstracts\\Listeners\\Report@skipThisClass",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Listeners/Report.php::App\\Abstracts\\Listeners\\Report::subscribe",
        "fqmn": "App\\Abstracts\\Listeners\\Report@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/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Listeners/Update.php::App\\Abstracts\\Listeners\\Update::check",
        "fqmn": "App\\Abstracts\\Listeners\\Update@check",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Abst",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Abstracts/Listeners/Update.php::App\\Abstracts\\Listeners\\Update::skipThisUpdate",
        "fqmn": "App\\Abstracts\\Listeners\\Update@skipThisUpdate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Clas",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Classifiers/Job.php::App\\Classifiers\\Job::countsTowardsApplicationCode",
        "fqmn": "App\\Classifiers\\Job@countsTowardsApplicationCode",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Clas",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Classifiers/Job.php::App\\Classifiers\\Job::countsTowardsTests",
        "fqmn": "App\\Classifiers\\Job@countsTowardsTests",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Clas",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Classifiers/Job.php::App\\Classifiers\\Job::name",
        "fqmn": "App\\Classifiers\\Job@name",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Clas",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Classifiers/Job.php::App\\Classifiers\\Job::satisfies",
        "fqmn": "App\\Classifiers\\Job@satisfies",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Cons",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Console/Commands/DownloadModule.php::App\\Console\\Commands\\DownloadModule::copyFiles",
        "fqmn": "App\\Console\\Commands\\DownloadModule@copyFiles",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Cons",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Console/Commands/DownloadModule.php::App\\Console\\Commands\\DownloadModule::download",
        "fqmn": "App\\Console\\Commands\\DownloadModule@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/Cons",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Console/Commands/DownloadModule.php::App\\Console\\Commands\\DownloadModule::unzip",
        "fqmn": "App\\Console\\Commands\\DownloadModule@unzip",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Cons",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Console/Commands/RecurringCheck.php::App\\Console\\Commands\\RecurringCheck::getRealType",
        "fqmn": "App\\Console\\Commands\\RecurringCheck@getRealType",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Cons",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Console/Commands/RecurringCheck.php::App\\Console\\Commands\\RecurringCheck::updateRelationTypes",
        "fqmn": "App\\Console\\Commands\\RecurringCheck@updateRelationTypes",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Cons",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Console/Commands/Update.php::App\\Console\\Commands\\Update::copyFiles",
        "fqmn": "App\\Console\\Commands\\Update@copyFiles",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Cons",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Console/Commands/Update.php::App\\Console\\Commands\\Update::download",
        "fqmn": "App\\Console\\Commands\\Update@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/Cons",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Console/Commands/Update.php::App\\Console\\Commands\\Update::finish",
        "fqmn": "App\\Console\\Commands\\Update@finish",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Cons",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Console/Commands/Update.php::App\\Console\\Commands\\Update::getNewVersion",
        "fqmn": "App\\Console\\Commands\\Update@getNewVersion",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Cons",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Console/Commands/Update.php::App\\Console\\Commands\\Update::getOldVersion",
        "fqmn": "App\\Console\\Commands\\Update@getOldVersion",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Cons",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Console/Commands/Update.php::App\\Console\\Commands\\Update::unzip",
        "fqmn": "App\\Console\\Commands\\Update@unzip",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Exce",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Exceptions/Http/Resource.php::App\\Exceptions\\Http\\Resource::__construct",
        "fqmn": "App\\Exceptions\\Http\\Resource@__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/Exce",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Exceptions/Http/Resource.php::App\\Exceptions\\Http\\Resource::getErrors",
        "fqmn": "App\\Exceptions\\Http\\Resource@getErrors",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Exce",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Exceptions/Http/Resource.php::App\\Exceptions\\Http\\Resource::hasErrors",
        "fqmn": "App\\Exceptions\\Http\\Resource@hasErrors",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Auth/Users.php::App\\Http\\Controllers\\Api\\Auth\\Users::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Auth\\Users@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/Auth/Users.php::App\\Http\\Controllers\\Api\\Auth\\Users::disable",
        "fqmn": "App\\Http\\Controllers\\Api\\Auth\\Users@disable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Auth/Users.php::App\\Http\\Controllers\\Api\\Auth\\Users::enable",
        "fqmn": "App\\Http\\Controllers\\Api\\Auth\\Users@enable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Auth/Users.php::App\\Http\\Controllers\\Api\\Auth\\Users::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Auth\\Users@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/Auth/Users.php::App\\Http\\Controllers\\Api\\Auth\\Users::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Auth\\Users@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/Auth/Users.php::App\\Http\\Controllers\\Api\\Auth\\Users::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Auth\\Users@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/Auth/Users.php::App\\Http\\Controllers\\Api\\Auth\\Users::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Auth\\Users@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/Banking/Accounts.php::App\\Http\\Controllers\\Api\\Banking\\Accounts::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Accounts@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/Banking/Accounts.php::App\\Http\\Controllers\\Api\\Banking\\Accounts::disable",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Accounts@disable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Banking/Accounts.php::App\\Http\\Controllers\\Api\\Banking\\Accounts::enable",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Accounts@enable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Banking/Accounts.php::App\\Http\\Controllers\\Api\\Banking\\Accounts::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Accounts@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/Banking/Accounts.php::App\\Http\\Controllers\\Api\\Banking\\Accounts::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Accounts@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/Banking/Accounts.php::App\\Http\\Controllers\\Api\\Banking\\Accounts::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Accounts@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/Banking/Accounts.php::App\\Http\\Controllers\\Api\\Banking\\Accounts::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Accounts@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/Banking/Reconciliations.php::App\\Http\\Controllers\\Api\\Banking\\Reconciliations::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Reconciliations@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/Banking/Reconciliations.php::App\\Http\\Controllers\\Api\\Banking\\Reconciliations::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Reconciliations@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/Banking/Reconciliations.php::App\\Http\\Controllers\\Api\\Banking\\Reconciliations::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Reconciliations@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/Banking/Reconciliations.php::App\\Http\\Controllers\\Api\\Banking\\Reconciliations::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Reconciliations@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/Banking/Reconciliations.php::App\\Http\\Controllers\\Api\\Banking\\Reconciliations::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Reconciliations@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/Banking/Transactions.php::App\\Http\\Controllers\\Api\\Banking\\Transactions::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Transactions@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/Banking/Transactions.php::App\\Http\\Controllers\\Api\\Banking\\Transactions::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Transactions@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/Banking/Transactions.php::App\\Http\\Controllers\\Api\\Banking\\Transactions::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Transactions@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/Banking/Transactions.php::App\\Http\\Controllers\\Api\\Banking\\Transactions::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Transactions@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/Banking/Transactions.php::App\\Http\\Controllers\\Api\\Banking\\Transactions::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Transactions@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/Banking/Transfers.php::App\\Http\\Controllers\\Api\\Banking\\Transfers::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Transfers@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/Banking/Transfers.php::App\\Http\\Controllers\\Api\\Banking\\Transfers::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Transfers@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/Banking/Transfers.php::App\\Http\\Controllers\\Api\\Banking\\Transfers::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Transfers@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/Banking/Transfers.php::App\\Http\\Controllers\\Api\\Banking\\Transfers::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Transfers@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/Banking/Transfers.php::App\\Http\\Controllers\\Api\\Banking\\Transfers::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Transfers@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/Common/Companies.php::App\\Http\\Controllers\\Api\\Common\\Companies::canAccess",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Companies@canAccess",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Common/Companies.php::App\\Http\\Controllers\\Api\\Common\\Companies::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Companies@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/Common/Companies.php::App\\Http\\Controllers\\Api\\Common\\Companies::disable",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Companies@disable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Common/Companies.php::App\\Http\\Controllers\\Api\\Common\\Companies::enable",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Companies@enable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Common/Companies.php::App\\Http\\Controllers\\Api\\Common\\Companies::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Companies@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/Common/Companies.php::App\\Http\\Controllers\\Api\\Common\\Companies::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Companies@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/Common/Companies.php::App\\Http\\Controllers\\Api\\Common\\Companies::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Companies@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/Common/Companies.php::App\\Http\\Controllers\\Api\\Common\\Companies::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Companies@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/Common/Contacts.php::App\\Http\\Controllers\\Api\\Common\\Contacts::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Contacts@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/Common/Contacts.php::App\\Http\\Controllers\\Api\\Common\\Contacts::disable",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Contacts@disable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Common/Contacts.php::App\\Http\\Controllers\\Api\\Common\\Contacts::enable",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Contacts@enable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Common/Contacts.php::App\\Http\\Controllers\\Api\\Common\\Contacts::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Contacts@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/Common/Contacts.php::App\\Http\\Controllers\\Api\\Common\\Contacts::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Contacts@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/Common/Contacts.php::App\\Http\\Controllers\\Api\\Common\\Contacts::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Contacts@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/Common/Contacts.php::App\\Http\\Controllers\\Api\\Common\\Contacts::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Contacts@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/Common/Dashboards.php::App\\Http\\Controllers\\Api\\Common\\Dashboards::canAccess",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Dashboards@canAccess",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Common/Dashboards.php::App\\Http\\Controllers\\Api\\Common\\Dashboards::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Dashboards@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/Common/Dashboards.php::App\\Http\\Controllers\\Api\\Common\\Dashboards::disable",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Dashboards@disable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Common/Dashboards.php::App\\Http\\Controllers\\Api\\Common\\Dashboards::enable",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Dashboards@enable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Common/Dashboards.php::App\\Http\\Controllers\\Api\\Common\\Dashboards::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Dashboards@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/Common/Dashboards.php::App\\Http\\Controllers\\Api\\Common\\Dashboards::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Dashboards@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/Common/Dashboards.php::App\\Http\\Controllers\\Api\\Common\\Dashboards::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Dashboards@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/Common/Dashboards.php::App\\Http\\Controllers\\Api\\Common\\Dashboards::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Dashboards@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/Common/Items.php::App\\Http\\Controllers\\Api\\Common\\Items::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Items@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/Common/Items.php::App\\Http\\Controllers\\Api\\Common\\Items::disable",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Items@disable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Common/Items.php::App\\Http\\Controllers\\Api\\Common\\Items::enable",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Items@enable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Common/Items.php::App\\Http\\Controllers\\Api\\Common\\Items::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Items@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/Common/Items.php::App\\Http\\Controllers\\Api\\Common\\Items::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Items@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/Common/Items.php::App\\Http\\Controllers\\Api\\Common\\Items::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Items@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/Common/Items.php::App\\Http\\Controllers\\Api\\Common\\Items::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Items@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/Common/Ping.php::App\\Http\\Controllers\\Api\\Common\\Ping::__construct",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Ping@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Common/Ping.php::App\\Http\\Controllers\\Api\\Common\\Ping::pong",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Ping@pong",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Common/Reports.php::App\\Http\\Controllers\\Api\\Common\\Reports::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Reports@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/Common/Reports.php::App\\Http\\Controllers\\Api\\Common\\Reports::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Reports@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/Common/Reports.php::App\\Http\\Controllers\\Api\\Common\\Reports::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Reports@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/Common/Reports.php::App\\Http\\Controllers\\Api\\Common\\Reports::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Reports@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/Common/Reports.php::App\\Http\\Controllers\\Api\\Common\\Reports::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Reports@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/Common/Translations.php::App\\Http\\Controllers\\Api\\Common\\Translations::all",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Translations@all",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Common/Translations.php::App\\Http\\Controllers\\Api\\Common\\Translations::file",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Translations@file",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Document/Documents.php::App\\Http\\Controllers\\Api\\Document\\Documents::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\Documents@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/Document/Documents.php::App\\Http\\Controllers\\Api\\Document\\Documents::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\Documents@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/Document/Documents.php::App\\Http\\Controllers\\Api\\Document\\Documents::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\Documents@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/Document/Documents.php::App\\Http\\Controllers\\Api\\Document\\Documents::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\Documents@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/Document/Documents.php::App\\Http\\Controllers\\Api\\Document\\Documents::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\Documents@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/Document/DocumentTransactions.php::App\\Http\\Controllers\\Api\\Document\\DocumentTransactions::__construct",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\DocumentTransactions@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Document/DocumentTransactions.php::App\\Http\\Controllers\\Api\\Document\\DocumentTransactions::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\DocumentTransactions@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/Document/DocumentTransactions.php::App\\Http\\Controllers\\Api\\Document\\DocumentTransactions::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\DocumentTransactions@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/Document/DocumentTransactions.php::App\\Http\\Controllers\\Api\\Document\\DocumentTransactions::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\DocumentTransactions@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/Document/DocumentTransactions.php::App\\Http\\Controllers\\Api\\Document\\DocumentTransactions::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\DocumentTransactions@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/Document/DocumentTransactions.php::App\\Http\\Controllers\\Api\\Document\\DocumentTransactions::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\DocumentTransactions@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/Settings/Categories.php::App\\Http\\Controllers\\Api\\Settings\\Categories::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Categories@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/Settings/Categories.php::App\\Http\\Controllers\\Api\\Settings\\Categories::disable",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Categories@disable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Settings/Categories.php::App\\Http\\Controllers\\Api\\Settings\\Categories::enable",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Categories@enable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Settings/Categories.php::App\\Http\\Controllers\\Api\\Settings\\Categories::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Categories@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/Settings/Categories.php::App\\Http\\Controllers\\Api\\Settings\\Categories::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Categories@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/Settings/Categories.php::App\\Http\\Controllers\\Api\\Settings\\Categories::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Categories@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/Settings/Categories.php::App\\Http\\Controllers\\Api\\Settings\\Categories::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Categories@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/Settings/Currencies.php::App\\Http\\Controllers\\Api\\Settings\\Currencies::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Currencies@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/Settings/Currencies.php::App\\Http\\Controllers\\Api\\Settings\\Currencies::disable",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Currencies@disable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Settings/Currencies.php::App\\Http\\Controllers\\Api\\Settings\\Currencies::enable",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Currencies@enable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Settings/Currencies.php::App\\Http\\Controllers\\Api\\Settings\\Currencies::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Currencies@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/Settings/Currencies.php::App\\Http\\Controllers\\Api\\Settings\\Currencies::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Currencies@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/Settings/Currencies.php::App\\Http\\Controllers\\Api\\Settings\\Currencies::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Currencies@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/Settings/Currencies.php::App\\Http\\Controllers\\Api\\Settings\\Currencies::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Currencies@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/Settings/Settings.php::App\\Http\\Controllers\\Api\\Settings\\Settings::__construct",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Settings@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Settings/Settings.php::App\\Http\\Controllers\\Api\\Settings\\Settings::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Settings@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/Settings/Settings.php::App\\Http\\Controllers\\Api\\Settings\\Settings::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Settings@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/Settings/Settings.php::App\\Http\\Controllers\\Api\\Settings\\Settings::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Settings@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/Settings/Settings.php::App\\Http\\Controllers\\Api\\Settings\\Settings::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Settings@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/Settings/Settings.php::App\\Http\\Controllers\\Api\\Settings\\Settings::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Settings@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/Settings/Taxes.php::App\\Http\\Controllers\\Api\\Settings\\Taxes::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Taxes@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/Settings/Taxes.php::App\\Http\\Controllers\\Api\\Settings\\Taxes::disable",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Taxes@disable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Settings/Taxes.php::App\\Http\\Controllers\\Api\\Settings\\Taxes::enable",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Taxes@enable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Settings/Taxes.php::App\\Http\\Controllers\\Api\\Settings\\Taxes::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Taxes@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/Settings/Taxes.php::App\\Http\\Controllers\\Api\\Settings\\Taxes::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Taxes@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/Settings/Taxes.php::App\\Http\\Controllers\\Api\\Settings\\Taxes::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Taxes@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/Settings/Taxes.php::App\\Http\\Controllers\\Api\\Settings\\Taxes::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Taxes@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Auth/Forgot.php::App\\Http\\Controllers\\Auth\\Forgot::__construct",
        "fqmn": "App\\Http\\Controllers\\Auth\\Forgot@__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/Forgot.php::App\\Http\\Controllers\\Auth\\Forgot::create",
        "fqmn": "App\\Http\\Controllers\\Auth\\Forgot@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Auth/Forgot.php::App\\Http\\Controllers\\Auth\\Forgot::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\Forgot@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Auth/Login.php::App\\Http\\Controllers\\Auth\\Login::__construct",
        "fqmn": "App\\Http\\Controllers\\Auth\\Login@__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/Login.php::App\\Http\\Controllers\\Auth\\Login::create",
        "fqmn": "App\\Http\\Controllers\\Auth\\Login@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Auth/Login.php::App\\Http\\Controllers\\Auth\\Login::destroy",
        "fqmn": "App\\Http\\Controllers\\Auth\\Login@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Auth/Login.php::App\\Http\\Controllers\\Auth\\Login::logout",
        "fqmn": "App\\Http\\Controllers\\Auth\\Login@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/Login.php::App\\Http\\Controllers\\Auth\\Login::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\Login@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Auth/Register.php::App\\Http\\Controllers\\Auth\\Register::__construct",
        "fqmn": "App\\Http\\Controllers\\Auth\\Register@__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/Register.php::App\\Http\\Controllers\\Auth\\Register::create",
        "fqmn": "App\\Http\\Controllers\\Auth\\Register@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Auth/Register.php::App\\Http\\Controllers\\Auth\\Register::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\Register@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Auth/Reset.php::App\\Http\\Controllers\\Auth\\Reset::__construct",
        "fqmn": "App\\Http\\Controllers\\Auth\\Reset@__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/Reset.php::App\\Http\\Controllers\\Auth\\Reset::create",
        "fqmn": "App\\Http\\Controllers\\Auth\\Reset@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Auth/Reset.php::App\\Http\\Controllers\\Auth\\Reset::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\Reset@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Auth/Users.php::App\\Http\\Controllers\\Auth\\Users::__construct",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@__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/Users.php::App\\Http\\Controllers\\Auth\\Users::autocomplete",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@autocomplete",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual 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/Users.php::App\\Http\\Controllers\\Auth\\Users::create",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Auth/Users.php::App\\Http\\Controllers\\Auth\\Users::destroy",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Auth/Users.php::App\\Http\\Controllers\\Auth\\Users::disable",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@disable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual 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/Users.php::App\\Http\\Controllers\\Auth\\Users::edit",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Auth/Users.php::App\\Http\\Controllers\\Auth\\Users::enable",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@enable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual 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/Users.php::App\\Http\\Controllers\\Auth\\Users::index",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@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/Users.php::App\\Http\\Controllers\\Auth\\Users::invite",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@invite",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual 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/Users.php::App\\Http\\Controllers\\Auth\\Users::landingPages",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@landingPages",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual 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/Users.php::App\\Http\\Controllers\\Auth\\Users::readOverdueInvoices",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@readOverdueInvoices",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual 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/Users.php::App\\Http\\Controllers\\Auth\\Users::readUpcomingBills",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@readUpcomingBills",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual 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/Users.php::App\\Http\\Controllers\\Auth\\Users::show",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Auth/Users.php::App\\Http\\Controllers\\Auth\\Users::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Auth/Users.php::App\\Http\\Controllers\\Auth\\Users::update",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@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/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::create",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::createExpense",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@createExpense",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::createIncome",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@createIncome",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::createTransfer",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@createTransfer",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::currency",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@currency",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::destroy",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@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/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::disable",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@disable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::duplicate",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@duplicate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::edit",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::enable",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@enable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::index",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@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/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::seePerformance",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@seePerformance",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::show",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@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/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::store",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@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/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::update",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@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/Banking/Reconciliations.php::App\\Http\\Controllers\\Banking\\Reconciliations::calculate",
        "fqmn": "App\\Http\\Controllers\\Banking\\Reconciliations@calculate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Banking/Reconciliations.php::App\\Http\\Controllers\\Banking\\Reconciliations::create",
        "fqmn": "App\\Http\\Controllers\\Banking\\Reconciliations@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Banking/Reconciliations.php::App\\Http\\Controllers\\Banking\\Reconciliations::destroy",
        "fqmn": "App\\Http\\Controllers\\Banking\\Reconciliations@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/Banking/Reconciliations.php::App\\Http\\Controllers\\Banking\\Reconciliations::edit",
        "fqmn": "App\\Http\\Controllers\\Banking\\Reconciliations@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Banking/Reconciliations.php::App\\Http\\Controllers\\Banking\\Reconciliations::getOpeningBalance",
        "fqmn": "App\\Http\\Controllers\\Banking\\Reconciliations@getOpeningBalance",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Banking/Reconciliations.php::App\\Http\\Controllers\\Banking\\Reconciliations::index",
        "fqmn": "App\\Http\\Controllers\\Banking\\Reconciliations@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/Banking/Reconciliations.php::App\\Http\\Controllers\\Banking\\Reconciliations::show",
        "fqmn": "App\\Http\\Controllers\\Banking\\Reconciliations@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/Banking/Reconciliations.php::App\\Http\\Controllers\\Banking\\Reconciliations::store",
        "fqmn": "App\\Http\\Controllers\\Banking\\Reconciliations@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/Banking/Reconciliations.php::App\\Http\\Controllers\\Banking\\Reconciliations::update",
        "fqmn": "App\\Http\\Controllers\\Banking\\Reconciliations@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/Banking/RecurringTransactions.php::App\\Http\\Controllers\\Banking\\RecurringTransactions::__construct",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@__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/Banking/RecurringTransactions.php::App\\Http\\Controllers\\Banking\\RecurringTransactions::create",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Banking/RecurringTransactions.php::App\\Http\\Controllers\\Banking\\RecurringTransactions::duplicate",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@duplicate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Banking/RecurringTransactions.php::App\\Http\\Controllers\\Banking\\RecurringTransactions::edit",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Banking/RecurringTransactions.php::App\\Http\\Controllers\\Banking\\RecurringTransactions::end",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@end",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Banking/RecurringTransactions.php::App\\Http\\Controllers\\Banking\\RecurringTransactions::export",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@export",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Banking/RecurringTransactions.php::App\\Http\\Controllers\\Banking\\RecurringTransactions::import",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@import",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Banking/RecurringTransactions.php::App\\Http\\Controllers\\Banking\\RecurringTransactions::index",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@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/Banking/RecurringTransactions.php::App\\Http\\Controllers\\Banking\\RecurringTransactions::show",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@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/Banking/RecurringTransactions.php::App\\Http\\Controllers\\Banking\\RecurringTransactions::store",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@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/Banking/RecurringTransactions.php::App\\Http\\Controllers\\Banking\\RecurringTransactions::update",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@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/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::connect",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@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/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::create",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::destroy",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@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/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::dial",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@dial",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::duplicate",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@duplicate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::edit",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::emailTransaction",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@emailTransaction",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::export",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@export",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::import",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@import",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::index",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@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/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::pdfTransaction",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@pdfTransaction",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::printTransaction",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@printTransaction",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::show",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@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/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::store",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@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/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::update",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@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/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::create",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::destroy",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@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/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::duplicate",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@duplicate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::edit",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::export",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@export",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::import",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@import",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::index",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@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/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::pdfTransfer",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@pdfTransfer",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::printTransfer",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@printTransfer",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::show",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@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/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::store",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@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/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::update",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@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/Common/BulkActions.php::App\\Http\\Controllers\\Common\\BulkActions::action",
        "fqmn": "App\\Http\\Controllers\\Common\\BulkActions@action",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::__construct",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@__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/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::autocomplete",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@autocomplete",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::create",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::destroy",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@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/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::disable",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@disable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::edit",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::enable",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@enable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::index",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@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/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::show",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@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/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::store",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@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/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::switch",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@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/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::update",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@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/Common/Contacts.php::App\\Http\\Controllers\\Common\\Contacts::__construct",
        "fqmn": "App\\Http\\Controllers\\Common\\Contacts@__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/Common/Contacts.php::App\\Http\\Controllers\\Common\\Contacts::index",
        "fqmn": "App\\Http\\Controllers\\Common\\Contacts@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/Common/Dashboards.php::App\\Http\\Controllers\\Common\\Dashboards::__construct",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@__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/Common/Dashboards.php::App\\Http\\Controllers\\Common\\Dashboards::create",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Common/Dashboards.php::App\\Http\\Controllers\\Common\\Dashboards::destroy",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@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/Common/Dashboards.php::App\\Http\\Controllers\\Common\\Dashboards::disable",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@disable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Common/Dashboards.php::App\\Http\\Controllers\\Common\\Dashboards::edit",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Common/Dashboards.php::App\\Http\\Controllers\\Common\\Dashboards::enable",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@enable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Common/Dashboards.php::App\\Http\\Controllers\\Common\\Dashboards::index",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@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/Common/Dashboards.php::App\\Http\\Controllers\\Common\\Dashboards::show",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@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/Common/Dashboards.php::App\\Http\\Controllers\\Common\\Dashboards::store",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@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/Common/Dashboards.php::App\\Http\\Controllers\\Common\\Dashboards::switch",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@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/Common/Dashboards.php::App\\Http\\Controllers\\Common\\Dashboards::update",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@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/Common/Import.php::App\\Http\\Controllers\\Common\\Import::create",
        "fqmn": "App\\Http\\Controllers\\Common\\Import@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::autocomplete",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@autocomplete",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::create",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::destroy",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@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/Common/Items.php::App\\Http\\Controllers\\Common\\Items::disable",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@disable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::duplicate",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@duplicate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::edit",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::enable",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@enable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::export",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@export",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::import",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@import",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::index",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@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/Common/Items.php::App\\Http\\Controllers\\Common\\Items::show",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@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/Common/Items.php::App\\Http\\Controllers\\Common\\Items::store",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@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/Common/Items.php::App\\Http\\Controllers\\Common\\Items::update",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@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/Common/Plans.php::App\\Http\\Controllers\\Common\\Plans::check",
        "fqmn": "App\\Http\\Controllers\\Common\\Plans@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/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::__construct",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@__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/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::create",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::destroy",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@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/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::duplicate",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@duplicate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::edit",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::export",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@export",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::fields",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@fields",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::index",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@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/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::pdf",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@pdf",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::print",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@print",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::show",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@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/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::store",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@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/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::update",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@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/Common/Uploads.php::App\\Http\\Controllers\\Common\\Uploads::destroy",
        "fqmn": "App\\Http\\Controllers\\Common\\Uploads@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/Common/Uploads.php::App\\Http\\Controllers\\Common\\Uploads::download",
        "fqmn": "App\\Http\\Controllers\\Common\\Uploads@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/Common/Uploads.php::App\\Http\\Controllers\\Common\\Uploads::get",
        "fqmn": "App\\Http\\Controllers\\Common\\Uploads@get",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Common/Uploads.php::App\\Http\\Controllers\\Common\\Uploads::inline",
        "fqmn": "App\\Http\\Controllers\\Common\\Uploads@inline",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Common/Uploads.php::App\\Http\\Controllers\\Common\\Uploads::show",
        "fqmn": "App\\Http\\Controllers\\Common\\Uploads@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/Common/Widgets.php::App\\Http\\Controllers\\Common\\Widgets::destroy",
        "fqmn": "App\\Http\\Controllers\\Common\\Widgets@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/Common/Widgets.php::App\\Http\\Controllers\\Common\\Widgets::edit",
        "fqmn": "App\\Http\\Controllers\\Common\\Widgets@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Common/Widgets.php::App\\Http\\Controllers\\Common\\Widgets::getData",
        "fqmn": "App\\Http\\Controllers\\Common\\Widgets@getData",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Common/Widgets.php::App\\Http\\Controllers\\Common\\Widgets::index",
        "fqmn": "App\\Http\\Controllers\\Common\\Widgets@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/Common/Widgets.php::App\\Http\\Controllers\\Common\\Widgets::show",
        "fqmn": "App\\Http\\Controllers\\Common\\Widgets@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/Common/Widgets.php::App\\Http\\Controllers\\Common\\Widgets::store",
        "fqmn": "App\\Http\\Controllers\\Common\\Widgets@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/Common/Widgets.php::App\\Http\\Controllers\\Common\\Widgets::update",
        "fqmn": "App\\Http\\Controllers\\Common\\Widgets@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/Install/Database.php::App\\Http\\Controllers\\Install\\Database::create",
        "fqmn": "App\\Http\\Controllers\\Install\\Database@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Install/Database.php::App\\Http\\Controllers\\Install\\Database::store",
        "fqmn": "App\\Http\\Controllers\\Install\\Database@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/Install/Language.php::App\\Http\\Controllers\\Install\\Language::create",
        "fqmn": "App\\Http\\Controllers\\Install\\Language@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Install/Language.php::App\\Http\\Controllers\\Install\\Language::getLanguages",
        "fqmn": "App\\Http\\Controllers\\Install\\Language@getLanguages",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Install/Language.php::App\\Http\\Controllers\\Install\\Language::store",
        "fqmn": "App\\Http\\Controllers\\Install\\Language@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/Install/Requirements.php::App\\Http\\Controllers\\Install\\Requirements::show",
        "fqmn": "App\\Http\\Controllers\\Install\\Requirements@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/Install/Settings.php::App\\Http\\Controllers\\Install\\Settings::create",
        "fqmn": "App\\Http\\Controllers\\Install\\Settings@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Install/Settings.php::App\\Http\\Controllers\\Install\\Settings::store",
        "fqmn": "App\\Http\\Controllers\\Install\\Settings@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/Install/Updates.php::App\\Http\\Controllers\\Install\\Updates::changelog",
        "fqmn": "App\\Http\\Controllers\\Install\\Updates@changelog",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Install/Updates.php::App\\Http\\Controllers\\Install\\Updates::check",
        "fqmn": "App\\Http\\Controllers\\Install\\Updates@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/Install/Updates.php::App\\Http\\Controllers\\Install\\Updates::copyFiles",
        "fqmn": "App\\Http\\Controllers\\Install\\Updates@copyFiles",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Install/Updates.php::App\\Http\\Controllers\\Install\\Updates::download",
        "fqmn": "App\\Http\\Controllers\\Install\\Updates@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/Install/Updates.php::App\\Http\\Controllers\\Install\\Updates::finish",
        "fqmn": "App\\Http\\Controllers\\Install\\Updates@finish",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Install/Updates.php::App\\Http\\Controllers\\Install\\Updates::index",
        "fqmn": "App\\Http\\Controllers\\Install\\Updates@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/Install/Updates.php::App\\Http\\Controllers\\Install\\Updates::redirect",
        "fqmn": "App\\Http\\Controllers\\Install\\Updates@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/Install/Updates.php::App\\Http\\Controllers\\Install\\Updates::run",
        "fqmn": "App\\Http\\Controllers\\Install\\Updates@run",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Install/Updates.php::App\\Http\\Controllers\\Install\\Updates::steps",
        "fqmn": "App\\Http\\Controllers\\Install\\Updates@steps",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Install/Updates.php::App\\Http\\Controllers\\Install\\Updates::unzip",
        "fqmn": "App\\Http\\Controllers\\Install\\Updates@unzip",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Modals/Accounts.php::App\\Http\\Controllers\\Modals\\Accounts::__construct",
        "fqmn": "App\\Http\\Controllers\\Modals\\Accounts@__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/Modals/Accounts.php::App\\Http\\Controllers\\Modals\\Accounts::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\Accounts@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Modals/Accounts.php::App\\Http\\Controllers\\Modals\\Accounts::store",
        "fqmn": "App\\Http\\Controllers\\Modals\\Accounts@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/Modals/Categories.php::App\\Http\\Controllers\\Modals\\Categories::__construct",
        "fqmn": "App\\Http\\Controllers\\Modals\\Categories@__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/Modals/Categories.php::App\\Http\\Controllers\\Modals\\Categories::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\Categories@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Modals/Categories.php::App\\Http\\Controllers\\Modals\\Categories::store",
        "fqmn": "App\\Http\\Controllers\\Modals\\Categories@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/Modals/Companies.php::App\\Http\\Controllers\\Modals\\Companies::__construct",
        "fqmn": "App\\Http\\Controllers\\Modals\\Companies@__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/Modals/Companies.php::App\\Http\\Controllers\\Modals\\Companies::edit",
        "fqmn": "App\\Http\\Controllers\\Modals\\Companies@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Modals/Currencies.php::App\\Http\\Controllers\\Modals\\Currencies::__construct",
        "fqmn": "App\\Http\\Controllers\\Modals\\Currencies@__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/Modals/Currencies.php::App\\Http\\Controllers\\Modals\\Currencies::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\Currencies@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Modals/Currencies.php::App\\Http\\Controllers\\Modals\\Currencies::store",
        "fqmn": "App\\Http\\Controllers\\Modals\\Currencies@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/Modals/Customers.php::App\\Http\\Controllers\\Modals\\Customers::__construct",
        "fqmn": "App\\Http\\Controllers\\Modals\\Customers@__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/Modals/Customers.php::App\\Http\\Controllers\\Modals\\Customers::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\Customers@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Modals/Customers.php::App\\Http\\Controllers\\Modals\\Customers::edit",
        "fqmn": "App\\Http\\Controllers\\Modals\\Customers@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Modals/Customers.php::App\\Http\\Controllers\\Modals\\Customers::store",
        "fqmn": "App\\Http\\Controllers\\Modals\\Customers@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/Modals/Customers.php::App\\Http\\Controllers\\Modals\\Customers::update",
        "fqmn": "App\\Http\\Controllers\\Modals\\Customers@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/Modals/DocumentItemColumns.php::App\\Http\\Controllers\\Modals\\DocumentItemColumns::__construct",
        "fqmn": "App\\Http\\Controllers\\Modals\\DocumentItemColumns@__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/Modals/DocumentItemColumns.php::App\\Http\\Controllers\\Modals\\DocumentItemColumns::edit",
        "fqmn": "App\\Http\\Controllers\\Modals\\DocumentItemColumns@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Modals/DocumentItemColumns.php::App\\Http\\Controllers\\Modals\\DocumentItemColumns::update",
        "fqmn": "App\\Http\\Controllers\\Modals\\DocumentItemColumns@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/Modals/DocumentTransactions.php::App\\Http\\Controllers\\Modals\\DocumentTransactions::__construct",
        "fqmn": "App\\Http\\Controllers\\Modals\\DocumentTransactions@__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/Modals/DocumentTransactions.php::App\\Http\\Controllers\\Modals\\DocumentTransactions::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\DocumentTransactions@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Modals/DocumentTransactions.php::App\\Http\\Controllers\\Modals\\DocumentTransactions::destroy",
        "fqmn": "App\\Http\\Controllers\\Modals\\DocumentTransactions@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/Modals/DocumentTransactions.php::App\\Http\\Controllers\\Modals\\DocumentTransactions::edit",
        "fqmn": "App\\Http\\Controllers\\Modals\\DocumentTransactions@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Modals/DocumentTransactions.php::App\\Http\\Controllers\\Modals\\DocumentTransactions::store",
        "fqmn": "App\\Http\\Controllers\\Modals\\DocumentTransactions@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/Modals/DocumentTransactions.php::App\\Http\\Controllers\\Modals\\DocumentTransactions::update",
        "fqmn": "App\\Http\\Controllers\\Modals\\DocumentTransactions@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/Modals/InvoiceEmails.php::App\\Http\\Controllers\\Modals\\InvoiceEmails::__construct",
        "fqmn": "App\\Http\\Controllers\\Modals\\InvoiceEmails@__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/Modals/InvoiceEmails.php::App\\Http\\Controllers\\Modals\\InvoiceEmails::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\InvoiceEmails@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Modals/InvoiceEmails.php::App\\Http\\Controllers\\Modals\\InvoiceEmails::store",
        "fqmn": "App\\Http\\Controllers\\Modals\\InvoiceEmails@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/Modals/InvoiceShare.php::App\\Http\\Controllers\\Modals\\InvoiceShare::__construct",
        "fqmn": "App\\Http\\Controllers\\Modals\\InvoiceShare@__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/Modals/InvoiceShare.php::App\\Http\\Controllers\\Modals\\InvoiceShare::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\InvoiceShare@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Modals/InvoiceTemplates.php::App\\Http\\Controllers\\Modals\\InvoiceTemplates::__construct",
        "fqmn": "App\\Http\\Controllers\\Modals\\InvoiceTemplates@__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/Modals/InvoiceTemplates.php::App\\Http\\Controllers\\Modals\\InvoiceTemplates::update",
        "fqmn": "App\\Http\\Controllers\\Modals\\InvoiceTemplates@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/Modals/Items.php::App\\Http\\Controllers\\Modals\\Items::__construct",
        "fqmn": "App\\Http\\Controllers\\Modals\\Items@__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/Modals/Items.php::App\\Http\\Controllers\\Modals\\Items::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\Items@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Modals/Items.php::App\\Http\\Controllers\\Modals\\Items::store",
        "fqmn": "App\\Http\\Controllers\\Modals\\Items@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/Modals/Taxes.php::App\\Http\\Controllers\\Modals\\Taxes::__construct",
        "fqmn": "App\\Http\\Controllers\\Modals\\Taxes@__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/Modals/Taxes.php::App\\Http\\Controllers\\Modals\\Taxes::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\Taxes@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Modals/Taxes.php::App\\Http\\Controllers\\Modals\\Taxes::store",
        "fqmn": "App\\Http\\Controllers\\Modals\\Taxes@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/Modals/TransactionEmails.php::App\\Http\\Controllers\\Modals\\TransactionEmails::__construct",
        "fqmn": "App\\Http\\Controllers\\Modals\\TransactionEmails@__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/Modals/TransactionEmails.php::App\\Http\\Controllers\\Modals\\TransactionEmails::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\TransactionEmails@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Modals/TransactionEmails.php::App\\Http\\Controllers\\Modals\\TransactionEmails::store",
        "fqmn": "App\\Http\\Controllers\\Modals\\TransactionEmails@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/Modals/TransactionShare.php::App\\Http\\Controllers\\Modals\\TransactionShare::__construct",
        "fqmn": "App\\Http\\Controllers\\Modals\\TransactionShare@__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/Modals/TransactionShare.php::App\\Http\\Controllers\\Modals\\TransactionShare::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\TransactionShare@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Modals/TransferTemplates.php::App\\Http\\Controllers\\Modals\\TransferTemplates::__construct",
        "fqmn": "App\\Http\\Controllers\\Modals\\TransferTemplates@__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/Modals/TransferTemplates.php::App\\Http\\Controllers\\Modals\\TransferTemplates::update",
        "fqmn": "App\\Http\\Controllers\\Modals\\TransferTemplates@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/Modals/Vendors.php::App\\Http\\Controllers\\Modals\\Vendors::__construct",
        "fqmn": "App\\Http\\Controllers\\Modals\\Vendors@__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/Modals/Vendors.php::App\\Http\\Controllers\\Modals\\Vendors::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\Vendors@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Modals/Vendors.php::App\\Http\\Controllers\\Modals\\Vendors::edit",
        "fqmn": "App\\Http\\Controllers\\Modals\\Vendors@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Modals/Vendors.php::App\\Http\\Controllers\\Modals\\Vendors::store",
        "fqmn": "App\\Http\\Controllers\\Modals\\Vendors@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/Modals/Vendors.php::App\\Http\\Controllers\\Modals\\Vendors::update",
        "fqmn": "App\\Http\\Controllers\\Modals\\Vendors@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/Modules/ApiKey.php::App\\Http\\Controllers\\Modules\\ApiKey::create",
        "fqmn": "App\\Http\\Controllers\\Modules\\ApiKey@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Modules/ApiKey.php::App\\Http\\Controllers\\Modules\\ApiKey::store",
        "fqmn": "App\\Http\\Controllers\\Modules\\ApiKey@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/Modules/Home.php::App\\Http\\Controllers\\Modules\\Home::index",
        "fqmn": "App\\Http\\Controllers\\Modules\\Home@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/Modules/Home.php::App\\Http\\Controllers\\Modules\\Home::show",
        "fqmn": "App\\Http\\Controllers\\Modules\\Home@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/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::__construct",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@__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/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::copy",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@copy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::disable",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@disable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::documentation",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@documentation",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::download",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@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/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::enable",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@enable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::install",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@install",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::releases",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@releases",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::reviews",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@reviews",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::show",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@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/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::steps",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@steps",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::uninstall",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@uninstall",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::unzip",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@unzip",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Modules/My.php::App\\Http\\Controllers\\Modules\\My::index",
        "fqmn": "App\\Http\\Controllers\\Modules\\My@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/Modules/Tiles.php::App\\Http\\Controllers\\Modules\\Tiles::categoryModules",
        "fqmn": "App\\Http\\Controllers\\Modules\\Tiles@categoryModules",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Modules/Tiles.php::App\\Http\\Controllers\\Modules\\Tiles::freeModules",
        "fqmn": "App\\Http\\Controllers\\Modules\\Tiles@freeModules",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Modules/Tiles.php::App\\Http\\Controllers\\Modules\\Tiles::loadMore",
        "fqmn": "App\\Http\\Controllers\\Modules\\Tiles@loadMore",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Modules/Tiles.php::App\\Http\\Controllers\\Modules\\Tiles::newModules",
        "fqmn": "App\\Http\\Controllers\\Modules\\Tiles@newModules",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Modules/Tiles.php::App\\Http\\Controllers\\Modules\\Tiles::paidModules",
        "fqmn": "App\\Http\\Controllers\\Modules\\Tiles@paidModules",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Modules/Tiles.php::App\\Http\\Controllers\\Modules\\Tiles::searchModules",
        "fqmn": "App\\Http\\Controllers\\Modules\\Tiles@searchModules",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Modules/Tiles.php::App\\Http\\Controllers\\Modules\\Tiles::vendorModules",
        "fqmn": "App\\Http\\Controllers\\Modules\\Tiles@vendorModules",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Portal/Dashboard.php::App\\Http\\Controllers\\Portal\\Dashboard::index",
        "fqmn": "App\\Http\\Controllers\\Portal\\Dashboard@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/Portal/Invoices.php::App\\Http\\Controllers\\Portal\\Invoices::finish",
        "fqmn": "App\\Http\\Controllers\\Portal\\Invoices@finish",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Portal/Invoices.php::App\\Http\\Controllers\\Portal\\Invoices::index",
        "fqmn": "App\\Http\\Controllers\\Portal\\Invoices@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/Portal/Invoices.php::App\\Http\\Controllers\\Portal\\Invoices::pdfInvoice",
        "fqmn": "App\\Http\\Controllers\\Portal\\Invoices@pdfInvoice",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Portal/Invoices.php::App\\Http\\Controllers\\Portal\\Invoices::preview",
        "fqmn": "App\\Http\\Controllers\\Portal\\Invoices@preview",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Portal/Invoices.php::App\\Http\\Controllers\\Portal\\Invoices::printInvoice",
        "fqmn": "App\\Http\\Controllers\\Portal\\Invoices@printInvoice",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Portal/Invoices.php::App\\Http\\Controllers\\Portal\\Invoices::show",
        "fqmn": "App\\Http\\Controllers\\Portal\\Invoices@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/Portal/Invoices.php::App\\Http\\Controllers\\Portal\\Invoices::signed",
        "fqmn": "App\\Http\\Controllers\\Portal\\Invoices@signed",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Portal/Payments.php::App\\Http\\Controllers\\Portal\\Payments::currencies",
        "fqmn": "App\\Http\\Controllers\\Portal\\Payments@currencies",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Portal/Payments.php::App\\Http\\Controllers\\Portal\\Payments::index",
        "fqmn": "App\\Http\\Controllers\\Portal\\Payments@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/Portal/Payments.php::App\\Http\\Controllers\\Portal\\Payments::pdfPayment",
        "fqmn": "App\\Http\\Controllers\\Portal\\Payments@pdfPayment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Portal/Payments.php::App\\Http\\Controllers\\Portal\\Payments::preview",
        "fqmn": "App\\Http\\Controllers\\Portal\\Payments@preview",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Portal/Payments.php::App\\Http\\Controllers\\Portal\\Payments::printPayment",
        "fqmn": "App\\Http\\Controllers\\Portal\\Payments@printPayment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Portal/Payments.php::App\\Http\\Controllers\\Portal\\Payments::show",
        "fqmn": "App\\Http\\Controllers\\Portal\\Payments@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/Portal/Payments.php::App\\Http\\Controllers\\Portal\\Payments::signed",
        "fqmn": "App\\Http\\Controllers\\Portal\\Payments@signed",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Portal/Profile.php::App\\Http\\Controllers\\Portal\\Profile::edit",
        "fqmn": "App\\Http\\Controllers\\Portal\\Profile@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Portal/Profile.php::App\\Http\\Controllers\\Portal\\Profile::index",
        "fqmn": "App\\Http\\Controllers\\Portal\\Profile@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/Portal/Profile.php::App\\Http\\Controllers\\Portal\\Profile::readOverdueInvoices",
        "fqmn": "App\\Http\\Controllers\\Portal\\Profile@readOverdueInvoices",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Portal/Profile.php::App\\Http\\Controllers\\Portal\\Profile::show",
        "fqmn": "App\\Http\\Controllers\\Portal\\Profile@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/Portal/Profile.php::App\\Http\\Controllers\\Portal\\Profile::update",
        "fqmn": "App\\Http\\Controllers\\Portal\\Profile@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/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::create",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::destroy",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@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/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::duplicate",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@duplicate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::edit",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::export",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@export",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::import",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@import",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::index",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@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/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::markCancelled",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@markCancelled",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::markReceived",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@markReceived",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::pdfBill",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@pdfBill",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::printBill",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@printBill",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::restoreBill",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@restoreBill",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::show",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@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/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::store",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@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/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::update",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@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/Purchases/RecurringBills.php::App\\Http\\Controllers\\Purchases\\RecurringBills::__construct",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@__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/Purchases/RecurringBills.php::App\\Http\\Controllers\\Purchases\\RecurringBills::create",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Purchases/RecurringBills.php::App\\Http\\Controllers\\Purchases\\RecurringBills::duplicate",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@duplicate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Purchases/RecurringBills.php::App\\Http\\Controllers\\Purchases\\RecurringBills::edit",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Purchases/RecurringBills.php::App\\Http\\Controllers\\Purchases\\RecurringBills::end",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@end",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Purchases/RecurringBills.php::App\\Http\\Controllers\\Purchases\\RecurringBills::export",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@export",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Purchases/RecurringBills.php::App\\Http\\Controllers\\Purchases\\RecurringBills::import",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@import",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Purchases/RecurringBills.php::App\\Http\\Controllers\\Purchases\\RecurringBills::index",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@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/Purchases/RecurringBills.php::App\\Http\\Controllers\\Purchases\\RecurringBills::show",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@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/Purchases/RecurringBills.php::App\\Http\\Controllers\\Purchases\\RecurringBills::store",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@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/Purchases/RecurringBills.php::App\\Http\\Controllers\\Purchases\\RecurringBills::update",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@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/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::create",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::createBill",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@createBill",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::createExpense",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@createExpense",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::destroy",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@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/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::disable",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@disable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::duplicate",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@duplicate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::edit",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::enable",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@enable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::export",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@export",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::import",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@import",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::index",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@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/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::show",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@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/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::store",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@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/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::update",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@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/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::create",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::createIncome",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@createIncome",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::createInvoice",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@createInvoice",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::destroy",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@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/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::disable",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@disable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::duplicate",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@duplicate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::edit",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::enable",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@enable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::export",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@export",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::import",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@import",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::index",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@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/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::show",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@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/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::store",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@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/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::update",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@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/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::create",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::destroy",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@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/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::duplicate",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@duplicate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::edit",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::emailInvoice",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@emailInvoice",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::export",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@export",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::import",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@import",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::index",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@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/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::markCancelled",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@markCancelled",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::markSent",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@markSent",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::pdfInvoice",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@pdfInvoice",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::printInvoice",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@printInvoice",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::restoreInvoice",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@restoreInvoice",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::show",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@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/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::store",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@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/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::update",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@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/Sales/RecurringInvoices.php::App\\Http\\Controllers\\Sales\\RecurringInvoices::__construct",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@__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/Sales/RecurringInvoices.php::App\\Http\\Controllers\\Sales\\RecurringInvoices::create",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Sales/RecurringInvoices.php::App\\Http\\Controllers\\Sales\\RecurringInvoices::duplicate",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@duplicate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Sales/RecurringInvoices.php::App\\Http\\Controllers\\Sales\\RecurringInvoices::edit",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Sales/RecurringInvoices.php::App\\Http\\Controllers\\Sales\\RecurringInvoices::end",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@end",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Sales/RecurringInvoices.php::App\\Http\\Controllers\\Sales\\RecurringInvoices::export",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@export",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Sales/RecurringInvoices.php::App\\Http\\Controllers\\Sales\\RecurringInvoices::import",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@import",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Sales/RecurringInvoices.php::App\\Http\\Controllers\\Sales\\RecurringInvoices::index",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@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/Sales/RecurringInvoices.php::App\\Http\\Controllers\\Sales\\RecurringInvoices::show",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@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/Sales/RecurringInvoices.php::App\\Http\\Controllers\\Sales\\RecurringInvoices::store",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@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/Sales/RecurringInvoices.php::App\\Http\\Controllers\\Sales\\RecurringInvoices::update",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@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/Settings/Categories.php::App\\Http\\Controllers\\Settings\\Categories::create",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Settings/Categories.php::App\\Http\\Controllers\\Settings\\Categories::destroy",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@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/Settings/Categories.php::App\\Http\\Controllers\\Settings\\Categories::disable",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@disable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual 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/Categories.php::App\\Http\\Controllers\\Settings\\Categories::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Settings/Categories.php::App\\Http\\Controllers\\Settings\\Categories::enable",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@enable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual 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/Categories.php::App\\Http\\Controllers\\Settings\\Categories::export",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@export",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Settings/Categories.php::App\\Http\\Controllers\\Settings\\Categories::import",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@import",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual 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/Categories.php::App\\Http\\Controllers\\Settings\\Categories::index",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@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/Settings/Categories.php::App\\Http\\Controllers\\Settings\\Categories::show",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@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/Categories.php::App\\Http\\Controllers\\Settings\\Categories::store",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@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/Settings/Categories.php::App\\Http\\Controllers\\Settings\\Categories::update",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@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/Settings/Company.php::App\\Http\\Controllers\\Settings\\Company::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\Company@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Settings/Currencies.php::App\\Http\\Controllers\\Settings\\Currencies::config",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@config",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Settings/Currencies.php::App\\Http\\Controllers\\Settings\\Currencies::create",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Settings/Currencies.php::App\\Http\\Controllers\\Settings\\Currencies::destroy",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@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/Settings/Currencies.php::App\\Http\\Controllers\\Settings\\Currencies::disable",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@disable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual 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/Currencies.php::App\\Http\\Controllers\\Settings\\Currencies::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Settings/Currencies.php::App\\Http\\Controllers\\Settings\\Currencies::enable",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@enable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual 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/Currencies.php::App\\Http\\Controllers\\Settings\\Currencies::index",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@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/Settings/Currencies.php::App\\Http\\Controllers\\Settings\\Currencies::show",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@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/Currencies.php::App\\Http\\Controllers\\Settings\\Currencies::store",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@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/Settings/Currencies.php::App\\Http\\Controllers\\Settings\\Currencies::update",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@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/Settings/Defaults.php::App\\Http\\Controllers\\Settings\\Defaults::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\Defaults@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Settings/Email.php::App\\Http\\Controllers\\Settings\\Email::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\Email@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Settings/EmailTemplates.php::App\\Http\\Controllers\\Settings\\EmailTemplates::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\EmailTemplates@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Settings/EmailTemplates.php::App\\Http\\Controllers\\Settings\\EmailTemplates::get",
        "fqmn": "App\\Http\\Controllers\\Settings\\EmailTemplates@get",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual 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/EmailTemplates.php::App\\Http\\Controllers\\Settings\\EmailTemplates::update",
        "fqmn": "App\\Http\\Controllers\\Settings\\EmailTemplates@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/Settings/Invoice.php::App\\Http\\Controllers\\Settings\\Invoice::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\Invoice@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Settings/Localisation.php::App\\Http\\Controllers\\Settings\\Localisation::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\Localisation@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Settings/Modules.php::App\\Http\\Controllers\\Settings\\Modules::__construct",
        "fqmn": "App\\Http\\Controllers\\Settings\\Modules@__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/Settings/Modules.php::App\\Http\\Controllers\\Settings\\Modules::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\Modules@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Settings/Modules.php::App\\Http\\Controllers\\Settings\\Modules::update",
        "fqmn": "App\\Http\\Controllers\\Settings\\Modules@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/Settings/Schedule.php::App\\Http\\Controllers\\Settings\\Schedule::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\Schedule@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Settings/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::create",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Settings/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::destroy",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@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/Settings/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::disable",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@disable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual 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/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Settings/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::enable",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@enable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual 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/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::export",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@export",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Settings/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::import",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@import",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual 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/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::index",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@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/Settings/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::show",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@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/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::store",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@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/Settings/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::update",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@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/Wizard/Companies.php::App\\Http\\Controllers\\Wizard\\Companies::__construct",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Companies@__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/Wizard/Companies.php::App\\Http\\Controllers\\Wizard\\Companies::edit",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Companies@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Wizard/Companies.php::App\\Http\\Controllers\\Wizard\\Companies::update",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Companies@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/Wizard/Currencies.php::App\\Http\\Controllers\\Wizard\\Currencies::__construct",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Currencies@__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/Wizard/Currencies.php::App\\Http\\Controllers\\Wizard\\Currencies::destroy",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Currencies@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/Wizard/Currencies.php::App\\Http\\Controllers\\Wizard\\Currencies::index",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Currencies@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/Wizard/Currencies.php::App\\Http\\Controllers\\Wizard\\Currencies::show",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Currencies@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/Wizard/Currencies.php::App\\Http\\Controllers\\Wizard\\Currencies::store",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Currencies@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/Wizard/Currencies.php::App\\Http\\Controllers\\Wizard\\Currencies::update",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Currencies@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/Wizard/Finish.php::App\\Http\\Controllers\\Wizard\\Finish::__construct",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Finish@__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/Wizard/Finish.php::App\\Http\\Controllers\\Wizard\\Finish::index",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Finish@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/Wizard/Finish.php::App\\Http\\Controllers\\Wizard\\Finish::update",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Finish@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/Requests/Common/Item.php::App\\Http\\Requests\\Common\\Item::maxSizePrice",
        "fqmn": "App\\Http\\Requests\\Common\\Item@maxSizePrice",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Requests/Module/Module.php::App\\Http\\Requests\\Module\\Module::__construct",
        "fqmn": "App\\Http\\Requests\\Module\\Module@__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/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Requests/Wizard/Company.php::App\\Http\\Requests\\Wizard\\Company::__construct",
        "fqmn": "App\\Http\\Requests\\Wizard\\Company@__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/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Resources/Auth/Role.php::App\\Http\\Resources\\Auth\\Role::toArray",
        "fqmn": "App\\Http\\Resources\\Auth\\Role@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Resources/Auth/User.php::App\\Http\\Resources\\Auth\\User::toArray",
        "fqmn": "App\\Http\\Resources\\Auth\\User@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Resources/Banking/Account.php::App\\Http\\Resources\\Banking\\Account::toArray",
        "fqmn": "App\\Http\\Resources\\Banking\\Account@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Resources/Banking/Reconciliation.php::App\\Http\\Resources\\Banking\\Reconciliation::toArray",
        "fqmn": "App\\Http\\Resources\\Banking\\Reconciliation@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Resources/Banking/Transaction.php::App\\Http\\Resources\\Banking\\Transaction::toArray",
        "fqmn": "App\\Http\\Resources\\Banking\\Transaction@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Resources/Banking/TransactionTax.php::App\\Http\\Resources\\Banking\\TransactionTax::toArray",
        "fqmn": "App\\Http\\Resources\\Banking\\TransactionTax@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Resources/Banking/Transfer.php::App\\Http\\Resources\\Banking\\Transfer::toArray",
        "fqmn": "App\\Http\\Resources\\Banking\\Transfer@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Resources/Common/Company.php::App\\Http\\Resources\\Common\\Company::toArray",
        "fqmn": "App\\Http\\Resources\\Common\\Company@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Resources/Common/Contact.php::App\\Http\\Resources\\Common\\Contact::toArray",
        "fqmn": "App\\Http\\Resources\\Common\\Contact@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Resources/Common/ContactPerson.php::App\\Http\\Resources\\Common\\ContactPerson::toArray",
        "fqmn": "App\\Http\\Resources\\Common\\ContactPerson@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Resources/Common/Dashboard.php::App\\Http\\Resources\\Common\\Dashboard::toArray",
        "fqmn": "App\\Http\\Resources\\Common\\Dashboard@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Resources/Common/Item.php::App\\Http\\Resources\\Common\\Item::toArray",
        "fqmn": "App\\Http\\Resources\\Common\\Item@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Resources/Common/ItemTax.php::App\\Http\\Resources\\Common\\ItemTax::toArray",
        "fqmn": "App\\Http\\Resources\\Common\\ItemTax@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Resources/Common/Report.php::App\\Http\\Resources\\Common\\Report::toArray",
        "fqmn": "App\\Http\\Resources\\Common\\Report@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Resources/Common/Widget.php::App\\Http\\Resources\\Common\\Widget::toArray",
        "fqmn": "App\\Http\\Resources\\Common\\Widget@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Resources/Document/Document.php::App\\Http\\Resources\\Document\\Document::toArray",
        "fqmn": "App\\Http\\Resources\\Document\\Document@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Resources/Document/DocumentHistory.php::App\\Http\\Resources\\Document\\DocumentHistory::toArray",
        "fqmn": "App\\Http\\Resources\\Document\\DocumentHistory@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Resources/Document/DocumentItem.php::App\\Http\\Resources\\Document\\DocumentItem::toArray",
        "fqmn": "App\\Http\\Resources\\Document\\DocumentItem@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Resources/Document/DocumentItemTax.php::App\\Http\\Resources\\Document\\DocumentItemTax::toArray",
        "fqmn": "App\\Http\\Resources\\Document\\DocumentItemTax@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Resources/Document/DocumentTotal.php::App\\Http\\Resources\\Document\\DocumentTotal::toArray",
        "fqmn": "App\\Http\\Resources\\Document\\DocumentTotal@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Resources/Setting/Category.php::App\\Http\\Resources\\Setting\\Category::toArray",
        "fqmn": "App\\Http\\Resources\\Setting\\Category@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Resources/Setting/Currency.php::App\\Http\\Resources\\Setting\\Currency::toArray",
        "fqmn": "App\\Http\\Resources\\Setting\\Currency@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Resources/Setting/Setting.php::App\\Http\\Resources\\Setting\\Setting::toArray",
        "fqmn": "App\\Http\\Resources\\Setting\\Setting@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Resources/Setting/Tax.php::App\\Http\\Resources\\Setting\\Tax::toArray",
        "fqmn": "App\\Http\\Resources\\Setting\\Tax@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/Auth/CreateInvitation.php::App\\Jobs\\Auth\\CreateInvitation::__construct",
        "fqmn": "App\\Jobs\\Auth\\CreateInvitation@__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/Auth/CreateUser.php::App\\Jobs\\Auth\\CreateUser::authorize",
        "fqmn": "App\\Jobs\\Auth\\CreateUser@authorize",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Auth/DeleteUser.php::App\\Jobs\\Auth\\DeleteUser::authorize",
        "fqmn": "App\\Jobs\\Auth\\DeleteUser@authorize",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Auth/NotifyUser.php::App\\Jobs\\Auth\\NotifyUser::__construct",
        "fqmn": "App\\Jobs\\Auth\\NotifyUser@__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/Auth/UpdateUser.php::App\\Jobs\\Auth\\UpdateUser::authorize",
        "fqmn": "App\\Jobs\\Auth\\UpdateUser@authorize",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Banking/CreateBankingDocumentTransaction.php::App\\Jobs\\Banking\\CreateBankingDocumentTransaction::__construct",
        "fqmn": "App\\Jobs\\Banking\\CreateBankingDocumentTransaction@__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/Banking/CreateTransactionTaxes.php::App\\Jobs\\Banking\\CreateTransactionTaxes::__construct",
        "fqmn": "App\\Jobs\\Banking\\CreateTransactionTaxes@__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/Banking/CreateTransactionTaxes.php::App\\Jobs\\Banking\\CreateTransactionTaxes::getTaxesCalculated",
        "fqmn": "App\\Jobs\\Banking\\CreateTransactionTaxes@getTaxesCalculated",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Banking/CreateTransfer.php::App\\Jobs\\Banking\\CreateTransfer::authorize",
        "fqmn": "App\\Jobs\\Banking\\CreateTransfer@authorize",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Banking/DeleteAccount.php::App\\Jobs\\Banking\\DeleteAccount::authorize",
        "fqmn": "App\\Jobs\\Banking\\DeleteAccount@authorize",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Banking/DeleteAccount.php::App\\Jobs\\Banking\\DeleteAccount::getRelationships",
        "fqmn": "App\\Jobs\\Banking\\DeleteAccount@getRelationships",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Banking/DeleteTransaction.php::App\\Jobs\\Banking\\DeleteTransaction::authorize",
        "fqmn": "App\\Jobs\\Banking\\DeleteTransaction@authorize",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Banking/DuplicateTransaction.php::App\\Jobs\\Banking\\DuplicateTransaction::__construct",
        "fqmn": "App\\Jobs\\Banking\\DuplicateTransaction@__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/Banking/MatchBankingDocumentTransaction.php::App\\Jobs\\Banking\\MatchBankingDocumentTransaction::__construct",
        "fqmn": "App\\Jobs\\Banking\\MatchBankingDocumentTransaction@__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/Banking/SendTransaction.php::App\\Jobs\\Banking\\SendTransaction::__construct",
        "fqmn": "App\\Jobs\\Banking\\SendTransaction@__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/Banking/SendTransactionAsCustomMail.php::App\\Jobs\\Banking\\SendTransactionAsCustomMail::__construct",
        "fqmn": "App\\Jobs\\Banking\\SendTransactionAsCustomMail@__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/Banking/SplitTransaction.php::App\\Jobs\\Banking\\SplitTransaction::authorize",
        "fqmn": "App\\Jobs\\Banking\\SplitTransaction@authorize",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Banking/UpdateAccount.php::App\\Jobs\\Banking\\UpdateAccount::authorize",
        "fqmn": "App\\Jobs\\Banking\\UpdateAccount@authorize",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Banking/UpdateAccount.php::App\\Jobs\\Banking\\UpdateAccount::getRelationships",
        "fqmn": "App\\Jobs\\Banking\\UpdateAccount@getRelationships",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Banking/UpdateBankingDocumentTransaction.php::App\\Jobs\\Banking\\UpdateBankingDocumentTransaction::__construct",
        "fqmn": "App\\Jobs\\Banking\\UpdateBankingDocumentTransaction@__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/Banking/UpdateTransaction.php::App\\Jobs\\Banking\\UpdateTransaction::authorize",
        "fqmn": "App\\Jobs\\Banking\\UpdateTransaction@authorize",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Banking/UpdateTransfer.php::App\\Jobs\\Banking\\UpdateTransfer::authorize",
        "fqmn": "App\\Jobs\\Banking\\UpdateTransfer@authorize",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Common/CreateCompany.php::App\\Jobs\\Common\\CreateCompany::authorize",
        "fqmn": "App\\Jobs\\Common\\CreateCompany@authorize",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Common/CreateContact.php::App\\Jobs\\Common\\CreateContact::createUser",
        "fqmn": "App\\Jobs\\Common\\CreateContact@createUser",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Common/CreateContactPersons.php::App\\Jobs\\Common\\CreateContactPersons::__construct",
        "fqmn": "App\\Jobs\\Common\\CreateContactPersons@__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/Common/CreateItemTaxes.php::App\\Jobs\\Common\\CreateItemTaxes::__construct",
        "fqmn": "App\\Jobs\\Common\\CreateItemTaxes@__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/Common/CreateMediableForDownload.php::App\\Jobs\\Common\\CreateMediableForDownload::__construct",
        "fqmn": "App\\Jobs\\Common\\CreateMediableForDownload@__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/Common/CreateMediableForDownload.php::App\\Jobs\\Common\\CreateMediableForDownload::getLocalQueuedMedia",
        "fqmn": "App\\Jobs\\Common\\CreateMediableForDownload@getLocalQueuedMedia",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Common/CreateMediableForDownload.php::App\\Jobs\\Common\\CreateMediableForDownload::getQueuedMedia",
        "fqmn": "App\\Jobs\\Common\\CreateMediableForDownload@getQueuedMedia",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Common/CreateMediableForDownload.php::App\\Jobs\\Common\\CreateMediableForDownload::getRemoteQueuedMedia",
        "fqmn": "App\\Jobs\\Common\\CreateMediableForDownload@getRemoteQueuedMedia",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Common/CreateMediableForExport.php::App\\Jobs\\Common\\CreateMediableForExport::__construct",
        "fqmn": "App\\Jobs\\Common\\CreateMediableForExport@__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/Common/CreateMediableForExport.php::App\\Jobs\\Common\\CreateMediableForExport::getLocalQueuedMedia",
        "fqmn": "App\\Jobs\\Common\\CreateMediableForExport@getLocalQueuedMedia",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Common/CreateMediableForExport.php::App\\Jobs\\Common\\CreateMediableForExport::getQueuedMedia",
        "fqmn": "App\\Jobs\\Common\\CreateMediableForExport@getQueuedMedia",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Common/CreateMediableForExport.php::App\\Jobs\\Common\\CreateMediableForExport::getRemoteQueuedMedia",
        "fqmn": "App\\Jobs\\Common\\CreateMediableForExport@getRemoteQueuedMedia",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Common/CreateZipForDownload.php::App\\Jobs\\Common\\CreateZipForDownload::__construct",
        "fqmn": "App\\Jobs\\Common\\CreateZipForDownload@__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/Common/CreateZipForDownload.php::App\\Jobs\\Common\\CreateZipForDownload::copyQueuedFile",
        "fqmn": "App\\Jobs\\Common\\CreateZipForDownload@copyQueuedFile",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Common/CreateZipForDownload.php::App\\Jobs\\Common\\CreateZipForDownload::copyRemoteQueuedMedia",
        "fqmn": "App\\Jobs\\Common\\CreateZipForDownload@copyRemoteQueuedMedia",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Common/CreateZipForDownload.php::App\\Jobs\\Common\\CreateZipForDownload::getLocalQueuedMedia",
        "fqmn": "App\\Jobs\\Common\\CreateZipForDownload@getLocalQueuedMedia",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Common/CreateZipForDownload.php::App\\Jobs\\Common\\CreateZipForDownload::getQueuedFile",
        "fqmn": "App\\Jobs\\Common\\CreateZipForDownload@getQueuedFile",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Common/CreateZipForDownload.php::App\\Jobs\\Common\\CreateZipForDownload::getRemoteQueuedMedia",
        "fqmn": "App\\Jobs\\Common\\CreateZipForDownload@getRemoteQueuedMedia",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Common/DeleteCompany.php::App\\Jobs\\Common\\DeleteCompany::authorize",
        "fqmn": "App\\Jobs\\Common\\DeleteCompany@authorize",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Common/DeleteCompany.php::App\\Jobs\\Common\\DeleteCompany::booted",
        "fqmn": "App\\Jobs\\Common\\DeleteCompany@booted",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Common/DeleteCompany.php::App\\Jobs\\Common\\DeleteCompany::getRelationshipsToDelete",
        "fqmn": "App\\Jobs\\Common\\DeleteCompany@getRelationshipsToDelete",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Common/DeleteContact.php::App\\Jobs\\Common\\DeleteContact::authorize",
        "fqmn": "App\\Jobs\\Common\\DeleteContact@authorize",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Common/DeleteContact.php::App\\Jobs\\Common\\DeleteContact::getRelationships",
        "fqmn": "App\\Jobs\\Common\\DeleteContact@getRelationships",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Common/DeleteDashboard.php::App\\Jobs\\Common\\DeleteDashboard::authorize",
        "fqmn": "App\\Jobs\\Common\\DeleteDashboard@authorize",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Common/DeleteItem.php::App\\Jobs\\Common\\DeleteItem::authorize",
        "fqmn": "App\\Jobs\\Common\\DeleteItem@authorize",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Common/DeleteItem.php::App\\Jobs\\Common\\DeleteItem::getRelationships",
        "fqmn": "App\\Jobs\\Common\\DeleteItem@getRelationships",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Common/DeleteReport.php::App\\Jobs\\Common\\DeleteReport::deleteFavorite",
        "fqmn": "App\\Jobs\\Common\\DeleteReport@deleteFavorite",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Common/DeleteReport.php::App\\Jobs\\Common\\DeleteReport::deletePin",
        "fqmn": "App\\Jobs\\Common\\DeleteReport@deletePin",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Common/DuplicateContact.php::App\\Jobs\\Common\\DuplicateContact::__construct",
        "fqmn": "App\\Jobs\\Common\\DuplicateContact@__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/Common/UpdateCompany.php::App\\Jobs\\Common\\UpdateCompany::authorize",
        "fqmn": "App\\Jobs\\Common\\UpdateCompany@authorize",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Common/UpdateCompany.php::App\\Jobs\\Common\\UpdateCompany::booted",
        "fqmn": "App\\Jobs\\Common\\UpdateCompany@booted",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Common/UpdateContact.php::App\\Jobs\\Common\\UpdateContact::authorize",
        "fqmn": "App\\Jobs\\Common\\UpdateContact@authorize",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Common/UpdateContact.php::App\\Jobs\\Common\\UpdateContact::createUser",
        "fqmn": "App\\Jobs\\Common\\UpdateContact@createUser",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Common/UpdateContact.php::App\\Jobs\\Common\\UpdateContact::getRelationships",
        "fqmn": "App\\Jobs\\Common\\UpdateContact@getRelationships",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Common/UpdateContact.php::App\\Jobs\\Common\\UpdateContact::updateRecurringDocument",
        "fqmn": "App\\Jobs\\Common\\UpdateContact@updateRecurringDocument",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Common/UpdateDashboard.php::App\\Jobs\\Common\\UpdateDashboard::authorize",
        "fqmn": "App\\Jobs\\Common\\UpdateDashboard@authorize",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Document/CancelDocument.php::App\\Jobs\\Document\\CancelDocument::__construct",
        "fqmn": "App\\Jobs\\Document\\CancelDocument@__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/Document/CancelDocument.php::App\\Jobs\\Document\\CancelDocument::authorize",
        "fqmn": "App\\Jobs\\Document\\CancelDocument@authorize",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Document/CreateDocument.php::App\\Jobs\\Document\\CreateDocument::authorize",
        "fqmn": "App\\Jobs\\Document\\CreateDocument@authorize",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Document/CreateDocumentHistory.php::App\\Jobs\\Document\\CreateDocumentHistory::__construct",
        "fqmn": "App\\Jobs\\Document\\CreateDocumentHistory@__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/Document/CreateDocumentHistory.php::App\\Jobs\\Document\\CreateDocumentHistory::getCustomSourceName",
        "fqmn": "App\\Jobs\\Document\\CreateDocumentHistory@getCustomSourceName",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Document/CreateDocumentItem.php::App\\Jobs\\Document\\CreateDocumentItem::__construct",
        "fqmn": "App\\Jobs\\Document\\CreateDocumentItem@__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/Document/CreateDocumentItemsAndTotals.php::App\\Jobs\\Document\\CreateDocumentItemsAndTotals::__construct",
        "fqmn": "App\\Jobs\\Document\\CreateDocumentItemsAndTotals@__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/Document/CreateDocumentItemsAndTotals.php::App\\Jobs\\Document\\CreateDocumentItemsAndTotals::fixedDiscountCalculate",
        "fqmn": "App\\Jobs\\Document\\CreateDocumentItemsAndTotals@fixedDiscountCalculate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Document/DeleteDocument.php::App\\Jobs\\Document\\DeleteDocument::authorize",
        "fqmn": "App\\Jobs\\Document\\DeleteDocument@authorize",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Document/DownloadDocument.php::App\\Jobs\\Document\\DownloadDocument::__construct",
        "fqmn": "App\\Jobs\\Document\\DownloadDocument@__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/Document/DuplicateDocument.php::App\\Jobs\\Document\\DuplicateDocument::__construct",
        "fqmn": "App\\Jobs\\Document\\DuplicateDocument@__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/Document/RestoreDocument.php::App\\Jobs\\Document\\RestoreDocument::__construct",
        "fqmn": "App\\Jobs\\Document\\RestoreDocument@__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/Document/SendDocument.php::App\\Jobs\\Document\\SendDocument::__construct",
        "fqmn": "App\\Jobs\\Document\\SendDocument@__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/Document/SendDocumentAsCustomMail.php::App\\Jobs\\Document\\SendDocumentAsCustomMail::__construct",
        "fqmn": "App\\Jobs\\Document\\SendDocumentAsCustomMail@__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/Document/UpdateDocument.php::App\\Jobs\\Document\\UpdateDocument::authorize",
        "fqmn": "App\\Jobs\\Document\\UpdateDocument@authorize",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Install/CopyFiles.php::App\\Jobs\\Install\\CopyFiles::__construct",
        "fqmn": "App\\Jobs\\Install\\CopyFiles@__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/Install/DisableModule.php::App\\Jobs\\Install\\DisableModule::__construct",
        "fqmn": "App\\Jobs\\Install\\DisableModule@__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/Install/DisableModule.php::App\\Jobs\\Install\\DisableModule::authorize",
        "fqmn": "App\\Jobs\\Install\\DisableModule@authorize",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Install/DownloadFile.php::App\\Jobs\\Install\\DownloadFile::__construct",
        "fqmn": "App\\Jobs\\Install\\DownloadFile@__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/Install/DownloadModule.php::App\\Jobs\\Install\\DownloadModule::__construct",
        "fqmn": "App\\Jobs\\Install\\DownloadModule@__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/Install/EnableModule.php::App\\Jobs\\Install\\EnableModule::__construct",
        "fqmn": "App\\Jobs\\Install\\EnableModule@__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/Install/EnableModule.php::App\\Jobs\\Install\\EnableModule::authorize",
        "fqmn": "App\\Jobs\\Install\\EnableModule@authorize",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Install/FinishUpdate.php::App\\Jobs\\Install\\FinishUpdate::__construct",
        "fqmn": "App\\Jobs\\Install\\FinishUpdate@__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/Install/FinishUpdate.php::App\\Jobs\\Install\\FinishUpdate::authorize",
        "fqmn": "App\\Jobs\\Install\\FinishUpdate@authorize",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Install/FinishUpdate.php::App\\Jobs\\Install\\FinishUpdate::getCompanies",
        "fqmn": "App\\Jobs\\Install\\FinishUpdate@getCompanies",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Install/FinishUpdate.php::App\\Jobs\\Install\\FinishUpdate::getCompaniesOfModule",
        "fqmn": "App\\Jobs\\Install\\FinishUpdate@getCompaniesOfModule",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Install/FinishUpdate.php::App\\Jobs\\Install\\FinishUpdate::getListenerTypeOfModule",
        "fqmn": "App\\Jobs\\Install\\FinishUpdate@getListenerTypeOfModule",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Install/InstallModule.php::App\\Jobs\\Install\\InstallModule::__construct",
        "fqmn": "App\\Jobs\\Install\\InstallModule@__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/Install/InstallModule.php::App\\Jobs\\Install\\InstallModule::authorize",
        "fqmn": "App\\Jobs\\Install\\InstallModule@authorize",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Install/UninstallModule.php::App\\Jobs\\Install\\UninstallModule::__construct",
        "fqmn": "App\\Jobs\\Install\\UninstallModule@__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/Install/UninstallModule.php::App\\Jobs\\Install\\UninstallModule::authorize",
        "fqmn": "App\\Jobs\\Install\\UninstallModule@authorize",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Install/UnzipFile.php::App\\Jobs\\Install\\UnzipFile::__construct",
        "fqmn": "App\\Jobs\\Install\\UnzipFile@__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/Setting/DeleteCategory.php::App\\Jobs\\Setting\\DeleteCategory::authorize",
        "fqmn": "App\\Jobs\\Setting\\DeleteCategory@authorize",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Setting/DeleteCategory.php::App\\Jobs\\Setting\\DeleteCategory::deleteSubCategories",
        "fqmn": "App\\Jobs\\Setting\\DeleteCategory@deleteSubCategories",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Setting/DeleteCategory.php::App\\Jobs\\Setting\\DeleteCategory::getRelationships",
        "fqmn": "App\\Jobs\\Setting\\DeleteCategory@getRelationships",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Setting/DeleteCategory.php::App\\Jobs\\Setting\\DeleteCategory::getSubCategoryRelationships",
        "fqmn": "App\\Jobs\\Setting\\DeleteCategory@getSubCategoryRelationships",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Setting/DeleteCurrency.php::App\\Jobs\\Setting\\DeleteCurrency::authorize",
        "fqmn": "App\\Jobs\\Setting\\DeleteCurrency@authorize",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Setting/DeleteCurrency.php::App\\Jobs\\Setting\\DeleteCurrency::getRelationships",
        "fqmn": "App\\Jobs\\Setting\\DeleteCurrency@getRelationships",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Setting/DeleteTax.php::App\\Jobs\\Setting\\DeleteTax::authorize",
        "fqmn": "App\\Jobs\\Setting\\DeleteTax@authorize",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Setting/DeleteTax.php::App\\Jobs\\Setting\\DeleteTax::getRelationships",
        "fqmn": "App\\Jobs\\Setting\\DeleteTax@getRelationships",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Setting/UpdateCategory.php::App\\Jobs\\Setting\\UpdateCategory::authorize",
        "fqmn": "App\\Jobs\\Setting\\UpdateCategory@authorize",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Setting/UpdateCategory.php::App\\Jobs\\Setting\\UpdateCategory::getRelationships",
        "fqmn": "App\\Jobs\\Setting\\UpdateCategory@getRelationships",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Setting/UpdateCurrency.php::App\\Jobs\\Setting\\UpdateCurrency::authorize",
        "fqmn": "App\\Jobs\\Setting\\UpdateCurrency@authorize",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Setting/UpdateCurrency.php::App\\Jobs\\Setting\\UpdateCurrency::getRelationships",
        "fqmn": "App\\Jobs\\Setting\\UpdateCurrency@getRelationships",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Setting/UpdateTax.php::App\\Jobs\\Setting\\UpdateTax::authorize",
        "fqmn": "App\\Jobs\\Setting\\UpdateTax@authorize",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Setting/UpdateTax.php::App\\Jobs\\Setting\\UpdateTax::getRelationships",
        "fqmn": "App\\Jobs\\Setting\\UpdateTax@getRelationships",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Common/ClearPlansCache.php::App\\Listeners\\Common\\ClearPlansCache::subscribe",
        "fqmn": "App\\Listeners\\Common\\ClearPlansCache@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/List",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Listeners/Document/MarkDocumentSent.php::App\\Listeners\\Document\\MarkDocumentSent::getDescription",
        "fqmn": "App\\Listeners\\Document\\MarkDocumentSent@getDescription",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Email/DisablePersonDueToInvalidEmail.php::App\\Listeners\\Email\\DisablePersonDueToInvalidEmail::disableContact",
        "fqmn": "App\\Listeners\\Email\\DisablePersonDueToInvalidEmail@disableContact",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Email/DisablePersonDueToInvalidEmail.php::App\\Listeners\\Email\\DisablePersonDueToInvalidEmail::disableUser",
        "fqmn": "App\\Listeners\\Email\\DisablePersonDueToInvalidEmail@disableUser",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Email/SendInvalidEmailNotification.php::App\\Listeners\\Email\\SendInvalidEmailNotification::notifyAdminsAboutInvalidContactEmail",
        "fqmn": "App\\Listeners\\Email\\SendInvalidEmailNotification@notifyAdminsAboutInvalidContactEmail",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Email/SendInvalidEmailNotification.php::App\\Listeners\\Email\\SendInvalidEmailNotification::notifyAdminsAboutInvalidUserEmail",
        "fqmn": "App\\Listeners\\Email\\SendInvalidEmailNotification@notifyAdminsAboutInvalidUserEmail",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Email/TellFirewallTooManyEmailsSent.php::App\\Listeners\\Email\\TellFirewallTooManyEmailsSent::skip",
        "fqmn": "App\\Listeners\\Email\\TellFirewallTooManyEmailsSent@skip",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Module/ClearCache.php::App\\Listeners\\Module\\ClearCache::subscribe",
        "fqmn": "App\\Listeners\\Module\\ClearCache@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/List",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Listeners/Report/AddAccounts.php::App\\Listeners\\Report\\AddAccounts::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddAccounts@handleFilterShowing",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Report/AddAccounts.php::App\\Listeners\\Report\\AddAccounts::handleGroupApplying",
        "fqmn": "App\\Listeners\\Report\\AddAccounts@handleGroupApplying",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Report/AddAccounts.php::App\\Listeners\\Report\\AddAccounts::handleGroupShowing",
        "fqmn": "App\\Listeners\\Report\\AddAccounts@handleGroupShowing",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Report/AddAccounts.php::App\\Listeners\\Report\\AddAccounts::handleRowsShowing",
        "fqmn": "App\\Listeners\\Report\\AddAccounts@handleRowsShowing",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Report/AddBasis.php::App\\Listeners\\Report\\AddBasis::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddBasis@handleFilterShowing",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Report/AddContacts.php::App\\Listeners\\Report\\AddContacts::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddContacts@handleFilterShowing",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Report/AddContacts.php::App\\Listeners\\Report\\AddContacts::handleGroupShowing",
        "fqmn": "App\\Listeners\\Report\\AddContacts@handleGroupShowing",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Report/AddContacts.php::App\\Listeners\\Report\\AddContacts::handleRowsShowing",
        "fqmn": "App\\Listeners\\Report\\AddContacts@handleRowsShowing",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Report/AddCustomers.php::App\\Listeners\\Report\\AddCustomers::handleFilterApplying",
        "fqmn": "App\\Listeners\\Report\\AddCustomers@handleFilterApplying",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Report/AddCustomers.php::App\\Listeners\\Report\\AddCustomers::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddCustomers@handleFilterShowing",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Report/AddCustomers.php::App\\Listeners\\Report\\AddCustomers::handleGroupApplying",
        "fqmn": "App\\Listeners\\Report\\AddCustomers@handleGroupApplying",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Report/AddCustomers.php::App\\Listeners\\Report\\AddCustomers::handleGroupShowing",
        "fqmn": "App\\Listeners\\Report\\AddCustomers@handleGroupShowing",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Report/AddCustomers.php::App\\Listeners\\Report\\AddCustomers::handleRowsShowing",
        "fqmn": "App\\Listeners\\Report\\AddCustomers@handleRowsShowing",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Report/AddDate.php::App\\Listeners\\Report\\AddDate::handleFilterApplying",
        "fqmn": "App\\Listeners\\Report\\AddDate@handleFilterApplying",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Report/AddDate.php::App\\Listeners\\Report\\AddDate::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddDate@handleFilterShowing",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Report/AddDiscount.php::App\\Listeners\\Report\\AddDiscount::handleFilterApplying",
        "fqmn": "App\\Listeners\\Report\\AddDiscount@handleFilterApplying",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Report/AddDiscount.php::App\\Listeners\\Report\\AddDiscount::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddDiscount@handleFilterShowing",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Report/AddExpenseCategories.php::App\\Listeners\\Report\\AddExpenseCategories::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddExpenseCategories@handleFilterShowing",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Report/AddExpenseCategories.php::App\\Listeners\\Report\\AddExpenseCategories::handleGroupShowing",
        "fqmn": "App\\Listeners\\Report\\AddExpenseCategories@handleGroupShowing",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Report/AddExpenseCategories.php::App\\Listeners\\Report\\AddExpenseCategories::handleRowsShowing",
        "fqmn": "App\\Listeners\\Report\\AddExpenseCategories@handleRowsShowing",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Report/AddGroup.php::App\\Listeners\\Report\\AddGroup::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddGroup@handleFilterShowing",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Report/AddIncomeCategories.php::App\\Listeners\\Report\\AddIncomeCategories::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddIncomeCategories@handleFilterShowing",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Report/AddIncomeCategories.php::App\\Listeners\\Report\\AddIncomeCategories::handleGroupShowing",
        "fqmn": "App\\Listeners\\Report\\AddIncomeCategories@handleGroupShowing",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Report/AddIncomeCategories.php::App\\Listeners\\Report\\AddIncomeCategories::handleRowsShowing",
        "fqmn": "App\\Listeners\\Report\\AddIncomeCategories@handleRowsShowing",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Report/AddIncomeExpenseCategories.php::App\\Listeners\\Report\\AddIncomeExpenseCategories::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddIncomeExpenseCategories@handleFilterShowing",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Report/AddIncomeExpenseCategories.php::App\\Listeners\\Report\\AddIncomeExpenseCategories::handleGroupShowing",
        "fqmn": "App\\Listeners\\Report\\AddIncomeExpenseCategories@handleGroupShowing",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Report/AddIncomeExpenseCategories.php::App\\Listeners\\Report\\AddIncomeExpenseCategories::handleRowsShowing",
        "fqmn": "App\\Listeners\\Report\\AddIncomeExpenseCategories@handleRowsShowing",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Report/AddIncomeExpenseCategories.php::App\\Listeners\\Report\\AddIncomeExpenseCategories::setRowNamesAndValuesForCategories",
        "fqmn": "App\\Listeners\\Report\\AddIncomeExpenseCategories@setRowNamesAndValuesForCategories",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Report/AddIncomeExpenseCategories.php::App\\Listeners\\Report\\AddIncomeExpenseCategories::setTreeNodesForCategories",
        "fqmn": "App\\Listeners\\Report\\AddIncomeExpenseCategories@setTreeNodesForCategories",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Report/AddPeriod.php::App\\Listeners\\Report\\AddPeriod::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddPeriod@handleFilterShowing",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Report/AddRowsToTax.php::App\\Listeners\\Report\\AddRowsToTax::handleRowsShowing",
        "fqmn": "App\\Listeners\\Report\\AddRowsToTax@handleRowsShowing",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Report/AddSearchString.php::App\\Listeners\\Report\\AddSearchString::handleFilterApplying",
        "fqmn": "App\\Listeners\\Report\\AddSearchString@handleFilterApplying",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Report/AddVendors.php::App\\Listeners\\Report\\AddVendors::handleFilterApplying",
        "fqmn": "App\\Listeners\\Report\\AddVendors@handleFilterApplying",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Report/AddVendors.php::App\\Listeners\\Report\\AddVendors::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddVendors@handleFilterShowing",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Report/AddVendors.php::App\\Listeners\\Report\\AddVendors::handleGroupApplying",
        "fqmn": "App\\Listeners\\Report\\AddVendors@handleGroupApplying",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Report/AddVendors.php::App\\Listeners\\Report\\AddVendors::handleGroupShowing",
        "fqmn": "App\\Listeners\\Report\\AddVendors@handleGroupShowing",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Report/AddVendors.php::App\\Listeners\\Report\\AddVendors::handleRowsShowing",
        "fqmn": "App\\Listeners\\Report\\AddVendors@handleRowsShowing",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Update/SendNotificationOnFailure.php::App\\Listeners\\Update\\SendNotificationOnFailure::getKey",
        "fqmn": "App\\Listeners\\Update\\SendNotificationOnFailure@getKey",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Update/SendNotificationOnFailure.php::App\\Listeners\\Update\\SendNotificationOnFailure::routeNotificationForMail",
        "fqmn": "App\\Listeners\\Update\\SendNotificationOnFailure@routeNotificationForMail",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Update/SendNotificationOnFailure.php::App\\Listeners\\Update\\SendNotificationOnFailure::routeNotificationForSlack",
        "fqmn": "App\\Listeners\\Update\\SendNotificationOnFailure@routeNotificationForSlack",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Update/V30/Version300.php::App\\Listeners\\Update\\V30\\Version300::clearNotifications",
        "fqmn": "App\\Listeners\\Update\\V30\\Version300@clearNotifications",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Update/V30/Version300.php::App\\Listeners\\Update\\V30\\Version300::createNewWidgets",
        "fqmn": "App\\Listeners\\Update\\V30\\Version300@createNewWidgets",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Update/V30/Version300.php::App\\Listeners\\Update\\V30\\Version300::deleteOldFiles",
        "fqmn": "App\\Listeners\\Update\\V30\\Version300@deleteOldFiles",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Update/V30/Version300.php::App\\Listeners\\Update\\V30\\Version300::deleteOldWidgets",
        "fqmn": "App\\Listeners\\Update\\V30\\Version300@deleteOldWidgets",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Update/V30/Version300.php::App\\Listeners\\Update\\V30\\Version300::getTransactionNumber",
        "fqmn": "App\\Listeners\\Update\\V30\\Version300@getTransactionNumber",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Update/V30/Version300.php::App\\Listeners\\Update\\V30\\Version300::saveNextTransactionNumber",
        "fqmn": "App\\Listeners\\Update\\V30\\Version300@saveNextTransactionNumber",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Update/V30/Version300.php::App\\Listeners\\Update\\V30\\Version300::updateCompanies",
        "fqmn": "App\\Listeners\\Update\\V30\\Version300@updateCompanies",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Update/V30/Version300.php::App\\Listeners\\Update\\V30\\Version300::updateDatabase",
        "fqmn": "App\\Listeners\\Update\\V30\\Version300@updateDatabase",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Update/V30/Version300.php::App\\Listeners\\Update\\V30\\Version300::updateEmailTemplates",
        "fqmn": "App\\Listeners\\Update\\V30\\Version300@updateEmailTemplates",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Update/V30/Version300.php::App\\Listeners\\Update\\V30\\Version300::updatePermissions",
        "fqmn": "App\\Listeners\\Update\\V30\\Version300@updatePermissions",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Update/V30/Version300.php::App\\Listeners\\Update\\V30\\Version300::updateRecurables",
        "fqmn": "App\\Listeners\\Update\\V30\\Version300@updateRecurables",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Update/V30/Version300.php::App\\Listeners\\Update\\V30\\Version300::updateTransactions",
        "fqmn": "App\\Listeners\\Update\\V30\\Version300@updateTransactions",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Update/V30/Version3015.php::App\\Listeners\\Update\\V30\\Version3015::updateDatabase",
        "fqmn": "App\\Listeners\\Update\\V30\\Version3015@updateDatabase",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Update/V30/Version3016.php::App\\Listeners\\Update\\V30\\Version3016::updateDatabase",
        "fqmn": "App\\Listeners\\Update\\V30\\Version3016@updateDatabase",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Update/V30/Version3017.php::App\\Listeners\\Update\\V30\\Version3017::updateDatabase",
        "fqmn": "App\\Listeners\\Update\\V30\\Version3017@updateDatabase",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Update/V30/Version303.php::App\\Listeners\\Update\\V30\\Version303::updateCompanies",
        "fqmn": "App\\Listeners\\Update\\V30\\Version303@updateCompanies",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Update/V30/Version303.php::App\\Listeners\\Update\\V30\\Version303::updateWidgets",
        "fqmn": "App\\Listeners\\Update\\V30\\Version303@updateWidgets",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Update/V30/Version304.php::App\\Listeners\\Update\\V30\\Version304::deleteOldFiles",
        "fqmn": "App\\Listeners\\Update\\V30\\Version304@deleteOldFiles",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Update/V30/Version304.php::App\\Listeners\\Update\\V30\\Version304::updateCompanies",
        "fqmn": "App\\Listeners\\Update\\V30\\Version304@updateCompanies",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Update/V30/Version304.php::App\\Listeners\\Update\\V30\\Version304::updateDatabase",
        "fqmn": "App\\Listeners\\Update\\V30\\Version304@updateDatabase",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Update/V30/Version304.php::App\\Listeners\\Update\\V30\\Version304::updateEmailTemplates",
        "fqmn": "App\\Listeners\\Update\\V30\\Version304@updateEmailTemplates",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Update/V30/Version305.php::App\\Listeners\\Update\\V30\\Version305::updateDatabase",
        "fqmn": "App\\Listeners\\Update\\V30\\Version305@updateDatabase",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Update/V30/Version305.php::App\\Listeners\\Update\\V30\\Version305::updateSettings",
        "fqmn": "App\\Listeners\\Update\\V30\\Version305@updateSettings",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Update/V30/Version305.php::App\\Listeners\\Update\\V30\\Version305::updateTransfers",
        "fqmn": "App\\Listeners\\Update\\V30\\Version305@updateTransfers",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Update/V30/Version307.php::App\\Listeners\\Update\\V30\\Version307::updateDatabase",
        "fqmn": "App\\Listeners\\Update\\V30\\Version307@updateDatabase",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Update/V30/Version309.php::App\\Listeners\\Update\\V30\\Version309::updatePermissions",
        "fqmn": "App\\Listeners\\Update\\V30\\Version309@updatePermissions",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Update/V31/Version310.php::App\\Listeners\\Update\\V31\\Version310::updateDatabase",
        "fqmn": "App\\Listeners\\Update\\V31\\Version310@updateDatabase",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Update/V31/Version3112.php::App\\Listeners\\Update\\V31\\Version3112::updateDatabase",
        "fqmn": "App\\Listeners\\Update\\V31\\Version3112@updateDatabase",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Update/V31/Version3115.php::App\\Listeners\\Update\\V31\\Version3115::updateDatabase",
        "fqmn": "App\\Listeners\\Update\\V31\\Version3115@updateDatabase",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Update/V31/Version3119.php::App\\Listeners\\Update\\V31\\Version3119::updatePermissions",
        "fqmn": "App\\Listeners\\Update\\V31\\Version3119@updatePermissions",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Update/V31/Version3122.php::App\\Listeners\\Update\\V31\\Version3122::updateDatabase",
        "fqmn": "App\\Listeners\\Update\\V31\\Version3122@updateDatabase",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/List",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Listeners/Update/V31/Version3122.php::App\\Listeners\\Update\\V31\\Version3122::updateDocumentItems",
        "fqmn": "App\\Listeners\\Update\\V31\\Version3122@updateDocumentItems",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/List",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Listeners/Update/V31/Version315.php::App\\Listeners\\Update\\V31\\Version315::clearCache",
        "fqmn": "App\\Listeners\\Update\\V31\\Version315@clearCache",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Update/V31/Version315.php::App\\Listeners\\Update\\V31\\Version315::updateWidgets",
        "fqmn": "App\\Listeners\\Update\\V31\\Version315@updateWidgets",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Update/V31/Version317.php::App\\Listeners\\Update\\V31\\Version317::clearCache",
        "fqmn": "App\\Listeners\\Update\\V31\\Version317@clearCache",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Update/V31/Version317.php::App\\Listeners\\Update\\V31\\Version317::deleteOldFiles",
        "fqmn": "App\\Listeners\\Update\\V31\\Version317@deleteOldFiles",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Update/V31/Version318.php::App\\Listeners\\Update\\V31\\Version318::clearCache",
        "fqmn": "App\\Listeners\\Update\\V31\\Version318@clearCache",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Update/V31/Version318.php::App\\Listeners\\Update\\V31\\Version318::deleteOldFiles",
        "fqmn": "App\\Listeners\\Update\\V31\\Version318@deleteOldFiles",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Update/V31/Version318.php::App\\Listeners\\Update\\V31\\Version318::updatePermissions",
        "fqmn": "App\\Listeners\\Update\\V31\\Version318@updatePermissions",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_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/Common/Company.php::App\\Models\\Common\\Company::forgetCurrent",
        "fqmn": "App\\Models\\Common\\Company@forgetCurrent",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Util",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Utilities/Console.php::App\\Utilities\\Console::run",
        "fqmn": "App\\Utilities\\Console@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/Util",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Utilities/Export.php::App\\Utilities\\Export::toExcel",
        "fqmn": "App\\Utilities\\Export@toExcel",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Util",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Utilities/Import.php::App\\Utilities\\Import::fromExcel",
        "fqmn": "App\\Utilities\\Import@fromExcel",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Util",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Utilities/Installer.php::App\\Utilities\\Installer::createCompany",
        "fqmn": "App\\Utilities\\Installer@createCompany",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Util",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Utilities/Installer.php::App\\Utilities\\Installer::createDbTables",
        "fqmn": "App\\Utilities\\Installer@createDbTables",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Util",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Utilities/Installer.php::App\\Utilities\\Installer::createDefaultEnvFile",
        "fqmn": "App\\Utilities\\Installer@createDefaultEnvFile",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Util",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Utilities/Installer.php::App\\Utilities\\Installer::createUser",
        "fqmn": "App\\Utilities\\Installer@createUser",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Util",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Utilities/Installer.php::App\\Utilities\\Installer::finalTouches",
        "fqmn": "App\\Utilities\\Installer@finalTouches",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Util",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Utilities/Modules.php::App\\Utilities\\Modules::clearPaymentMethodsCache",
        "fqmn": "App\\Utilities\\Modules@clearPaymentMethodsCache",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Util",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Utilities/Modules.php::App\\Utilities\\Modules::getPaymentMethods",
        "fqmn": "App\\Utilities\\Modules@getPaymentMethods",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Util",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Utilities/Reports.php::App\\Utilities\\Reports::cannotShow",
        "fqmn": "App\\Utilities\\Reports@cannotShow",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Util",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Utilities/Reports.php::App\\Utilities\\Reports::getClasses",
        "fqmn": "App\\Utilities\\Reports@getClasses",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Util",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Utilities/Reports.php::App\\Utilities\\Reports::getClassInstance",
        "fqmn": "App\\Utilities\\Reports@getClassInstance",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Util",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Utilities/Versions.php::App\\Utilities\\Versions::changelog",
        "fqmn": "App\\Utilities\\Versions@changelog",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Util",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Utilities/Versions.php::App\\Utilities\\Versions::getUpdates",
        "fqmn": "App\\Utilities\\Versions@getUpdates",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Util",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Utilities/Versions.php::App\\Utilities\\Versions::latest",
        "fqmn": "App\\Utilities\\Versions@latest",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Util",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Utilities/Versions.php::App\\Utilities\\Versions::shouldUpdate",
        "fqmn": "App\\Utilities\\Versions@shouldUpdate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Util",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Utilities/Widgets.php::App\\Utilities\\Widgets::canShow",
        "fqmn": "App\\Utilities\\Widgets@canShow",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Util",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Utilities/Widgets.php::App\\Utilities\\Widgets::getClasses",
        "fqmn": "App\\Utilities\\Widgets@getClasses",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::override",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::overrides/akaunting/laravel-module/Commands/DisableCommand.php::Akaunting\\Module\\Commands\\DisableCommand::handle",
        "fqmn": "Akaunting\\Module\\Commands\\DisableCommand@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::override",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::overrides/akaunting/laravel-module/Commands/EnableCommand.php::Akaunting\\Module\\Commands\\EnableCommand::handle",
        "fqmn": "Akaunting\\Module\\Commands\\EnableCommand@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::override",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::overrides/akaunting/laravel-module/Commands/InstallCommand.php::Akaunting\\Module\\Commands\\InstallCommand::handle",
        "fqmn": "Akaunting\\Module\\Commands\\InstallCommand@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/ad",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/admin.php::delete::/accounts/{id}::closure::destroy",
        "fqmn": "route::routes/admin.php::delete::/accounts/{id}::closure::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_route::routes/ad",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/admin.php::delete::/api-key/{id}::closure::destroy",
        "fqmn": "route::routes/admin.php::delete::/api-key/{id}::closure::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_route::routes/ad",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/admin.php::get::/{alias}/settings::Settings\\Modules::edit",
        "fqmn": "Settings\\Modules@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "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/ad",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/admin.php::get::/{id}/inline::Common\\Uploads::inline",
        "fqmn": "Common\\Uploads@inline",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "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/ad",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/admin.php::get::/accounts::closure::index",
        "fqmn": "route::routes/admin.php::get::/accounts::closure::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/ad",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/admin.php::get::/accounts/{id}::closure::show",
        "fqmn": "route::routes/admin.php::get::/accounts/{id}::closure::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/ad",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/admin.php::get::/accounts/{id}/edit::closure::edit",
        "fqmn": "route::routes/admin.php::get::/accounts/{id}/edit::closure::edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "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/ad",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/admin.php::get::/accounts/create::closure::create",
        "fqmn": "route::routes/admin.php::get::/accounts/create::closure::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_route::routes/ad",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/admin.php::get::/accounts/currency::Banking\\Accounts::currency",
        "fqmn": "Banking\\Accounts@currency",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "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/ad",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/admin.php::get::/api-key::closure::index",
        "fqmn": "route::routes/admin.php::get::/api-key::closure::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/ad",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/admin.php::get::/api-key/{id}::closure::show",
        "fqmn": "route::routes/admin.php::get::/api-key/{id}::closure::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/ad",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/admin.php::get::/api-key/{id}/edit::closure::edit",
        "fqmn": "route::routes/admin.php::get::/api-key/{id}/edit::closure::edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "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/ad",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/admin.php::get::/api-key/create::closure::create",
        "fqmn": "route::routes/admin.php::get::/api-key/create::closure::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_route::routes/ad",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/admin.php::get::/bills/{bill}/received::Purchases\\Bills::markReceived",
        "fqmn": "Purchases\\Bills@markReceived",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "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/ad",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/admin.php::get::/categories/{category}/enable::Settings\\Categories::enable",
        "fqmn": "Settings\\Categories@enable",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "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/ad",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/admin.php::get::/companies/autocomplete::Common\\Companies::autocomplete",
        "fqmn": "Common\\Companies@autocomplete",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "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/ad",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/admin.php::get::/invoices/{invoice}/sent::Sales\\Invoices::markSent",
        "fqmn": "Sales\\Invoices@markSent",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "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/ad",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/admin.php::get::/logout::Auth\\Login::destroy",
        "fqmn": "Auth\\Login@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_route::routes/ad",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/admin.php::get::/updates::Install\\Updates::index",
        "fqmn": "Install\\Updates@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/ad",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/admin.php::post::/accounts::closure::store",
        "fqmn": "route::routes/admin.php::post::/accounts::closure::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/ad",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/admin.php::post::/api-key::closure::store",
        "fqmn": "route::routes/admin.php::post::/api-key::closure::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/ad",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/admin.php::put::/accounts/{id}::closure::update",
        "fqmn": "route::routes/admin.php::put::/accounts/{id}::closure::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_route::routes/ad",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/admin.php::put::/api-key/{id}::closure::update",
        "fqmn": "route::routes/admin.php::put::/api-key/{id}::closure::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_route::routes/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::get::/ping::Common\\Ping::pong",
        "fqmn": "Common\\Ping@pong",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "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/co",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/common.php::get::/{id}::Common\\Uploads::get",
        "fqmn": "Common\\Uploads@get",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "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/co",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/common.php::post::/livewire/update::closure",
        "fqmn": "route::routes/common.php::post::/livewire/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/gu",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/guest.php::get::/::closure",
        "fqmn": "route::routes/guest.php::get::/::closure",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_route::routes/gu",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/guest.php::get::/login::Auth\\Login::create",
        "fqmn": "Auth\\Login@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_route::routes/in",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/install.php::get::/::Install\\Requirements::show",
        "fqmn": "Install\\Requirements@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/in",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/install.php::get::/database::Install\\Database::create",
        "fqmn": "Install\\Database@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_route::routes/in",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/install.php::get::/language::Install\\Language::create",
        "fqmn": "Install\\Language@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_route::routes/in",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/install.php::get::/language/getLanguages::Install\\Language::getLanguages",
        "fqmn": "Install\\Language@getLanguages",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_route::routes/in",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/install.php::get::/requirements::Install\\Requirements::show",
        "fqmn": "Install\\Requirements@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/in",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/install.php::get::/settings::Install\\Settings::create",
        "fqmn": "Install\\Settings@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_route::routes/in",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/install.php::post::/database::Install\\Database::store",
        "fqmn": "Install\\Database@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/in",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/install.php::post::/language::Install\\Language::store",
        "fqmn": "Install\\Language@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/in",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/install.php::post::/settings::Install\\Settings::store",
        "fqmn": "Install\\Settings@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/po",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/portal.php::get::/invoices/{invoice}/print::Portal\\Invoices::printInvoice",
        "fqmn": "Portal\\Invoices@printInvoice",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "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/pr",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/preview.php::get::/invoices/{invoice}::Portal\\Invoices::preview",
        "fqmn": "Portal\\Invoices@preview",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "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/si",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/signed.php::get::/invoices/{invoice}::Portal\\Invoices::signed",
        "fqmn": "Portal\\Invoices@signed",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "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/si",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/signed.php::get::/invoices/{invoice}/finish::Portal\\Invoices::finish",
        "fqmn": "Portal\\Invoices@finish",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "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/si",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/signed.php::get::/invoices/{invoice}/pdf::Portal\\Invoices::pdfInvoice",
        "fqmn": "Portal\\Invoices@pdfInvoice",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "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/si",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/signed.php::get::/invoices/{invoice}/print::Portal\\Invoices::printInvoice",
        "fqmn": "Portal\\Invoices@printInvoice",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "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/si",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/signed.php::get::/payments/{payment}::Portal\\Payments::signed",
        "fqmn": "Portal\\Payments@signed",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "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/si",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/signed.php::get::/payments/{payment}/pdf::Portal\\Payments::pdfPayment",
        "fqmn": "Portal\\Payments@pdfPayment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "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/si",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/signed.php::get::/payments/{payment}/print::Portal\\Payments::printPayment",
        "fqmn": "Portal\\Payments@printPayment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "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/si",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/signed.php::post::/invoices/{invoice}/confirm::Portal\\Invoices::confirm",
        "fqmn": "Portal\\Invoices@confirm",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "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/si",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/signed.php::post::/invoices/{invoice}/payment::Portal\\Invoices::payment",
        "fqmn": "Portal\\Invoices@payment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "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/wi",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/wizard.php::get::/companies::Wizard\\Companies::edit",
        "fqmn": "Wizard\\Companies@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "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_930088c5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_001",
        "fqmn": "App\\Abstracts\\Http\\Controller@__construct",
        "canonical": "App\\Abstracts\\Http\\ApiController@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\ApiController@__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_7252392d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_001",
        "fqmn": "App\\Console\\Commands\\BillReminder@handle",
        "canonical": "App\\Abstracts\\Http\\ApiController@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\ApiController@__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_156048ce",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_001",
        "fqmn": "App\\Console\\Commands\\CompanySeed@handle",
        "canonical": "App\\Abstracts\\Http\\ApiController@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\ApiController@__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_04e22c96",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_001",
        "fqmn": "App\\Console\\Commands\\InstallRefresh@handle",
        "canonical": "App\\Abstracts\\Http\\ApiController@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\ApiController@__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_aae42db7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_001",
        "fqmn": "App\\Console\\Commands\\InvoiceReminder@handle",
        "canonical": "App\\Abstracts\\Http\\ApiController@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\ApiController@__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_9701fe36",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_001",
        "fqmn": "App\\Console\\Commands\\SampleData@handle",
        "canonical": "App\\Abstracts\\Http\\ApiController@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\ApiController@__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_0ed0631a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_001",
        "fqmn": "App\\Console\\Commands\\UserSeed@handle",
        "canonical": "App\\Abstracts\\Http\\ApiController@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\ApiController@__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_90783a1e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_001",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\DocumentTransactions@__construct",
        "canonical": "App\\Abstracts\\Http\\ApiController@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\ApiController@__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_ae1cba93",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_001",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Settings@__construct",
        "canonical": "App\\Abstracts\\Http\\ApiController@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\ApiController@__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_24bbb7ff",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_001",
        "fqmn": "App\\Jobs\\Auth\\NotifyUser@handle",
        "canonical": "App\\Abstracts\\Http\\ApiController@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\ApiController@__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_a0147968",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_001",
        "fqmn": "App\\Jobs\\Common\\CreateMediableForExport@handle",
        "canonical": "App\\Abstracts\\Http\\ApiController@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\ApiController@__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_0ee8d6c4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_001",
        "fqmn": "App\\Listeners\\Update\\V30\\Version300@deleteOldFiles",
        "canonical": "App\\Abstracts\\Http\\ApiController@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\ApiController@__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_1223d111",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_001",
        "fqmn": "App\\Listeners\\Update\\V30\\Version300@updateCompanies",
        "canonical": "App\\Abstracts\\Http\\ApiController@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\ApiController@__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_76a0f8ae",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_001",
        "fqmn": "App\\Listeners\\Update\\V30\\Version300@updatePermissions",
        "canonical": "App\\Abstracts\\Http\\ApiController@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\ApiController@__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_06151ec3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_001",
        "fqmn": "App\\Listeners\\Update\\V30\\Version300@updateTransactions",
        "canonical": "App\\Abstracts\\Http\\ApiController@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\ApiController@__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_80117650",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_001",
        "fqmn": "App\\Listeners\\Update\\V30\\Version303@updateCompanies",
        "canonical": "App\\Abstracts\\Http\\ApiController@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\ApiController@__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_78976800",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_001",
        "fqmn": "App\\Listeners\\Update\\V30\\Version304@deleteOldFiles",
        "canonical": "App\\Abstracts\\Http\\ApiController@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\ApiController@__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_6b0e0b45",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_001",
        "fqmn": "App\\Listeners\\Update\\V30\\Version304@updateCompanies",
        "canonical": "App\\Abstracts\\Http\\ApiController@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\ApiController@__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_129ece5f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_001",
        "fqmn": "App\\Listeners\\Update\\V30\\Version304@updateDatabase",
        "canonical": "App\\Abstracts\\Http\\ApiController@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\ApiController@__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_52ce7426",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_001",
        "fqmn": "App\\Listeners\\Update\\V31\\Version3119@updatePermissions",
        "canonical": "App\\Abstracts\\Http\\ApiController@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\ApiController@__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_1aa8b6fa",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_001",
        "fqmn": "App\\Listeners\\Update\\V31\\Version318@updatePermissions",
        "canonical": "App\\Abstracts\\Http\\ApiController@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\ApiController@__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_be9f179c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_001",
        "fqmn": "App\\Utilities\\Installer@finalTouches",
        "canonical": "App\\Abstracts\\Http\\ApiController@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\ApiController@__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_07b04c3a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_001",
        "fqmn": "route::routes/common.php::post::/livewire/update::closure",
        "canonical": "App\\Abstracts\\Http\\ApiController@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\ApiController@__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_fa103689",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_002",
        "fqmn": "App\\Abstracts\\Http\\ApiController@created",
        "canonical": "App\\Abstracts\\Http\\ApiController@accepted",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\ApiController@accepted. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ae2ced0a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_003",
        "fqmn": "App\\Abstracts\\Http\\Controller@setActiveTabForDocuments",
        "canonical": "App\\Abstracts\\Http\\Controller@setActiveTabForCategories",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\Controller@setActiveTabForCategories. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0b7904f5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_003",
        "fqmn": "App\\Abstracts\\Http\\Controller@setActiveTabForTransactions",
        "canonical": "App\\Abstracts\\Http\\Controller@setActiveTabForCategories",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\Controller@setActiveTabForCategories. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_01c2cb46",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_003",
        "fqmn": "App\\Abstracts\\Job@setOwner",
        "canonical": "App\\Abstracts\\Http\\Controller@setActiveTabForCategories",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\Controller@setActiveTabForCategories. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_b7d0c746",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_003",
        "fqmn": "App\\Abstracts\\Job@setSource",
        "canonical": "App\\Abstracts\\Http\\Controller@setActiveTabForCategories",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\Controller@setActiveTabForCategories. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7c3b699f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_004",
        "fqmn": "App\\Console\\Commands\\UpdateAll@handle",
        "canonical": "App\\Abstracts\\Http\\PaymentController@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\PaymentController@__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_2e322555",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_004",
        "fqmn": "App\\Http\\Controllers\\Settings\\Invoice@edit",
        "canonical": "App\\Abstracts\\Http\\PaymentController@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\PaymentController@__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_7bd51d10",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_004",
        "fqmn": "App\\Http\\Controllers\\Settings\\Localisation@edit",
        "canonical": "App\\Abstracts\\Http\\PaymentController@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\PaymentController@__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_3ef0d4be",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_004",
        "fqmn": "App\\Jobs\\Common\\CreateMediableForDownload@getQueuedMedia",
        "canonical": "App\\Abstracts\\Http\\PaymentController@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\PaymentController@__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_6307d048",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_004",
        "fqmn": "App\\Jobs\\Common\\CreateMediableForExport@getQueuedMedia",
        "canonical": "App\\Abstracts\\Http\\PaymentController@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\PaymentController@__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_d774c27d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_005",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@getConfirmUrl",
        "canonical": "App\\Abstracts\\Http\\PaymentController@getCancelUrl",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\PaymentController@getCancelUrl. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d754592b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_005",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@getReturnUrl",
        "canonical": "App\\Abstracts\\Http\\PaymentController@getCancelUrl",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\PaymentController@getCancelUrl. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_c9dfdf1f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_006",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@getInvoiceUrl",
        "canonical": "App\\Abstracts\\Http\\PaymentController@getFinishUrl",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\PaymentController@getFinishUrl. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7377b2ae",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_007",
        "fqmn": "App\\Abstracts\\Listeners\\Report@getDateRange",
        "canonical": "App\\Abstracts\\Http\\PaymentController@getLogger",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\PaymentController@getLogger. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_6a154fbb",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_007",
        "fqmn": "App\\Console\\Commands\\Update@getNewVersion",
        "canonical": "App\\Abstracts\\Http\\PaymentController@getLogger",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\PaymentController@getLogger. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_3e402674",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_007",
        "fqmn": "App\\Exceptions\\Http\\Resource@getErrors",
        "canonical": "App\\Abstracts\\Http\\PaymentController@getLogger",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\PaymentController@getLogger. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_480b5b10",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_007",
        "fqmn": "App\\Exceptions\\Http\\Resource@hasErrors",
        "canonical": "App\\Abstracts\\Http\\PaymentController@getLogger",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\PaymentController@getLogger. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_67910ce6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_007",
        "fqmn": "App\\Http\\Controllers\\Settings\\Company@edit",
        "canonical": "App\\Abstracts\\Http\\PaymentController@getLogger",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\PaymentController@getLogger. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1e963763",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_007",
        "fqmn": "App\\Http\\Controllers\\Settings\\Email@edit",
        "canonical": "App\\Abstracts\\Http\\PaymentController@getLogger",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\PaymentController@getLogger. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_72eae9de",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_007",
        "fqmn": "App\\Http\\Controllers\\Settings\\Schedule@edit",
        "canonical": "App\\Abstracts\\Http\\PaymentController@getLogger",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\PaymentController@getLogger. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9a0ab4d5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_007",
        "fqmn": "App\\Http\\Requests\\Document\\Document@messages",
        "canonical": "App\\Abstracts\\Http\\PaymentController@getLogger",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\PaymentController@getLogger. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_5c1e4838",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_007",
        "fqmn": "App\\Http\\Requests\\Setting\\Module@rules",
        "canonical": "App\\Abstracts\\Http\\PaymentController@getLogger",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\PaymentController@getLogger. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_54de4e12",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_007",
        "fqmn": "App\\Http\\Requests\\Setting\\Setting@rules",
        "canonical": "App\\Abstracts\\Http\\PaymentController@getLogger",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\PaymentController@getLogger. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_85b80b54",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_007",
        "fqmn": "App\\Http\\Requests\\Wizard\\Company@rules",
        "canonical": "App\\Abstracts\\Http\\PaymentController@getLogger",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\PaymentController@getLogger. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0f1ec600",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_007",
        "fqmn": "App\\Jobs\\Common\\CreateMediableForDownload@getLocalQueuedMedia",
        "canonical": "App\\Abstracts\\Http\\PaymentController@getLogger",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\PaymentController@getLogger. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_6d6b008a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_007",
        "fqmn": "App\\Jobs\\Common\\CreateMediableForExport@getLocalQueuedMedia",
        "canonical": "App\\Abstracts\\Http\\PaymentController@getLogger",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\PaymentController@getLogger. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9bcf6e6d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_007",
        "fqmn": "App\\Listeners\\Update\\SendNotificationOnFailure@routeNotificationForMail",
        "canonical": "App\\Abstracts\\Http\\PaymentController@getLogger",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\PaymentController@getLogger. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_2e18cde6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_007",
        "fqmn": "App\\Listeners\\Update\\SendNotificationOnFailure@routeNotificationForSlack",
        "canonical": "App\\Abstracts\\Http\\PaymentController@getLogger",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\PaymentController@getLogger. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_3125a242",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_008",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@getReference",
        "canonical": "App\\Abstracts\\Http\\PaymentController@getNotifyUrl",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Http\\PaymentController@getNotifyUrl. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_5629cae4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_009",
        "fqmn": "App\\Abstracts\\Job@bootDelete",
        "canonical": "App\\Abstracts\\Job@bootCreate",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Job@bootCreate. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7f511686",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_009",
        "fqmn": "App\\Abstracts\\Job@bootUpdate",
        "canonical": "App\\Abstracts\\Job@bootCreate",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Job@bootCreate. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7724e8df",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_010",
        "fqmn": "App\\Abstracts\\Job@booting",
        "canonical": "App\\Abstracts\\Job@booted",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Job@booted. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_23424c29",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_010",
        "fqmn": "App\\Jobs\\Common\\DeleteCompany@booted",
        "canonical": "App\\Abstracts\\Job@booted",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Job@booted. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8dcdb49f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_010",
        "fqmn": "App\\Jobs\\Common\\UpdateCompany@booted",
        "canonical": "App\\Abstracts\\Job@booted",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Job@booted. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e1afd44a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_011",
        "fqmn": "App\\Abstracts\\Listeners\\Report@applyDateFilter",
        "canonical": "App\\Abstracts\\Listeners\\Report@applyCustomerGroup",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@applyCustomerGroup. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9cd09ec9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_011",
        "fqmn": "App\\Abstracts\\Listeners\\Report@applyDiscountFilter",
        "canonical": "App\\Abstracts\\Listeners\\Report@applyCustomerGroup",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@applyCustomerGroup. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7410287b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_011",
        "fqmn": "App\\Abstracts\\Listeners\\Report@applySearchStringFilter",
        "canonical": "App\\Abstracts\\Listeners\\Report@applyCustomerGroup",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@applyCustomerGroup. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_c46c617d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_011",
        "fqmn": "App\\Abstracts\\Listeners\\Report@applyVendorGroup",
        "canonical": "App\\Abstracts\\Listeners\\Report@applyCustomerGroup",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@applyCustomerGroup. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_5c8b95ae",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_011",
        "fqmn": "App\\Abstracts\\Listeners\\Report@setDateFilter",
        "canonical": "App\\Abstracts\\Listeners\\Report@applyCustomerGroup",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@applyCustomerGroup. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_dc66b890",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Abstracts\\Listeners\\Report@getDiscount",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_66c80b46",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Abstracts\\Listeners\\Report@getPeriod",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_66650e8d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Auth\\Forgot@rules",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1f3f98e9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Auth\\Login@rules",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_be2ce967",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Auth\\Register@rules",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e38772a7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Auth\\Reset@rules",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_cd255e02",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Auth\\User@messages",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_3a6eef75",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Banking\\Account@rules",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_f570a9d1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Banking\\Reconciliation@rules",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_6727b209",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Banking\\ReconciliationCalculate@rules",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_13afbb62",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Banking\\TransactionConnect@rules",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0f74681f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Banking\\Transfer@rules",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_87708ad9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Common\\BulkAction@rules",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a32d5b09",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Common\\Company@messages",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8f8e21b4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Common\\Company@rules",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_fe710bbc",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Common\\Contact@messages",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8268da86",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Common\\ContactPerson@rules",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_68d4c6b7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Common\\CustomMail@rules",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e7736ba7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Common\\Dashboard@rules",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8e4d65fa",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Common\\Import@rules",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a8607019",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Common\\Item@messages",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_47d69d64",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Common\\Item@rules",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_16231c8b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Common\\ItemTax@rules",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_c2e16d74",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Common\\Notification@rules",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d7a9f84d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Common\\Report@rules",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e30fd3a4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Common\\ReportShow@rules",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7f86300f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Common\\TotalItem@messages",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0fa9a97e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Common\\TotalItem@rules",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_94d1c27c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Common\\Widget@messages",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d3581187",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Common\\Widget@rules",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_f235a754",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Document\\DocumentAddItem@rules",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_c75fd080",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Document\\DocumentHistory@rules",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_5ae76ff6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Document\\DocumentItem@messages",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_44268fcd",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Document\\DocumentItem@rules",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a14f0358",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Document\\DocumentItemTax@rules",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_c71a8336",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Document\\DocumentTotal@rules",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_bfb5d356",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Install\\Database@rules",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_c569b9e3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Install\\Setting@rules",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_f423a645",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Module\\Install@rules",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d49930bc",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Module\\Module@rules",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_19d73123",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Portal\\InvoiceConfirm@rules",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_fe587519",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Portal\\InvoicePayment@rules",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8cb833f6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Portal\\InvoiceShow@rules",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_fc328383",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Portal\\PaymentShow@rules",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_694113fa",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Portal\\Profile@messages",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7757d3ae",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Setting\\Category@rules",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_83c3428a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Setting\\EmailTemplate@rules",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ff832575",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Setting\\Setting@messages",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d44787a7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Http\\Requests\\Wizard\\Company@messages",
        "canonical": "App\\Abstracts\\Listeners\\Report@getBasis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getBasis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_779d5d3e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_013",
        "fqmn": "App\\Abstracts\\Listeners\\Report@getExpenseCategories",
        "canonical": "App\\Abstracts\\Listeners\\Report@getCustomers",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getCustomers. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_81f0a2ad",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_013",
        "fqmn": "App\\Abstracts\\Listeners\\Report@getIncomeCategories",
        "canonical": "App\\Abstracts\\Listeners\\Report@getCustomers",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getCustomers. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d7592955",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_013",
        "fqmn": "App\\Abstracts\\Listeners\\Report@getItemCategories",
        "canonical": "App\\Abstracts\\Listeners\\Report@getCustomers",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getCustomers. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1a37a69d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_013",
        "fqmn": "App\\Abstracts\\Listeners\\Report@getVendors",
        "canonical": "App\\Abstracts\\Listeners\\Report@getCustomers",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@getCustomers. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_6314ef96",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_014",
        "fqmn": "App\\Abstracts\\Listeners\\Update@check",
        "canonical": "App\\Abstracts\\Listeners\\Report@skipThisClass",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Abstracts\\Listeners\\Report@skipThisClass. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d85fbb0e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_015",
        "fqmn": "App\\Console\\Commands\\Update@copyFiles",
        "canonical": "App\\Console\\Commands\\DownloadModule@copyFiles",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\DownloadModule@copyFiles. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_191930a0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_015",
        "fqmn": "App\\Console\\Commands\\Update@unzip",
        "canonical": "App\\Console\\Commands\\DownloadModule@copyFiles",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\DownloadModule@copyFiles. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_eb127ef3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_016",
        "fqmn": "App\\Http\\Controllers\\Api\\Auth\\Users@enable",
        "canonical": "App\\Http\\Controllers\\Api\\Auth\\Users@disable",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Auth\\Users@disable. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_84b8b413",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_017",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Accounts@index",
        "canonical": "App\\Http\\Controllers\\Api\\Auth\\Users@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Auth\\Users@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_bdcadec7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_017",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Reconciliations@index",
        "canonical": "App\\Http\\Controllers\\Api\\Auth\\Users@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Auth\\Users@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_042d1e4a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_017",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Transactions@index",
        "canonical": "App\\Http\\Controllers\\Api\\Auth\\Users@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Auth\\Users@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_79c3b41f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_017",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Companies@index",
        "canonical": "App\\Http\\Controllers\\Api\\Auth\\Users@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Auth\\Users@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_ddbf5591",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_017",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Contacts@index",
        "canonical": "App\\Http\\Controllers\\Api\\Auth\\Users@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Auth\\Users@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_72a8c0f1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_017",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Dashboards@index",
        "canonical": "App\\Http\\Controllers\\Api\\Auth\\Users@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Auth\\Users@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_f377aaac",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_017",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Items@index",
        "canonical": "App\\Http\\Controllers\\Api\\Auth\\Users@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Auth\\Users@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_aaf67f3b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_017",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Reports@index",
        "canonical": "App\\Http\\Controllers\\Api\\Auth\\Users@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Auth\\Users@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_67f90422",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_017",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\Documents@index",
        "canonical": "App\\Http\\Controllers\\Api\\Auth\\Users@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Auth\\Users@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_7ece0c90",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_017",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Categories@index",
        "canonical": "App\\Http\\Controllers\\Api\\Auth\\Users@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Auth\\Users@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_39c1e757",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_017",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Currencies@index",
        "canonical": "App\\Http\\Controllers\\Api\\Auth\\Users@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Auth\\Users@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_1e50e9c9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_017",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Taxes@index",
        "canonical": "App\\Http\\Controllers\\Api\\Auth\\Users@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Auth\\Users@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_a2064cc3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_018",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Accounts@show",
        "canonical": "App\\Http\\Controllers\\Api\\Auth\\Users@show",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Auth\\Users@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_9db85c07",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_018",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Contacts@show",
        "canonical": "App\\Http\\Controllers\\Api\\Auth\\Users@show",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Auth\\Users@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_4e1834ce",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_018",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Items@show",
        "canonical": "App\\Http\\Controllers\\Api\\Auth\\Users@show",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Auth\\Users@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_7f3a1160",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_018",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\Documents@show",
        "canonical": "App\\Http\\Controllers\\Api\\Auth\\Users@show",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Auth\\Users@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_a5c40fdd",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_018",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Currencies@show",
        "canonical": "App\\Http\\Controllers\\Api\\Auth\\Users@show",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Auth\\Users@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_dde122d7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_018",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Settings@show",
        "canonical": "App\\Http\\Controllers\\Api\\Auth\\Users@show",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Auth\\Users@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_4d361770",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_019",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Accounts@store",
        "canonical": "App\\Http\\Controllers\\Api\\Auth\\Users@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Auth\\Users@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_1383873c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_019",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Reconciliations@store",
        "canonical": "App\\Http\\Controllers\\Api\\Auth\\Users@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Auth\\Users@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_8887e9e1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_019",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Transactions@store",
        "canonical": "App\\Http\\Controllers\\Api\\Auth\\Users@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Auth\\Users@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_3d86ff96",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_019",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Transfers@store",
        "canonical": "App\\Http\\Controllers\\Api\\Auth\\Users@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Auth\\Users@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_7c8b02fc",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_019",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Companies@store",
        "canonical": "App\\Http\\Controllers\\Api\\Auth\\Users@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Auth\\Users@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_794e74a6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_019",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Contacts@store",
        "canonical": "App\\Http\\Controllers\\Api\\Auth\\Users@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Auth\\Users@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_5c6d2a56",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_019",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Dashboards@store",
        "canonical": "App\\Http\\Controllers\\Api\\Auth\\Users@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Auth\\Users@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_fdb6dc57",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_019",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Items@store",
        "canonical": "App\\Http\\Controllers\\Api\\Auth\\Users@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Auth\\Users@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_77a5f748",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_019",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Reports@store",
        "canonical": "App\\Http\\Controllers\\Api\\Auth\\Users@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Auth\\Users@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_5a50d205",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_019",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\Documents@store",
        "canonical": "App\\Http\\Controllers\\Api\\Auth\\Users@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Auth\\Users@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_1b26cbdf",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_019",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Categories@store",
        "canonical": "App\\Http\\Controllers\\Api\\Auth\\Users@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Auth\\Users@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_191b3ae0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_019",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Currencies@store",
        "canonical": "App\\Http\\Controllers\\Api\\Auth\\Users@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Auth\\Users@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_0d1901e2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_019",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Taxes@store",
        "canonical": "App\\Http\\Controllers\\Api\\Auth\\Users@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Auth\\Users@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_396c5146",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_020",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Companies@show",
        "canonical": "App\\Http\\Controllers\\Api\\Common\\Companies@canAccess",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Common\\Companies@canAccess. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_78d0bcd1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_021",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Companies@enable",
        "canonical": "App\\Http\\Controllers\\Api\\Common\\Companies@disable",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Common\\Companies@disable. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0c3ad1a8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_022",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Dashboards@enable",
        "canonical": "App\\Http\\Controllers\\Api\\Common\\Dashboards@disable",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Common\\Dashboards@disable. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_fa4173aa",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_023",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Items@enable",
        "canonical": "App\\Http\\Controllers\\Api\\Common\\Items@disable",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Common\\Items@disable. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_b47688d3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_024",
        "fqmn": "App\\Http\\Controllers\\Auth\\Login@__construct",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@__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_dc8c9bca",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_024",
        "fqmn": "App\\Http\\Controllers\\Auth\\Login@logout",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@__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_11fdb0d9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_024",
        "fqmn": "App\\Http\\Controllers\\Auth\\Register@__construct",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@__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_98ad9a0d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_024",
        "fqmn": "App\\Http\\Controllers\\Auth\\Reset@__construct",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@__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_2fb98f7a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_024",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@__construct",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@__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_98c96d46",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_024",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@__construct",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@__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_adac772e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_024",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@__construct",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@__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_6d355594",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_024",
        "fqmn": "App\\Http\\Controllers\\Common\\Contacts@__construct",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@__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_9a2c2284",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_024",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@__construct",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@__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_568ca95a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_024",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@__construct",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@__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_d3cf83e8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_024",
        "fqmn": "App\\Http\\Controllers\\Modals\\Accounts@__construct",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@__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_e0937320",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_024",
        "fqmn": "App\\Http\\Controllers\\Modals\\Categories@__construct",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@__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_da400125",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_024",
        "fqmn": "App\\Http\\Controllers\\Modals\\Companies@__construct",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@__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_12b7d0bf",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_024",
        "fqmn": "App\\Http\\Controllers\\Modals\\Currencies@__construct",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@__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_4e9e5e17",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_024",
        "fqmn": "App\\Http\\Controllers\\Modals\\Customers@__construct",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@__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_2a652b47",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_024",
        "fqmn": "App\\Http\\Controllers\\Modals\\DocumentItemColumns@__construct",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@__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_7c277ab4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_024",
        "fqmn": "App\\Http\\Controllers\\Modals\\DocumentTransactions@__construct",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@__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_615d97a8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_024",
        "fqmn": "App\\Http\\Controllers\\Modals\\InvoiceEmails@__construct",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@__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_988f48ba",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_024",
        "fqmn": "App\\Http\\Controllers\\Modals\\InvoiceShare@__construct",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@__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_c27fd246",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_024",
        "fqmn": "App\\Http\\Controllers\\Modals\\InvoiceTemplates@__construct",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@__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_1498577e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_024",
        "fqmn": "App\\Http\\Controllers\\Modals\\Items@__construct",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@__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_a527bae3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_024",
        "fqmn": "App\\Http\\Controllers\\Modals\\Taxes@__construct",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@__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_24127bff",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_024",
        "fqmn": "App\\Http\\Controllers\\Modals\\TransactionEmails@__construct",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@__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_057d168b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_024",
        "fqmn": "App\\Http\\Controllers\\Modals\\TransactionShare@__construct",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@__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_a0cc907c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_024",
        "fqmn": "App\\Http\\Controllers\\Modals\\TransferTemplates@__construct",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@__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_a1deadd1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_024",
        "fqmn": "App\\Http\\Controllers\\Modals\\Vendors@__construct",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@__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_794e3a78",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_024",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@__construct",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@__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_bf45f40b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_024",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@__construct",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@__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_98119335",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_024",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@__construct",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@__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_23d6b30c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_024",
        "fqmn": "App\\Http\\Controllers\\Settings\\Modules@__construct",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@__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_2b4e2f70",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_024",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Companies@__construct",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@__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_adaf08ac",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_024",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Currencies@__construct",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@__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_98f8c838",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_024",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Finish@__construct",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@__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_8ab147a9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_025",
        "fqmn": "App\\Http\\Controllers\\Auth\\Login@create",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@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_c98fe7a2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_025",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@create",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@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_ce1dddde",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_025",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@create",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@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_9cc3a466",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_025",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@create",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@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_cb408619",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_025",
        "fqmn": "App\\Http\\Controllers\\Install\\Language@create",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@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_c9026ce4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_025",
        "fqmn": "App\\Http\\Controllers\\Install\\Settings@create",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@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_d64d7358",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_025",
        "fqmn": "App\\Http\\Controllers\\Modules\\ApiKey@create",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@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_bc3b077d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_025",
        "fqmn": "App\\Http\\Controllers\\Portal\\Profile@edit",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@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_d1b4751e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_025",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@create",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@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_1d4adaad",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_025",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@create",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@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_5ed30171",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_025",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@create",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@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_c66204ff",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_025",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@create",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@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_075fa250",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_025",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@create",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@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_9a97ea11",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_025",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@create",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@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_8b28036c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_025",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@create",
        "canonical": "App\\Http\\Controllers\\Auth\\Forgot@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Forgot@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_3f9b6f5c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_026",
        "fqmn": "App\\Http\\Controllers\\Banking\\Reconciliations@show",
        "canonical": "App\\Http\\Controllers\\Auth\\Login@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Login@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_90ececa4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_026",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@show",
        "canonical": "App\\Http\\Controllers\\Auth\\Login@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Login@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_2e259315",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_026",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@show",
        "canonical": "App\\Http\\Controllers\\Auth\\Login@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Login@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_53e28d78",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_026",
        "fqmn": "App\\Http\\Controllers\\Common\\Plans@check",
        "canonical": "App\\Http\\Controllers\\Auth\\Login@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Login@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_0971caaa",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_026",
        "fqmn": "App\\Http\\Controllers\\Common\\Widgets@show",
        "canonical": "App\\Http\\Controllers\\Auth\\Login@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Login@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_322f1832",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_026",
        "fqmn": "App\\Http\\Controllers\\Modules\\Home@show",
        "canonical": "App\\Http\\Controllers\\Auth\\Login@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Login@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_38062296",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_026",
        "fqmn": "App\\Http\\Controllers\\Portal\\Profile@readOverdueInvoices",
        "canonical": "App\\Http\\Controllers\\Auth\\Login@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Login@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_04507421",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_026",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@show",
        "canonical": "App\\Http\\Controllers\\Auth\\Login@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Login@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_7b5760d4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_026",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@show",
        "canonical": "App\\Http\\Controllers\\Auth\\Login@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Login@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_9a51043a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_026",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@show",
        "canonical": "App\\Http\\Controllers\\Auth\\Login@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Login@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_d2a88452",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_026",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Currencies@show",
        "canonical": "App\\Http\\Controllers\\Auth\\Login@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Login@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_eab8dc04",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@disable",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_b24ce4d7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@enable",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_f29c42b9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_028",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@index",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_fef3b715",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_028",
        "fqmn": "App\\Http\\Controllers\\Banking\\Reconciliations@index",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_c27ae6cd",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_028",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@index",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_6b71cdd7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_028",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@index",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_b4b0b075",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_028",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@index",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_d8ab64bf",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_028",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@index",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_c3a2e2ce",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_028",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@index",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_46e69c12",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_028",
        "fqmn": "App\\Http\\Controllers\\Modules\\My@index",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_4ffa378b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_028",
        "fqmn": "App\\Http\\Controllers\\Portal\\Invoices@index",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_580cab03",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_028",
        "fqmn": "App\\Http\\Controllers\\Portal\\Payments@currencies",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_982dfb74",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_028",
        "fqmn": "App\\Http\\Controllers\\Portal\\Payments@index",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_9c0eb2eb",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_028",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@index",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_a0fadc1c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_028",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@index",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_39334944",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_028",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@index",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_f998d19b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_028",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@index",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_26ac058a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_028",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@index",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_57d2233e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_028",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@index",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_0fdca4f1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_028",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@index",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_23789a0b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_028",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@index",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_0ab49b69",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_028",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Companies@edit",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_9ef5d3fa",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_029",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@readUpcomingBills",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@readOverdueInvoices",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@readOverdueInvoices. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_cd9025ad",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_030",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@store",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_c7b6313f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_030",
        "fqmn": "App\\Http\\Controllers\\Banking\\Reconciliations@store",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_23e52c83",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_030",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@store",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_1f1c162c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_030",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@store",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_1b095fe1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_030",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@store",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_cc398ad1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_030",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@store",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_151a6291",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_030",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@store",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_ca7f2d7e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_030",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@store",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_f443a001",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_030",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@store",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_7e7b50df",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_030",
        "fqmn": "App\\Http\\Controllers\\Common\\Widgets@store",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_1f39e3ff",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_030",
        "fqmn": "App\\Http\\Controllers\\Install\\Database@store",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_60c7497c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_030",
        "fqmn": "App\\Http\\Controllers\\Install\\Language@store",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_ea4629b9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_030",
        "fqmn": "App\\Http\\Controllers\\Modals\\Accounts@store",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_290655f9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_030",
        "fqmn": "App\\Http\\Controllers\\Modals\\Categories@store",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_dc737a18",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_030",
        "fqmn": "App\\Http\\Controllers\\Modals\\Customers@store",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_29072e10",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_030",
        "fqmn": "App\\Http\\Controllers\\Modals\\Taxes@store",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_d0978e42",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_030",
        "fqmn": "App\\Http\\Controllers\\Modals\\Vendors@store",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_2694c2e5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_030",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@store",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_f085a674",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_030",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@store",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_5802a5f0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_030",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@store",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_7d06d38e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_030",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@store",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_ef3231ff",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_030",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@store",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_0d964488",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_030",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@store",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_7f553d74",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_030",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@store",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_da8a3a07",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_030",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@store",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_cf3744e3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_030",
        "fqmn": "App\\Http\\Controllers\\Settings\\EmailTemplates@update",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_ee88c2a3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_030",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@store",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_f77a1ec5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_030",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Currencies@store",
        "canonical": "App\\Http\\Controllers\\Auth\\Users@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\Users@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_bc594e26",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_031",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@createIncome",
        "canonical": "App\\Http\\Controllers\\Banking\\Accounts@createExpense",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Banking\\Accounts@createExpense. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_2f60cc1e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_031",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@createTransfer",
        "canonical": "App\\Http\\Controllers\\Banking\\Accounts@createExpense",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Banking\\Accounts@createExpense. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7ac0ad86",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_031",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@duplicate",
        "canonical": "App\\Http\\Controllers\\Banking\\Accounts@createExpense",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Banking\\Accounts@createExpense. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_45025c92",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_032",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@disable",
        "canonical": "App\\Http\\Controllers\\Banking\\Accounts@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Banking\\Accounts@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_65c25d59",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_032",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@enable",
        "canonical": "App\\Http\\Controllers\\Banking\\Accounts@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Banking\\Accounts@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_dfc3616e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_033",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@show",
        "canonical": "App\\Http\\Controllers\\Banking\\Accounts@edit",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Banking\\Accounts@edit. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_15b8a2ef",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_034",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@create",
        "canonical": "App\\Http\\Controllers\\Banking\\RecurringTransactions@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Banking\\RecurringTransactions@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_8025b896",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_035",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@end",
        "canonical": "App\\Http\\Controllers\\Banking\\RecurringTransactions@duplicate",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Banking\\RecurringTransactions@duplicate. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_73afe14b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_036",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@export",
        "canonical": "App\\Http\\Controllers\\Banking\\RecurringTransactions@export",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Banking\\RecurringTransactions@export. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_4e603c50",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_036",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@export",
        "canonical": "App\\Http\\Controllers\\Banking\\RecurringTransactions@export",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Banking\\RecurringTransactions@export. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_35212a99",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_036",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@export",
        "canonical": "App\\Http\\Controllers\\Banking\\RecurringTransactions@export",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Banking\\RecurringTransactions@export. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0c71a078",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_036",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@export",
        "canonical": "App\\Http\\Controllers\\Banking\\RecurringTransactions@export",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Banking\\RecurringTransactions@export. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_df1605b3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_036",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@export",
        "canonical": "App\\Http\\Controllers\\Banking\\RecurringTransactions@export",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Banking\\RecurringTransactions@export. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_4ff487c7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_036",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@export",
        "canonical": "App\\Http\\Controllers\\Banking\\RecurringTransactions@export",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Banking\\RecurringTransactions@export. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_83182555",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_036",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@export",
        "canonical": "App\\Http\\Controllers\\Banking\\RecurringTransactions@export",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Banking\\RecurringTransactions@export. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_49e9c802",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_036",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@export",
        "canonical": "App\\Http\\Controllers\\Banking\\RecurringTransactions@export",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Banking\\RecurringTransactions@export. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7d4f5ce7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_036",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@export",
        "canonical": "App\\Http\\Controllers\\Banking\\RecurringTransactions@export",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Banking\\RecurringTransactions@export. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_6ae4d79b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_036",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@export",
        "canonical": "App\\Http\\Controllers\\Banking\\RecurringTransactions@export",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Banking\\RecurringTransactions@export. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_62b5df1e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_036",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@export",
        "canonical": "App\\Http\\Controllers\\Banking\\RecurringTransactions@export",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Banking\\RecurringTransactions@export. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a36d3aad",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_037",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@import",
        "canonical": "App\\Http\\Controllers\\Banking\\RecurringTransactions@import",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Banking\\RecurringTransactions@import. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_b0d0f05c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_037",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@import",
        "canonical": "App\\Http\\Controllers\\Banking\\RecurringTransactions@import",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Banking\\RecurringTransactions@import. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_61190e1b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_037",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@import",
        "canonical": "App\\Http\\Controllers\\Banking\\RecurringTransactions@import",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Banking\\RecurringTransactions@import. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_17f11410",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_037",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@import",
        "canonical": "App\\Http\\Controllers\\Banking\\RecurringTransactions@import",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Banking\\RecurringTransactions@import. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_330e7381",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_037",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@import",
        "canonical": "App\\Http\\Controllers\\Banking\\RecurringTransactions@import",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Banking\\RecurringTransactions@import. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_f9932683",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_037",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@import",
        "canonical": "App\\Http\\Controllers\\Banking\\RecurringTransactions@import",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Banking\\RecurringTransactions@import. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d4d83f99",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_037",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@import",
        "canonical": "App\\Http\\Controllers\\Banking\\RecurringTransactions@import",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Banking\\RecurringTransactions@import. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ad902f78",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_037",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@import",
        "canonical": "App\\Http\\Controllers\\Banking\\RecurringTransactions@import",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Banking\\RecurringTransactions@import. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0507a0d7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_037",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@import",
        "canonical": "App\\Http\\Controllers\\Banking\\RecurringTransactions@import",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Banking\\RecurringTransactions@import. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_926a2773",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_037",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@import",
        "canonical": "App\\Http\\Controllers\\Banking\\RecurringTransactions@import",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Banking\\RecurringTransactions@import. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_431963a0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_037",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@import",
        "canonical": "App\\Http\\Controllers\\Banking\\RecurringTransactions@import",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Banking\\RecurringTransactions@import. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a66fcff5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_038",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@create",
        "canonical": "App\\Http\\Controllers\\Banking\\Transfers@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Banking\\Transfers@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_3c848573",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_038",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@create",
        "canonical": "App\\Http\\Controllers\\Banking\\Transfers@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Banking\\Transfers@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_ea4a8514",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_039",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@autocomplete",
        "canonical": "App\\Http\\Controllers\\Common\\Companies@autocomplete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Common\\Companies@autocomplete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_f24b07ff",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_040",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@disable",
        "canonical": "App\\Http\\Controllers\\Common\\Companies@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Common\\Companies@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_4906fb8a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_040",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@enable",
        "canonical": "App\\Http\\Controllers\\Common\\Companies@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Common\\Companies@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_ee755a4d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_041",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@fields",
        "canonical": "App\\Http\\Controllers\\Common\\Contacts@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Common\\Contacts@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_dc9c6a3c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_041",
        "fqmn": "App\\Http\\Controllers\\Modals\\Accounts@create",
        "canonical": "App\\Http\\Controllers\\Common\\Contacts@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Common\\Contacts@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_f3cad4e5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_041",
        "fqmn": "App\\Http\\Controllers\\Modals\\Currencies@create",
        "canonical": "App\\Http\\Controllers\\Common\\Contacts@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Common\\Contacts@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_22038d47",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_041",
        "fqmn": "App\\Http\\Controllers\\Modals\\Customers@create",
        "canonical": "App\\Http\\Controllers\\Common\\Contacts@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Common\\Contacts@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_a7c13a8b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_041",
        "fqmn": "App\\Http\\Controllers\\Modals\\DocumentItemColumns@edit",
        "canonical": "App\\Http\\Controllers\\Common\\Contacts@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Common\\Contacts@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_f14c153f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_041",
        "fqmn": "App\\Http\\Controllers\\Modals\\Taxes@create",
        "canonical": "App\\Http\\Controllers\\Common\\Contacts@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Common\\Contacts@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_99d8bd39",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_041",
        "fqmn": "App\\Http\\Controllers\\Modals\\Vendors@create",
        "canonical": "App\\Http\\Controllers\\Common\\Contacts@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Common\\Contacts@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_6d38c4a6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_041",
        "fqmn": "App\\Http\\Controllers\\Settings\\EmailTemplates@get",
        "canonical": "App\\Http\\Controllers\\Common\\Contacts@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Common\\Contacts@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_f34be89f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_042",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@disable",
        "canonical": "App\\Http\\Controllers\\Common\\Dashboards@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Common\\Dashboards@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_21b97caa",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_042",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@enable",
        "canonical": "App\\Http\\Controllers\\Common\\Dashboards@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Common\\Dashboards@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_1ef68041",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_043",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@disable",
        "canonical": "App\\Http\\Controllers\\Common\\Items@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Common\\Items@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_779e8c38",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_043",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@enable",
        "canonical": "App\\Http\\Controllers\\Common\\Items@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Common\\Items@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_d50a4879",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_044",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@pdf",
        "canonical": "App\\Http\\Controllers\\Common\\Reports@export",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Common\\Reports@export. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_f35c73cc",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_044",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@print",
        "canonical": "App\\Http\\Controllers\\Common\\Reports@export",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Common\\Reports@export. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_15b74382",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_045",
        "fqmn": "App\\Http\\Controllers\\Common\\Uploads@inline",
        "canonical": "App\\Http\\Controllers\\Common\\Uploads@get",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Common\\Uploads@get. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9ef036b3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_046",
        "fqmn": "App\\Http\\Controllers\\Install\\Language@getLanguages",
        "canonical": "App\\Http\\Controllers\\Common\\Widgets@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Common\\Widgets@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_b3776034",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_046",
        "fqmn": "App\\Http\\Controllers\\Install\\Updates@redirect",
        "canonical": "App\\Http\\Controllers\\Common\\Widgets@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Common\\Widgets@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_ef5fee73",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_047",
        "fqmn": "App\\Http\\Controllers\\Install\\Updates@download",
        "canonical": "App\\Http\\Controllers\\Install\\Updates@copyFiles",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Install\\Updates@copyFiles. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_70fe8b07",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_047",
        "fqmn": "App\\Http\\Controllers\\Install\\Updates@unzip",
        "canonical": "App\\Http\\Controllers\\Install\\Updates@copyFiles",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Install\\Updates@copyFiles. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0ed2623d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_047",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@copy",
        "canonical": "App\\Http\\Controllers\\Install\\Updates@copyFiles",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Install\\Updates@copyFiles. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_fb326363",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_047",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@install",
        "canonical": "App\\Http\\Controllers\\Install\\Updates@copyFiles",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Install\\Updates@copyFiles. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_4ca6570b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@download",
        "canonical": "App\\Http\\Controllers\\Install\\Updates@finish",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Install\\Updates@finish. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d5919fbf",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@unzip",
        "canonical": "App\\Http\\Controllers\\Install\\Updates@finish",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Install\\Updates@finish. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_3f9cb3ad",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_049",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@steps",
        "canonical": "App\\Http\\Controllers\\Install\\Updates@steps",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Install\\Updates@steps. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_2ee351c2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_050",
        "fqmn": "App\\Http\\Controllers\\Modals\\Items@create",
        "canonical": "App\\Http\\Controllers\\Modals\\Categories@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Modals\\Categories@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_4e028965",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_051",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@update",
        "canonical": "App\\Http\\Controllers\\Modals\\Customers@update",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Modals\\Customers@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_5eaa1023",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_052",
        "fqmn": "App\\Http\\Controllers\\Modals\\InvoiceTemplates@update",
        "canonical": "App\\Http\\Controllers\\Modals\\DocumentItemColumns@update",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Modals\\DocumentItemColumns@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_b57f3f03",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_052",
        "fqmn": "App\\Http\\Controllers\\Modals\\TransferTemplates@update",
        "canonical": "App\\Http\\Controllers\\Modals\\DocumentItemColumns@update",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Modals\\DocumentItemColumns@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_887f6e27",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Controllers\\Modals\\TransactionEmails@store",
        "canonical": "App\\Http\\Controllers\\Modals\\InvoiceEmails@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Modals\\InvoiceEmails@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_3cbbdf5c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_054",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@update",
        "canonical": "App\\Http\\Controllers\\Modals\\Vendors@update",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Modals\\Vendors@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_37750cae",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_055",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@enable",
        "canonical": "App\\Http\\Controllers\\Modules\\Item@disable",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Modules\\Item@disable. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d1e992f9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_055",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@uninstall",
        "canonical": "App\\Http\\Controllers\\Modules\\Item@disable",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Modules\\Item@disable. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_6bb76d07",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_056",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@reviews",
        "canonical": "App\\Http\\Controllers\\Modules\\Item@releases",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Modules\\Item@releases. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8dbc26c2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_057",
        "fqmn": "App\\Http\\Controllers\\Modules\\Tiles@newModules",
        "canonical": "App\\Http\\Controllers\\Modules\\Tiles@freeModules",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Modules\\Tiles@freeModules. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_05af7afc",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_057",
        "fqmn": "App\\Http\\Controllers\\Modules\\Tiles@paidModules",
        "canonical": "App\\Http\\Controllers\\Modules\\Tiles@freeModules",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Modules\\Tiles@freeModules. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_785fdf23",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_058",
        "fqmn": "App\\Http\\Controllers\\Portal\\Invoices@show",
        "canonical": "App\\Http\\Controllers\\Portal\\Invoices@printInvoice",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Portal\\Invoices@printInvoice. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_b3469084",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_059",
        "fqmn": "App\\Http\\Controllers\\Portal\\Payments@signed",
        "canonical": "App\\Http\\Controllers\\Portal\\Payments@preview",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Portal\\Payments@preview. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_48a2eb65",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_060",
        "fqmn": "App\\Http\\Controllers\\Portal\\Profile@show",
        "canonical": "App\\Http\\Controllers\\Portal\\Profile@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Portal\\Profile@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_e9d92b3c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_061",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@printBill",
        "canonical": "App\\Http\\Controllers\\Purchases\\Bills@edit",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Purchases\\Bills@edit. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_82767247",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_061",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@show",
        "canonical": "App\\Http\\Controllers\\Purchases\\Bills@edit",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Purchases\\Bills@edit. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8764c291",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_062",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@markReceived",
        "canonical": "App\\Http\\Controllers\\Purchases\\Bills@markCancelled",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Purchases\\Bills@markCancelled. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_19c7c5c2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_062",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@restoreBill",
        "canonical": "App\\Http\\Controllers\\Purchases\\Bills@markCancelled",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Purchases\\Bills@markCancelled. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_070744aa",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_063",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@show",
        "canonical": "App\\Http\\Controllers\\Purchases\\RecurringBills@edit",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Purchases\\RecurringBills@edit. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_f352fe06",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_064",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@createExpense",
        "canonical": "App\\Http\\Controllers\\Purchases\\Vendors@createBill",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Purchases\\Vendors@createBill. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_738acaa3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_065",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@disable",
        "canonical": "App\\Http\\Controllers\\Purchases\\Vendors@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Purchases\\Vendors@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_a6380d0e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_065",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@enable",
        "canonical": "App\\Http\\Controllers\\Purchases\\Vendors@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Purchases\\Vendors@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_b539919d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_066",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@show",
        "canonical": "App\\Http\\Controllers\\Purchases\\Vendors@edit",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Purchases\\Vendors@edit. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e28ca070",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_067",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@createInvoice",
        "canonical": "App\\Http\\Controllers\\Sales\\Customers@createIncome",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Sales\\Customers@createIncome. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_770f28a0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_068",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@disable",
        "canonical": "App\\Http\\Controllers\\Sales\\Customers@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Sales\\Customers@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_e3e05cc3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_068",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@enable",
        "canonical": "App\\Http\\Controllers\\Sales\\Customers@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Sales\\Customers@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_d87e5d6a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_069",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@show",
        "canonical": "App\\Http\\Controllers\\Sales\\Customers@edit",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Sales\\Customers@edit. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_525bb48f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_070",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@show",
        "canonical": "App\\Http\\Controllers\\Sales\\Invoices@edit",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Sales\\Invoices@edit. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_18206468",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_071",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@markSent",
        "canonical": "App\\Http\\Controllers\\Sales\\Invoices@markCancelled",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Sales\\Invoices@markCancelled. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e00af406",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_071",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@restoreInvoice",
        "canonical": "App\\Http\\Controllers\\Sales\\Invoices@markCancelled",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Sales\\Invoices@markCancelled. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_21665bf0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_072",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@show",
        "canonical": "App\\Http\\Controllers\\Sales\\RecurringInvoices@edit",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Sales\\RecurringInvoices@edit. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_2370c02e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_073",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@disable",
        "canonical": "App\\Http\\Controllers\\Settings\\Categories@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Settings\\Categories@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_f9503d85",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_073",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@enable",
        "canonical": "App\\Http\\Controllers\\Settings\\Categories@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Settings\\Categories@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_7b3cf076",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_074",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@disable",
        "canonical": "App\\Http\\Controllers\\Settings\\Currencies@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Settings\\Currencies@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_13fc273d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_074",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@enable",
        "canonical": "App\\Http\\Controllers\\Settings\\Currencies@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Settings\\Currencies@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_b578dede",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_074",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Currencies@destroy",
        "canonical": "App\\Http\\Controllers\\Settings\\Currencies@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Settings\\Currencies@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_69b3ec3a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_075",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Currencies@update",
        "canonical": "App\\Http\\Controllers\\Settings\\Currencies@update",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Settings\\Currencies@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_02332fc0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_076",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@disable",
        "canonical": "App\\Http\\Controllers\\Settings\\Taxes@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Settings\\Taxes@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_c561e263",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_076",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@enable",
        "canonical": "App\\Http\\Controllers\\Settings\\Taxes@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Settings\\Taxes@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_e6e4ab7e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_077",
        "fqmn": "App\\Http\\Requests\\Auth\\Login@authorize",
        "canonical": "App\\Http\\Requests\\Auth\\Forgot@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\Auth\\Forgot@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_49a559d2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_077",
        "fqmn": "App\\Http\\Requests\\Auth\\Register@authorize",
        "canonical": "App\\Http\\Requests\\Auth\\Forgot@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\Auth\\Forgot@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_f6c0b314",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_077",
        "fqmn": "App\\Http\\Requests\\Auth\\Reset@authorize",
        "canonical": "App\\Http\\Requests\\Auth\\Forgot@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\Auth\\Forgot@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_d33e1328",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_077",
        "fqmn": "App\\Http\\Requests\\Auth\\User@authorize",
        "canonical": "App\\Http\\Requests\\Auth\\Forgot@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\Auth\\Forgot@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_b138d581",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_077",
        "fqmn": "App\\Http\\Requests\\Portal\\InvoiceShow@authorize",
        "canonical": "App\\Http\\Requests\\Auth\\Forgot@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\Auth\\Forgot@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_fbbc9190",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_077",
        "fqmn": "App\\Http\\Requests\\Portal\\PaymentShow@authorize",
        "canonical": "App\\Http\\Requests\\Auth\\Forgot@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\Auth\\Forgot@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_69be4f15",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_078",
        "fqmn": "App\\Http\\Requests\\Portal\\Profile@rules",
        "canonical": "App\\Http\\Requests\\Auth\\User@rules",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\Auth\\User@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_dfbf65dd",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_078",
        "fqmn": "App\\Http\\Requests\\Setting\\Currency@rules",
        "canonical": "App\\Http\\Requests\\Auth\\User@rules",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\Auth\\User@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_b4040f59",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_078",
        "fqmn": "App\\Http\\Requests\\Setting\\Tax@rules",
        "canonical": "App\\Http\\Requests\\Auth\\User@rules",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\Auth\\User@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_54f05e01",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_079",
        "fqmn": "App\\Http\\Requests\\Document\\Document@rules",
        "canonical": "App\\Http\\Requests\\Banking\\Transaction@rules",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\Banking\\Transaction@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_f7b28138",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_080",
        "fqmn": "App\\Http\\Requests\\Document\\Document@withValidator",
        "canonical": "App\\Http\\Requests\\Banking\\Transaction@withValidator",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\Banking\\Transaction@withValidator. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_52cfb806",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_081",
        "fqmn": "App\\Http\\Requests\\Wizard\\Company@__construct",
        "canonical": "App\\Http\\Requests\\Module\\Module@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\Module\\Module@__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_12b204d2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_082",
        "fqmn": "App\\Http\\Resources\\Banking\\Account@toArray",
        "canonical": "App\\Http\\Resources\\Auth\\Role@toArray",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Resources\\Auth\\Role@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_e0c46d1e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_082",
        "fqmn": "App\\Http\\Resources\\Banking\\Reconciliation@toArray",
        "canonical": "App\\Http\\Resources\\Auth\\Role@toArray",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Resources\\Auth\\Role@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_1c3d4daa",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_082",
        "fqmn": "App\\Http\\Resources\\Banking\\TransactionTax@toArray",
        "canonical": "App\\Http\\Resources\\Auth\\Role@toArray",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Resources\\Auth\\Role@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_f982e7e0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_082",
        "fqmn": "App\\Http\\Resources\\Banking\\Transfer@toArray",
        "canonical": "App\\Http\\Resources\\Auth\\Role@toArray",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Resources\\Auth\\Role@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_467b7627",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_082",
        "fqmn": "App\\Http\\Resources\\Common\\Company@toArray",
        "canonical": "App\\Http\\Resources\\Auth\\Role@toArray",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Resources\\Auth\\Role@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_bd36b791",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_082",
        "fqmn": "App\\Http\\Resources\\Common\\ContactPerson@toArray",
        "canonical": "App\\Http\\Resources\\Auth\\Role@toArray",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Resources\\Auth\\Role@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_72415fa4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_082",
        "fqmn": "App\\Http\\Resources\\Common\\ItemTax@toArray",
        "canonical": "App\\Http\\Resources\\Auth\\Role@toArray",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Resources\\Auth\\Role@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_b16e7092",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_082",
        "fqmn": "App\\Http\\Resources\\Common\\Report@toArray",
        "canonical": "App\\Http\\Resources\\Auth\\Role@toArray",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Resources\\Auth\\Role@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_2f491ef4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_082",
        "fqmn": "App\\Http\\Resources\\Common\\Widget@toArray",
        "canonical": "App\\Http\\Resources\\Auth\\Role@toArray",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Resources\\Auth\\Role@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_af169553",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_082",
        "fqmn": "App\\Http\\Resources\\Document\\DocumentHistory@toArray",
        "canonical": "App\\Http\\Resources\\Auth\\Role@toArray",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Resources\\Auth\\Role@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_459d9327",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_082",
        "fqmn": "App\\Http\\Resources\\Document\\DocumentItemTax@toArray",
        "canonical": "App\\Http\\Resources\\Auth\\Role@toArray",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Resources\\Auth\\Role@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_868866e5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_082",
        "fqmn": "App\\Http\\Resources\\Document\\DocumentTotal@toArray",
        "canonical": "App\\Http\\Resources\\Auth\\Role@toArray",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Resources\\Auth\\Role@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_950d3725",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_082",
        "fqmn": "App\\Http\\Resources\\Setting\\Category@toArray",
        "canonical": "App\\Http\\Resources\\Auth\\Role@toArray",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Resources\\Auth\\Role@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_189ce646",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_082",
        "fqmn": "App\\Http\\Resources\\Setting\\Currency@toArray",
        "canonical": "App\\Http\\Resources\\Auth\\Role@toArray",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Resources\\Auth\\Role@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_1dbb6f3b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_082",
        "fqmn": "App\\Http\\Resources\\Setting\\Setting@toArray",
        "canonical": "App\\Http\\Resources\\Auth\\Role@toArray",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Resources\\Auth\\Role@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_9623127a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_082",
        "fqmn": "App\\Http\\Resources\\Setting\\Tax@toArray",
        "canonical": "App\\Http\\Resources\\Auth\\Role@toArray",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Resources\\Auth\\Role@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_27a894a7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_083",
        "fqmn": "App\\Http\\Resources\\Common\\Contact@toArray",
        "canonical": "App\\Http\\Resources\\Banking\\Transaction@toArray",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Resources\\Banking\\Transaction@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_7e443932",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_083",
        "fqmn": "App\\Http\\Resources\\Common\\Item@toArray",
        "canonical": "App\\Http\\Resources\\Banking\\Transaction@toArray",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Resources\\Banking\\Transaction@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_7b609580",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_083",
        "fqmn": "App\\Http\\Resources\\Document\\Document@toArray",
        "canonical": "App\\Http\\Resources\\Banking\\Transaction@toArray",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Resources\\Banking\\Transaction@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_4a34ab4f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_083",
        "fqmn": "App\\Http\\Resources\\Document\\DocumentItem@toArray",
        "canonical": "App\\Http\\Resources\\Banking\\Transaction@toArray",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Resources\\Banking\\Transaction@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_3fc2b87b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_084",
        "fqmn": "App\\Jobs\\Auth\\DeleteUser@authorize",
        "canonical": "App\\Jobs\\Auth\\CreateUser@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Auth\\CreateUser@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_be442d2c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_084",
        "fqmn": "App\\Jobs\\Banking\\CreateTransfer@authorize",
        "canonical": "App\\Jobs\\Auth\\CreateUser@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Auth\\CreateUser@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_cebb95f1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_084",
        "fqmn": "App\\Jobs\\Banking\\DeleteAccount@authorize",
        "canonical": "App\\Jobs\\Auth\\CreateUser@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Auth\\CreateUser@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_40a779fe",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_084",
        "fqmn": "App\\Jobs\\Banking\\DeleteTransaction@authorize",
        "canonical": "App\\Jobs\\Auth\\CreateUser@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Auth\\CreateUser@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_e50d8c4f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_084",
        "fqmn": "App\\Jobs\\Banking\\SplitTransaction@authorize",
        "canonical": "App\\Jobs\\Auth\\CreateUser@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Auth\\CreateUser@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_47a0fbbc",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_084",
        "fqmn": "App\\Jobs\\Banking\\UpdateTransaction@authorize",
        "canonical": "App\\Jobs\\Auth\\CreateUser@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Auth\\CreateUser@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_ee56c51d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_084",
        "fqmn": "App\\Jobs\\Banking\\UpdateTransfer@authorize",
        "canonical": "App\\Jobs\\Auth\\CreateUser@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Auth\\CreateUser@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_bdc8848b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_084",
        "fqmn": "App\\Jobs\\Common\\CreateCompany@authorize",
        "canonical": "App\\Jobs\\Auth\\CreateUser@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Auth\\CreateUser@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_092eea02",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_084",
        "fqmn": "App\\Jobs\\Common\\DeleteCompany@authorize",
        "canonical": "App\\Jobs\\Auth\\CreateUser@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Auth\\CreateUser@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_ac865f95",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_084",
        "fqmn": "App\\Jobs\\Common\\DeleteContact@authorize",
        "canonical": "App\\Jobs\\Auth\\CreateUser@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Auth\\CreateUser@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_36aa589a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_084",
        "fqmn": "App\\Jobs\\Common\\DeleteItem@authorize",
        "canonical": "App\\Jobs\\Auth\\CreateUser@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Auth\\CreateUser@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_14b44e98",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_084",
        "fqmn": "App\\Jobs\\Common\\UpdateCompany@authorize",
        "canonical": "App\\Jobs\\Auth\\CreateUser@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Auth\\CreateUser@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_c6737c6f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_084",
        "fqmn": "App\\Jobs\\Common\\UpdateContact@authorize",
        "canonical": "App\\Jobs\\Auth\\CreateUser@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Auth\\CreateUser@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_eaaa72e7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_084",
        "fqmn": "App\\Jobs\\Common\\UpdateDashboard@authorize",
        "canonical": "App\\Jobs\\Auth\\CreateUser@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Auth\\CreateUser@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_3b638f7d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_084",
        "fqmn": "App\\Jobs\\Document\\CancelDocument@authorize",
        "canonical": "App\\Jobs\\Auth\\CreateUser@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Auth\\CreateUser@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_e5446e7f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_084",
        "fqmn": "App\\Jobs\\Document\\CreateDocument@authorize",
        "canonical": "App\\Jobs\\Auth\\CreateUser@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Auth\\CreateUser@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_e4b88fe8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_084",
        "fqmn": "App\\Jobs\\Document\\DeleteDocument@authorize",
        "canonical": "App\\Jobs\\Auth\\CreateUser@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Auth\\CreateUser@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_bbc73712",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_084",
        "fqmn": "App\\Jobs\\Install\\DisableModule@authorize",
        "canonical": "App\\Jobs\\Auth\\CreateUser@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Auth\\CreateUser@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_8c7aa1d7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_084",
        "fqmn": "App\\Jobs\\Install\\EnableModule@authorize",
        "canonical": "App\\Jobs\\Auth\\CreateUser@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Auth\\CreateUser@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_56207622",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_084",
        "fqmn": "App\\Jobs\\Install\\FinishUpdate@authorize",
        "canonical": "App\\Jobs\\Auth\\CreateUser@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Auth\\CreateUser@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_d97205f1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_084",
        "fqmn": "App\\Jobs\\Install\\FinishUpdate@handle",
        "canonical": "App\\Jobs\\Auth\\CreateUser@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Auth\\CreateUser@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_13d0a26d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_084",
        "fqmn": "App\\Jobs\\Install\\InstallModule@authorize",
        "canonical": "App\\Jobs\\Auth\\CreateUser@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Auth\\CreateUser@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_5bc1ff3c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_084",
        "fqmn": "App\\Jobs\\Install\\UninstallModule@authorize",
        "canonical": "App\\Jobs\\Auth\\CreateUser@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Auth\\CreateUser@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_2e31c065",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_084",
        "fqmn": "App\\Jobs\\Setting\\DeleteCurrency@authorize",
        "canonical": "App\\Jobs\\Auth\\CreateUser@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Auth\\CreateUser@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_94380549",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_084",
        "fqmn": "App\\Jobs\\Setting\\DeleteTax@authorize",
        "canonical": "App\\Jobs\\Auth\\CreateUser@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Auth\\CreateUser@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_b95bfbc1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_085",
        "fqmn": "App\\Jobs\\Auth\\DeletePermission@handle",
        "canonical": "App\\Jobs\\Auth\\DeleteInvitation@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Auth\\DeleteInvitation@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_ab2b3881",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_085",
        "fqmn": "App\\Jobs\\Banking\\DeleteReconciliation@handle",
        "canonical": "App\\Jobs\\Auth\\DeleteInvitation@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Auth\\DeleteInvitation@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_cd44492a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_085",
        "fqmn": "App\\Jobs\\Common\\DeleteContactPerson@handle",
        "canonical": "App\\Jobs\\Auth\\DeleteInvitation@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Auth\\DeleteInvitation@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_5b73840d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_085",
        "fqmn": "App\\Jobs\\Common\\DeleteDashboard@handle",
        "canonical": "App\\Jobs\\Auth\\DeleteInvitation@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Auth\\DeleteInvitation@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_94c91825",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_085",
        "fqmn": "App\\Jobs\\Common\\DeleteReport@handle",
        "canonical": "App\\Jobs\\Auth\\DeleteInvitation@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Auth\\DeleteInvitation@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_ade55613",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_085",
        "fqmn": "App\\Jobs\\Common\\DeleteWidget@handle",
        "canonical": "App\\Jobs\\Auth\\DeleteInvitation@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Auth\\DeleteInvitation@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_6535d1da",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_085",
        "fqmn": "App\\Jobs\\Setting\\DeleteEmailTemplate@handle",
        "canonical": "App\\Jobs\\Auth\\DeleteInvitation@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Auth\\DeleteInvitation@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_549d8c90",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_086",
        "fqmn": "App\\Jobs\\Auth\\DeleteUser@handle",
        "canonical": "App\\Jobs\\Auth\\DeleteRole@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Auth\\DeleteRole@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_de1e19be",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_086",
        "fqmn": "App\\Jobs\\Banking\\DeleteAccount@handle",
        "canonical": "App\\Jobs\\Auth\\DeleteRole@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Auth\\DeleteRole@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_77a63b43",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_086",
        "fqmn": "App\\Jobs\\Banking\\DeleteTransaction@handle",
        "canonical": "App\\Jobs\\Auth\\DeleteRole@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Auth\\DeleteRole@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_e7d31c68",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_086",
        "fqmn": "App\\Jobs\\Banking\\DeleteTransfer@handle",
        "canonical": "App\\Jobs\\Auth\\DeleteRole@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Auth\\DeleteRole@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_7cc8677b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_086",
        "fqmn": "App\\Jobs\\Common\\DeleteCompany@handle",
        "canonical": "App\\Jobs\\Auth\\DeleteRole@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Auth\\DeleteRole@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_7a53bcd3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_086",
        "fqmn": "App\\Jobs\\Common\\DeleteItem@handle",
        "canonical": "App\\Jobs\\Auth\\DeleteRole@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Auth\\DeleteRole@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_e27d5635",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_086",
        "fqmn": "App\\Jobs\\Document\\DeleteDocument@handle",
        "canonical": "App\\Jobs\\Auth\\DeleteRole@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Auth\\DeleteRole@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_faaed4a7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_086",
        "fqmn": "App\\Jobs\\Setting\\DeleteCategory@handle",
        "canonical": "App\\Jobs\\Auth\\DeleteRole@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Auth\\DeleteRole@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_44082912",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_086",
        "fqmn": "App\\Jobs\\Setting\\DeleteCurrency@handle",
        "canonical": "App\\Jobs\\Auth\\DeleteRole@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Auth\\DeleteRole@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_8fcccede",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_086",
        "fqmn": "App\\Jobs\\Setting\\DeleteTax@handle",
        "canonical": "App\\Jobs\\Auth\\DeleteRole@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Auth\\DeleteRole@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_ed121b17",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_087",
        "fqmn": "App\\Jobs\\Banking\\UpdateAccount@handle",
        "canonical": "App\\Jobs\\Banking\\CreateAccount@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Banking\\CreateAccount@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_24d600aa",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_088",
        "fqmn": "App\\Jobs\\Banking\\UpdateBankingDocumentTransaction@handle",
        "canonical": "App\\Jobs\\Banking\\CreateBankingDocumentTransaction@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Banking\\CreateBankingDocumentTransaction@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_259b8aae",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_089",
        "fqmn": "App\\Jobs\\Document\\CreateDocumentItemsAndTotals@fixedDiscountCalculate",
        "canonical": "App\\Jobs\\Banking\\CreateTransactionTaxes@getTaxesCalculated",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Banking\\CreateTransactionTaxes@getTaxesCalculated. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_547c53e6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_090",
        "fqmn": "App\\Jobs\\Setting\\DeleteCurrency@getRelationships",
        "canonical": "App\\Jobs\\Banking\\DeleteAccount@getRelationships",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Banking\\DeleteAccount@getRelationships. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d9d6ce20",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_090",
        "fqmn": "App\\Jobs\\Setting\\UpdateCurrency@getRelationships",
        "canonical": "App\\Jobs\\Banking\\DeleteAccount@getRelationships",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Banking\\DeleteAccount@getRelationships. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_fd22bdd7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_091",
        "fqmn": "App\\Jobs\\Document\\SendDocumentAsCustomMail@__construct",
        "canonical": "App\\Jobs\\Banking\\SendTransactionAsCustomMail@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Banking\\SendTransactionAsCustomMail@__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_78e2344b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_092",
        "fqmn": "App\\Jobs\\Document\\SendDocumentAsCustomMail@handle",
        "canonical": "App\\Jobs\\Banking\\SendTransactionAsCustomMail@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Banking\\SendTransactionAsCustomMail@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_73ad3960",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_093",
        "fqmn": "App\\Jobs\\Setting\\UpdateCategory@authorize",
        "canonical": "App\\Jobs\\Banking\\UpdateAccount@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Banking\\UpdateAccount@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_ccb88abb",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_093",
        "fqmn": "App\\Jobs\\Setting\\UpdateCurrency@authorize",
        "canonical": "App\\Jobs\\Banking\\UpdateAccount@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Banking\\UpdateAccount@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_268e8747",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_093",
        "fqmn": "App\\Jobs\\Setting\\UpdateTax@authorize",
        "canonical": "App\\Jobs\\Banking\\UpdateAccount@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Banking\\UpdateAccount@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_c58de55e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_094",
        "fqmn": "App\\Jobs\\Common\\DeleteContact@getRelationships",
        "canonical": "App\\Jobs\\Banking\\UpdateAccount@getRelationships",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Banking\\UpdateAccount@getRelationships. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_2ca4176d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_094",
        "fqmn": "App\\Jobs\\Common\\DeleteItem@getRelationships",
        "canonical": "App\\Jobs\\Banking\\UpdateAccount@getRelationships",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Banking\\UpdateAccount@getRelationships. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1b2ea8cc",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_094",
        "fqmn": "App\\Jobs\\Common\\UpdateContact@getRelationships",
        "canonical": "App\\Jobs\\Banking\\UpdateAccount@getRelationships",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Banking\\UpdateAccount@getRelationships. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_73952578",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_094",
        "fqmn": "App\\Jobs\\Setting\\DeleteTax@getRelationships",
        "canonical": "App\\Jobs\\Banking\\UpdateAccount@getRelationships",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Banking\\UpdateAccount@getRelationships. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_84e8bcfd",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_094",
        "fqmn": "App\\Jobs\\Setting\\UpdateCategory@getRelationships",
        "canonical": "App\\Jobs\\Banking\\UpdateAccount@getRelationships",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Banking\\UpdateAccount@getRelationships. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9ee9c062",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_094",
        "fqmn": "App\\Jobs\\Setting\\UpdateTax@getRelationships",
        "canonical": "App\\Jobs\\Banking\\UpdateAccount@getRelationships",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Banking\\UpdateAccount@getRelationships. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9876ac59",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_095",
        "fqmn": "App\\Jobs\\Common\\UpdateContact@createUser",
        "canonical": "App\\Jobs\\Common\\CreateContact@createUser",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Common\\CreateContact@createUser. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_411624c6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_096",
        "fqmn": "App\\Jobs\\Common\\CreateItemTaxes@handle",
        "canonical": "App\\Jobs\\Common\\CreateContactPersons@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Common\\CreateContactPersons@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_d8a5ceb2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_097",
        "fqmn": "App\\Jobs\\Common\\CreateMediableForExport@__construct",
        "canonical": "App\\Jobs\\Common\\CreateMediableForDownload@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Common\\CreateMediableForDownload@__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_65a9f1c9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_098",
        "fqmn": "App\\Jobs\\Common\\CreateMediableForExport@getRemoteQueuedMedia",
        "canonical": "App\\Jobs\\Common\\CreateMediableForDownload@getRemoteQueuedMedia",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Common\\CreateMediableForDownload@getRemoteQueuedMedia. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_51ed0946",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_099",
        "fqmn": "App\\Jobs\\Common\\CreateZipForDownload@getRemoteQueuedMedia",
        "canonical": "App\\Jobs\\Common\\CreateZipForDownload@getLocalQueuedMedia",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Common\\CreateZipForDownload@getLocalQueuedMedia. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_c86ec2b3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_100",
        "fqmn": "App\\Jobs\\Common\\DeleteReport@deletePin",
        "canonical": "App\\Jobs\\Common\\DeleteReport@deleteFavorite",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Common\\DeleteReport@deleteFavorite. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_29b57464",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_101",
        "fqmn": "App\\Jobs\\Document\\DuplicateDocument@__construct",
        "canonical": "App\\Jobs\\Document\\CancelDocument@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Document\\CancelDocument@__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_8dc7c4cb",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_101",
        "fqmn": "App\\Jobs\\Document\\RestoreDocument@__construct",
        "canonical": "App\\Jobs\\Document\\CancelDocument@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Document\\CancelDocument@__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_3cfad441",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_102",
        "fqmn": "App\\Jobs\\Document\\RestoreDocument@handle",
        "canonical": "App\\Jobs\\Document\\CancelDocument@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Document\\CancelDocument@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_f5813e0b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_103",
        "fqmn": "App\\Jobs\\Document\\CreateDocumentItemsAndTotals@__construct",
        "canonical": "App\\Jobs\\Document\\CreateDocumentItem@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Document\\CreateDocumentItem@__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_27cdd29b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_104",
        "fqmn": "App\\Jobs\\Install\\UnzipFile@__construct",
        "canonical": "App\\Jobs\\Install\\CopyFiles@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Install\\CopyFiles@__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_4452c29f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_105",
        "fqmn": "App\\Jobs\\Install\\DownloadModule@handle",
        "canonical": "App\\Jobs\\Install\\CopyFiles@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Install\\CopyFiles@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_854c317a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_105",
        "fqmn": "App\\Jobs\\Install\\EnableModule@handle",
        "canonical": "App\\Jobs\\Install\\CopyFiles@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Install\\CopyFiles@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_af5e4c9c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_105",
        "fqmn": "App\\Jobs\\Install\\InstallModule@handle",
        "canonical": "App\\Jobs\\Install\\CopyFiles@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Install\\CopyFiles@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_6f82988a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_106",
        "fqmn": "App\\Jobs\\Install\\EnableModule@__construct",
        "canonical": "App\\Jobs\\Install\\DisableModule@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Install\\DisableModule@__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_384b7ae2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_106",
        "fqmn": "App\\Jobs\\Install\\InstallModule@__construct",
        "canonical": "App\\Jobs\\Install\\DisableModule@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Install\\DisableModule@__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_3ec3049f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_106",
        "fqmn": "App\\Jobs\\Install\\UninstallModule@__construct",
        "canonical": "App\\Jobs\\Install\\DisableModule@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Install\\DisableModule@__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_967c9999",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_107",
        "fqmn": "App\\Jobs\\Install\\UninstallModule@handle",
        "canonical": "App\\Jobs\\Install\\DisableModule@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Install\\DisableModule@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_3d250bcb",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_108",
        "fqmn": "App\\Jobs\\Setting\\UpdateCurrency@handle",
        "canonical": "App\\Jobs\\Setting\\CreateCurrency@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Setting\\CreateCurrency@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_af27d047",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_109",
        "fqmn": "App\\Listeners\\Banking\\IncreaseNextTransactionNumber@handle",
        "canonical": "App\\Listeners\\Auth\\AddLandingPages@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Auth\\AddLandingPages@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_07f8aa79",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_109",
        "fqmn": "App\\Listeners\\Document\\IncreaseNextDocumentNumber@handle",
        "canonical": "App\\Listeners\\Auth\\AddLandingPages@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Auth\\AddLandingPages@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_7eba9c64",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_109",
        "fqmn": "App\\Listeners\\Document\\SendDocumentReminderNotification@handle",
        "canonical": "App\\Listeners\\Auth\\AddLandingPages@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Auth\\AddLandingPages@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_e4b76ffb",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_109",
        "fqmn": "App\\Listeners\\Menu\\ShowInAdmin@handle",
        "canonical": "App\\Listeners\\Auth\\AddLandingPages@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Auth\\AddLandingPages@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_dd83ac77",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_109",
        "fqmn": "App\\Listeners\\Menu\\ShowInNeww@handle",
        "canonical": "App\\Listeners\\Auth\\AddLandingPages@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Auth\\AddLandingPages@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_2b6603f4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_109",
        "fqmn": "App\\Listeners\\Menu\\ShowInPortal@handle",
        "canonical": "App\\Listeners\\Auth\\AddLandingPages@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Auth\\AddLandingPages@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_efeca539",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_109",
        "fqmn": "App\\Listeners\\Menu\\ShowInProfile@handle",
        "canonical": "App\\Listeners\\Auth\\AddLandingPages@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Auth\\AddLandingPages@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_cc591d81",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_109",
        "fqmn": "App\\Listeners\\Menu\\ShowInSettings@handle",
        "canonical": "App\\Listeners\\Auth\\AddLandingPages@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Auth\\AddLandingPages@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_849a7e5e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_109",
        "fqmn": "App\\Listeners\\Module\\FinishInstallation@handle",
        "canonical": "App\\Listeners\\Auth\\AddLandingPages@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Auth\\AddLandingPages@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_82c6d6c7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_109",
        "fqmn": "App\\Listeners\\Module\\FinishUninstallation@handle",
        "canonical": "App\\Listeners\\Auth\\AddLandingPages@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Auth\\AddLandingPages@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_d3401edc",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_109",
        "fqmn": "App\\Listeners\\Update\\SendNotificationOnFailure@handle",
        "canonical": "App\\Listeners\\Auth\\AddLandingPages@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Auth\\AddLandingPages@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_53fa6780",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_110",
        "fqmn": "App\\Listeners\\Document\\SendDocumentPaymentNotification@handle",
        "canonical": "App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@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_21fe6f8b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_110",
        "fqmn": "App\\Listeners\\Document\\SendDocumentViewNotification@handle",
        "canonical": "App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@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_6c8c303e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_110",
        "fqmn": "App\\Listeners\\Update\\V30\\Version300@handle",
        "canonical": "App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@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_3497260e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_110",
        "fqmn": "App\\Listeners\\Update\\V30\\Version3013@handle",
        "canonical": "App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@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_cbb736d8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_110",
        "fqmn": "App\\Listeners\\Update\\V30\\Version3015@handle",
        "canonical": "App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@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_57de77b3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_110",
        "fqmn": "App\\Listeners\\Update\\V30\\Version3016@handle",
        "canonical": "App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@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_e0206632",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_110",
        "fqmn": "App\\Listeners\\Update\\V30\\Version3017@handle",
        "canonical": "App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@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_e3a30245",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_110",
        "fqmn": "App\\Listeners\\Update\\V30\\Version303@handle",
        "canonical": "App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@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_82900d22",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_110",
        "fqmn": "App\\Listeners\\Update\\V30\\Version304@handle",
        "canonical": "App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@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_98c3be23",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_110",
        "fqmn": "App\\Listeners\\Update\\V30\\Version305@handle",
        "canonical": "App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@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_3d9e9fc9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_110",
        "fqmn": "App\\Listeners\\Update\\V30\\Version307@handle",
        "canonical": "App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@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_ce795ee7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_110",
        "fqmn": "App\\Listeners\\Update\\V30\\Version309@handle",
        "canonical": "App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@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_7d301e82",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_110",
        "fqmn": "App\\Listeners\\Update\\V31\\Version310@handle",
        "canonical": "App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@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_7f71320b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_110",
        "fqmn": "App\\Listeners\\Update\\V31\\Version3112@handle",
        "canonical": "App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@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_3286934c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_110",
        "fqmn": "App\\Listeners\\Update\\V31\\Version3115@handle",
        "canonical": "App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@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_97b3c5a8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_110",
        "fqmn": "App\\Listeners\\Update\\V31\\Version3119@handle",
        "canonical": "App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@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_54ed708e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_110",
        "fqmn": "App\\Listeners\\Update\\V31\\Version3122@handle",
        "canonical": "App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@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_b071f33f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_110",
        "fqmn": "App\\Listeners\\Update\\V31\\Version315@handle",
        "canonical": "App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@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_871b6a25",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_110",
        "fqmn": "App\\Listeners\\Update\\V31\\Version317@handle",
        "canonical": "App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@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_52889a8a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_110",
        "fqmn": "App\\Listeners\\Update\\V31\\Version318@handle",
        "canonical": "App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@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_7e5eb9a6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_111",
        "fqmn": "App\\Listeners\\Document\\SettingFieldUpdated@handle",
        "canonical": "App\\Listeners\\Document\\SettingFieldCreated@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Document\\SettingFieldCreated@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_26884b7f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_112",
        "fqmn": "App\\Listeners\\Email\\DisablePersonDueToInvalidEmail@disableUser",
        "canonical": "App\\Listeners\\Email\\DisablePersonDueToInvalidEmail@disableContact",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Email\\DisablePersonDueToInvalidEmail@disableContact. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_fb7719de",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_113",
        "fqmn": "App\\Listeners\\Email\\ReportTooManyEmailsSent@handle",
        "canonical": "App\\Listeners\\Email\\DisablePersonDueToInvalidEmail@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Email\\DisablePersonDueToInvalidEmail@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_572a5ed9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_114",
        "fqmn": "App\\Listeners\\Email\\SendInvalidEmailNotification@notifyAdminsAboutInvalidUserEmail",
        "canonical": "App\\Listeners\\Email\\SendInvalidEmailNotification@notifyAdminsAboutInvalidContactEmail",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Email\\SendInvalidEmailNotification@notifyAdminsAboutInvalidContactEmail. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_09686cac",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_115",
        "fqmn": "App\\Listeners\\Report\\AddBasis@handleFilterShowing",
        "canonical": "App\\Listeners\\Report\\AddAccounts@handleFilterShowing",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Report\\AddAccounts@handleFilterShowing. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_79e33925",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_115",
        "fqmn": "App\\Listeners\\Report\\AddContacts@handleFilterShowing",
        "canonical": "App\\Listeners\\Report\\AddAccounts@handleFilterShowing",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Report\\AddAccounts@handleFilterShowing. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_39df4da7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_115",
        "fqmn": "App\\Listeners\\Report\\AddCustomers@handleFilterShowing",
        "canonical": "App\\Listeners\\Report\\AddAccounts@handleFilterShowing",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Report\\AddAccounts@handleFilterShowing. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_726516c0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_115",
        "fqmn": "App\\Listeners\\Report\\AddDate@handleFilterShowing",
        "canonical": "App\\Listeners\\Report\\AddAccounts@handleFilterShowing",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Report\\AddAccounts@handleFilterShowing. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7dda08f7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_115",
        "fqmn": "App\\Listeners\\Report\\AddDiscount@handleFilterShowing",
        "canonical": "App\\Listeners\\Report\\AddAccounts@handleFilterShowing",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Report\\AddAccounts@handleFilterShowing. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_93e2c90a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_115",
        "fqmn": "App\\Listeners\\Report\\AddExpenseCategories@handleFilterShowing",
        "canonical": "App\\Listeners\\Report\\AddAccounts@handleFilterShowing",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Report\\AddAccounts@handleFilterShowing. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_00e21a2d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_115",
        "fqmn": "App\\Listeners\\Report\\AddGroup@handleFilterShowing",
        "canonical": "App\\Listeners\\Report\\AddAccounts@handleFilterShowing",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Report\\AddAccounts@handleFilterShowing. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_549f9847",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_115",
        "fqmn": "App\\Listeners\\Report\\AddIncomeCategories@handleFilterShowing",
        "canonical": "App\\Listeners\\Report\\AddAccounts@handleFilterShowing",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Report\\AddAccounts@handleFilterShowing. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_223726eb",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_115",
        "fqmn": "App\\Listeners\\Report\\AddIncomeExpenseCategories@handleFilterShowing",
        "canonical": "App\\Listeners\\Report\\AddAccounts@handleFilterShowing",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Report\\AddAccounts@handleFilterShowing. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a06f61e5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_115",
        "fqmn": "App\\Listeners\\Report\\AddPeriod@handleFilterShowing",
        "canonical": "App\\Listeners\\Report\\AddAccounts@handleFilterShowing",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Report\\AddAccounts@handleFilterShowing. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_64940cc9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_115",
        "fqmn": "App\\Listeners\\Report\\AddVendors@handleFilterShowing",
        "canonical": "App\\Listeners\\Report\\AddAccounts@handleFilterShowing",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Report\\AddAccounts@handleFilterShowing. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_584c4474",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_116",
        "fqmn": "App\\Listeners\\Report\\AddCustomers@handleGroupApplying",
        "canonical": "App\\Listeners\\Report\\AddAccounts@handleGroupApplying",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Report\\AddAccounts@handleGroupApplying. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_f387ed62",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_116",
        "fqmn": "App\\Listeners\\Report\\AddVendors@handleGroupApplying",
        "canonical": "App\\Listeners\\Report\\AddAccounts@handleGroupApplying",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Report\\AddAccounts@handleGroupApplying. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1f8b9434",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_117",
        "fqmn": "App\\Listeners\\Report\\AddContacts@handleGroupShowing",
        "canonical": "App\\Listeners\\Report\\AddAccounts@handleGroupShowing",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Report\\AddAccounts@handleGroupShowing. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d4fab242",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_117",
        "fqmn": "App\\Listeners\\Report\\AddCustomers@handleGroupShowing",
        "canonical": "App\\Listeners\\Report\\AddAccounts@handleGroupShowing",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Report\\AddAccounts@handleGroupShowing. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7b134189",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_117",
        "fqmn": "App\\Listeners\\Report\\AddExpenseCategories@handleGroupShowing",
        "canonical": "App\\Listeners\\Report\\AddAccounts@handleGroupShowing",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Report\\AddAccounts@handleGroupShowing. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_2b49ed3a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_117",
        "fqmn": "App\\Listeners\\Report\\AddIncomeCategories@handleGroupShowing",
        "canonical": "App\\Listeners\\Report\\AddAccounts@handleGroupShowing",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Report\\AddAccounts@handleGroupShowing. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_b7d52e62",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_117",
        "fqmn": "App\\Listeners\\Report\\AddIncomeExpenseCategories@handleGroupShowing",
        "canonical": "App\\Listeners\\Report\\AddAccounts@handleGroupShowing",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Report\\AddAccounts@handleGroupShowing. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0224162d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_118",
        "fqmn": "App\\Listeners\\Report\\AddContacts@handleRowsShowing",
        "canonical": "App\\Listeners\\Report\\AddAccounts@handleRowsShowing",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Report\\AddAccounts@handleRowsShowing. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_353ae165",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_118",
        "fqmn": "App\\Listeners\\Report\\AddCustomers@handleRowsShowing",
        "canonical": "App\\Listeners\\Report\\AddAccounts@handleRowsShowing",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Report\\AddAccounts@handleRowsShowing. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_4128d8f0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_118",
        "fqmn": "App\\Listeners\\Report\\AddExpenseCategories@handleRowsShowing",
        "canonical": "App\\Listeners\\Report\\AddAccounts@handleRowsShowing",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Report\\AddAccounts@handleRowsShowing. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e510e643",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_118",
        "fqmn": "App\\Listeners\\Report\\AddIncomeCategories@handleRowsShowing",
        "canonical": "App\\Listeners\\Report\\AddAccounts@handleRowsShowing",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Report\\AddAccounts@handleRowsShowing. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_25b79d55",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_118",
        "fqmn": "App\\Listeners\\Report\\AddRowsToTax@handleRowsShowing",
        "canonical": "App\\Listeners\\Report\\AddAccounts@handleRowsShowing",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Report\\AddAccounts@handleRowsShowing. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_15fad7da",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_119",
        "fqmn": "App\\Listeners\\Report\\AddVendors@handleFilterApplying",
        "canonical": "App\\Listeners\\Report\\AddCustomers@handleFilterApplying",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Report\\AddCustomers@handleFilterApplying. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_3ae00a28",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_120",
        "fqmn": "App\\Listeners\\Report\\AddDiscount@handleFilterApplying",
        "canonical": "App\\Listeners\\Report\\AddDate@handleFilterApplying",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Report\\AddDate@handleFilterApplying. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_2d95c00b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_121",
        "fqmn": "App\\Listeners\\Update\\V30\\Version300@updateRecurables",
        "canonical": "App\\Listeners\\Update\\V30\\Version300@updateDatabase",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Update\\V30\\Version300@updateDatabase. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_eaf95a70",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_122",
        "fqmn": "App\\Listeners\\Update\\V30\\Version3016@updateDatabase",
        "canonical": "App\\Listeners\\Update\\V30\\Version3015@updateDatabase",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Update\\V30\\Version3015@updateDatabase. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_2c9bd849",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_122",
        "fqmn": "App\\Listeners\\Update\\V30\\Version3017@updateDatabase",
        "canonical": "App\\Listeners\\Update\\V30\\Version3015@updateDatabase",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Update\\V30\\Version3015@updateDatabase. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0a847786",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_122",
        "fqmn": "App\\Listeners\\Update\\V30\\Version305@updateDatabase",
        "canonical": "App\\Listeners\\Update\\V30\\Version3015@updateDatabase",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Update\\V30\\Version3015@updateDatabase. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_10647e84",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_122",
        "fqmn": "App\\Listeners\\Update\\V30\\Version307@updateDatabase",
        "canonical": "App\\Listeners\\Update\\V30\\Version3015@updateDatabase",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Update\\V30\\Version3015@updateDatabase. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_cef16309",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_122",
        "fqmn": "App\\Listeners\\Update\\V30\\Version309@updatePermissions",
        "canonical": "App\\Listeners\\Update\\V30\\Version3015@updateDatabase",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Update\\V30\\Version3015@updateDatabase. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_6c47428f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_122",
        "fqmn": "App\\Listeners\\Update\\V31\\Version310@updateDatabase",
        "canonical": "App\\Listeners\\Update\\V30\\Version3015@updateDatabase",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Update\\V30\\Version3015@updateDatabase. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_f5ab4b00",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_122",
        "fqmn": "App\\Listeners\\Update\\V31\\Version3112@updateDatabase",
        "canonical": "App\\Listeners\\Update\\V30\\Version3015@updateDatabase",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Update\\V30\\Version3015@updateDatabase. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e8ebbf0f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_122",
        "fqmn": "App\\Listeners\\Update\\V31\\Version3115@updateDatabase",
        "canonical": "App\\Listeners\\Update\\V30\\Version3015@updateDatabase",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Update\\V30\\Version3015@updateDatabase. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_12b5f06d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_122",
        "fqmn": "App\\Listeners\\Update\\V31\\Version3122@updateDatabase",
        "canonical": "App\\Listeners\\Update\\V30\\Version3015@updateDatabase",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Update\\V30\\Version3015@updateDatabase. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e3560c43",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_122",
        "fqmn": "App\\Listeners\\Update\\V31\\Version315@clearCache",
        "canonical": "App\\Listeners\\Update\\V30\\Version3015@updateDatabase",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Update\\V30\\Version3015@updateDatabase. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_63c862b1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_122",
        "fqmn": "App\\Listeners\\Update\\V31\\Version317@clearCache",
        "canonical": "App\\Listeners\\Update\\V30\\Version3015@updateDatabase",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Update\\V30\\Version3015@updateDatabase. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1009309e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_122",
        "fqmn": "App\\Listeners\\Update\\V31\\Version318@clearCache",
        "canonical": "App\\Listeners\\Update\\V30\\Version3015@updateDatabase",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Update\\V30\\Version3015@updateDatabase. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ae3782c4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_123",
        "fqmn": "App\\Listeners\\Update\\V30\\Version304@updateEmailTemplates",
        "canonical": "App\\Listeners\\Update\\V30\\Version303@updateWidgets",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Update\\V30\\Version303@updateWidgets. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_53b80432",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_124",
        "fqmn": "App\\Listeners\\Update\\V31\\Version318@deleteOldFiles",
        "canonical": "App\\Listeners\\Update\\V31\\Version317@deleteOldFiles",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Listeners\\Update\\V31\\Version317@deleteOldFiles. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_5a8f3206",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_125",
        "fqmn": "App\\Utilities\\Widgets@canShow",
        "canonical": "App\\Utilities\\Reports@cannotShow",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Utilities\\Reports@cannotShow. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_43fe7e26",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_126",
        "fqmn": "Akaunting\\Module\\Commands\\EnableCommand@handle",
        "canonical": "Akaunting\\Module\\Commands\\DisableCommand@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Akaunting\\Module\\Commands\\DisableCommand@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_23f89032",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "Auth\\Login@destroy",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_e30ab050",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "Banking\\Accounts@currency",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_46ac9fb3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "Common\\Companies@autocomplete",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_01a2af7c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "Common\\Ping@pong",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_f881cda0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "Common\\Uploads@get",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_15433151",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "Common\\Uploads@inline",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_4714b085",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "Install\\Database@create",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_84194316",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "Install\\Database@store",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_7e950104",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "Install\\Language@create",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_a79af3ef",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "Install\\Language@getLanguages",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_d1fdffe1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "Install\\Language@store",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_4951825b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "Install\\Requirements@show",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_4951825b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "Install\\Requirements@show",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_905a71cd",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "Install\\Settings@create",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_6bc5289e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "Install\\Settings@store",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_9bb14bd4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "Install\\Updates@index",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_599b030f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "Portal\\Invoices@confirm",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_4baf9f52",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "Portal\\Invoices@finish",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_70232531",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "Portal\\Invoices@payment",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_34c7a7c0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "Portal\\Invoices@pdfInvoice",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_4d08c417",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "Portal\\Invoices@preview",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_25deaf9b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "Portal\\Invoices@printInvoice",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_25deaf9b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "Portal\\Invoices@printInvoice",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_a80bddd5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "Portal\\Invoices@signed",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_fadc5224",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "Portal\\Payments@pdfPayment",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_8d6375eb",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "Portal\\Payments@printPayment",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_9fb24fc0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "Portal\\Payments@signed",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_083b35fb",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "Purchases\\Bills@markReceived",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_f8f878a3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "route::routes/admin.php::delete::/accounts/{id}::closure::destroy",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_f4c696ad",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "route::routes/admin.php::delete::/api-key/{id}::closure::destroy",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_228263e2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "route::routes/admin.php::get::/accounts::closure::index",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_473785bb",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "route::routes/admin.php::get::/accounts/{id}::closure::show",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_2b4f5733",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "route::routes/admin.php::get::/accounts/{id}/edit::closure::edit",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_c9ec9817",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "route::routes/admin.php::get::/accounts/create::closure::create",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_8fbad01a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "route::routes/admin.php::get::/api-key::closure::index",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_216f20a3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "route::routes/admin.php::get::/api-key/{id}::closure::show",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_5786265b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "route::routes/admin.php::get::/api-key/{id}/edit::closure::edit",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_a9d1216f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "route::routes/admin.php::get::/api-key/create::closure::create",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_3953511d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "route::routes/admin.php::post::/accounts::closure::store",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_31084d29",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "route::routes/admin.php::post::/api-key::closure::store",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_8136b54c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "route::routes/admin.php::put::/accounts/{id}::closure::update",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_b15ce8ca",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "route::routes/admin.php::put::/api-key/{id}::closure::update",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_e7e2b8ce",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "Sales\\Invoices@markSent",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_64cd9bb9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "Settings\\Categories@enable",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_4ab32315",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "Settings\\Modules@edit",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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_b037d349",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "Wizard\\Companies@edit",
        "canonical": "Auth\\Login@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates Auth\\Login@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
      }
    ],
    "coverage_gaps": [
      {
        "candidate_id": "g_method::app/Abst",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Abstracts/Http/ApiController.php::App\\Abstracts\\Http\\ApiController::accepted",
        "fqmn": "App\\Abstracts\\Http\\ApiController@accepted",
        "expected_test_path": "tests/Feature/ApiControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Abstracts\\Http\\ApiController;\n\nclass ApiControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Abstracts\\Http\\ApiController@accepted\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_accepted_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Abstracts\\Http\\ApiController@accepted is PROOF_READY but no test file at tests/Feature/ApiControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Abst",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Abstracts/Http/ApiController.php::App\\Abstracts\\Http\\ApiController::created",
        "fqmn": "App\\Abstracts\\Http\\ApiController@created",
        "expected_test_path": "tests/Feature/ApiControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Abstracts\\Http\\ApiController;\n\nclass ApiControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Abstracts\\Http\\ApiController@created\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_created_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Abstracts\\Http\\ApiController@created is PROOF_READY but no test file at tests/Feature/ApiControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Abst",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Abstracts/Http/ApiController.php::App\\Abstracts\\Http\\ApiController::noContent",
        "fqmn": "App\\Abstracts\\Http\\ApiController@noContent",
        "expected_test_path": "tests/Feature/ApiControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Abstracts\\Http\\ApiController;\n\nclass ApiControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Abstracts\\Http\\ApiController@noContent\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_nocontent_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Abstracts\\Http\\ApiController@noContent is PROOF_READY but no test file at tests/Feature/ApiControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Abst",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Abstracts/Http/Controller.php::App\\Abstracts\\Http\\Controller::exportExcel",
        "fqmn": "App\\Abstracts\\Http\\Controller@exportExcel",
        "expected_test_path": "tests/Feature/ControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Abstracts\\Http\\Controller;\n\nclass ControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Abstracts\\Http\\Controller@exportExcel\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_exportexcel_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Abstracts\\Http\\Controller@exportExcel is PROOF_READY but no test file at tests/Feature/ControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Abst",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Abstracts/Http/Controller.php::App\\Abstracts\\Http\\Controller::importExcel",
        "fqmn": "App\\Abstracts\\Http\\Controller@importExcel",
        "expected_test_path": "tests/Feature/ControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Abstracts\\Http\\Controller;\n\nclass ControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Abstracts\\Http\\Controller@importExcel\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_importexcel_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Abstracts\\Http\\Controller@importExcel is PROOF_READY but no test file at tests/Feature/ControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Abst",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Abstracts/Http/Controller.php::App\\Abstracts\\Http\\Controller::paginate",
        "fqmn": "App\\Abstracts\\Http\\Controller@paginate",
        "expected_test_path": "tests/Feature/ControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Abstracts\\Http\\Controller;\n\nclass ControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Abstracts\\Http\\Controller@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\\Abstracts\\Http\\Controller@paginate is PROOF_READY but no test file at tests/Feature/ControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Abst",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Abstracts/Http/Controller.php::App\\Abstracts\\Http\\Controller::response",
        "fqmn": "App\\Abstracts\\Http\\Controller@response",
        "expected_test_path": "tests/Feature/ControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Abstracts\\Http\\Controller;\n\nclass ControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Abstracts\\Http\\Controller@response\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_response_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Abstracts\\Http\\Controller@response is PROOF_READY but no test file at tests/Feature/ControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Abst",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Abstracts/Http/Controller.php::App\\Abstracts\\Http\\Controller::setActiveTabForCategories",
        "fqmn": "App\\Abstracts\\Http\\Controller@setActiveTabForCategories",
        "expected_test_path": "tests/Feature/ControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Abstracts\\Http\\Controller;\n\nclass ControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Abstracts\\Http\\Controller@setActiveTabForCategories\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_setactivetabforcategories_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Abstracts\\Http\\Controller@setActiveTabForCategories is PROOF_READY but no test file at tests/Feature/ControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Abst",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Abstracts/Http/Controller.php::App\\Abstracts\\Http\\Controller::setActiveTabForDocuments",
        "fqmn": "App\\Abstracts\\Http\\Controller@setActiveTabForDocuments",
        "expected_test_path": "tests/Feature/ControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Abstracts\\Http\\Controller;\n\nclass ControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Abstracts\\Http\\Controller@setActiveTabForDocuments\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_setactivetabfordocuments_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Abstracts\\Http\\Controller@setActiveTabForDocuments is PROOF_READY but no test file at tests/Feature/ControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Abst",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Abstracts/Http/Controller.php::App\\Abstracts\\Http\\Controller::setActiveTabForTransactions",
        "fqmn": "App\\Abstracts\\Http\\Controller@setActiveTabForTransactions",
        "expected_test_path": "tests/Feature/ControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Abstracts\\Http\\Controller;\n\nclass ControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Abstracts\\Http\\Controller@setActiveTabForTransactions\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_setactivetabfortransactions_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Abstracts\\Http\\Controller@setActiveTabForTransactions is PROOF_READY but no test file at tests/Feature/ControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Abst",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::__construct",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@__construct",
        "expected_test_path": "tests/Feature/PaymentControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Abstracts\\Http\\PaymentController;\n\nclass PaymentControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Abstracts\\Http\\PaymentController@__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\\Abstracts\\Http\\PaymentController@__construct is PROOF_READY but no test file at tests/Feature/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/Abst",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::cancel",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@cancel",
        "expected_test_path": "tests/Feature/PaymentControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Abstracts\\Http\\PaymentController;\n\nclass PaymentControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Abstracts\\Http\\PaymentController@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\\Abstracts\\Http\\PaymentController@cancel is PROOF_READY but no test file at tests/Feature/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/Abst",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::finish",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@finish",
        "expected_test_path": "tests/Feature/PaymentControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Abstracts\\Http\\PaymentController;\n\nclass PaymentControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Abstracts\\Http\\PaymentController@finish\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_finish_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Abstracts\\Http\\PaymentController@finish is PROOF_READY but no test file at tests/Feature/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/Abst",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::getCancelUrl",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@getCancelUrl",
        "expected_test_path": "tests/Feature/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\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Abstracts\\Http\\PaymentController;\n\nclass PaymentControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Abstracts\\Http\\PaymentController@getCancelUrl\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getcancelurl_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Abstracts\\Http\\PaymentController@getCancelUrl is PROOF_READY but no test file at tests/Feature/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/Abst",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::getConfirmUrl",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@getConfirmUrl",
        "expected_test_path": "tests/Feature/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\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Abstracts\\Http\\PaymentController;\n\nclass PaymentControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Abstracts\\Http\\PaymentController@getConfirmUrl\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getconfirmurl_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Abstracts\\Http\\PaymentController@getConfirmUrl is PROOF_READY but no test file at tests/Feature/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/Abst",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::getFinishUrl",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@getFinishUrl",
        "expected_test_path": "tests/Feature/PaymentControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Abstracts\\Http\\PaymentController;\n\nclass PaymentControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Abstracts\\Http\\PaymentController@getFinishUrl\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getfinishurl_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Abstracts\\Http\\PaymentController@getFinishUrl is PROOF_READY but no test file at tests/Feature/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/Abst",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::getInvoiceUrl",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@getInvoiceUrl",
        "expected_test_path": "tests/Feature/PaymentControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Abstracts\\Http\\PaymentController;\n\nclass PaymentControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Abstracts\\Http\\PaymentController@getInvoiceUrl\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getinvoiceurl_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Abstracts\\Http\\PaymentController@getInvoiceUrl is PROOF_READY but no test file at tests/Feature/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/Abst",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::getLogger",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@getLogger",
        "expected_test_path": "tests/Feature/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\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Abstracts\\Http\\PaymentController;\n\nclass PaymentControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Abstracts\\Http\\PaymentController@getLogger\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getlogger_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Abstracts\\Http\\PaymentController@getLogger is PROOF_READY but no test file at tests/Feature/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/Abst",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::getModuleUrl",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@getModuleUrl",
        "expected_test_path": "tests/Feature/PaymentControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Abstracts\\Http\\PaymentController;\n\nclass PaymentControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Abstracts\\Http\\PaymentController@getModuleUrl\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getmoduleurl_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Abstracts\\Http\\PaymentController@getModuleUrl is PROOF_READY but no test file at tests/Feature/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/Abst",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::getNotifyUrl",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@getNotifyUrl",
        "expected_test_path": "tests/Feature/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\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Abstracts\\Http\\PaymentController;\n\nclass PaymentControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Abstracts\\Http\\PaymentController@getNotifyUrl\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getnotifyurl_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Abstracts\\Http\\PaymentController@getNotifyUrl is PROOF_READY but no test file at tests/Feature/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/Abst",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::getReference",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@getReference",
        "expected_test_path": "tests/Feature/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\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Abstracts\\Http\\PaymentController;\n\nclass PaymentControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Abstracts\\Http\\PaymentController@getReference\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getreference_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Abstracts\\Http\\PaymentController@getReference is PROOF_READY but no test file at tests/Feature/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/Abst",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::getReturnUrl",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@getReturnUrl",
        "expected_test_path": "tests/Feature/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\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Abstracts\\Http\\PaymentController;\n\nclass PaymentControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Abstracts\\Http\\PaymentController@getReturnUrl\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getreturnurl_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Abstracts\\Http\\PaymentController@getReturnUrl is PROOF_READY but no test file at tests/Feature/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/Abst",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::show",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@show",
        "expected_test_path": "tests/Feature/PaymentControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Abstracts\\Http\\PaymentController;\n\nclass PaymentControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Abstracts\\Http\\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\\Abstracts\\Http\\PaymentController@show is PROOF_READY but no test file at tests/Feature/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/Abst",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Abstracts/Http/PaymentController.php::App\\Abstracts\\Http\\PaymentController::signed",
        "fqmn": "App\\Abstracts\\Http\\PaymentController@signed",
        "expected_test_path": "tests/Feature/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\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Abstracts\\Http\\PaymentController;\n\nclass PaymentControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Abstracts\\Http\\PaymentController@signed\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_signed_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Abstracts\\Http\\PaymentController@signed is PROOF_READY but no test file at tests/Feature/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/Abst",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Abstracts/Http/SettingController.php::App\\Abstracts\\Http\\SettingController::update",
        "fqmn": "App\\Abstracts\\Http\\SettingController@update",
        "expected_test_path": "tests/Feature/SettingControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write",
          "assert_event_dispatched"
        ],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Abstracts\\Http\\SettingController;\n\nclass SettingControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Abstracts\\Http\\SettingController@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->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Abstracts\\Http\\SettingController@update is PROOF_READY but no test file at tests/Feature/SettingControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Abst",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Abstracts/Job.php::App\\Abstracts\\Job::bootCreate",
        "fqmn": "App\\Abstracts\\Job@bootCreate",
        "expected_test_path": "tests/Unit/JobTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Abstracts\\Job;\n\nclass JobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Abstracts\\Job@bootCreate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_bootcreate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Abstracts\\Job@bootCreate is PROOF_READY but no test file at tests/Unit/JobTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Abst",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Abstracts/Job.php::App\\Abstracts\\Job::bootDelete",
        "fqmn": "App\\Abstracts\\Job@bootDelete",
        "expected_test_path": "tests/Unit/JobTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Abstracts\\Job;\n\nclass JobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Abstracts\\Job@bootDelete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_bootdelete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Abstracts\\Job@bootDelete is PROOF_READY but no test file at tests/Unit/JobTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Abst",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Abstracts/Job.php::App\\Abstracts\\Job::bootUpdate",
        "fqmn": "App\\Abstracts\\Job@bootUpdate",
        "expected_test_path": "tests/Unit/JobTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Abstracts\\Job;\n\nclass JobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Abstracts\\Job@bootUpdate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_bootupdate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Abstracts\\Job@bootUpdate is PROOF_READY but no test file at tests/Unit/JobTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Abst",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Abstracts/Job.php::App\\Abstracts\\Job::getRequestInstance",
        "fqmn": "App\\Abstracts\\Job@getRequestInstance",
        "expected_test_path": "tests/Unit/JobTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Abstracts\\Job;\n\nclass JobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Abstracts\\Job@getRequestInstance\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getrequestinstance_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Abstracts\\Job@getRequestInstance is PROOF_READY but no test file at tests/Unit/JobTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Abst",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Abstracts/Job.php::App\\Abstracts\\Job::setOwner",
        "fqmn": "App\\Abstracts\\Job@setOwner",
        "expected_test_path": "tests/Unit/JobTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Abstracts\\Job;\n\nclass JobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Abstracts\\Job@setOwner\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_setowner_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Abstracts\\Job@setOwner is PROOF_READY but no test file at tests/Unit/JobTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Abst",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Abstracts/Job.php::App\\Abstracts\\Job::setSource",
        "fqmn": "App\\Abstracts\\Job@setSource",
        "expected_test_path": "tests/Unit/JobTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Abstracts\\Job;\n\nclass JobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Abstracts\\Job@setSource\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_setsource_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Abstracts\\Job@setSource is PROOF_READY but no test file at tests/Unit/JobTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Abst",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Abstracts/Listeners/Update.php::App\\Abstracts\\Listeners\\Update::check",
        "fqmn": "App\\Abstracts\\Listeners\\Update@check",
        "expected_test_path": "tests/Feature/UpdateTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Abstracts\\Listeners\\Update;\n\nclass UpdateTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Abstracts\\Listeners\\Update@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\\Abstracts\\Listeners\\Update@check is PROOF_READY but no test file at tests/Feature/UpdateTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Abst",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Abstracts/Listeners/Update.php::App\\Abstracts\\Listeners\\Update::skipThisUpdate",
        "fqmn": "App\\Abstracts\\Listeners\\Update@skipThisUpdate",
        "expected_test_path": "tests/Feature/UpdateTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Abstracts\\Listeners\\Update;\n\nclass UpdateTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Abstracts\\Listeners\\Update@skipThisUpdate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_skipthisupdate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Abstracts\\Listeners\\Update@skipThisUpdate is PROOF_READY but no test file at tests/Feature/UpdateTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Clas",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Classifiers/Job.php::App\\Classifiers\\Job::countsTowardsApplicationCode",
        "fqmn": "App\\Classifiers\\Job@countsTowardsApplicationCode",
        "expected_test_path": "tests/Unit/JobTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Classifiers\\Job;\n\nclass JobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Classifiers\\Job@countsTowardsApplicationCode\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_countstowardsapplicationcode_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Classifiers\\Job@countsTowardsApplicationCode is PROOF_READY but no test file at tests/Unit/JobTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Clas",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Classifiers/Job.php::App\\Classifiers\\Job::countsTowardsTests",
        "fqmn": "App\\Classifiers\\Job@countsTowardsTests",
        "expected_test_path": "tests/Unit/JobTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Classifiers\\Job;\n\nclass JobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Classifiers\\Job@countsTowardsTests\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_countstowardstests_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Classifiers\\Job@countsTowardsTests is PROOF_READY but no test file at tests/Unit/JobTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Clas",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Classifiers/Job.php::App\\Classifiers\\Job::name",
        "fqmn": "App\\Classifiers\\Job@name",
        "expected_test_path": "tests/Unit/JobTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Classifiers\\Job;\n\nclass JobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Classifiers\\Job@name\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_name_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Classifiers\\Job@name is PROOF_READY but no test file at tests/Unit/JobTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Clas",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Classifiers/Job.php::App\\Classifiers\\Job::satisfies",
        "fqmn": "App\\Classifiers\\Job@satisfies",
        "expected_test_path": "tests/Unit/JobTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Classifiers\\Job;\n\nclass JobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Classifiers\\Job@satisfies\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_satisfies_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Classifiers\\Job@satisfies is PROOF_READY but no test file at tests/Unit/JobTest.php is in the MANUAL allowlist. 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/DownloadModule.php::App\\Console\\Commands\\DownloadModule::copyFiles",
        "fqmn": "App\\Console\\Commands\\DownloadModule@copyFiles",
        "expected_test_path": "tests/Unit/DownloadModuleTest.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\\DownloadModule;\n\nclass DownloadModuleTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\DownloadModule@copyFiles\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_copyfiles_behaves_correctly(): void\n    {\n\n        // 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\\DownloadModule@copyFiles is PROOF_READY but no test file at tests/Unit/DownloadModuleTest.php is in the MANUAL allowlist. 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/DownloadModule.php::App\\Console\\Commands\\DownloadModule::download",
        "fqmn": "App\\Console\\Commands\\DownloadModule@download",
        "expected_test_path": "tests/Unit/DownloadModuleTest.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\\DownloadModule;\n\nclass DownloadModuleTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\DownloadModule@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        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\DownloadModule@download is PROOF_READY but no test file at tests/Unit/DownloadModuleTest.php is in the MANUAL allowlist. 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/DownloadModule.php::App\\Console\\Commands\\DownloadModule::handle",
        "fqmn": "App\\Console\\Commands\\DownloadModule@handle",
        "expected_test_path": "tests/Unit/DownloadModuleTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\DownloadModule;\n\nclass DownloadModuleTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\DownloadModule@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\DownloadModule@handle is PROOF_READY but no test file at tests/Unit/DownloadModuleTest.php is in the MANUAL allowlist. 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/DownloadModule.php::App\\Console\\Commands\\DownloadModule::unzip",
        "fqmn": "App\\Console\\Commands\\DownloadModule@unzip",
        "expected_test_path": "tests/Unit/DownloadModuleTest.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\\DownloadModule;\n\nclass DownloadModuleTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\DownloadModule@unzip\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_unzip_behaves_correctly(): void\n    {\n\n        // 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\\DownloadModule@unzip is PROOF_READY but no test file at tests/Unit/DownloadModuleTest.php is in the MANUAL allowlist. 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/FinishUpdate.php::App\\Console\\Commands\\FinishUpdate::handle",
        "fqmn": "App\\Console\\Commands\\FinishUpdate@handle",
        "expected_test_path": "tests/Unit/FinishUpdateTest.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\\Console\\Commands\\FinishUpdate;\n\nclass FinishUpdateTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\FinishUpdate@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\FinishUpdate@handle is PROOF_READY but no test file at tests/Unit/FinishUpdateTest.php is in the MANUAL allowlist. 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/Install.php::App\\Console\\Commands\\Install::handle",
        "fqmn": "App\\Console\\Commands\\Install@handle",
        "expected_test_path": "tests/Unit/InstallTest.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\\Install;\n\nclass InstallTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\Install@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Install@handle is PROOF_READY but no test file at tests/Unit/InstallTest.php is in the MANUAL allowlist. 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/RecurringCheck.php::App\\Console\\Commands\\RecurringCheck::getRealType",
        "fqmn": "App\\Console\\Commands\\RecurringCheck@getRealType",
        "expected_test_path": "tests/Unit/RecurringCheckTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\RecurringCheck;\n\nclass RecurringCheckTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\RecurringCheck@getRealType\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getrealtype_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\RecurringCheck@getRealType is PROOF_READY but no test file at tests/Unit/RecurringCheckTest.php is in the MANUAL allowlist. 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/UninstallModule.php::App\\Console\\Commands\\UninstallModule::handle",
        "fqmn": "App\\Console\\Commands\\UninstallModule@handle",
        "expected_test_path": "tests/Unit/UninstallModuleTest.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\\UninstallModule;\n\nclass UninstallModuleTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\UninstallModule@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\UninstallModule@handle is PROOF_READY but no test file at tests/Unit/UninstallModuleTest.php is in the MANUAL allowlist. 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/Update.php::App\\Console\\Commands\\Update::copyFiles",
        "fqmn": "App\\Console\\Commands\\Update@copyFiles",
        "expected_test_path": "tests/Unit/UpdateTest.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\\Update;\n\nclass UpdateTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\Update@copyFiles\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_copyfiles_behaves_correctly(): void\n    {\n\n        // 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\\Update@copyFiles is PROOF_READY but no test file at tests/Unit/UpdateTest.php is in the MANUAL allowlist. 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/Update.php::App\\Console\\Commands\\Update::download",
        "fqmn": "App\\Console\\Commands\\Update@download",
        "expected_test_path": "tests/Unit/UpdateTest.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\\Update;\n\nclass UpdateTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\Update@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        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\Update@download is PROOF_READY but no test file at tests/Unit/UpdateTest.php is in the MANUAL allowlist. 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/Update.php::App\\Console\\Commands\\Update::finish",
        "fqmn": "App\\Console\\Commands\\Update@finish",
        "expected_test_path": "tests/Unit/UpdateTest.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\\Update;\n\nclass UpdateTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\Update@finish\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_finish_behaves_correctly(): void\n    {\n\n        // 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\\Update@finish is PROOF_READY but no test file at tests/Unit/UpdateTest.php is in the MANUAL allowlist. 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/Update.php::App\\Console\\Commands\\Update::getNewVersion",
        "fqmn": "App\\Console\\Commands\\Update@getNewVersion",
        "expected_test_path": "tests/Unit/UpdateTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Update;\n\nclass UpdateTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\Update@getNewVersion\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getnewversion_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Update@getNewVersion is PROOF_READY but no test file at tests/Unit/UpdateTest.php is in the MANUAL allowlist. 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/Update.php::App\\Console\\Commands\\Update::getOldVersion",
        "fqmn": "App\\Console\\Commands\\Update@getOldVersion",
        "expected_test_path": "tests/Unit/UpdateTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Update;\n\nclass UpdateTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\Update@getOldVersion\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getoldversion_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Update@getOldVersion is PROOF_READY but no test file at tests/Unit/UpdateTest.php is in the MANUAL allowlist. 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/Update.php::App\\Console\\Commands\\Update::handle",
        "fqmn": "App\\Console\\Commands\\Update@handle",
        "expected_test_path": "tests/Unit/UpdateTest.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\\Update;\n\nclass UpdateTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\Update@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Update@handle is PROOF_READY but no test file at tests/Unit/UpdateTest.php is in the MANUAL allowlist. 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/Update.php::App\\Console\\Commands\\Update::unzip",
        "fqmn": "App\\Console\\Commands\\Update@unzip",
        "expected_test_path": "tests/Unit/UpdateTest.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\\Update;\n\nclass UpdateTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\Update@unzip\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_unzip_behaves_correctly(): void\n    {\n\n        // 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\\Update@unzip is PROOF_READY but no test file at tests/Unit/UpdateTest.php is in the MANUAL allowlist. 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/UpdateAll.php::App\\Console\\Commands\\UpdateAll::handle",
        "fqmn": "App\\Console\\Commands\\UpdateAll@handle",
        "expected_test_path": "tests/Unit/UpdateAllTest.php",
        "intent": null,
        "intent_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\\UpdateAll;\n\nclass UpdateAllTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\UpdateAll@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\UpdateAll@handle is PROOF_READY but no test file at tests/Unit/UpdateAllTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Exce",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Exceptions/Http/Resource.php::App\\Exceptions\\Http\\Resource::getErrors",
        "fqmn": "App\\Exceptions\\Http\\Resource@getErrors",
        "expected_test_path": "tests/Feature/ResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Exceptions\\Http\\Resource;\n\nclass ResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Exceptions\\Http\\Resource@getErrors\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_geterrors_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Exceptions\\Http\\Resource@getErrors is PROOF_READY but no test file at tests/Feature/ResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Exce",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Exceptions/Http/Resource.php::App\\Exceptions\\Http\\Resource::hasErrors",
        "fqmn": "App\\Exceptions\\Http\\Resource@hasErrors",
        "expected_test_path": "tests/Feature/ResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Exceptions\\Http\\Resource;\n\nclass ResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Exceptions\\Http\\Resource@hasErrors\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_haserrors_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Exceptions\\Http\\Resource@hasErrors is PROOF_READY but no test file at tests/Feature/ResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Auth/Users.php::App\\Http\\Controllers\\Api\\Auth\\Users::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Auth\\Users@destroy",
        "expected_test_path": "tests/Feature/UsersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Auth\\Users;\n\nclass UsersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Auth\\Users@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Auth\\Users@destroy is PROOF_READY but no test file at tests/Feature/UsersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Auth/Users.php::App\\Http\\Controllers\\Api\\Auth\\Users::disable",
        "fqmn": "App\\Http\\Controllers\\Api\\Auth\\Users@disable",
        "expected_test_path": "tests/Feature/UsersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Auth\\Users;\n\nclass UsersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Auth\\Users@disable\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_disable_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Auth\\Users@disable is PROOF_READY but no test file at tests/Feature/UsersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Auth/Users.php::App\\Http\\Controllers\\Api\\Auth\\Users::enable",
        "fqmn": "App\\Http\\Controllers\\Api\\Auth\\Users@enable",
        "expected_test_path": "tests/Feature/UsersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Auth\\Users;\n\nclass UsersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Auth\\Users@enable\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_enable_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Auth\\Users@enable is PROOF_READY but no test file at tests/Feature/UsersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Auth/Users.php::App\\Http\\Controllers\\Api\\Auth\\Users::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Auth\\Users@index",
        "expected_test_path": "tests/Feature/UsersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Auth\\Users;\n\nclass UsersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Auth\\Users@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\\Auth\\Users@index is PROOF_READY but no test file at tests/Feature/UsersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Auth/Users.php::App\\Http\\Controllers\\Api\\Auth\\Users::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Auth\\Users@show",
        "expected_test_path": "tests/Feature/UsersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Auth\\Users;\n\nclass UsersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Auth\\Users@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\\Auth\\Users@show is PROOF_READY but no test file at tests/Feature/UsersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Auth/Users.php::App\\Http\\Controllers\\Api\\Auth\\Users::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Auth\\Users@store",
        "expected_test_path": "tests/Feature/UsersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Auth\\Users;\n\nclass UsersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Auth\\Users@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        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Auth\\Users@store is PROOF_READY but no test file at tests/Feature/UsersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Auth/Users.php::App\\Http\\Controllers\\Api\\Auth\\Users::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Auth\\Users@update",
        "expected_test_path": "tests/Feature/UsersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Auth\\Users;\n\nclass UsersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Auth\\Users@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        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Auth\\Users@update is PROOF_READY but no test file at tests/Feature/UsersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Banking/Accounts.php::App\\Http\\Controllers\\Api\\Banking\\Accounts::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Accounts@destroy",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Banking\\Accounts;\n\nclass AccountsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Banking\\Accounts@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Banking\\Accounts@destroy is PROOF_READY but no test file at tests/Feature/AccountsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Banking/Accounts.php::App\\Http\\Controllers\\Api\\Banking\\Accounts::disable",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Accounts@disable",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Banking\\Accounts;\n\nclass AccountsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Banking\\Accounts@disable\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_disable_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Banking\\Accounts@disable is PROOF_READY but no test file at tests/Feature/AccountsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Banking/Accounts.php::App\\Http\\Controllers\\Api\\Banking\\Accounts::enable",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Accounts@enable",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Banking\\Accounts;\n\nclass AccountsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Banking\\Accounts@enable\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_enable_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Banking\\Accounts@enable is PROOF_READY but no test file at tests/Feature/AccountsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Banking/Accounts.php::App\\Http\\Controllers\\Api\\Banking\\Accounts::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Accounts@index",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Accounts;\n\nclass AccountsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Banking\\Accounts@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\\Banking\\Accounts@index is PROOF_READY but no test file at tests/Feature/AccountsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Banking/Accounts.php::App\\Http\\Controllers\\Api\\Banking\\Accounts::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Accounts@show",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Accounts;\n\nclass AccountsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Banking\\Accounts@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\\Banking\\Accounts@show is PROOF_READY but no test file at tests/Feature/AccountsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Banking/Accounts.php::App\\Http\\Controllers\\Api\\Banking\\Accounts::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Accounts@store",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Banking\\Accounts;\n\nclass AccountsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Banking\\Accounts@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        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Banking\\Accounts@store is PROOF_READY but no test file at tests/Feature/AccountsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Banking/Accounts.php::App\\Http\\Controllers\\Api\\Banking\\Accounts::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Accounts@update",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Banking\\Accounts;\n\nclass AccountsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Banking\\Accounts@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        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Banking\\Accounts@update is PROOF_READY but no test file at tests/Feature/AccountsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Banking/Reconciliations.php::App\\Http\\Controllers\\Api\\Banking\\Reconciliations::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Reconciliations@destroy",
        "expected_test_path": "tests/Feature/ReconciliationsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Banking\\Reconciliations;\n\nclass ReconciliationsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Banking\\Reconciliations@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Banking\\Reconciliations@destroy is PROOF_READY but no test file at tests/Feature/ReconciliationsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Banking/Reconciliations.php::App\\Http\\Controllers\\Api\\Banking\\Reconciliations::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Reconciliations@index",
        "expected_test_path": "tests/Feature/ReconciliationsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Reconciliations;\n\nclass ReconciliationsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Banking\\Reconciliations@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\\Banking\\Reconciliations@index is PROOF_READY but no test file at tests/Feature/ReconciliationsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Banking/Reconciliations.php::App\\Http\\Controllers\\Api\\Banking\\Reconciliations::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Reconciliations@show",
        "expected_test_path": "tests/Feature/ReconciliationsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Reconciliations;\n\nclass ReconciliationsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Banking\\Reconciliations@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\\Banking\\Reconciliations@show is PROOF_READY but no test file at tests/Feature/ReconciliationsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Banking/Reconciliations.php::App\\Http\\Controllers\\Api\\Banking\\Reconciliations::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Reconciliations@store",
        "expected_test_path": "tests/Feature/ReconciliationsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Banking\\Reconciliations;\n\nclass ReconciliationsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Banking\\Reconciliations@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        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Banking\\Reconciliations@store is PROOF_READY but no test file at tests/Feature/ReconciliationsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Banking/Reconciliations.php::App\\Http\\Controllers\\Api\\Banking\\Reconciliations::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Reconciliations@update",
        "expected_test_path": "tests/Feature/ReconciliationsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Banking\\Reconciliations;\n\nclass ReconciliationsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Banking\\Reconciliations@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        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Banking\\Reconciliations@update is PROOF_READY but no test file at tests/Feature/ReconciliationsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Banking/Transactions.php::App\\Http\\Controllers\\Api\\Banking\\Transactions::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Transactions@destroy",
        "expected_test_path": "tests/Feature/TransactionsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Banking\\Transactions;\n\nclass TransactionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Banking\\Transactions@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Banking\\Transactions@destroy is PROOF_READY but no test file at tests/Feature/TransactionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Banking/Transactions.php::App\\Http\\Controllers\\Api\\Banking\\Transactions::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Transactions@index",
        "expected_test_path": "tests/Feature/TransactionsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Transactions;\n\nclass TransactionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Banking\\Transactions@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\\Banking\\Transactions@index is PROOF_READY but no test file at tests/Feature/TransactionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Banking/Transactions.php::App\\Http\\Controllers\\Api\\Banking\\Transactions::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Transactions@show",
        "expected_test_path": "tests/Feature/TransactionsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Transactions;\n\nclass TransactionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Banking\\Transactions@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\\Banking\\Transactions@show is PROOF_READY but no test file at tests/Feature/TransactionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Banking/Transactions.php::App\\Http\\Controllers\\Api\\Banking\\Transactions::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Transactions@store",
        "expected_test_path": "tests/Feature/TransactionsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Banking\\Transactions;\n\nclass TransactionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Banking\\Transactions@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        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Banking\\Transactions@store is PROOF_READY but no test file at tests/Feature/TransactionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Banking/Transactions.php::App\\Http\\Controllers\\Api\\Banking\\Transactions::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Transactions@update",
        "expected_test_path": "tests/Feature/TransactionsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Banking\\Transactions;\n\nclass TransactionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Banking\\Transactions@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        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Banking\\Transactions@update is PROOF_READY but no test file at tests/Feature/TransactionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Banking/Transfers.php::App\\Http\\Controllers\\Api\\Banking\\Transfers::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Transfers@destroy",
        "expected_test_path": "tests/Feature/TransfersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Banking\\Transfers;\n\nclass TransfersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Banking\\Transfers@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Banking\\Transfers@destroy is PROOF_READY but no test file at tests/Feature/TransfersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Banking/Transfers.php::App\\Http\\Controllers\\Api\\Banking\\Transfers::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Transfers@index",
        "expected_test_path": "tests/Feature/TransfersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Transfers;\n\nclass TransfersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Banking\\Transfers@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\\Banking\\Transfers@index is PROOF_READY but no test file at tests/Feature/TransfersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Banking/Transfers.php::App\\Http\\Controllers\\Api\\Banking\\Transfers::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Transfers@show",
        "expected_test_path": "tests/Feature/TransfersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Transfers;\n\nclass TransfersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Banking\\Transfers@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\\Banking\\Transfers@show is PROOF_READY but no test file at tests/Feature/TransfersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Banking/Transfers.php::App\\Http\\Controllers\\Api\\Banking\\Transfers::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Transfers@store",
        "expected_test_path": "tests/Feature/TransfersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Banking\\Transfers;\n\nclass TransfersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Banking\\Transfers@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        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Banking\\Transfers@store is PROOF_READY but no test file at tests/Feature/TransfersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Banking/Transfers.php::App\\Http\\Controllers\\Api\\Banking\\Transfers::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Banking\\Transfers@update",
        "expected_test_path": "tests/Feature/TransfersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Banking\\Transfers;\n\nclass TransfersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Banking\\Transfers@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        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Banking\\Transfers@update is PROOF_READY but no test file at tests/Feature/TransfersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Common/Companies.php::App\\Http\\Controllers\\Api\\Common\\Companies::canAccess",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Companies@canAccess",
        "expected_test_path": "tests/Feature/CompaniesTest.php",
        "intent": null,
        "intent_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\\Common\\Companies;\n\nclass CompaniesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Common\\Companies@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\n\n        // TODO: set up test data here\n        $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\\Common\\Companies@canAccess is PROOF_READY but no test file at tests/Feature/CompaniesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Common/Companies.php::App\\Http\\Controllers\\Api\\Common\\Companies::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Companies@destroy",
        "expected_test_path": "tests/Feature/CompaniesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Common\\Companies;\n\nclass CompaniesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Common\\Companies@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Common\\Companies@destroy is PROOF_READY but no test file at tests/Feature/CompaniesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Common/Companies.php::App\\Http\\Controllers\\Api\\Common\\Companies::disable",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Companies@disable",
        "expected_test_path": "tests/Feature/CompaniesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Common\\Companies;\n\nclass CompaniesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Common\\Companies@disable\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_disable_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Common\\Companies@disable is PROOF_READY but no test file at tests/Feature/CompaniesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Common/Companies.php::App\\Http\\Controllers\\Api\\Common\\Companies::enable",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Companies@enable",
        "expected_test_path": "tests/Feature/CompaniesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Common\\Companies;\n\nclass CompaniesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Common\\Companies@enable\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_enable_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Common\\Companies@enable is PROOF_READY but no test file at tests/Feature/CompaniesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Common/Companies.php::App\\Http\\Controllers\\Api\\Common\\Companies::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Companies@index",
        "expected_test_path": "tests/Feature/CompaniesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Companies;\n\nclass CompaniesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Common\\Companies@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\\Common\\Companies@index is PROOF_READY but no test file at tests/Feature/CompaniesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Common/Companies.php::App\\Http\\Controllers\\Api\\Common\\Companies::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Companies@show",
        "expected_test_path": "tests/Feature/CompaniesTest.php",
        "intent": null,
        "intent_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\\Common\\Companies;\n\nclass CompaniesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Common\\Companies@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\\Common\\Companies@show is PROOF_READY but no test file at tests/Feature/CompaniesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Common/Companies.php::App\\Http\\Controllers\\Api\\Common\\Companies::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Companies@store",
        "expected_test_path": "tests/Feature/CompaniesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Common\\Companies;\n\nclass CompaniesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Common\\Companies@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        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Common\\Companies@store is PROOF_READY but no test file at tests/Feature/CompaniesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Common/Companies.php::App\\Http\\Controllers\\Api\\Common\\Companies::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Companies@update",
        "expected_test_path": "tests/Feature/CompaniesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Common\\Companies;\n\nclass CompaniesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Common\\Companies@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        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Common\\Companies@update is PROOF_READY but no test file at tests/Feature/CompaniesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Common/Contacts.php::App\\Http\\Controllers\\Api\\Common\\Contacts::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Contacts@destroy",
        "expected_test_path": "tests/Feature/ContactsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Common\\Contacts;\n\nclass ContactsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Common\\Contacts@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Common\\Contacts@destroy is PROOF_READY but no test file at tests/Feature/ContactsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Common/Contacts.php::App\\Http\\Controllers\\Api\\Common\\Contacts::disable",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Contacts@disable",
        "expected_test_path": "tests/Feature/ContactsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Common\\Contacts;\n\nclass ContactsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Common\\Contacts@disable\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_disable_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Common\\Contacts@disable is PROOF_READY but no test file at tests/Feature/ContactsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Common/Contacts.php::App\\Http\\Controllers\\Api\\Common\\Contacts::enable",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Contacts@enable",
        "expected_test_path": "tests/Feature/ContactsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Common\\Contacts;\n\nclass ContactsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Common\\Contacts@enable\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_enable_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Common\\Contacts@enable is PROOF_READY but no test file at tests/Feature/ContactsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Common/Contacts.php::App\\Http\\Controllers\\Api\\Common\\Contacts::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Contacts@index",
        "expected_test_path": "tests/Feature/ContactsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Contacts;\n\nclass ContactsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Common\\Contacts@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\\Common\\Contacts@index is PROOF_READY but no test file at tests/Feature/ContactsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Common/Contacts.php::App\\Http\\Controllers\\Api\\Common\\Contacts::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Contacts@show",
        "expected_test_path": "tests/Feature/ContactsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Contacts;\n\nclass ContactsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Common\\Contacts@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\\Common\\Contacts@show is PROOF_READY but no test file at tests/Feature/ContactsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Common/Contacts.php::App\\Http\\Controllers\\Api\\Common\\Contacts::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Contacts@store",
        "expected_test_path": "tests/Feature/ContactsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Common\\Contacts;\n\nclass ContactsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Common\\Contacts@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        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Common\\Contacts@store is PROOF_READY but no test file at tests/Feature/ContactsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Common/Contacts.php::App\\Http\\Controllers\\Api\\Common\\Contacts::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Contacts@update",
        "expected_test_path": "tests/Feature/ContactsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Common\\Contacts;\n\nclass ContactsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Common\\Contacts@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        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Common\\Contacts@update is PROOF_READY but no test file at tests/Feature/ContactsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Common/Dashboards.php::App\\Http\\Controllers\\Api\\Common\\Dashboards::canAccess",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Dashboards@canAccess",
        "expected_test_path": "tests/Feature/DashboardsTest.php",
        "intent": null,
        "intent_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\\Common\\Dashboards;\n\nclass DashboardsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Common\\Dashboards@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\n\n        // TODO: set up test data here\n        $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\\Common\\Dashboards@canAccess is PROOF_READY but no test file at tests/Feature/DashboardsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Common/Dashboards.php::App\\Http\\Controllers\\Api\\Common\\Dashboards::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Dashboards@destroy",
        "expected_test_path": "tests/Feature/DashboardsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Common\\Dashboards;\n\nclass DashboardsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Common\\Dashboards@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Common\\Dashboards@destroy is PROOF_READY but no test file at tests/Feature/DashboardsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Common/Dashboards.php::App\\Http\\Controllers\\Api\\Common\\Dashboards::disable",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Dashboards@disable",
        "expected_test_path": "tests/Feature/DashboardsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Common\\Dashboards;\n\nclass DashboardsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Common\\Dashboards@disable\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_disable_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Common\\Dashboards@disable is PROOF_READY but no test file at tests/Feature/DashboardsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Common/Dashboards.php::App\\Http\\Controllers\\Api\\Common\\Dashboards::enable",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Dashboards@enable",
        "expected_test_path": "tests/Feature/DashboardsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Common\\Dashboards;\n\nclass DashboardsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Common\\Dashboards@enable\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_enable_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Common\\Dashboards@enable is PROOF_READY but no test file at tests/Feature/DashboardsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Common/Dashboards.php::App\\Http\\Controllers\\Api\\Common\\Dashboards::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Dashboards@index",
        "expected_test_path": "tests/Feature/DashboardsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Dashboards;\n\nclass DashboardsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Common\\Dashboards@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\\Common\\Dashboards@index is PROOF_READY but no test file at tests/Feature/DashboardsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Common/Dashboards.php::App\\Http\\Controllers\\Api\\Common\\Dashboards::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Dashboards@show",
        "expected_test_path": "tests/Feature/DashboardsTest.php",
        "intent": null,
        "intent_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\\Common\\Dashboards;\n\nclass DashboardsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Common\\Dashboards@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\\Common\\Dashboards@show is PROOF_READY but no test file at tests/Feature/DashboardsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Common/Dashboards.php::App\\Http\\Controllers\\Api\\Common\\Dashboards::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Dashboards@store",
        "expected_test_path": "tests/Feature/DashboardsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Common\\Dashboards;\n\nclass DashboardsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Common\\Dashboards@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        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Common\\Dashboards@store is PROOF_READY but no test file at tests/Feature/DashboardsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Common/Dashboards.php::App\\Http\\Controllers\\Api\\Common\\Dashboards::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Dashboards@update",
        "expected_test_path": "tests/Feature/DashboardsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Common\\Dashboards;\n\nclass DashboardsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Common\\Dashboards@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        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Common\\Dashboards@update is PROOF_READY but no test file at tests/Feature/DashboardsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Common/Items.php::App\\Http\\Controllers\\Api\\Common\\Items::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Items@destroy",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Common\\Items;\n\nclass ItemsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Common\\Items@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Common\\Items@destroy is PROOF_READY but no test file at tests/Feature/ItemsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Common/Items.php::App\\Http\\Controllers\\Api\\Common\\Items::disable",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Items@disable",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Common\\Items;\n\nclass ItemsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Common\\Items@disable\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_disable_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Common\\Items@disable is PROOF_READY but no test file at tests/Feature/ItemsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Common/Items.php::App\\Http\\Controllers\\Api\\Common\\Items::enable",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Items@enable",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Common\\Items;\n\nclass ItemsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Common\\Items@enable\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_enable_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Common\\Items@enable is PROOF_READY but no test file at tests/Feature/ItemsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Common/Items.php::App\\Http\\Controllers\\Api\\Common\\Items::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Items@index",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Items;\n\nclass ItemsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Common\\Items@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\\Common\\Items@index is PROOF_READY but no test file at tests/Feature/ItemsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Common/Items.php::App\\Http\\Controllers\\Api\\Common\\Items::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Items@show",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Items;\n\nclass ItemsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Common\\Items@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\\Common\\Items@show is PROOF_READY but no test file at tests/Feature/ItemsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Common/Items.php::App\\Http\\Controllers\\Api\\Common\\Items::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Items@store",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Common\\Items;\n\nclass ItemsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Common\\Items@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        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Common\\Items@store is PROOF_READY but no test file at tests/Feature/ItemsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Common/Items.php::App\\Http\\Controllers\\Api\\Common\\Items::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Items@update",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Common\\Items;\n\nclass ItemsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Common\\Items@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        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Common\\Items@update is PROOF_READY but no test file at tests/Feature/ItemsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Common/Ping.php::App\\Http\\Controllers\\Api\\Common\\Ping::pong",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Ping@pong",
        "expected_test_path": "tests/Feature/PingTest.php",
        "intent": null,
        "intent_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\\Common\\Ping;\n\nclass PingTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Common\\Ping@pong\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_pong_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $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\\Common\\Ping@pong is PROOF_READY but no test file at tests/Feature/PingTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Common/Reports.php::App\\Http\\Controllers\\Api\\Common\\Reports::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Reports@destroy",
        "expected_test_path": "tests/Feature/ReportsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Common\\Reports;\n\nclass ReportsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Common\\Reports@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Common\\Reports@destroy is PROOF_READY but no test file at tests/Feature/ReportsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Common/Reports.php::App\\Http\\Controllers\\Api\\Common\\Reports::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Reports@index",
        "expected_test_path": "tests/Feature/ReportsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Reports;\n\nclass ReportsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Common\\Reports@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\\Common\\Reports@index is PROOF_READY but no test file at tests/Feature/ReportsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Common/Reports.php::App\\Http\\Controllers\\Api\\Common\\Reports::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Reports@show",
        "expected_test_path": "tests/Feature/ReportsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Reports;\n\nclass ReportsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Common\\Reports@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\\Common\\Reports@show is PROOF_READY but no test file at tests/Feature/ReportsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Common/Reports.php::App\\Http\\Controllers\\Api\\Common\\Reports::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Reports@store",
        "expected_test_path": "tests/Feature/ReportsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Common\\Reports;\n\nclass ReportsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Common\\Reports@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        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Common\\Reports@store is PROOF_READY but no test file at tests/Feature/ReportsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Common/Reports.php::App\\Http\\Controllers\\Api\\Common\\Reports::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Reports@update",
        "expected_test_path": "tests/Feature/ReportsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Common\\Reports;\n\nclass ReportsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Common\\Reports@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        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Common\\Reports@update is PROOF_READY but no test file at tests/Feature/ReportsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Common/Translations.php::App\\Http\\Controllers\\Api\\Common\\Translations::all",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Translations@all",
        "expected_test_path": "tests/Feature/TranslationsTest.php",
        "intent": null,
        "intent_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\\Common\\Translations;\n\nclass TranslationsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Common\\Translations@all\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_all_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Common\\Translations@all is PROOF_READY but no test file at tests/Feature/TranslationsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Common/Translations.php::App\\Http\\Controllers\\Api\\Common\\Translations::file",
        "fqmn": "App\\Http\\Controllers\\Api\\Common\\Translations@file",
        "expected_test_path": "tests/Feature/TranslationsTest.php",
        "intent": null,
        "intent_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\\Common\\Translations;\n\nclass TranslationsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Common\\Translations@file\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_file_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $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\\Common\\Translations@file is PROOF_READY but no test file at tests/Feature/TranslationsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Document/Documents.php::App\\Http\\Controllers\\Api\\Document\\Documents::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\Documents@destroy",
        "expected_test_path": "tests/Feature/DocumentsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Document\\Documents;\n\nclass DocumentsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Document\\Documents@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Document\\Documents@destroy is PROOF_READY but no test file at tests/Feature/DocumentsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Document/Documents.php::App\\Http\\Controllers\\Api\\Document\\Documents::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\Documents@index",
        "expected_test_path": "tests/Feature/DocumentsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Document\\Documents;\n\nclass DocumentsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Document\\Documents@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\\Document\\Documents@index is PROOF_READY but no test file at tests/Feature/DocumentsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Document/Documents.php::App\\Http\\Controllers\\Api\\Document\\Documents::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\Documents@show",
        "expected_test_path": "tests/Feature/DocumentsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Document\\Documents;\n\nclass DocumentsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Document\\Documents@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\\Document\\Documents@show is PROOF_READY but no test file at tests/Feature/DocumentsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Document/Documents.php::App\\Http\\Controllers\\Api\\Document\\Documents::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\Documents@store",
        "expected_test_path": "tests/Feature/DocumentsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Document\\Documents;\n\nclass DocumentsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Document\\Documents@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        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Document\\Documents@store is PROOF_READY but no test file at tests/Feature/DocumentsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Document/Documents.php::App\\Http\\Controllers\\Api\\Document\\Documents::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\Documents@update",
        "expected_test_path": "tests/Feature/DocumentsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Document\\Documents;\n\nclass DocumentsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Document\\Documents@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        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Document\\Documents@update is PROOF_READY but no test file at tests/Feature/DocumentsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Document/DocumentTransactions.php::App\\Http\\Controllers\\Api\\Document\\DocumentTransactions::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\DocumentTransactions@destroy",
        "expected_test_path": "tests/Feature/DocumentTransactionsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Document\\DocumentTransactions;\n\nclass DocumentTransactionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Document\\DocumentTransactions@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Document\\DocumentTransactions@destroy is PROOF_READY but no test file at tests/Feature/DocumentTransactionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Document/DocumentTransactions.php::App\\Http\\Controllers\\Api\\Document\\DocumentTransactions::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\DocumentTransactions@index",
        "expected_test_path": "tests/Feature/DocumentTransactionsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Document\\DocumentTransactions;\n\nclass DocumentTransactionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Document\\DocumentTransactions@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\\Document\\DocumentTransactions@index is PROOF_READY but no test file at tests/Feature/DocumentTransactionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Document/DocumentTransactions.php::App\\Http\\Controllers\\Api\\Document\\DocumentTransactions::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\DocumentTransactions@show",
        "expected_test_path": "tests/Feature/DocumentTransactionsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Document\\DocumentTransactions;\n\nclass DocumentTransactionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Document\\DocumentTransactions@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\\Document\\DocumentTransactions@show is PROOF_READY but no test file at tests/Feature/DocumentTransactionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Document/DocumentTransactions.php::App\\Http\\Controllers\\Api\\Document\\DocumentTransactions::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\DocumentTransactions@store",
        "expected_test_path": "tests/Feature/DocumentTransactionsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Document\\DocumentTransactions;\n\nclass DocumentTransactionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Document\\DocumentTransactions@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        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Document\\DocumentTransactions@store is PROOF_READY but no test file at tests/Feature/DocumentTransactionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Document/DocumentTransactions.php::App\\Http\\Controllers\\Api\\Document\\DocumentTransactions::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Document\\DocumentTransactions@update",
        "expected_test_path": "tests/Feature/DocumentTransactionsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Document\\DocumentTransactions;\n\nclass DocumentTransactionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Document\\DocumentTransactions@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        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Document\\DocumentTransactions@update is PROOF_READY but no test file at tests/Feature/DocumentTransactionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Settings/Categories.php::App\\Http\\Controllers\\Api\\Settings\\Categories::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Categories@destroy",
        "expected_test_path": "tests/Feature/CategoriesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Settings\\Categories;\n\nclass CategoriesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Settings\\Categories@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Settings\\Categories@destroy is PROOF_READY but no test file at tests/Feature/CategoriesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Settings/Categories.php::App\\Http\\Controllers\\Api\\Settings\\Categories::disable",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Categories@disable",
        "expected_test_path": "tests/Feature/CategoriesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Settings\\Categories;\n\nclass CategoriesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Settings\\Categories@disable\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_disable_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Settings\\Categories@disable is PROOF_READY but no test file at tests/Feature/CategoriesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Settings/Categories.php::App\\Http\\Controllers\\Api\\Settings\\Categories::enable",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Categories@enable",
        "expected_test_path": "tests/Feature/CategoriesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Settings\\Categories;\n\nclass CategoriesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Settings\\Categories@enable\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_enable_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Settings\\Categories@enable is PROOF_READY but no test file at tests/Feature/CategoriesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Settings/Categories.php::App\\Http\\Controllers\\Api\\Settings\\Categories::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Categories@index",
        "expected_test_path": "tests/Feature/CategoriesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Settings\\Categories;\n\nclass CategoriesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Settings\\Categories@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\\Settings\\Categories@index is PROOF_READY but no test file at tests/Feature/CategoriesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Settings/Categories.php::App\\Http\\Controllers\\Api\\Settings\\Categories::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Categories@show",
        "expected_test_path": "tests/Feature/CategoriesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Settings\\Categories;\n\nclass CategoriesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Settings\\Categories@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\\Settings\\Categories@show is PROOF_READY but no test file at tests/Feature/CategoriesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Settings/Categories.php::App\\Http\\Controllers\\Api\\Settings\\Categories::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Categories@store",
        "expected_test_path": "tests/Feature/CategoriesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Settings\\Categories;\n\nclass CategoriesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Settings\\Categories@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        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Settings\\Categories@store is PROOF_READY but no test file at tests/Feature/CategoriesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Settings/Categories.php::App\\Http\\Controllers\\Api\\Settings\\Categories::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Categories@update",
        "expected_test_path": "tests/Feature/CategoriesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Settings\\Categories;\n\nclass CategoriesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Settings\\Categories@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        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Settings\\Categories@update is PROOF_READY but no test file at tests/Feature/CategoriesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Settings/Currencies.php::App\\Http\\Controllers\\Api\\Settings\\Currencies::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Currencies@destroy",
        "expected_test_path": "tests/Feature/CurrenciesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Settings\\Currencies;\n\nclass CurrenciesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Settings\\Currencies@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Settings\\Currencies@destroy is PROOF_READY but no test file at tests/Feature/CurrenciesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Settings/Currencies.php::App\\Http\\Controllers\\Api\\Settings\\Currencies::disable",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Currencies@disable",
        "expected_test_path": "tests/Feature/CurrenciesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Settings\\Currencies;\n\nclass CurrenciesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Settings\\Currencies@disable\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_disable_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Settings\\Currencies@disable is PROOF_READY but no test file at tests/Feature/CurrenciesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Settings/Currencies.php::App\\Http\\Controllers\\Api\\Settings\\Currencies::enable",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Currencies@enable",
        "expected_test_path": "tests/Feature/CurrenciesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Settings\\Currencies;\n\nclass CurrenciesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Settings\\Currencies@enable\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_enable_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Settings\\Currencies@enable is PROOF_READY but no test file at tests/Feature/CurrenciesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Settings/Currencies.php::App\\Http\\Controllers\\Api\\Settings\\Currencies::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Currencies@index",
        "expected_test_path": "tests/Feature/CurrenciesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Settings\\Currencies;\n\nclass CurrenciesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Settings\\Currencies@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\\Settings\\Currencies@index is PROOF_READY but no test file at tests/Feature/CurrenciesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Settings/Currencies.php::App\\Http\\Controllers\\Api\\Settings\\Currencies::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Currencies@show",
        "expected_test_path": "tests/Feature/CurrenciesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Settings\\Currencies;\n\nclass CurrenciesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Settings\\Currencies@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\\Settings\\Currencies@show is PROOF_READY but no test file at tests/Feature/CurrenciesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Settings/Currencies.php::App\\Http\\Controllers\\Api\\Settings\\Currencies::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Currencies@store",
        "expected_test_path": "tests/Feature/CurrenciesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Settings\\Currencies;\n\nclass CurrenciesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Settings\\Currencies@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        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Settings\\Currencies@store is PROOF_READY but no test file at tests/Feature/CurrenciesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Settings/Currencies.php::App\\Http\\Controllers\\Api\\Settings\\Currencies::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Currencies@update",
        "expected_test_path": "tests/Feature/CurrenciesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Settings\\Currencies;\n\nclass CurrenciesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Settings\\Currencies@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        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Settings\\Currencies@update is PROOF_READY but no test file at tests/Feature/CurrenciesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Settings/Settings.php::App\\Http\\Controllers\\Api\\Settings\\Settings::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Settings@destroy",
        "expected_test_path": "tests/Feature/SettingsTest.php",
        "intent": null,
        "intent_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\\Settings\\Settings;\n\nclass SettingsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Settings\\Settings@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\\Settings\\Settings@destroy is PROOF_READY but no test file at tests/Feature/SettingsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Settings/Settings.php::App\\Http\\Controllers\\Api\\Settings\\Settings::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Settings@index",
        "expected_test_path": "tests/Feature/SettingsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Settings\\Settings;\n\nclass SettingsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Settings\\Settings@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\\Settings\\Settings@index is PROOF_READY but no test file at tests/Feature/SettingsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Settings/Settings.php::App\\Http\\Controllers\\Api\\Settings\\Settings::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Settings@show",
        "expected_test_path": "tests/Feature/SettingsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Settings\\Settings;\n\nclass SettingsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Settings\\Settings@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\\Settings\\Settings@show is PROOF_READY but no test file at tests/Feature/SettingsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Settings/Settings.php::App\\Http\\Controllers\\Api\\Settings\\Settings::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Settings@store",
        "expected_test_path": "tests/Feature/SettingsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Settings\\Settings;\n\nclass SettingsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Settings\\Settings@store\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_store_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Settings\\Settings@store is PROOF_READY but no test file at tests/Feature/SettingsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Settings/Settings.php::App\\Http\\Controllers\\Api\\Settings\\Settings::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Settings@update",
        "expected_test_path": "tests/Feature/SettingsTest.php",
        "intent": null,
        "intent_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\\Settings\\Settings;\n\nclass SettingsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Settings\\Settings@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\\Settings\\Settings@update is PROOF_READY but no test file at tests/Feature/SettingsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Settings/Taxes.php::App\\Http\\Controllers\\Api\\Settings\\Taxes::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Taxes@destroy",
        "expected_test_path": "tests/Feature/TaxesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Settings\\Taxes;\n\nclass TaxesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Settings\\Taxes@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Settings\\Taxes@destroy is PROOF_READY but no test file at tests/Feature/TaxesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Settings/Taxes.php::App\\Http\\Controllers\\Api\\Settings\\Taxes::disable",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Taxes@disable",
        "expected_test_path": "tests/Feature/TaxesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Settings\\Taxes;\n\nclass TaxesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Settings\\Taxes@disable\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_disable_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Settings\\Taxes@disable is PROOF_READY but no test file at tests/Feature/TaxesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Settings/Taxes.php::App\\Http\\Controllers\\Api\\Settings\\Taxes::enable",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Taxes@enable",
        "expected_test_path": "tests/Feature/TaxesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Settings\\Taxes;\n\nclass TaxesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Settings\\Taxes@enable\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_enable_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Settings\\Taxes@enable is PROOF_READY but no test file at tests/Feature/TaxesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Settings/Taxes.php::App\\Http\\Controllers\\Api\\Settings\\Taxes::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Taxes@index",
        "expected_test_path": "tests/Feature/TaxesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Settings\\Taxes;\n\nclass TaxesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Settings\\Taxes@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\\Settings\\Taxes@index is PROOF_READY but no test file at tests/Feature/TaxesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Settings/Taxes.php::App\\Http\\Controllers\\Api\\Settings\\Taxes::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Taxes@show",
        "expected_test_path": "tests/Feature/TaxesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Settings\\Taxes;\n\nclass TaxesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Settings\\Taxes@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\\Settings\\Taxes@show is PROOF_READY but no test file at tests/Feature/TaxesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Settings/Taxes.php::App\\Http\\Controllers\\Api\\Settings\\Taxes::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Taxes@store",
        "expected_test_path": "tests/Feature/TaxesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Settings\\Taxes;\n\nclass TaxesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Settings\\Taxes@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        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Settings\\Taxes@store is PROOF_READY but no test file at tests/Feature/TaxesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Settings/Taxes.php::App\\Http\\Controllers\\Api\\Settings\\Taxes::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Settings\\Taxes@update",
        "expected_test_path": "tests/Feature/TaxesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Settings\\Taxes;\n\nclass TaxesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Settings\\Taxes@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        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Settings\\Taxes@update is PROOF_READY but no test file at tests/Feature/TaxesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Forgot.php::App\\Http\\Controllers\\Auth\\Forgot::create",
        "fqmn": "App\\Http\\Controllers\\Auth\\Forgot@create",
        "expected_test_path": "tests/Feature/ForgotTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Forgot;\n\nclass ForgotTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\Forgot@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\\Http\\Controllers\\Auth\\Forgot@create is PROOF_READY but no test file at tests/Feature/ForgotTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Forgot.php::App\\Http\\Controllers\\Auth\\Forgot::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\Forgot@store",
        "expected_test_path": "tests/Feature/ForgotTest.php",
        "intent": null,
        "intent_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\\Forgot;\n\nclass ForgotTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\Forgot@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\\Auth\\Forgot@store is PROOF_READY but no test file at tests/Feature/ForgotTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Login.php::App\\Http\\Controllers\\Auth\\Login::create",
        "fqmn": "App\\Http\\Controllers\\Auth\\Login@create",
        "expected_test_path": "tests/Feature/LoginTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Login;\n\nclass LoginTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\Login@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\\Http\\Controllers\\Auth\\Login@create is PROOF_READY but no test file at tests/Feature/LoginTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Login.php::App\\Http\\Controllers\\Auth\\Login::destroy",
        "fqmn": "App\\Http\\Controllers\\Auth\\Login@destroy",
        "expected_test_path": "tests/Feature/LoginTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Login;\n\nclass LoginTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\Login@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Auth\\Login@destroy is PROOF_READY but no test file at tests/Feature/LoginTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Login.php::App\\Http\\Controllers\\Auth\\Login::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\Login@store",
        "expected_test_path": "tests/Feature/LoginTest.php",
        "intent": null,
        "intent_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\\Login;\n\nclass LoginTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\Login@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\\Auth\\Login@store is PROOF_READY but no test file at tests/Feature/LoginTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Register.php::App\\Http\\Controllers\\Auth\\Register::create",
        "fqmn": "App\\Http\\Controllers\\Auth\\Register@create",
        "expected_test_path": "tests/Feature/RegisterTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Register;\n\nclass RegisterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\Register@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\\Http\\Controllers\\Auth\\Register@create is PROOF_READY but no test file at tests/Feature/RegisterTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Register.php::App\\Http\\Controllers\\Auth\\Register::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\Register@store",
        "expected_test_path": "tests/Feature/RegisterTest.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\\Auth\\Register;\n\nclass RegisterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\Register@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        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Auth\\Register@store is PROOF_READY but no test file at tests/Feature/RegisterTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Reset.php::App\\Http\\Controllers\\Auth\\Reset::create",
        "fqmn": "App\\Http\\Controllers\\Auth\\Reset@create",
        "expected_test_path": "tests/Feature/ResetTest.php",
        "intent": null,
        "intent_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\\Reset;\n\nclass ResetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\Reset@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Auth\\Reset@create is PROOF_READY but no test file at tests/Feature/ResetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Reset.php::App\\Http\\Controllers\\Auth\\Reset::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\Reset@store",
        "expected_test_path": "tests/Feature/ResetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Auth\\Reset;\n\nclass ResetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\Reset@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\\Http\\Controllers\\Auth\\Reset@store is PROOF_READY but no test file at tests/Feature/ResetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Users.php::App\\Http\\Controllers\\Auth\\Users::autocomplete",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@autocomplete",
        "expected_test_path": "tests/Feature/UsersTest.php",
        "intent": null,
        "intent_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\\Users;\n\nclass UsersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\Users@autocomplete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_autocomplete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $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\\Users@autocomplete is PROOF_READY but no test file at tests/Feature/UsersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Users.php::App\\Http\\Controllers\\Auth\\Users::create",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@create",
        "expected_test_path": "tests/Feature/UsersTest.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\\Users;\n\nclass UsersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\Users@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Auth\\Users@create is PROOF_READY but no test file at tests/Feature/UsersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Users.php::App\\Http\\Controllers\\Auth\\Users::destroy",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@destroy",
        "expected_test_path": "tests/Feature/UsersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Users;\n\nclass UsersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\Users@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Auth\\Users@destroy is PROOF_READY but no test file at tests/Feature/UsersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Users.php::App\\Http\\Controllers\\Auth\\Users::disable",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@disable",
        "expected_test_path": "tests/Feature/UsersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Users;\n\nclass UsersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\Users@disable\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_disable_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $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\\Users@disable is PROOF_READY but no test file at tests/Feature/UsersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Users.php::App\\Http\\Controllers\\Auth\\Users::edit",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@edit",
        "expected_test_path": "tests/Feature/UsersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched"
        ],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Auth\\Users;\n\nclass UsersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\Users@edit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_edit_behaves_correctly(): void\n    {\n\n        // 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->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Auth\\Users@edit is PROOF_READY but no test file at tests/Feature/UsersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Users.php::App\\Http\\Controllers\\Auth\\Users::enable",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@enable",
        "expected_test_path": "tests/Feature/UsersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Users;\n\nclass UsersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\Users@enable\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_enable_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $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\\Users@enable is PROOF_READY but no test file at tests/Feature/UsersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Users.php::App\\Http\\Controllers\\Auth\\Users::index",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@index",
        "expected_test_path": "tests/Feature/UsersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Users;\n\nclass UsersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\Users@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\\Auth\\Users@index is PROOF_READY but no test file at tests/Feature/UsersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Users.php::App\\Http\\Controllers\\Auth\\Users::invite",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@invite",
        "expected_test_path": "tests/Feature/UsersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Users;\n\nclass UsersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\Users@invite\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_invite_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $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\\Users@invite is PROOF_READY but no test file at tests/Feature/UsersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Users.php::App\\Http\\Controllers\\Auth\\Users::landingPages",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@landingPages",
        "expected_test_path": "tests/Feature/UsersTest.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\\Users;\n\nclass UsersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\Users@landingPages\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_landingpages_behaves_correctly(): void\n    {\n\n        // 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\\Users@landingPages is PROOF_READY but no test file at tests/Feature/UsersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Users.php::App\\Http\\Controllers\\Auth\\Users::readOverdueInvoices",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@readOverdueInvoices",
        "expected_test_path": "tests/Feature/UsersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Users;\n\nclass UsersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\Users@readOverdueInvoices\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_readoverdueinvoices_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $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\\Users@readOverdueInvoices is PROOF_READY but no test file at tests/Feature/UsersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Users.php::App\\Http\\Controllers\\Auth\\Users::readUpcomingBills",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@readUpcomingBills",
        "expected_test_path": "tests/Feature/UsersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Users;\n\nclass UsersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\Users@readUpcomingBills\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_readupcomingbills_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $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\\Users@readUpcomingBills is PROOF_READY but no test file at tests/Feature/UsersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Users.php::App\\Http\\Controllers\\Auth\\Users::show",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@show",
        "expected_test_path": "tests/Feature/UsersTest.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\\Users;\n\nclass UsersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\Users@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        // Event::assertDispatched(<EventClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Auth\\Users@show is PROOF_READY but no test file at tests/Feature/UsersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Users.php::App\\Http\\Controllers\\Auth\\Users::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@store",
        "expected_test_path": "tests/Feature/UsersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Users;\n\nclass UsersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\Users@store\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_store_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Auth\\Users@store is PROOF_READY but no test file at tests/Feature/UsersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Users.php::App\\Http\\Controllers\\Auth\\Users::update",
        "fqmn": "App\\Http\\Controllers\\Auth\\Users@update",
        "expected_test_path": "tests/Feature/UsersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Users;\n\nclass UsersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\Users@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\\Auth\\Users@update is PROOF_READY but no test file at tests/Feature/UsersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::create",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@create",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Accounts;\n\nclass AccountsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Accounts@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\\Http\\Controllers\\Banking\\Accounts@create is PROOF_READY but no test file at tests/Feature/AccountsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::createExpense",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@createExpense",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Accounts;\n\nclass AccountsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Accounts@createExpense\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_createexpense_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Banking\\Accounts@createExpense is PROOF_READY but no test file at tests/Feature/AccountsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::createIncome",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@createIncome",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Accounts;\n\nclass AccountsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Accounts@createIncome\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_createincome_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Banking\\Accounts@createIncome is PROOF_READY but no test file at tests/Feature/AccountsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::createTransfer",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@createTransfer",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Accounts;\n\nclass AccountsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Accounts@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        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Banking\\Accounts@createTransfer is PROOF_READY but no test file at tests/Feature/AccountsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::currency",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@currency",
        "expected_test_path": "tests/Feature/AccountsTest.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\\Banking\\Accounts;\n\nclass AccountsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Accounts@currency\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_currency_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Banking\\Accounts@currency is PROOF_READY but no test file at tests/Feature/AccountsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::destroy",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@destroy",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Accounts;\n\nclass AccountsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Accounts@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Banking\\Accounts@destroy is PROOF_READY but no test file at tests/Feature/AccountsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::disable",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@disable",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Accounts;\n\nclass AccountsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Accounts@disable\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_disable_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Banking\\Accounts@disable is PROOF_READY but no test file at tests/Feature/AccountsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::duplicate",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@duplicate",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Accounts;\n\nclass AccountsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Accounts@duplicate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_duplicate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Banking\\Accounts@duplicate is PROOF_READY but no test file at tests/Feature/AccountsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::edit",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@edit",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Accounts;\n\nclass AccountsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Accounts@edit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_edit_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Banking\\Accounts@edit is PROOF_READY but no test file at tests/Feature/AccountsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::enable",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@enable",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Accounts;\n\nclass AccountsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Accounts@enable\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_enable_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Banking\\Accounts@enable is PROOF_READY but no test file at tests/Feature/AccountsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::index",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@index",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Accounts;\n\nclass AccountsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Accounts@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\\Banking\\Accounts@index is PROOF_READY but no test file at tests/Feature/AccountsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::seePerformance",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@seePerformance",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Accounts;\n\nclass AccountsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Accounts@seePerformance\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_seeperformance_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Banking\\Accounts@seePerformance is PROOF_READY but no test file at tests/Feature/AccountsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::show",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@show",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Accounts;\n\nclass AccountsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Accounts@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\\Banking\\Accounts@show is PROOF_READY but no test file at tests/Feature/AccountsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::store",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@store",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Accounts;\n\nclass AccountsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Accounts@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\\Banking\\Accounts@store is PROOF_READY but no test file at tests/Feature/AccountsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Accounts.php::App\\Http\\Controllers\\Banking\\Accounts::update",
        "fqmn": "App\\Http\\Controllers\\Banking\\Accounts@update",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Accounts;\n\nclass AccountsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Accounts@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\\Banking\\Accounts@update is PROOF_READY but no test file at tests/Feature/AccountsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Reconciliations.php::App\\Http\\Controllers\\Banking\\Reconciliations::calculate",
        "fqmn": "App\\Http\\Controllers\\Banking\\Reconciliations@calculate",
        "expected_test_path": "tests/Feature/ReconciliationsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Reconciliations;\n\nclass ReconciliationsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Reconciliations@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Banking\\Reconciliations@calculate is PROOF_READY but no test file at tests/Feature/ReconciliationsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Reconciliations.php::App\\Http\\Controllers\\Banking\\Reconciliations::create",
        "fqmn": "App\\Http\\Controllers\\Banking\\Reconciliations@create",
        "expected_test_path": "tests/Feature/ReconciliationsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Reconciliations;\n\nclass ReconciliationsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Reconciliations@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\\Http\\Controllers\\Banking\\Reconciliations@create is PROOF_READY but no test file at tests/Feature/ReconciliationsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Reconciliations.php::App\\Http\\Controllers\\Banking\\Reconciliations::destroy",
        "fqmn": "App\\Http\\Controllers\\Banking\\Reconciliations@destroy",
        "expected_test_path": "tests/Feature/ReconciliationsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Reconciliations;\n\nclass ReconciliationsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Reconciliations@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Banking\\Reconciliations@destroy is PROOF_READY but no test file at tests/Feature/ReconciliationsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Reconciliations.php::App\\Http\\Controllers\\Banking\\Reconciliations::edit",
        "fqmn": "App\\Http\\Controllers\\Banking\\Reconciliations@edit",
        "expected_test_path": "tests/Feature/ReconciliationsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Reconciliations;\n\nclass ReconciliationsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Reconciliations@edit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_edit_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Banking\\Reconciliations@edit is PROOF_READY but no test file at tests/Feature/ReconciliationsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Reconciliations.php::App\\Http\\Controllers\\Banking\\Reconciliations::getOpeningBalance",
        "fqmn": "App\\Http\\Controllers\\Banking\\Reconciliations@getOpeningBalance",
        "expected_test_path": "tests/Feature/ReconciliationsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Reconciliations;\n\nclass ReconciliationsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Reconciliations@getOpeningBalance\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getopeningbalance_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Banking\\Reconciliations@getOpeningBalance is PROOF_READY but no test file at tests/Feature/ReconciliationsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Reconciliations.php::App\\Http\\Controllers\\Banking\\Reconciliations::index",
        "fqmn": "App\\Http\\Controllers\\Banking\\Reconciliations@index",
        "expected_test_path": "tests/Feature/ReconciliationsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Reconciliations;\n\nclass ReconciliationsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Reconciliations@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\\Banking\\Reconciliations@index is PROOF_READY but no test file at tests/Feature/ReconciliationsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Reconciliations.php::App\\Http\\Controllers\\Banking\\Reconciliations::show",
        "fqmn": "App\\Http\\Controllers\\Banking\\Reconciliations@show",
        "expected_test_path": "tests/Feature/ReconciliationsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Reconciliations;\n\nclass ReconciliationsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Reconciliations@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\\Banking\\Reconciliations@show is PROOF_READY but no test file at tests/Feature/ReconciliationsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Reconciliations.php::App\\Http\\Controllers\\Banking\\Reconciliations::store",
        "fqmn": "App\\Http\\Controllers\\Banking\\Reconciliations@store",
        "expected_test_path": "tests/Feature/ReconciliationsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Reconciliations;\n\nclass ReconciliationsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Reconciliations@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\\Banking\\Reconciliations@store is PROOF_READY but no test file at tests/Feature/ReconciliationsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Reconciliations.php::App\\Http\\Controllers\\Banking\\Reconciliations::update",
        "fqmn": "App\\Http\\Controllers\\Banking\\Reconciliations@update",
        "expected_test_path": "tests/Feature/ReconciliationsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Reconciliations;\n\nclass ReconciliationsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Reconciliations@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\\Banking\\Reconciliations@update is PROOF_READY but no test file at tests/Feature/ReconciliationsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/RecurringTransactions.php::App\\Http\\Controllers\\Banking\\RecurringTransactions::create",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@create",
        "expected_test_path": "tests/Feature/RecurringTransactionsTest.php",
        "intent": null,
        "intent_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\\Banking\\RecurringTransactions;\n\nclass RecurringTransactionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\RecurringTransactions@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Banking\\RecurringTransactions@create is PROOF_READY but no test file at tests/Feature/RecurringTransactionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/RecurringTransactions.php::App\\Http\\Controllers\\Banking\\RecurringTransactions::duplicate",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@duplicate",
        "expected_test_path": "tests/Feature/RecurringTransactionsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\RecurringTransactions;\n\nclass RecurringTransactionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\RecurringTransactions@duplicate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_duplicate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Banking\\RecurringTransactions@duplicate is PROOF_READY but no test file at tests/Feature/RecurringTransactionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/RecurringTransactions.php::App\\Http\\Controllers\\Banking\\RecurringTransactions::edit",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@edit",
        "expected_test_path": "tests/Feature/RecurringTransactionsTest.php",
        "intent": null,
        "intent_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\\Banking\\RecurringTransactions;\n\nclass RecurringTransactionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\RecurringTransactions@edit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_edit_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Banking\\RecurringTransactions@edit is PROOF_READY but no test file at tests/Feature/RecurringTransactionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/RecurringTransactions.php::App\\Http\\Controllers\\Banking\\RecurringTransactions::end",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@end",
        "expected_test_path": "tests/Feature/RecurringTransactionsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\RecurringTransactions;\n\nclass RecurringTransactionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\RecurringTransactions@end\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_end_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Banking\\RecurringTransactions@end is PROOF_READY but no test file at tests/Feature/RecurringTransactionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/RecurringTransactions.php::App\\Http\\Controllers\\Banking\\RecurringTransactions::export",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@export",
        "expected_test_path": "tests/Feature/RecurringTransactionsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\RecurringTransactions;\n\nclass RecurringTransactionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\RecurringTransactions@export\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_export_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Banking\\RecurringTransactions@export is PROOF_READY but no test file at tests/Feature/RecurringTransactionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/RecurringTransactions.php::App\\Http\\Controllers\\Banking\\RecurringTransactions::import",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@import",
        "expected_test_path": "tests/Feature/RecurringTransactionsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\RecurringTransactions;\n\nclass RecurringTransactionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\RecurringTransactions@import\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_import_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Banking\\RecurringTransactions@import is PROOF_READY but no test file at tests/Feature/RecurringTransactionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/RecurringTransactions.php::App\\Http\\Controllers\\Banking\\RecurringTransactions::index",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@index",
        "expected_test_path": "tests/Feature/RecurringTransactionsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\RecurringTransactions;\n\nclass RecurringTransactionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\RecurringTransactions@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\\Banking\\RecurringTransactions@index is PROOF_READY but no test file at tests/Feature/RecurringTransactionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/RecurringTransactions.php::App\\Http\\Controllers\\Banking\\RecurringTransactions::show",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@show",
        "expected_test_path": "tests/Feature/RecurringTransactionsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\RecurringTransactions;\n\nclass RecurringTransactionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\RecurringTransactions@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\\Banking\\RecurringTransactions@show is PROOF_READY but no test file at tests/Feature/RecurringTransactionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/RecurringTransactions.php::App\\Http\\Controllers\\Banking\\RecurringTransactions::store",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@store",
        "expected_test_path": "tests/Feature/RecurringTransactionsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\RecurringTransactions;\n\nclass RecurringTransactionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\RecurringTransactions@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\\Banking\\RecurringTransactions@store is PROOF_READY but no test file at tests/Feature/RecurringTransactionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/RecurringTransactions.php::App\\Http\\Controllers\\Banking\\RecurringTransactions::update",
        "fqmn": "App\\Http\\Controllers\\Banking\\RecurringTransactions@update",
        "expected_test_path": "tests/Feature/RecurringTransactionsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\RecurringTransactions;\n\nclass RecurringTransactionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\RecurringTransactions@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\\Banking\\RecurringTransactions@update is PROOF_READY but no test file at tests/Feature/RecurringTransactionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::connect",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@connect",
        "expected_test_path": "tests/Feature/TransactionsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Transactions;\n\nclass TransactionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Transactions@connect\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_connect_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Banking\\Transactions@connect is PROOF_READY but no test file at tests/Feature/TransactionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::create",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@create",
        "expected_test_path": "tests/Feature/TransactionsTest.php",
        "intent": null,
        "intent_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\\Banking\\Transactions;\n\nclass TransactionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Transactions@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Banking\\Transactions@create is PROOF_READY but no test file at tests/Feature/TransactionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::destroy",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@destroy",
        "expected_test_path": "tests/Feature/TransactionsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Transactions;\n\nclass TransactionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Transactions@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Banking\\Transactions@destroy is PROOF_READY but no test file at tests/Feature/TransactionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::dial",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@dial",
        "expected_test_path": "tests/Feature/TransactionsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Transactions;\n\nclass TransactionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Transactions@dial\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_dial_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Banking\\Transactions@dial is PROOF_READY but no test file at tests/Feature/TransactionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::duplicate",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@duplicate",
        "expected_test_path": "tests/Feature/TransactionsTest.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\\Banking\\Transactions;\n\nclass TransactionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Transactions@duplicate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_duplicate_behaves_correctly(): void\n    {\n\n        // 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\\Banking\\Transactions@duplicate is PROOF_READY but no test file at tests/Feature/TransactionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::edit",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@edit",
        "expected_test_path": "tests/Feature/TransactionsTest.php",
        "intent": null,
        "intent_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\\Banking\\Transactions;\n\nclass TransactionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Transactions@edit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_edit_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Banking\\Transactions@edit is PROOF_READY but no test file at tests/Feature/TransactionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::emailTransaction",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@emailTransaction",
        "expected_test_path": "tests/Feature/TransactionsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Transactions;\n\nclass TransactionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Transactions@emailTransaction\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_emailtransaction_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Banking\\Transactions@emailTransaction is PROOF_READY but no test file at tests/Feature/TransactionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::export",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@export",
        "expected_test_path": "tests/Feature/TransactionsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Transactions;\n\nclass TransactionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Transactions@export\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_export_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Banking\\Transactions@export is PROOF_READY but no test file at tests/Feature/TransactionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::import",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@import",
        "expected_test_path": "tests/Feature/TransactionsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Transactions;\n\nclass TransactionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Transactions@import\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_import_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Banking\\Transactions@import is PROOF_READY but no test file at tests/Feature/TransactionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::index",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@index",
        "expected_test_path": "tests/Feature/TransactionsTest.php",
        "intent": null,
        "intent_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\\Banking\\Transactions;\n\nclass TransactionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Transactions@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\\Banking\\Transactions@index is PROOF_READY but no test file at tests/Feature/TransactionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::pdfTransaction",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@pdfTransaction",
        "expected_test_path": "tests/Feature/TransactionsTest.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\\Banking\\Transactions;\n\nclass TransactionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Transactions@pdfTransaction\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_pdftransaction_behaves_correctly(): void\n    {\n\n        // 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\\Banking\\Transactions@pdfTransaction is PROOF_READY but no test file at tests/Feature/TransactionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::printTransaction",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@printTransaction",
        "expected_test_path": "tests/Feature/TransactionsTest.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\\Banking\\Transactions;\n\nclass TransactionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Transactions@printTransaction\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_printtransaction_behaves_correctly(): void\n    {\n\n        // 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\\Banking\\Transactions@printTransaction is PROOF_READY but no test file at tests/Feature/TransactionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::show",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@show",
        "expected_test_path": "tests/Feature/TransactionsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Transactions;\n\nclass TransactionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Transactions@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\\Banking\\Transactions@show is PROOF_READY but no test file at tests/Feature/TransactionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::store",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@store",
        "expected_test_path": "tests/Feature/TransactionsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Transactions;\n\nclass TransactionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Transactions@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\\Banking\\Transactions@store is PROOF_READY but no test file at tests/Feature/TransactionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Transactions.php::App\\Http\\Controllers\\Banking\\Transactions::update",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transactions@update",
        "expected_test_path": "tests/Feature/TransactionsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Transactions;\n\nclass TransactionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Transactions@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\\Banking\\Transactions@update is PROOF_READY but no test file at tests/Feature/TransactionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::create",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@create",
        "expected_test_path": "tests/Feature/TransfersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Transfers;\n\nclass TransfersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Transfers@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\\Http\\Controllers\\Banking\\Transfers@create is PROOF_READY but no test file at tests/Feature/TransfersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::destroy",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@destroy",
        "expected_test_path": "tests/Feature/TransfersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Transfers;\n\nclass TransfersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Transfers@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Banking\\Transfers@destroy is PROOF_READY but no test file at tests/Feature/TransfersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::duplicate",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@duplicate",
        "expected_test_path": "tests/Feature/TransfersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Transfers;\n\nclass TransfersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Transfers@duplicate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_duplicate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Banking\\Transfers@duplicate is PROOF_READY but no test file at tests/Feature/TransfersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::edit",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@edit",
        "expected_test_path": "tests/Feature/TransfersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Transfers;\n\nclass TransfersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Transfers@edit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_edit_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Banking\\Transfers@edit is PROOF_READY but no test file at tests/Feature/TransfersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::export",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@export",
        "expected_test_path": "tests/Feature/TransfersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Transfers;\n\nclass TransfersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Transfers@export\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_export_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Banking\\Transfers@export is PROOF_READY but no test file at tests/Feature/TransfersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::import",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@import",
        "expected_test_path": "tests/Feature/TransfersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Transfers;\n\nclass TransfersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Transfers@import\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_import_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Banking\\Transfers@import is PROOF_READY but no test file at tests/Feature/TransfersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::index",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@index",
        "expected_test_path": "tests/Feature/TransfersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Transfers;\n\nclass TransfersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Transfers@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\\Banking\\Transfers@index is PROOF_READY but no test file at tests/Feature/TransfersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::pdfTransfer",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@pdfTransfer",
        "expected_test_path": "tests/Feature/TransfersTest.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\\Banking\\Transfers;\n\nclass TransfersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Transfers@pdfTransfer\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_pdftransfer_behaves_correctly(): void\n    {\n\n        // 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\\Banking\\Transfers@pdfTransfer is PROOF_READY but no test file at tests/Feature/TransfersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::printTransfer",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@printTransfer",
        "expected_test_path": "tests/Feature/TransfersTest.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\\Banking\\Transfers;\n\nclass TransfersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Transfers@printTransfer\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_printtransfer_behaves_correctly(): void\n    {\n\n        // 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\\Banking\\Transfers@printTransfer is PROOF_READY but no test file at tests/Feature/TransfersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::show",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@show",
        "expected_test_path": "tests/Feature/TransfersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Transfers;\n\nclass TransfersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Transfers@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\\Banking\\Transfers@show is PROOF_READY but no test file at tests/Feature/TransfersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::store",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@store",
        "expected_test_path": "tests/Feature/TransfersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Transfers;\n\nclass TransfersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Transfers@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\\Banking\\Transfers@store is PROOF_READY but no test file at tests/Feature/TransfersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Banking/Transfers.php::App\\Http\\Controllers\\Banking\\Transfers::update",
        "fqmn": "App\\Http\\Controllers\\Banking\\Transfers@update",
        "expected_test_path": "tests/Feature/TransfersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Transfers;\n\nclass TransfersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Banking\\Transfers@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\\Banking\\Transfers@update is PROOF_READY but no test file at tests/Feature/TransfersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/BulkActions.php::App\\Http\\Controllers\\Common\\BulkActions::action",
        "fqmn": "App\\Http\\Controllers\\Common\\BulkActions@action",
        "expected_test_path": "tests/Feature/BulkActionsTest.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\\Common\\BulkActions;\n\nclass BulkActionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\BulkActions@action\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_action_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Common\\BulkActions@action is PROOF_READY but no test file at tests/Feature/BulkActionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::autocomplete",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@autocomplete",
        "expected_test_path": "tests/Feature/CompaniesTest.php",
        "intent": null,
        "intent_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\\Common\\Companies;\n\nclass CompaniesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Companies@autocomplete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_autocomplete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Common\\Companies@autocomplete is PROOF_READY but no test file at tests/Feature/CompaniesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::create",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@create",
        "expected_test_path": "tests/Feature/CompaniesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Companies;\n\nclass CompaniesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Companies@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\\Http\\Controllers\\Common\\Companies@create is PROOF_READY but no test file at tests/Feature/CompaniesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::destroy",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@destroy",
        "expected_test_path": "tests/Feature/CompaniesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Companies;\n\nclass CompaniesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Companies@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Common\\Companies@destroy is PROOF_READY but no test file at tests/Feature/CompaniesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::disable",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@disable",
        "expected_test_path": "tests/Feature/CompaniesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Companies;\n\nclass CompaniesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Companies@disable\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_disable_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Common\\Companies@disable is PROOF_READY but no test file at tests/Feature/CompaniesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::edit",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@edit",
        "expected_test_path": "tests/Feature/CompaniesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Companies;\n\nclass CompaniesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Companies@edit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_edit_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Common\\Companies@edit is PROOF_READY but no test file at tests/Feature/CompaniesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::enable",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@enable",
        "expected_test_path": "tests/Feature/CompaniesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Companies;\n\nclass CompaniesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Companies@enable\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_enable_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Common\\Companies@enable is PROOF_READY but no test file at tests/Feature/CompaniesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::index",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@index",
        "expected_test_path": "tests/Feature/CompaniesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Companies;\n\nclass CompaniesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Companies@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\\Common\\Companies@index is PROOF_READY but no test file at tests/Feature/CompaniesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::show",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@show",
        "expected_test_path": "tests/Feature/CompaniesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Companies;\n\nclass CompaniesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Companies@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\\Common\\Companies@show is PROOF_READY but no test file at tests/Feature/CompaniesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::store",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@store",
        "expected_test_path": "tests/Feature/CompaniesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Companies;\n\nclass CompaniesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Companies@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\\Common\\Companies@store is PROOF_READY but no test file at tests/Feature/CompaniesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::switch",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@switch",
        "expected_test_path": "tests/Feature/CompaniesTest.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\\Common\\Companies;\n\nclass CompaniesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Companies@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        // Event::assertDispatched(<EventClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Common\\Companies@switch is PROOF_READY but no test file at tests/Feature/CompaniesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Companies.php::App\\Http\\Controllers\\Common\\Companies::update",
        "fqmn": "App\\Http\\Controllers\\Common\\Companies@update",
        "expected_test_path": "tests/Feature/CompaniesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Companies;\n\nclass CompaniesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Companies@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\\Common\\Companies@update is PROOF_READY but no test file at tests/Feature/CompaniesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Contacts.php::App\\Http\\Controllers\\Common\\Contacts::index",
        "fqmn": "App\\Http\\Controllers\\Common\\Contacts@index",
        "expected_test_path": "tests/Feature/ContactsTest.php",
        "intent": null,
        "intent_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\\Common\\Contacts;\n\nclass ContactsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Contacts@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\\Common\\Contacts@index is PROOF_READY but no test file at tests/Feature/ContactsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Dashboards.php::App\\Http\\Controllers\\Common\\Dashboards::create",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@create",
        "expected_test_path": "tests/Feature/DashboardsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Dashboards;\n\nclass DashboardsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Dashboards@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\\Http\\Controllers\\Common\\Dashboards@create is PROOF_READY but no test file at tests/Feature/DashboardsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Dashboards.php::App\\Http\\Controllers\\Common\\Dashboards::destroy",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@destroy",
        "expected_test_path": "tests/Feature/DashboardsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Dashboards;\n\nclass DashboardsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Dashboards@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Common\\Dashboards@destroy is PROOF_READY but no test file at tests/Feature/DashboardsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Dashboards.php::App\\Http\\Controllers\\Common\\Dashboards::disable",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@disable",
        "expected_test_path": "tests/Feature/DashboardsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Dashboards;\n\nclass DashboardsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Dashboards@disable\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_disable_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Common\\Dashboards@disable is PROOF_READY but no test file at tests/Feature/DashboardsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Dashboards.php::App\\Http\\Controllers\\Common\\Dashboards::edit",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@edit",
        "expected_test_path": "tests/Feature/DashboardsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Dashboards;\n\nclass DashboardsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Dashboards@edit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_edit_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Common\\Dashboards@edit is PROOF_READY but no test file at tests/Feature/DashboardsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Dashboards.php::App\\Http\\Controllers\\Common\\Dashboards::enable",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@enable",
        "expected_test_path": "tests/Feature/DashboardsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Dashboards;\n\nclass DashboardsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Dashboards@enable\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_enable_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Common\\Dashboards@enable is PROOF_READY but no test file at tests/Feature/DashboardsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Dashboards.php::App\\Http\\Controllers\\Common\\Dashboards::index",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@index",
        "expected_test_path": "tests/Feature/DashboardsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Dashboards;\n\nclass DashboardsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Dashboards@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\\Common\\Dashboards@index is PROOF_READY but no test file at tests/Feature/DashboardsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Dashboards.php::App\\Http\\Controllers\\Common\\Dashboards::show",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@show",
        "expected_test_path": "tests/Feature/DashboardsTest.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\\Common\\Dashboards;\n\nclass DashboardsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Dashboards@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        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Common\\Dashboards@show is PROOF_READY but no test file at tests/Feature/DashboardsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Dashboards.php::App\\Http\\Controllers\\Common\\Dashboards::store",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@store",
        "expected_test_path": "tests/Feature/DashboardsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Dashboards;\n\nclass DashboardsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Dashboards@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\\Common\\Dashboards@store is PROOF_READY but no test file at tests/Feature/DashboardsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Dashboards.php::App\\Http\\Controllers\\Common\\Dashboards::switch",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@switch",
        "expected_test_path": "tests/Feature/DashboardsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Dashboards;\n\nclass DashboardsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Dashboards@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        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Common\\Dashboards@switch is PROOF_READY but no test file at tests/Feature/DashboardsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Dashboards.php::App\\Http\\Controllers\\Common\\Dashboards::update",
        "fqmn": "App\\Http\\Controllers\\Common\\Dashboards@update",
        "expected_test_path": "tests/Feature/DashboardsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Dashboards;\n\nclass DashboardsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Dashboards@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\\Common\\Dashboards@update is PROOF_READY but no test file at tests/Feature/DashboardsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Import.php::App\\Http\\Controllers\\Common\\Import::create",
        "fqmn": "App\\Http\\Controllers\\Common\\Import@create",
        "expected_test_path": "tests/Feature/ImportTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Import;\n\nclass ImportTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Import@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\\Http\\Controllers\\Common\\Import@create is PROOF_READY but no test file at tests/Feature/ImportTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::autocomplete",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@autocomplete",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "intent": null,
        "intent_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\\Common\\Items;\n\nclass ItemsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Items@autocomplete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_autocomplete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Common\\Items@autocomplete is PROOF_READY but no test file at tests/Feature/ItemsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::create",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@create",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Items;\n\nclass ItemsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Items@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\\Http\\Controllers\\Common\\Items@create is PROOF_READY but no test file at tests/Feature/ItemsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::destroy",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@destroy",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Items;\n\nclass ItemsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Items@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Common\\Items@destroy is PROOF_READY but no test file at tests/Feature/ItemsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::disable",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@disable",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Items;\n\nclass ItemsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Items@disable\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_disable_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Common\\Items@disable is PROOF_READY but no test file at tests/Feature/ItemsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::duplicate",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@duplicate",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Items;\n\nclass ItemsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Items@duplicate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_duplicate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Common\\Items@duplicate is PROOF_READY but no test file at tests/Feature/ItemsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::edit",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@edit",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Items;\n\nclass ItemsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Items@edit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_edit_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Common\\Items@edit is PROOF_READY but no test file at tests/Feature/ItemsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::enable",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@enable",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Items;\n\nclass ItemsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Items@enable\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_enable_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Common\\Items@enable is PROOF_READY but no test file at tests/Feature/ItemsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::export",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@export",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Items;\n\nclass ItemsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Items@export\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_export_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Common\\Items@export is PROOF_READY but no test file at tests/Feature/ItemsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::import",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@import",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Items;\n\nclass ItemsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Items@import\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_import_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Common\\Items@import is PROOF_READY but no test file at tests/Feature/ItemsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::index",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@index",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Items;\n\nclass ItemsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Items@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\\Common\\Items@index is PROOF_READY but no test file at tests/Feature/ItemsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::show",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@show",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Items;\n\nclass ItemsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Items@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\\Common\\Items@show is PROOF_READY but no test file at tests/Feature/ItemsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::store",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@store",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Items;\n\nclass ItemsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Items@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\\Common\\Items@store is PROOF_READY but no test file at tests/Feature/ItemsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Items.php::App\\Http\\Controllers\\Common\\Items::update",
        "fqmn": "App\\Http\\Controllers\\Common\\Items@update",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Items;\n\nclass ItemsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Items@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\\Common\\Items@update is PROOF_READY but no test file at tests/Feature/ItemsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Plans.php::App\\Http\\Controllers\\Common\\Plans::check",
        "fqmn": "App\\Http\\Controllers\\Common\\Plans@check",
        "expected_test_path": "tests/Feature/PlansTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Plans;\n\nclass PlansTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Plans@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\\Common\\Plans@check is PROOF_READY but no test file at tests/Feature/PlansTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::create",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@create",
        "expected_test_path": "tests/Feature/ReportsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Reports;\n\nclass ReportsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Reports@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\\Http\\Controllers\\Common\\Reports@create is PROOF_READY but no test file at tests/Feature/ReportsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::destroy",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@destroy",
        "expected_test_path": "tests/Feature/ReportsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Reports;\n\nclass ReportsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Reports@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Common\\Reports@destroy is PROOF_READY but no test file at tests/Feature/ReportsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::duplicate",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@duplicate",
        "expected_test_path": "tests/Feature/ReportsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Reports;\n\nclass ReportsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Reports@duplicate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_duplicate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Common\\Reports@duplicate is PROOF_READY but no test file at tests/Feature/ReportsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::edit",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@edit",
        "expected_test_path": "tests/Feature/ReportsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Reports;\n\nclass ReportsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Reports@edit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_edit_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Common\\Reports@edit is PROOF_READY but no test file at tests/Feature/ReportsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::export",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@export",
        "expected_test_path": "tests/Feature/ReportsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Reports;\n\nclass ReportsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Reports@export\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_export_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Common\\Reports@export is PROOF_READY but no test file at tests/Feature/ReportsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::fields",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@fields",
        "expected_test_path": "tests/Feature/ReportsTest.php",
        "intent": null,
        "intent_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\\Common\\Reports;\n\nclass ReportsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Reports@fields\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_fields_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Common\\Reports@fields is PROOF_READY but no test file at tests/Feature/ReportsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::index",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@index",
        "expected_test_path": "tests/Feature/ReportsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Reports;\n\nclass ReportsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Reports@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\\Common\\Reports@index is PROOF_READY but no test file at tests/Feature/ReportsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::pdf",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@pdf",
        "expected_test_path": "tests/Feature/ReportsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Reports;\n\nclass ReportsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Reports@pdf\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_pdf_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Common\\Reports@pdf is PROOF_READY but no test file at tests/Feature/ReportsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::print",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@print",
        "expected_test_path": "tests/Feature/ReportsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Reports;\n\nclass ReportsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Reports@print\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_print_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Common\\Reports@print is PROOF_READY but no test file at tests/Feature/ReportsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::show",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@show",
        "expected_test_path": "tests/Feature/ReportsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Reports;\n\nclass ReportsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Reports@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\\Common\\Reports@show is PROOF_READY but no test file at tests/Feature/ReportsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::store",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@store",
        "expected_test_path": "tests/Feature/ReportsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Reports;\n\nclass ReportsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Reports@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\\Common\\Reports@store is PROOF_READY but no test file at tests/Feature/ReportsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Reports.php::App\\Http\\Controllers\\Common\\Reports::update",
        "fqmn": "App\\Http\\Controllers\\Common\\Reports@update",
        "expected_test_path": "tests/Feature/ReportsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Reports;\n\nclass ReportsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Reports@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\\Common\\Reports@update is PROOF_READY but no test file at tests/Feature/ReportsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Uploads.php::App\\Http\\Controllers\\Common\\Uploads::destroy",
        "fqmn": "App\\Http\\Controllers\\Common\\Uploads@destroy",
        "expected_test_path": "tests/Feature/UploadsTest.php",
        "intent": null,
        "intent_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\\Common\\Uploads;\n\nclass UploadsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Uploads@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\\Common\\Uploads@destroy is PROOF_READY but no test file at tests/Feature/UploadsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Uploads.php::App\\Http\\Controllers\\Common\\Uploads::download",
        "fqmn": "App\\Http\\Controllers\\Common\\Uploads@download",
        "expected_test_path": "tests/Feature/UploadsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Uploads;\n\nclass UploadsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Uploads@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\\Common\\Uploads@download is PROOF_READY but no test file at tests/Feature/UploadsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Uploads.php::App\\Http\\Controllers\\Common\\Uploads::get",
        "fqmn": "App\\Http\\Controllers\\Common\\Uploads@get",
        "expected_test_path": "tests/Feature/UploadsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Uploads;\n\nclass UploadsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Uploads@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\\Http\\Controllers\\Common\\Uploads@get is PROOF_READY but no test file at tests/Feature/UploadsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Uploads.php::App\\Http\\Controllers\\Common\\Uploads::inline",
        "fqmn": "App\\Http\\Controllers\\Common\\Uploads@inline",
        "expected_test_path": "tests/Feature/UploadsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Uploads;\n\nclass UploadsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Uploads@inline\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_inline_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Common\\Uploads@inline is PROOF_READY but no test file at tests/Feature/UploadsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Uploads.php::App\\Http\\Controllers\\Common\\Uploads::show",
        "fqmn": "App\\Http\\Controllers\\Common\\Uploads@show",
        "expected_test_path": "tests/Feature/UploadsTest.php",
        "intent": null,
        "intent_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\\Common\\Uploads;\n\nclass UploadsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Uploads@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\\Common\\Uploads@show is PROOF_READY but no test file at tests/Feature/UploadsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Widgets.php::App\\Http\\Controllers\\Common\\Widgets::destroy",
        "fqmn": "App\\Http\\Controllers\\Common\\Widgets@destroy",
        "expected_test_path": "tests/Feature/WidgetsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Widgets;\n\nclass WidgetsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Widgets@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Common\\Widgets@destroy is PROOF_READY but no test file at tests/Feature/WidgetsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Widgets.php::App\\Http\\Controllers\\Common\\Widgets::edit",
        "fqmn": "App\\Http\\Controllers\\Common\\Widgets@edit",
        "expected_test_path": "tests/Feature/WidgetsTest.php",
        "intent": null,
        "intent_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\\Common\\Widgets;\n\nclass WidgetsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Widgets@edit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_edit_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Common\\Widgets@edit is PROOF_READY but no test file at tests/Feature/WidgetsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Widgets.php::App\\Http\\Controllers\\Common\\Widgets::getData",
        "fqmn": "App\\Http\\Controllers\\Common\\Widgets@getData",
        "expected_test_path": "tests/Feature/WidgetsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Widgets;\n\nclass WidgetsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Widgets@getData\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getdata_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Common\\Widgets@getData is PROOF_READY but no test file at tests/Feature/WidgetsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Widgets.php::App\\Http\\Controllers\\Common\\Widgets::index",
        "fqmn": "App\\Http\\Controllers\\Common\\Widgets@index",
        "expected_test_path": "tests/Feature/WidgetsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Widgets;\n\nclass WidgetsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Widgets@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\\Common\\Widgets@index is PROOF_READY but no test file at tests/Feature/WidgetsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Widgets.php::App\\Http\\Controllers\\Common\\Widgets::show",
        "fqmn": "App\\Http\\Controllers\\Common\\Widgets@show",
        "expected_test_path": "tests/Feature/WidgetsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Widgets;\n\nclass WidgetsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Widgets@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\\Common\\Widgets@show is PROOF_READY but no test file at tests/Feature/WidgetsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Widgets.php::App\\Http\\Controllers\\Common\\Widgets::store",
        "fqmn": "App\\Http\\Controllers\\Common\\Widgets@store",
        "expected_test_path": "tests/Feature/WidgetsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Widgets;\n\nclass WidgetsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Widgets@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\\Common\\Widgets@store is PROOF_READY but no test file at tests/Feature/WidgetsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Common/Widgets.php::App\\Http\\Controllers\\Common\\Widgets::update",
        "fqmn": "App\\Http\\Controllers\\Common\\Widgets@update",
        "expected_test_path": "tests/Feature/WidgetsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Widgets;\n\nclass WidgetsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Common\\Widgets@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\\Common\\Widgets@update is PROOF_READY but no test file at tests/Feature/WidgetsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Install/Database.php::App\\Http\\Controllers\\Install\\Database::create",
        "fqmn": "App\\Http\\Controllers\\Install\\Database@create",
        "expected_test_path": "tests/Feature/DatabaseTest.php",
        "intent": null,
        "intent_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\\Install\\Database;\n\nclass DatabaseTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Install\\Database@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Install\\Database@create is PROOF_READY but no test file at tests/Feature/DatabaseTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Install/Database.php::App\\Http\\Controllers\\Install\\Database::store",
        "fqmn": "App\\Http\\Controllers\\Install\\Database@store",
        "expected_test_path": "tests/Feature/DatabaseTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Install\\Database;\n\nclass DatabaseTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Install\\Database@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\\Install\\Database@store is PROOF_READY but no test file at tests/Feature/DatabaseTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Install/Language.php::App\\Http\\Controllers\\Install\\Language::create",
        "fqmn": "App\\Http\\Controllers\\Install\\Language@create",
        "expected_test_path": "tests/Feature/LanguageTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Install\\Language;\n\nclass LanguageTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Install\\Language@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\\Http\\Controllers\\Install\\Language@create is PROOF_READY but no test file at tests/Feature/LanguageTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Install/Language.php::App\\Http\\Controllers\\Install\\Language::getLanguages",
        "fqmn": "App\\Http\\Controllers\\Install\\Language@getLanguages",
        "expected_test_path": "tests/Feature/LanguageTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Install\\Language;\n\nclass LanguageTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Install\\Language@getLanguages\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getlanguages_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Install\\Language@getLanguages is PROOF_READY but no test file at tests/Feature/LanguageTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Install/Language.php::App\\Http\\Controllers\\Install\\Language::store",
        "fqmn": "App\\Http\\Controllers\\Install\\Language@store",
        "expected_test_path": "tests/Feature/LanguageTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Install\\Language;\n\nclass LanguageTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Install\\Language@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\\Install\\Language@store is PROOF_READY but no test file at tests/Feature/LanguageTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Install/Requirements.php::App\\Http\\Controllers\\Install\\Requirements::show",
        "fqmn": "App\\Http\\Controllers\\Install\\Requirements@show",
        "expected_test_path": "tests/Feature/RequirementsTest.php",
        "intent": null,
        "intent_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\\Install\\Requirements;\n\nclass RequirementsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Install\\Requirements@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\\Install\\Requirements@show is PROOF_READY but no test file at tests/Feature/RequirementsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Install/Settings.php::App\\Http\\Controllers\\Install\\Settings::create",
        "fqmn": "App\\Http\\Controllers\\Install\\Settings@create",
        "expected_test_path": "tests/Feature/SettingsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Install\\Settings;\n\nclass SettingsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Install\\Settings@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\\Http\\Controllers\\Install\\Settings@create is PROOF_READY but no test file at tests/Feature/SettingsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Install/Settings.php::App\\Http\\Controllers\\Install\\Settings::store",
        "fqmn": "App\\Http\\Controllers\\Install\\Settings@store",
        "expected_test_path": "tests/Feature/SettingsTest.php",
        "intent": null,
        "intent_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\\Install\\Settings;\n\nclass SettingsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Install\\Settings@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\\Install\\Settings@store is PROOF_READY but no test file at tests/Feature/SettingsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Install/Updates.php::App\\Http\\Controllers\\Install\\Updates::changelog",
        "fqmn": "App\\Http\\Controllers\\Install\\Updates@changelog",
        "expected_test_path": "tests/Feature/UpdatesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Install\\Updates;\n\nclass UpdatesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Install\\Updates@changelog\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_changelog_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Install\\Updates@changelog is PROOF_READY but no test file at tests/Feature/UpdatesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Install/Updates.php::App\\Http\\Controllers\\Install\\Updates::check",
        "fqmn": "App\\Http\\Controllers\\Install\\Updates@check",
        "expected_test_path": "tests/Feature/UpdatesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched"
        ],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Install\\Updates;\n\nclass UpdatesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Install\\Updates@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\n        // 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->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Install\\Updates@check is PROOF_READY but no test file at tests/Feature/UpdatesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Install/Updates.php::App\\Http\\Controllers\\Install\\Updates::copyFiles",
        "fqmn": "App\\Http\\Controllers\\Install\\Updates@copyFiles",
        "expected_test_path": "tests/Feature/UpdatesTest.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\\Install\\Updates;\n\nclass UpdatesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Install\\Updates@copyFiles\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_copyfiles_behaves_correctly(): void\n    {\n\n        // 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\\Install\\Updates@copyFiles is PROOF_READY but no test file at tests/Feature/UpdatesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Install/Updates.php::App\\Http\\Controllers\\Install\\Updates::download",
        "fqmn": "App\\Http\\Controllers\\Install\\Updates@download",
        "expected_test_path": "tests/Feature/UpdatesTest.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\\Install\\Updates;\n\nclass UpdatesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Install\\Updates@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        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Install\\Updates@download is PROOF_READY but no test file at tests/Feature/UpdatesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Install/Updates.php::App\\Http\\Controllers\\Install\\Updates::finish",
        "fqmn": "App\\Http\\Controllers\\Install\\Updates@finish",
        "expected_test_path": "tests/Feature/UpdatesTest.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\\Install\\Updates;\n\nclass UpdatesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Install\\Updates@finish\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_finish_behaves_correctly(): void\n    {\n\n        // 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\\Install\\Updates@finish is PROOF_READY but no test file at tests/Feature/UpdatesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Install/Updates.php::App\\Http\\Controllers\\Install\\Updates::index",
        "fqmn": "App\\Http\\Controllers\\Install\\Updates@index",
        "expected_test_path": "tests/Feature/UpdatesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Install\\Updates;\n\nclass UpdatesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Install\\Updates@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\\Install\\Updates@index is PROOF_READY but no test file at tests/Feature/UpdatesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Install/Updates.php::App\\Http\\Controllers\\Install\\Updates::redirect",
        "fqmn": "App\\Http\\Controllers\\Install\\Updates@redirect",
        "expected_test_path": "tests/Feature/UpdatesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Install\\Updates;\n\nclass UpdatesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Install\\Updates@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        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Install\\Updates@redirect is PROOF_READY but no test file at tests/Feature/UpdatesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Install/Updates.php::App\\Http\\Controllers\\Install\\Updates::run",
        "fqmn": "App\\Http\\Controllers\\Install\\Updates@run",
        "expected_test_path": "tests/Feature/UpdatesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Install\\Updates;\n\nclass UpdatesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Install\\Updates@run\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_run_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Install\\Updates@run is PROOF_READY but no test file at tests/Feature/UpdatesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Install/Updates.php::App\\Http\\Controllers\\Install\\Updates::steps",
        "fqmn": "App\\Http\\Controllers\\Install\\Updates@steps",
        "expected_test_path": "tests/Feature/UpdatesTest.php",
        "intent": null,
        "intent_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\\Install\\Updates;\n\nclass UpdatesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Install\\Updates@steps\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_steps_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Install\\Updates@steps is PROOF_READY but no test file at tests/Feature/UpdatesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Install/Updates.php::App\\Http\\Controllers\\Install\\Updates::unzip",
        "fqmn": "App\\Http\\Controllers\\Install\\Updates@unzip",
        "expected_test_path": "tests/Feature/UpdatesTest.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\\Install\\Updates;\n\nclass UpdatesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Install\\Updates@unzip\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_unzip_behaves_correctly(): void\n    {\n\n        // 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\\Install\\Updates@unzip is PROOF_READY but no test file at tests/Feature/UpdatesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modals/Accounts.php::App\\Http\\Controllers\\Modals\\Accounts::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\Accounts@create",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "intent": null,
        "intent_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\\Modals\\Accounts;\n\nclass AccountsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modals\\Accounts@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Modals\\Accounts@create is PROOF_READY but no test file at tests/Feature/AccountsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modals/Accounts.php::App\\Http\\Controllers\\Modals\\Accounts::store",
        "fqmn": "App\\Http\\Controllers\\Modals\\Accounts@store",
        "expected_test_path": "tests/Feature/AccountsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Modals\\Accounts;\n\nclass AccountsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modals\\Accounts@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\\Modals\\Accounts@store is PROOF_READY but no test file at tests/Feature/AccountsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modals/Categories.php::App\\Http\\Controllers\\Modals\\Categories::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\Categories@create",
        "expected_test_path": "tests/Feature/CategoriesTest.php",
        "intent": null,
        "intent_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\\Modals\\Categories;\n\nclass CategoriesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modals\\Categories@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Modals\\Categories@create is PROOF_READY but no test file at tests/Feature/CategoriesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modals/Categories.php::App\\Http\\Controllers\\Modals\\Categories::store",
        "fqmn": "App\\Http\\Controllers\\Modals\\Categories@store",
        "expected_test_path": "tests/Feature/CategoriesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Modals\\Categories;\n\nclass CategoriesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modals\\Categories@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\\Modals\\Categories@store is PROOF_READY but no test file at tests/Feature/CategoriesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modals/Companies.php::App\\Http\\Controllers\\Modals\\Companies::edit",
        "fqmn": "App\\Http\\Controllers\\Modals\\Companies@edit",
        "expected_test_path": "tests/Feature/CompaniesTest.php",
        "intent": null,
        "intent_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\\Modals\\Companies;\n\nclass CompaniesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modals\\Companies@edit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_edit_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Modals\\Companies@edit is PROOF_READY but no test file at tests/Feature/CompaniesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modals/Currencies.php::App\\Http\\Controllers\\Modals\\Currencies::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\Currencies@create",
        "expected_test_path": "tests/Feature/CurrenciesTest.php",
        "intent": null,
        "intent_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\\Modals\\Currencies;\n\nclass CurrenciesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modals\\Currencies@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Modals\\Currencies@create is PROOF_READY but no test file at tests/Feature/CurrenciesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modals/Currencies.php::App\\Http\\Controllers\\Modals\\Currencies::store",
        "fqmn": "App\\Http\\Controllers\\Modals\\Currencies@store",
        "expected_test_path": "tests/Feature/CurrenciesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Modals\\Currencies;\n\nclass CurrenciesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modals\\Currencies@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\\Modals\\Currencies@store is PROOF_READY but no test file at tests/Feature/CurrenciesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modals/Customers.php::App\\Http\\Controllers\\Modals\\Customers::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\Customers@create",
        "expected_test_path": "tests/Feature/CustomersTest.php",
        "intent": null,
        "intent_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\\Modals\\Customers;\n\nclass CustomersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modals\\Customers@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Modals\\Customers@create is PROOF_READY but no test file at tests/Feature/CustomersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modals/Customers.php::App\\Http\\Controllers\\Modals\\Customers::edit",
        "fqmn": "App\\Http\\Controllers\\Modals\\Customers@edit",
        "expected_test_path": "tests/Feature/CustomersTest.php",
        "intent": null,
        "intent_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\\Modals\\Customers;\n\nclass CustomersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modals\\Customers@edit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_edit_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Modals\\Customers@edit is PROOF_READY but no test file at tests/Feature/CustomersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modals/Customers.php::App\\Http\\Controllers\\Modals\\Customers::store",
        "fqmn": "App\\Http\\Controllers\\Modals\\Customers@store",
        "expected_test_path": "tests/Feature/CustomersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Modals\\Customers;\n\nclass CustomersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modals\\Customers@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\\Modals\\Customers@store is PROOF_READY but no test file at tests/Feature/CustomersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modals/Customers.php::App\\Http\\Controllers\\Modals\\Customers::update",
        "fqmn": "App\\Http\\Controllers\\Modals\\Customers@update",
        "expected_test_path": "tests/Feature/CustomersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Modals\\Customers;\n\nclass CustomersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modals\\Customers@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\\Modals\\Customers@update is PROOF_READY but no test file at tests/Feature/CustomersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modals/DocumentItemColumns.php::App\\Http\\Controllers\\Modals\\DocumentItemColumns::edit",
        "fqmn": "App\\Http\\Controllers\\Modals\\DocumentItemColumns@edit",
        "expected_test_path": "tests/Feature/DocumentItemColumnsTest.php",
        "intent": null,
        "intent_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\\Modals\\DocumentItemColumns;\n\nclass DocumentItemColumnsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modals\\DocumentItemColumns@edit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_edit_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Modals\\DocumentItemColumns@edit is PROOF_READY but no test file at tests/Feature/DocumentItemColumnsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modals/DocumentItemColumns.php::App\\Http\\Controllers\\Modals\\DocumentItemColumns::update",
        "fqmn": "App\\Http\\Controllers\\Modals\\DocumentItemColumns@update",
        "expected_test_path": "tests/Feature/DocumentItemColumnsTest.php",
        "intent": null,
        "intent_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\\Modals\\DocumentItemColumns;\n\nclass DocumentItemColumnsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modals\\DocumentItemColumns@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\\Modals\\DocumentItemColumns@update is PROOF_READY but no test file at tests/Feature/DocumentItemColumnsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modals/DocumentTransactions.php::App\\Http\\Controllers\\Modals\\DocumentTransactions::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\DocumentTransactions@create",
        "expected_test_path": "tests/Feature/DocumentTransactionsTest.php",
        "intent": null,
        "intent_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\\Modals\\DocumentTransactions;\n\nclass DocumentTransactionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modals\\DocumentTransactions@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Modals\\DocumentTransactions@create is PROOF_READY but no test file at tests/Feature/DocumentTransactionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modals/DocumentTransactions.php::App\\Http\\Controllers\\Modals\\DocumentTransactions::destroy",
        "fqmn": "App\\Http\\Controllers\\Modals\\DocumentTransactions@destroy",
        "expected_test_path": "tests/Feature/DocumentTransactionsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Modals\\DocumentTransactions;\n\nclass DocumentTransactionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modals\\DocumentTransactions@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Modals\\DocumentTransactions@destroy is PROOF_READY but no test file at tests/Feature/DocumentTransactionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modals/DocumentTransactions.php::App\\Http\\Controllers\\Modals\\DocumentTransactions::edit",
        "fqmn": "App\\Http\\Controllers\\Modals\\DocumentTransactions@edit",
        "expected_test_path": "tests/Feature/DocumentTransactionsTest.php",
        "intent": null,
        "intent_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\\Modals\\DocumentTransactions;\n\nclass DocumentTransactionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modals\\DocumentTransactions@edit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_edit_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Modals\\DocumentTransactions@edit is PROOF_READY but no test file at tests/Feature/DocumentTransactionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modals/DocumentTransactions.php::App\\Http\\Controllers\\Modals\\DocumentTransactions::store",
        "fqmn": "App\\Http\\Controllers\\Modals\\DocumentTransactions@store",
        "expected_test_path": "tests/Feature/DocumentTransactionsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Modals\\DocumentTransactions;\n\nclass DocumentTransactionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modals\\DocumentTransactions@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\\Modals\\DocumentTransactions@store is PROOF_READY but no test file at tests/Feature/DocumentTransactionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modals/DocumentTransactions.php::App\\Http\\Controllers\\Modals\\DocumentTransactions::update",
        "fqmn": "App\\Http\\Controllers\\Modals\\DocumentTransactions@update",
        "expected_test_path": "tests/Feature/DocumentTransactionsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Modals\\DocumentTransactions;\n\nclass DocumentTransactionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modals\\DocumentTransactions@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\\Modals\\DocumentTransactions@update is PROOF_READY but no test file at tests/Feature/DocumentTransactionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modals/InvoiceEmails.php::App\\Http\\Controllers\\Modals\\InvoiceEmails::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\InvoiceEmails@create",
        "expected_test_path": "tests/Feature/InvoiceEmailsTest.php",
        "intent": null,
        "intent_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\\Modals\\InvoiceEmails;\n\nclass InvoiceEmailsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modals\\InvoiceEmails@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Modals\\InvoiceEmails@create is PROOF_READY but no test file at tests/Feature/InvoiceEmailsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modals/InvoiceEmails.php::App\\Http\\Controllers\\Modals\\InvoiceEmails::store",
        "fqmn": "App\\Http\\Controllers\\Modals\\InvoiceEmails@store",
        "expected_test_path": "tests/Feature/InvoiceEmailsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Modals\\InvoiceEmails;\n\nclass InvoiceEmailsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modals\\InvoiceEmails@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\\Modals\\InvoiceEmails@store is PROOF_READY but no test file at tests/Feature/InvoiceEmailsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modals/InvoiceShare.php::App\\Http\\Controllers\\Modals\\InvoiceShare::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\InvoiceShare@create",
        "expected_test_path": "tests/Feature/InvoiceShareTest.php",
        "intent": null,
        "intent_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\\Modals\\InvoiceShare;\n\nclass InvoiceShareTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modals\\InvoiceShare@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Modals\\InvoiceShare@create is PROOF_READY but no test file at tests/Feature/InvoiceShareTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modals/InvoiceTemplates.php::App\\Http\\Controllers\\Modals\\InvoiceTemplates::update",
        "fqmn": "App\\Http\\Controllers\\Modals\\InvoiceTemplates@update",
        "expected_test_path": "tests/Feature/InvoiceTemplatesTest.php",
        "intent": null,
        "intent_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\\Modals\\InvoiceTemplates;\n\nclass InvoiceTemplatesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modals\\InvoiceTemplates@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\\Modals\\InvoiceTemplates@update is PROOF_READY but no test file at tests/Feature/InvoiceTemplatesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modals/Items.php::App\\Http\\Controllers\\Modals\\Items::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\Items@create",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "intent": null,
        "intent_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\\Modals\\Items;\n\nclass ItemsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modals\\Items@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Modals\\Items@create is PROOF_READY but no test file at tests/Feature/ItemsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modals/Items.php::App\\Http\\Controllers\\Modals\\Items::store",
        "fqmn": "App\\Http\\Controllers\\Modals\\Items@store",
        "expected_test_path": "tests/Feature/ItemsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Modals\\Items;\n\nclass ItemsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modals\\Items@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\\Modals\\Items@store is PROOF_READY but no test file at tests/Feature/ItemsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modals/Taxes.php::App\\Http\\Controllers\\Modals\\Taxes::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\Taxes@create",
        "expected_test_path": "tests/Feature/TaxesTest.php",
        "intent": null,
        "intent_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\\Modals\\Taxes;\n\nclass TaxesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modals\\Taxes@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Modals\\Taxes@create is PROOF_READY but no test file at tests/Feature/TaxesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modals/Taxes.php::App\\Http\\Controllers\\Modals\\Taxes::store",
        "fqmn": "App\\Http\\Controllers\\Modals\\Taxes@store",
        "expected_test_path": "tests/Feature/TaxesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Modals\\Taxes;\n\nclass TaxesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modals\\Taxes@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\\Modals\\Taxes@store is PROOF_READY but no test file at tests/Feature/TaxesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modals/TransactionEmails.php::App\\Http\\Controllers\\Modals\\TransactionEmails::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\TransactionEmails@create",
        "expected_test_path": "tests/Feature/TransactionEmailsTest.php",
        "intent": null,
        "intent_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\\Modals\\TransactionEmails;\n\nclass TransactionEmailsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modals\\TransactionEmails@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Modals\\TransactionEmails@create is PROOF_READY but no test file at tests/Feature/TransactionEmailsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modals/TransactionEmails.php::App\\Http\\Controllers\\Modals\\TransactionEmails::store",
        "fqmn": "App\\Http\\Controllers\\Modals\\TransactionEmails@store",
        "expected_test_path": "tests/Feature/TransactionEmailsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Modals\\TransactionEmails;\n\nclass TransactionEmailsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modals\\TransactionEmails@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\\Modals\\TransactionEmails@store is PROOF_READY but no test file at tests/Feature/TransactionEmailsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modals/TransactionShare.php::App\\Http\\Controllers\\Modals\\TransactionShare::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\TransactionShare@create",
        "expected_test_path": "tests/Feature/TransactionShareTest.php",
        "intent": null,
        "intent_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\\Modals\\TransactionShare;\n\nclass TransactionShareTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modals\\TransactionShare@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Modals\\TransactionShare@create is PROOF_READY but no test file at tests/Feature/TransactionShareTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modals/TransferTemplates.php::App\\Http\\Controllers\\Modals\\TransferTemplates::update",
        "fqmn": "App\\Http\\Controllers\\Modals\\TransferTemplates@update",
        "expected_test_path": "tests/Feature/TransferTemplatesTest.php",
        "intent": null,
        "intent_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\\Modals\\TransferTemplates;\n\nclass TransferTemplatesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modals\\TransferTemplates@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\\Modals\\TransferTemplates@update is PROOF_READY but no test file at tests/Feature/TransferTemplatesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modals/Vendors.php::App\\Http\\Controllers\\Modals\\Vendors::create",
        "fqmn": "App\\Http\\Controllers\\Modals\\Vendors@create",
        "expected_test_path": "tests/Feature/VendorsTest.php",
        "intent": null,
        "intent_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\\Modals\\Vendors;\n\nclass VendorsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modals\\Vendors@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Modals\\Vendors@create is PROOF_READY but no test file at tests/Feature/VendorsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modals/Vendors.php::App\\Http\\Controllers\\Modals\\Vendors::edit",
        "fqmn": "App\\Http\\Controllers\\Modals\\Vendors@edit",
        "expected_test_path": "tests/Feature/VendorsTest.php",
        "intent": null,
        "intent_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\\Modals\\Vendors;\n\nclass VendorsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modals\\Vendors@edit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_edit_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Modals\\Vendors@edit is PROOF_READY but no test file at tests/Feature/VendorsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modals/Vendors.php::App\\Http\\Controllers\\Modals\\Vendors::store",
        "fqmn": "App\\Http\\Controllers\\Modals\\Vendors@store",
        "expected_test_path": "tests/Feature/VendorsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Modals\\Vendors;\n\nclass VendorsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modals\\Vendors@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\\Modals\\Vendors@store is PROOF_READY but no test file at tests/Feature/VendorsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modals/Vendors.php::App\\Http\\Controllers\\Modals\\Vendors::update",
        "fqmn": "App\\Http\\Controllers\\Modals\\Vendors@update",
        "expected_test_path": "tests/Feature/VendorsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Modals\\Vendors;\n\nclass VendorsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modals\\Vendors@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\\Modals\\Vendors@update is PROOF_READY but no test file at tests/Feature/VendorsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modules/ApiKey.php::App\\Http\\Controllers\\Modules\\ApiKey::create",
        "fqmn": "App\\Http\\Controllers\\Modules\\ApiKey@create",
        "expected_test_path": "tests/Feature/ApiKeyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Modules\\ApiKey;\n\nclass ApiKeyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modules\\ApiKey@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\\Http\\Controllers\\Modules\\ApiKey@create is PROOF_READY but no test file at tests/Feature/ApiKeyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modules/ApiKey.php::App\\Http\\Controllers\\Modules\\ApiKey::store",
        "fqmn": "App\\Http\\Controllers\\Modules\\ApiKey@store",
        "expected_test_path": "tests/Feature/ApiKeyTest.php",
        "intent": null,
        "intent_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\\Modules\\ApiKey;\n\nclass ApiKeyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modules\\ApiKey@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\\Modules\\ApiKey@store is PROOF_READY but no test file at tests/Feature/ApiKeyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modules/Home.php::App\\Http\\Controllers\\Modules\\Home::index",
        "fqmn": "App\\Http\\Controllers\\Modules\\Home@index",
        "expected_test_path": "tests/Feature/HomeTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Modules\\Home;\n\nclass HomeTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modules\\Home@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\\Modules\\Home@index is PROOF_READY but no test file at tests/Feature/HomeTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modules/Home.php::App\\Http\\Controllers\\Modules\\Home::show",
        "fqmn": "App\\Http\\Controllers\\Modules\\Home@show",
        "expected_test_path": "tests/Feature/HomeTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Modules\\Home;\n\nclass HomeTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modules\\Home@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\\Modules\\Home@show is PROOF_READY but no test file at tests/Feature/HomeTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::copy",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@copy",
        "expected_test_path": "tests/Feature/ItemTest.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\\Modules\\Item;\n\nclass ItemTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modules\\Item@copy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_copy_behaves_correctly(): void\n    {\n\n        // 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\\Modules\\Item@copy is PROOF_READY but no test file at tests/Feature/ItemTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::disable",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@disable",
        "expected_test_path": "tests/Feature/ItemTest.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\\Modules\\Item;\n\nclass ItemTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modules\\Item@disable\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_disable_behaves_correctly(): void\n    {\n\n        // 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\\Modules\\Item@disable is PROOF_READY but no test file at tests/Feature/ItemTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::documentation",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@documentation",
        "expected_test_path": "tests/Feature/ItemTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Modules\\Item;\n\nclass ItemTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modules\\Item@documentation\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_documentation_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Modules\\Item@documentation is PROOF_READY but no test file at tests/Feature/ItemTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::download",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@download",
        "expected_test_path": "tests/Feature/ItemTest.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\\Modules\\Item;\n\nclass ItemTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modules\\Item@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        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Modules\\Item@download is PROOF_READY but no test file at tests/Feature/ItemTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::enable",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@enable",
        "expected_test_path": "tests/Feature/ItemTest.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\\Modules\\Item;\n\nclass ItemTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modules\\Item@enable\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_enable_behaves_correctly(): void\n    {\n\n        // 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\\Modules\\Item@enable is PROOF_READY but no test file at tests/Feature/ItemTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::install",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@install",
        "expected_test_path": "tests/Feature/ItemTest.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\\Modules\\Item;\n\nclass ItemTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modules\\Item@install\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_install_behaves_correctly(): void\n    {\n\n        // 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\\Modules\\Item@install is PROOF_READY but no test file at tests/Feature/ItemTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::releases",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@releases",
        "expected_test_path": "tests/Feature/ItemTest.php",
        "intent": null,
        "intent_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\\Modules\\Item;\n\nclass ItemTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modules\\Item@releases\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_releases_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Modules\\Item@releases is PROOF_READY but no test file at tests/Feature/ItemTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::reviews",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@reviews",
        "expected_test_path": "tests/Feature/ItemTest.php",
        "intent": null,
        "intent_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\\Modules\\Item;\n\nclass ItemTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modules\\Item@reviews\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_reviews_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Modules\\Item@reviews is PROOF_READY but no test file at tests/Feature/ItemTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::show",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@show",
        "expected_test_path": "tests/Feature/ItemTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Modules\\Item;\n\nclass ItemTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modules\\Item@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\\Modules\\Item@show is PROOF_READY but no test file at tests/Feature/ItemTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::steps",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@steps",
        "expected_test_path": "tests/Feature/ItemTest.php",
        "intent": null,
        "intent_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\\Modules\\Item;\n\nclass ItemTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modules\\Item@steps\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_steps_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Modules\\Item@steps is PROOF_READY but no test file at tests/Feature/ItemTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::uninstall",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@uninstall",
        "expected_test_path": "tests/Feature/ItemTest.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\\Modules\\Item;\n\nclass ItemTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modules\\Item@uninstall\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_uninstall_behaves_correctly(): void\n    {\n\n        // 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\\Modules\\Item@uninstall is PROOF_READY but no test file at tests/Feature/ItemTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modules/Item.php::App\\Http\\Controllers\\Modules\\Item::unzip",
        "fqmn": "App\\Http\\Controllers\\Modules\\Item@unzip",
        "expected_test_path": "tests/Feature/ItemTest.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\\Modules\\Item;\n\nclass ItemTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modules\\Item@unzip\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_unzip_behaves_correctly(): void\n    {\n\n        // 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\\Modules\\Item@unzip is PROOF_READY but no test file at tests/Feature/ItemTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modules/My.php::App\\Http\\Controllers\\Modules\\My::index",
        "fqmn": "App\\Http\\Controllers\\Modules\\My@index",
        "expected_test_path": "tests/Feature/MyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Modules\\My;\n\nclass MyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modules\\My@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\\Modules\\My@index is PROOF_READY but no test file at tests/Feature/MyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modules/Tiles.php::App\\Http\\Controllers\\Modules\\Tiles::categoryModules",
        "fqmn": "App\\Http\\Controllers\\Modules\\Tiles@categoryModules",
        "expected_test_path": "tests/Feature/TilesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Modules\\Tiles;\n\nclass TilesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modules\\Tiles@categoryModules\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_categorymodules_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Modules\\Tiles@categoryModules is PROOF_READY but no test file at tests/Feature/TilesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modules/Tiles.php::App\\Http\\Controllers\\Modules\\Tiles::freeModules",
        "fqmn": "App\\Http\\Controllers\\Modules\\Tiles@freeModules",
        "expected_test_path": "tests/Feature/TilesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Modules\\Tiles;\n\nclass TilesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modules\\Tiles@freeModules\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_freemodules_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Modules\\Tiles@freeModules is PROOF_READY but no test file at tests/Feature/TilesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modules/Tiles.php::App\\Http\\Controllers\\Modules\\Tiles::loadMore",
        "fqmn": "App\\Http\\Controllers\\Modules\\Tiles@loadMore",
        "expected_test_path": "tests/Feature/TilesTest.php",
        "intent": null,
        "intent_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\\Modules\\Tiles;\n\nclass TilesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modules\\Tiles@loadMore\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_loadmore_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Modules\\Tiles@loadMore is PROOF_READY but no test file at tests/Feature/TilesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modules/Tiles.php::App\\Http\\Controllers\\Modules\\Tiles::newModules",
        "fqmn": "App\\Http\\Controllers\\Modules\\Tiles@newModules",
        "expected_test_path": "tests/Feature/TilesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Modules\\Tiles;\n\nclass TilesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modules\\Tiles@newModules\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_newmodules_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Modules\\Tiles@newModules is PROOF_READY but no test file at tests/Feature/TilesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modules/Tiles.php::App\\Http\\Controllers\\Modules\\Tiles::paidModules",
        "fqmn": "App\\Http\\Controllers\\Modules\\Tiles@paidModules",
        "expected_test_path": "tests/Feature/TilesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Modules\\Tiles;\n\nclass TilesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modules\\Tiles@paidModules\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_paidmodules_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Modules\\Tiles@paidModules is PROOF_READY but no test file at tests/Feature/TilesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modules/Tiles.php::App\\Http\\Controllers\\Modules\\Tiles::searchModules",
        "fqmn": "App\\Http\\Controllers\\Modules\\Tiles@searchModules",
        "expected_test_path": "tests/Feature/TilesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Modules\\Tiles;\n\nclass TilesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modules\\Tiles@searchModules\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_searchmodules_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Modules\\Tiles@searchModules is PROOF_READY but no test file at tests/Feature/TilesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Modules/Tiles.php::App\\Http\\Controllers\\Modules\\Tiles::vendorModules",
        "fqmn": "App\\Http\\Controllers\\Modules\\Tiles@vendorModules",
        "expected_test_path": "tests/Feature/TilesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Modules\\Tiles;\n\nclass TilesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Modules\\Tiles@vendorModules\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_vendormodules_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Modules\\Tiles@vendorModules is PROOF_READY but no test file at tests/Feature/TilesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Portal/Dashboard.php::App\\Http\\Controllers\\Portal\\Dashboard::index",
        "fqmn": "App\\Http\\Controllers\\Portal\\Dashboard@index",
        "expected_test_path": "tests/Feature/DashboardTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Portal\\Dashboard;\n\nclass DashboardTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Portal\\Dashboard@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\\Portal\\Dashboard@index is PROOF_READY but no test file at tests/Feature/DashboardTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Portal/Invoices.php::App\\Http\\Controllers\\Portal\\Invoices::finish",
        "fqmn": "App\\Http\\Controllers\\Portal\\Invoices@finish",
        "expected_test_path": "tests/Feature/InvoicesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Portal\\Invoices;\n\nclass InvoicesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Portal\\Invoices@finish\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_finish_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Portal\\Invoices@finish is PROOF_READY but no test file at tests/Feature/InvoicesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Portal/Invoices.php::App\\Http\\Controllers\\Portal\\Invoices::index",
        "fqmn": "App\\Http\\Controllers\\Portal\\Invoices@index",
        "expected_test_path": "tests/Feature/InvoicesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Portal\\Invoices;\n\nclass InvoicesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Portal\\Invoices@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\\Portal\\Invoices@index is PROOF_READY but no test file at tests/Feature/InvoicesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Portal/Invoices.php::App\\Http\\Controllers\\Portal\\Invoices::pdfInvoice",
        "fqmn": "App\\Http\\Controllers\\Portal\\Invoices@pdfInvoice",
        "expected_test_path": "tests/Feature/InvoicesTest.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\\Portal\\Invoices;\n\nclass InvoicesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Portal\\Invoices@pdfInvoice\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_pdfinvoice_behaves_correctly(): void\n    {\n\n        // 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\\Portal\\Invoices@pdfInvoice is PROOF_READY but no test file at tests/Feature/InvoicesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Portal/Invoices.php::App\\Http\\Controllers\\Portal\\Invoices::preview",
        "fqmn": "App\\Http\\Controllers\\Portal\\Invoices@preview",
        "expected_test_path": "tests/Feature/InvoicesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Portal\\Invoices;\n\nclass InvoicesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Portal\\Invoices@preview\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_preview_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Portal\\Invoices@preview is PROOF_READY but no test file at tests/Feature/InvoicesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Portal/Invoices.php::App\\Http\\Controllers\\Portal\\Invoices::printInvoice",
        "fqmn": "App\\Http\\Controllers\\Portal\\Invoices@printInvoice",
        "expected_test_path": "tests/Feature/InvoicesTest.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\\Portal\\Invoices;\n\nclass InvoicesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Portal\\Invoices@printInvoice\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_printinvoice_behaves_correctly(): void\n    {\n\n        // 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\\Portal\\Invoices@printInvoice is PROOF_READY but no test file at tests/Feature/InvoicesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Portal/Invoices.php::App\\Http\\Controllers\\Portal\\Invoices::show",
        "fqmn": "App\\Http\\Controllers\\Portal\\Invoices@show",
        "expected_test_path": "tests/Feature/InvoicesTest.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\\Portal\\Invoices;\n\nclass InvoicesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Portal\\Invoices@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        // Event::assertDispatched(<EventClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Portal\\Invoices@show is PROOF_READY but no test file at tests/Feature/InvoicesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Portal/Invoices.php::App\\Http\\Controllers\\Portal\\Invoices::signed",
        "fqmn": "App\\Http\\Controllers\\Portal\\Invoices@signed",
        "expected_test_path": "tests/Feature/InvoicesTest.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\\Portal\\Invoices;\n\nclass InvoicesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Portal\\Invoices@signed\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_signed_behaves_correctly(): void\n    {\n\n        // 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\\Portal\\Invoices@signed is PROOF_READY but no test file at tests/Feature/InvoicesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Portal/Payments.php::App\\Http\\Controllers\\Portal\\Payments::currencies",
        "fqmn": "App\\Http\\Controllers\\Portal\\Payments@currencies",
        "expected_test_path": "tests/Feature/PaymentsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Portal\\Payments;\n\nclass PaymentsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Portal\\Payments@currencies\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_currencies_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Portal\\Payments@currencies is PROOF_READY but no test file at tests/Feature/PaymentsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Portal/Payments.php::App\\Http\\Controllers\\Portal\\Payments::index",
        "fqmn": "App\\Http\\Controllers\\Portal\\Payments@index",
        "expected_test_path": "tests/Feature/PaymentsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Portal\\Payments;\n\nclass PaymentsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Portal\\Payments@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\\Portal\\Payments@index is PROOF_READY but no test file at tests/Feature/PaymentsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Portal/Payments.php::App\\Http\\Controllers\\Portal\\Payments::pdfPayment",
        "fqmn": "App\\Http\\Controllers\\Portal\\Payments@pdfPayment",
        "expected_test_path": "tests/Feature/PaymentsTest.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\\Portal\\Payments;\n\nclass PaymentsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Portal\\Payments@pdfPayment\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_pdfpayment_behaves_correctly(): void\n    {\n\n        // 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\\Portal\\Payments@pdfPayment is PROOF_READY but no test file at tests/Feature/PaymentsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Portal/Payments.php::App\\Http\\Controllers\\Portal\\Payments::preview",
        "fqmn": "App\\Http\\Controllers\\Portal\\Payments@preview",
        "expected_test_path": "tests/Feature/PaymentsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Portal\\Payments;\n\nclass PaymentsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Portal\\Payments@preview\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_preview_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Portal\\Payments@preview is PROOF_READY but no test file at tests/Feature/PaymentsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Portal/Payments.php::App\\Http\\Controllers\\Portal\\Payments::printPayment",
        "fqmn": "App\\Http\\Controllers\\Portal\\Payments@printPayment",
        "expected_test_path": "tests/Feature/PaymentsTest.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\\Portal\\Payments;\n\nclass PaymentsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Portal\\Payments@printPayment\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_printpayment_behaves_correctly(): void\n    {\n\n        // 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\\Portal\\Payments@printPayment is PROOF_READY but no test file at tests/Feature/PaymentsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Portal/Payments.php::App\\Http\\Controllers\\Portal\\Payments::show",
        "fqmn": "App\\Http\\Controllers\\Portal\\Payments@show",
        "expected_test_path": "tests/Feature/PaymentsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Portal\\Payments;\n\nclass PaymentsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Portal\\Payments@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\\Portal\\Payments@show is PROOF_READY but no test file at tests/Feature/PaymentsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Portal/Payments.php::App\\Http\\Controllers\\Portal\\Payments::signed",
        "fqmn": "App\\Http\\Controllers\\Portal\\Payments@signed",
        "expected_test_path": "tests/Feature/PaymentsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Portal\\Payments;\n\nclass PaymentsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Portal\\Payments@signed\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_signed_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Portal\\Payments@signed is PROOF_READY but no test file at tests/Feature/PaymentsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Portal/Profile.php::App\\Http\\Controllers\\Portal\\Profile::edit",
        "fqmn": "App\\Http\\Controllers\\Portal\\Profile@edit",
        "expected_test_path": "tests/Feature/ProfileTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Portal\\Profile;\n\nclass ProfileTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Portal\\Profile@edit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_edit_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Portal\\Profile@edit is PROOF_READY but no test file at tests/Feature/ProfileTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Portal/Profile.php::App\\Http\\Controllers\\Portal\\Profile::index",
        "fqmn": "App\\Http\\Controllers\\Portal\\Profile@index",
        "expected_test_path": "tests/Feature/ProfileTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Portal\\Profile;\n\nclass ProfileTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Portal\\Profile@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\\Portal\\Profile@index is PROOF_READY but no test file at tests/Feature/ProfileTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Portal/Profile.php::App\\Http\\Controllers\\Portal\\Profile::readOverdueInvoices",
        "fqmn": "App\\Http\\Controllers\\Portal\\Profile@readOverdueInvoices",
        "expected_test_path": "tests/Feature/ProfileTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Portal\\Profile;\n\nclass ProfileTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Portal\\Profile@readOverdueInvoices\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_readoverdueinvoices_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Portal\\Profile@readOverdueInvoices is PROOF_READY but no test file at tests/Feature/ProfileTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Portal/Profile.php::App\\Http\\Controllers\\Portal\\Profile::show",
        "fqmn": "App\\Http\\Controllers\\Portal\\Profile@show",
        "expected_test_path": "tests/Feature/ProfileTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Portal\\Profile;\n\nclass ProfileTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Portal\\Profile@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\\Portal\\Profile@show is PROOF_READY but no test file at tests/Feature/ProfileTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Portal/Profile.php::App\\Http\\Controllers\\Portal\\Profile::update",
        "fqmn": "App\\Http\\Controllers\\Portal\\Profile@update",
        "expected_test_path": "tests/Feature/ProfileTest.php",
        "intent": null,
        "intent_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\\Portal\\Profile;\n\nclass ProfileTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Portal\\Profile@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\\Portal\\Profile@update is PROOF_READY but no test file at tests/Feature/ProfileTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::create",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@create",
        "expected_test_path": "tests/Feature/BillsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Purchases\\Bills;\n\nclass BillsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Purchases\\Bills@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\\Http\\Controllers\\Purchases\\Bills@create is PROOF_READY but no test file at tests/Feature/BillsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::destroy",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@destroy",
        "expected_test_path": "tests/Feature/BillsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Purchases\\Bills;\n\nclass BillsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Purchases\\Bills@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Purchases\\Bills@destroy is PROOF_READY but no test file at tests/Feature/BillsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::duplicate",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@duplicate",
        "expected_test_path": "tests/Feature/BillsTest.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\\Purchases\\Bills;\n\nclass BillsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Purchases\\Bills@duplicate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_duplicate_behaves_correctly(): void\n    {\n\n        // 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\\Purchases\\Bills@duplicate is PROOF_READY but no test file at tests/Feature/BillsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::edit",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@edit",
        "expected_test_path": "tests/Feature/BillsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Purchases\\Bills;\n\nclass BillsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Purchases\\Bills@edit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_edit_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Purchases\\Bills@edit is PROOF_READY but no test file at tests/Feature/BillsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::export",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@export",
        "expected_test_path": "tests/Feature/BillsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Purchases\\Bills;\n\nclass BillsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Purchases\\Bills@export\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_export_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Purchases\\Bills@export is PROOF_READY but no test file at tests/Feature/BillsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::import",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@import",
        "expected_test_path": "tests/Feature/BillsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Purchases\\Bills;\n\nclass BillsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Purchases\\Bills@import\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_import_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Purchases\\Bills@import is PROOF_READY but no test file at tests/Feature/BillsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::index",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@index",
        "expected_test_path": "tests/Feature/BillsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Purchases\\Bills;\n\nclass BillsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Purchases\\Bills@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\\Purchases\\Bills@index is PROOF_READY but no test file at tests/Feature/BillsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::markCancelled",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@markCancelled",
        "expected_test_path": "tests/Feature/BillsTest.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\\Purchases\\Bills;\n\nclass BillsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Purchases\\Bills@markCancelled\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_markcancelled_behaves_correctly(): void\n    {\n\n        // 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\\Purchases\\Bills@markCancelled is PROOF_READY but no test file at tests/Feature/BillsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::markReceived",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@markReceived",
        "expected_test_path": "tests/Feature/BillsTest.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\\Purchases\\Bills;\n\nclass BillsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Purchases\\Bills@markReceived\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_markreceived_behaves_correctly(): void\n    {\n\n        // 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\\Purchases\\Bills@markReceived is PROOF_READY but no test file at tests/Feature/BillsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::pdfBill",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@pdfBill",
        "expected_test_path": "tests/Feature/BillsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Purchases\\Bills;\n\nclass BillsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Purchases\\Bills@pdfBill\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_pdfbill_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Purchases\\Bills@pdfBill is PROOF_READY but no test file at tests/Feature/BillsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::printBill",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@printBill",
        "expected_test_path": "tests/Feature/BillsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Purchases\\Bills;\n\nclass BillsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Purchases\\Bills@printBill\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_printbill_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Purchases\\Bills@printBill is PROOF_READY but no test file at tests/Feature/BillsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::restoreBill",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@restoreBill",
        "expected_test_path": "tests/Feature/BillsTest.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\\Purchases\\Bills;\n\nclass BillsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Purchases\\Bills@restoreBill\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_restorebill_behaves_correctly(): void\n    {\n\n        // 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\\Purchases\\Bills@restoreBill is PROOF_READY but no test file at tests/Feature/BillsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::show",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@show",
        "expected_test_path": "tests/Feature/BillsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Purchases\\Bills;\n\nclass BillsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Purchases\\Bills@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\\Purchases\\Bills@show is PROOF_READY but no test file at tests/Feature/BillsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::store",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@store",
        "expected_test_path": "tests/Feature/BillsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Purchases\\Bills;\n\nclass BillsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Purchases\\Bills@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\\Purchases\\Bills@store is PROOF_READY but no test file at tests/Feature/BillsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Purchases/Bills.php::App\\Http\\Controllers\\Purchases\\Bills::update",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Bills@update",
        "expected_test_path": "tests/Feature/BillsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Purchases\\Bills;\n\nclass BillsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Purchases\\Bills@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\\Purchases\\Bills@update is PROOF_READY but no test file at tests/Feature/BillsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Purchases/RecurringBills.php::App\\Http\\Controllers\\Purchases\\RecurringBills::create",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@create",
        "expected_test_path": "tests/Feature/RecurringBillsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Purchases\\RecurringBills;\n\nclass RecurringBillsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Purchases\\RecurringBills@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\\Http\\Controllers\\Purchases\\RecurringBills@create is PROOF_READY but no test file at tests/Feature/RecurringBillsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Purchases/RecurringBills.php::App\\Http\\Controllers\\Purchases\\RecurringBills::duplicate",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@duplicate",
        "expected_test_path": "tests/Feature/RecurringBillsTest.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\\Purchases\\RecurringBills;\n\nclass RecurringBillsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Purchases\\RecurringBills@duplicate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_duplicate_behaves_correctly(): void\n    {\n\n        // 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\\Purchases\\RecurringBills@duplicate is PROOF_READY but no test file at tests/Feature/RecurringBillsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Purchases/RecurringBills.php::App\\Http\\Controllers\\Purchases\\RecurringBills::edit",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@edit",
        "expected_test_path": "tests/Feature/RecurringBillsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Purchases\\RecurringBills;\n\nclass RecurringBillsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Purchases\\RecurringBills@edit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_edit_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Purchases\\RecurringBills@edit is PROOF_READY but no test file at tests/Feature/RecurringBillsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Purchases/RecurringBills.php::App\\Http\\Controllers\\Purchases\\RecurringBills::end",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@end",
        "expected_test_path": "tests/Feature/RecurringBillsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Purchases\\RecurringBills;\n\nclass RecurringBillsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Purchases\\RecurringBills@end\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_end_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Purchases\\RecurringBills@end is PROOF_READY but no test file at tests/Feature/RecurringBillsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Purchases/RecurringBills.php::App\\Http\\Controllers\\Purchases\\RecurringBills::export",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@export",
        "expected_test_path": "tests/Feature/RecurringBillsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Purchases\\RecurringBills;\n\nclass RecurringBillsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Purchases\\RecurringBills@export\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_export_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Purchases\\RecurringBills@export is PROOF_READY but no test file at tests/Feature/RecurringBillsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Purchases/RecurringBills.php::App\\Http\\Controllers\\Purchases\\RecurringBills::import",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@import",
        "expected_test_path": "tests/Feature/RecurringBillsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Purchases\\RecurringBills;\n\nclass RecurringBillsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Purchases\\RecurringBills@import\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_import_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Purchases\\RecurringBills@import is PROOF_READY but no test file at tests/Feature/RecurringBillsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Purchases/RecurringBills.php::App\\Http\\Controllers\\Purchases\\RecurringBills::index",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@index",
        "expected_test_path": "tests/Feature/RecurringBillsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Purchases\\RecurringBills;\n\nclass RecurringBillsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Purchases\\RecurringBills@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\\Purchases\\RecurringBills@index is PROOF_READY but no test file at tests/Feature/RecurringBillsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Purchases/RecurringBills.php::App\\Http\\Controllers\\Purchases\\RecurringBills::show",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@show",
        "expected_test_path": "tests/Feature/RecurringBillsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Purchases\\RecurringBills;\n\nclass RecurringBillsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Purchases\\RecurringBills@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\\Purchases\\RecurringBills@show is PROOF_READY but no test file at tests/Feature/RecurringBillsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Purchases/RecurringBills.php::App\\Http\\Controllers\\Purchases\\RecurringBills::store",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@store",
        "expected_test_path": "tests/Feature/RecurringBillsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Purchases\\RecurringBills;\n\nclass RecurringBillsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Purchases\\RecurringBills@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\\Purchases\\RecurringBills@store is PROOF_READY but no test file at tests/Feature/RecurringBillsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Purchases/RecurringBills.php::App\\Http\\Controllers\\Purchases\\RecurringBills::update",
        "fqmn": "App\\Http\\Controllers\\Purchases\\RecurringBills@update",
        "expected_test_path": "tests/Feature/RecurringBillsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Purchases\\RecurringBills;\n\nclass RecurringBillsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Purchases\\RecurringBills@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\\Purchases\\RecurringBills@update is PROOF_READY but no test file at tests/Feature/RecurringBillsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::create",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@create",
        "expected_test_path": "tests/Feature/VendorsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Purchases\\Vendors;\n\nclass VendorsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Purchases\\Vendors@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\\Http\\Controllers\\Purchases\\Vendors@create is PROOF_READY but no test file at tests/Feature/VendorsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::createBill",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@createBill",
        "expected_test_path": "tests/Feature/VendorsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Purchases\\Vendors;\n\nclass VendorsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Purchases\\Vendors@createBill\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_createbill_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Purchases\\Vendors@createBill is PROOF_READY but no test file at tests/Feature/VendorsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::createExpense",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@createExpense",
        "expected_test_path": "tests/Feature/VendorsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Purchases\\Vendors;\n\nclass VendorsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Purchases\\Vendors@createExpense\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_createexpense_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Purchases\\Vendors@createExpense is PROOF_READY but no test file at tests/Feature/VendorsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::destroy",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@destroy",
        "expected_test_path": "tests/Feature/VendorsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Purchases\\Vendors;\n\nclass VendorsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Purchases\\Vendors@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Purchases\\Vendors@destroy is PROOF_READY but no test file at tests/Feature/VendorsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::disable",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@disable",
        "expected_test_path": "tests/Feature/VendorsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Purchases\\Vendors;\n\nclass VendorsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Purchases\\Vendors@disable\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_disable_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Purchases\\Vendors@disable is PROOF_READY but no test file at tests/Feature/VendorsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::duplicate",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@duplicate",
        "expected_test_path": "tests/Feature/VendorsTest.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\\Purchases\\Vendors;\n\nclass VendorsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Purchases\\Vendors@duplicate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_duplicate_behaves_correctly(): void\n    {\n\n        // 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\\Purchases\\Vendors@duplicate is PROOF_READY but no test file at tests/Feature/VendorsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::edit",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@edit",
        "expected_test_path": "tests/Feature/VendorsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Purchases\\Vendors;\n\nclass VendorsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Purchases\\Vendors@edit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_edit_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Purchases\\Vendors@edit is PROOF_READY but no test file at tests/Feature/VendorsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::enable",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@enable",
        "expected_test_path": "tests/Feature/VendorsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Purchases\\Vendors;\n\nclass VendorsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Purchases\\Vendors@enable\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_enable_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Purchases\\Vendors@enable is PROOF_READY but no test file at tests/Feature/VendorsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::export",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@export",
        "expected_test_path": "tests/Feature/VendorsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Purchases\\Vendors;\n\nclass VendorsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Purchases\\Vendors@export\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_export_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Purchases\\Vendors@export is PROOF_READY but no test file at tests/Feature/VendorsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::import",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@import",
        "expected_test_path": "tests/Feature/VendorsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Purchases\\Vendors;\n\nclass VendorsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Purchases\\Vendors@import\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_import_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Purchases\\Vendors@import is PROOF_READY but no test file at tests/Feature/VendorsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::index",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@index",
        "expected_test_path": "tests/Feature/VendorsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Purchases\\Vendors;\n\nclass VendorsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Purchases\\Vendors@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\\Purchases\\Vendors@index is PROOF_READY but no test file at tests/Feature/VendorsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::show",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@show",
        "expected_test_path": "tests/Feature/VendorsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Purchases\\Vendors;\n\nclass VendorsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Purchases\\Vendors@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\\Purchases\\Vendors@show is PROOF_READY but no test file at tests/Feature/VendorsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::store",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@store",
        "expected_test_path": "tests/Feature/VendorsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Purchases\\Vendors;\n\nclass VendorsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Purchases\\Vendors@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\\Purchases\\Vendors@store is PROOF_READY but no test file at tests/Feature/VendorsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Purchases/Vendors.php::App\\Http\\Controllers\\Purchases\\Vendors::update",
        "fqmn": "App\\Http\\Controllers\\Purchases\\Vendors@update",
        "expected_test_path": "tests/Feature/VendorsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Purchases\\Vendors;\n\nclass VendorsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Purchases\\Vendors@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\\Purchases\\Vendors@update is PROOF_READY but no test file at tests/Feature/VendorsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::create",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@create",
        "expected_test_path": "tests/Feature/CustomersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Sales\\Customers;\n\nclass CustomersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Sales\\Customers@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\\Http\\Controllers\\Sales\\Customers@create is PROOF_READY but no test file at tests/Feature/CustomersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::createIncome",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@createIncome",
        "expected_test_path": "tests/Feature/CustomersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Sales\\Customers;\n\nclass CustomersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Sales\\Customers@createIncome\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_createincome_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Sales\\Customers@createIncome is PROOF_READY but no test file at tests/Feature/CustomersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::createInvoice",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@createInvoice",
        "expected_test_path": "tests/Feature/CustomersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Sales\\Customers;\n\nclass CustomersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Sales\\Customers@createInvoice\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_createinvoice_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Sales\\Customers@createInvoice is PROOF_READY but no test file at tests/Feature/CustomersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::destroy",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@destroy",
        "expected_test_path": "tests/Feature/CustomersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Sales\\Customers;\n\nclass CustomersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Sales\\Customers@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Sales\\Customers@destroy is PROOF_READY but no test file at tests/Feature/CustomersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::disable",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@disable",
        "expected_test_path": "tests/Feature/CustomersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Sales\\Customers;\n\nclass CustomersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Sales\\Customers@disable\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_disable_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Sales\\Customers@disable is PROOF_READY but no test file at tests/Feature/CustomersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::duplicate",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@duplicate",
        "expected_test_path": "tests/Feature/CustomersTest.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\\Sales\\Customers;\n\nclass CustomersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Sales\\Customers@duplicate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_duplicate_behaves_correctly(): void\n    {\n\n        // 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\\Sales\\Customers@duplicate is PROOF_READY but no test file at tests/Feature/CustomersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::edit",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@edit",
        "expected_test_path": "tests/Feature/CustomersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Sales\\Customers;\n\nclass CustomersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Sales\\Customers@edit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_edit_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Sales\\Customers@edit is PROOF_READY but no test file at tests/Feature/CustomersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::enable",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@enable",
        "expected_test_path": "tests/Feature/CustomersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Sales\\Customers;\n\nclass CustomersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Sales\\Customers@enable\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_enable_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Sales\\Customers@enable is PROOF_READY but no test file at tests/Feature/CustomersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::export",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@export",
        "expected_test_path": "tests/Feature/CustomersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Sales\\Customers;\n\nclass CustomersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Sales\\Customers@export\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_export_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Sales\\Customers@export is PROOF_READY but no test file at tests/Feature/CustomersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::import",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@import",
        "expected_test_path": "tests/Feature/CustomersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Sales\\Customers;\n\nclass CustomersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Sales\\Customers@import\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_import_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Sales\\Customers@import is PROOF_READY but no test file at tests/Feature/CustomersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::index",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@index",
        "expected_test_path": "tests/Feature/CustomersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Sales\\Customers;\n\nclass CustomersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Sales\\Customers@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\\Sales\\Customers@index is PROOF_READY but no test file at tests/Feature/CustomersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::show",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@show",
        "expected_test_path": "tests/Feature/CustomersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Sales\\Customers;\n\nclass CustomersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Sales\\Customers@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\\Sales\\Customers@show is PROOF_READY but no test file at tests/Feature/CustomersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::store",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@store",
        "expected_test_path": "tests/Feature/CustomersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Sales\\Customers;\n\nclass CustomersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Sales\\Customers@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\\Sales\\Customers@store is PROOF_READY but no test file at tests/Feature/CustomersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Sales/Customers.php::App\\Http\\Controllers\\Sales\\Customers::update",
        "fqmn": "App\\Http\\Controllers\\Sales\\Customers@update",
        "expected_test_path": "tests/Feature/CustomersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Sales\\Customers;\n\nclass CustomersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Sales\\Customers@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\\Sales\\Customers@update is PROOF_READY but no test file at tests/Feature/CustomersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::create",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@create",
        "expected_test_path": "tests/Feature/InvoicesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Sales\\Invoices;\n\nclass InvoicesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Sales\\Invoices@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\\Http\\Controllers\\Sales\\Invoices@create is PROOF_READY but no test file at tests/Feature/InvoicesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::destroy",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@destroy",
        "expected_test_path": "tests/Feature/InvoicesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Sales\\Invoices;\n\nclass InvoicesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Sales\\Invoices@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Sales\\Invoices@destroy is PROOF_READY but no test file at tests/Feature/InvoicesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::duplicate",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@duplicate",
        "expected_test_path": "tests/Feature/InvoicesTest.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\\Sales\\Invoices;\n\nclass InvoicesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Sales\\Invoices@duplicate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_duplicate_behaves_correctly(): void\n    {\n\n        // 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\\Sales\\Invoices@duplicate is PROOF_READY but no test file at tests/Feature/InvoicesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::edit",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@edit",
        "expected_test_path": "tests/Feature/InvoicesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Sales\\Invoices;\n\nclass InvoicesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Sales\\Invoices@edit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_edit_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Sales\\Invoices@edit is PROOF_READY but no test file at tests/Feature/InvoicesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::emailInvoice",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@emailInvoice",
        "expected_test_path": "tests/Feature/InvoicesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Sales\\Invoices;\n\nclass InvoicesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Sales\\Invoices@emailInvoice\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_emailinvoice_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Sales\\Invoices@emailInvoice is PROOF_READY but no test file at tests/Feature/InvoicesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::export",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@export",
        "expected_test_path": "tests/Feature/InvoicesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Sales\\Invoices;\n\nclass InvoicesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Sales\\Invoices@export\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_export_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Sales\\Invoices@export is PROOF_READY but no test file at tests/Feature/InvoicesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::import",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@import",
        "expected_test_path": "tests/Feature/InvoicesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Sales\\Invoices;\n\nclass InvoicesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Sales\\Invoices@import\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_import_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Sales\\Invoices@import is PROOF_READY but no test file at tests/Feature/InvoicesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::index",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@index",
        "expected_test_path": "tests/Feature/InvoicesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Sales\\Invoices;\n\nclass InvoicesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Sales\\Invoices@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\\Sales\\Invoices@index is PROOF_READY but no test file at tests/Feature/InvoicesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::markCancelled",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@markCancelled",
        "expected_test_path": "tests/Feature/InvoicesTest.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\\Sales\\Invoices;\n\nclass InvoicesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Sales\\Invoices@markCancelled\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_markcancelled_behaves_correctly(): void\n    {\n\n        // 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\\Sales\\Invoices@markCancelled is PROOF_READY but no test file at tests/Feature/InvoicesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::markSent",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@markSent",
        "expected_test_path": "tests/Feature/InvoicesTest.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\\Sales\\Invoices;\n\nclass InvoicesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Sales\\Invoices@markSent\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_marksent_behaves_correctly(): void\n    {\n\n        // 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\\Sales\\Invoices@markSent is PROOF_READY but no test file at tests/Feature/InvoicesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::pdfInvoice",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@pdfInvoice",
        "expected_test_path": "tests/Feature/InvoicesTest.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\\Sales\\Invoices;\n\nclass InvoicesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Sales\\Invoices@pdfInvoice\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_pdfinvoice_behaves_correctly(): void\n    {\n\n        // 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\\Sales\\Invoices@pdfInvoice is PROOF_READY but no test file at tests/Feature/InvoicesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::printInvoice",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@printInvoice",
        "expected_test_path": "tests/Feature/InvoicesTest.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\\Sales\\Invoices;\n\nclass InvoicesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Sales\\Invoices@printInvoice\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_printinvoice_behaves_correctly(): void\n    {\n\n        // 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\\Sales\\Invoices@printInvoice is PROOF_READY but no test file at tests/Feature/InvoicesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::restoreInvoice",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@restoreInvoice",
        "expected_test_path": "tests/Feature/InvoicesTest.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\\Sales\\Invoices;\n\nclass InvoicesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Sales\\Invoices@restoreInvoice\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_restoreinvoice_behaves_correctly(): void\n    {\n\n        // 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\\Sales\\Invoices@restoreInvoice is PROOF_READY but no test file at tests/Feature/InvoicesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::show",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@show",
        "expected_test_path": "tests/Feature/InvoicesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Sales\\Invoices;\n\nclass InvoicesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Sales\\Invoices@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\\Sales\\Invoices@show is PROOF_READY but no test file at tests/Feature/InvoicesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::store",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@store",
        "expected_test_path": "tests/Feature/InvoicesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Sales\\Invoices;\n\nclass InvoicesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Sales\\Invoices@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\\Sales\\Invoices@store is PROOF_READY but no test file at tests/Feature/InvoicesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Sales/Invoices.php::App\\Http\\Controllers\\Sales\\Invoices::update",
        "fqmn": "App\\Http\\Controllers\\Sales\\Invoices@update",
        "expected_test_path": "tests/Feature/InvoicesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Sales\\Invoices;\n\nclass InvoicesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Sales\\Invoices@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\\Sales\\Invoices@update is PROOF_READY but no test file at tests/Feature/InvoicesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Sales/RecurringInvoices.php::App\\Http\\Controllers\\Sales\\RecurringInvoices::create",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@create",
        "expected_test_path": "tests/Feature/RecurringInvoicesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Sales\\RecurringInvoices;\n\nclass RecurringInvoicesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Sales\\RecurringInvoices@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\\Http\\Controllers\\Sales\\RecurringInvoices@create is PROOF_READY but no test file at tests/Feature/RecurringInvoicesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Sales/RecurringInvoices.php::App\\Http\\Controllers\\Sales\\RecurringInvoices::duplicate",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@duplicate",
        "expected_test_path": "tests/Feature/RecurringInvoicesTest.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\\Sales\\RecurringInvoices;\n\nclass RecurringInvoicesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Sales\\RecurringInvoices@duplicate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_duplicate_behaves_correctly(): void\n    {\n\n        // 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\\Sales\\RecurringInvoices@duplicate is PROOF_READY but no test file at tests/Feature/RecurringInvoicesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Sales/RecurringInvoices.php::App\\Http\\Controllers\\Sales\\RecurringInvoices::edit",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@edit",
        "expected_test_path": "tests/Feature/RecurringInvoicesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Sales\\RecurringInvoices;\n\nclass RecurringInvoicesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Sales\\RecurringInvoices@edit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_edit_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Sales\\RecurringInvoices@edit is PROOF_READY but no test file at tests/Feature/RecurringInvoicesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Sales/RecurringInvoices.php::App\\Http\\Controllers\\Sales\\RecurringInvoices::end",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@end",
        "expected_test_path": "tests/Feature/RecurringInvoicesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Sales\\RecurringInvoices;\n\nclass RecurringInvoicesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Sales\\RecurringInvoices@end\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_end_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Sales\\RecurringInvoices@end is PROOF_READY but no test file at tests/Feature/RecurringInvoicesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Sales/RecurringInvoices.php::App\\Http\\Controllers\\Sales\\RecurringInvoices::export",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@export",
        "expected_test_path": "tests/Feature/RecurringInvoicesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Sales\\RecurringInvoices;\n\nclass RecurringInvoicesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Sales\\RecurringInvoices@export\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_export_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Sales\\RecurringInvoices@export is PROOF_READY but no test file at tests/Feature/RecurringInvoicesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Sales/RecurringInvoices.php::App\\Http\\Controllers\\Sales\\RecurringInvoices::import",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@import",
        "expected_test_path": "tests/Feature/RecurringInvoicesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Sales\\RecurringInvoices;\n\nclass RecurringInvoicesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Sales\\RecurringInvoices@import\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_import_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Sales\\RecurringInvoices@import is PROOF_READY but no test file at tests/Feature/RecurringInvoicesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Sales/RecurringInvoices.php::App\\Http\\Controllers\\Sales\\RecurringInvoices::index",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@index",
        "expected_test_path": "tests/Feature/RecurringInvoicesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Sales\\RecurringInvoices;\n\nclass RecurringInvoicesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Sales\\RecurringInvoices@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\\Sales\\RecurringInvoices@index is PROOF_READY but no test file at tests/Feature/RecurringInvoicesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Sales/RecurringInvoices.php::App\\Http\\Controllers\\Sales\\RecurringInvoices::show",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@show",
        "expected_test_path": "tests/Feature/RecurringInvoicesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Sales\\RecurringInvoices;\n\nclass RecurringInvoicesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Sales\\RecurringInvoices@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\\Sales\\RecurringInvoices@show is PROOF_READY but no test file at tests/Feature/RecurringInvoicesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Sales/RecurringInvoices.php::App\\Http\\Controllers\\Sales\\RecurringInvoices::store",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@store",
        "expected_test_path": "tests/Feature/RecurringInvoicesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Sales\\RecurringInvoices;\n\nclass RecurringInvoicesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Sales\\RecurringInvoices@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\\Sales\\RecurringInvoices@store is PROOF_READY but no test file at tests/Feature/RecurringInvoicesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Sales/RecurringInvoices.php::App\\Http\\Controllers\\Sales\\RecurringInvoices::update",
        "fqmn": "App\\Http\\Controllers\\Sales\\RecurringInvoices@update",
        "expected_test_path": "tests/Feature/RecurringInvoicesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Sales\\RecurringInvoices;\n\nclass RecurringInvoicesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Sales\\RecurringInvoices@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\\Sales\\RecurringInvoices@update is PROOF_READY but no test file at tests/Feature/RecurringInvoicesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Categories.php::App\\Http\\Controllers\\Settings\\Categories::create",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@create",
        "expected_test_path": "tests/Feature/CategoriesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Categories;\n\nclass CategoriesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\Categories@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\\Http\\Controllers\\Settings\\Categories@create is PROOF_READY but no test file at tests/Feature/CategoriesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Categories.php::App\\Http\\Controllers\\Settings\\Categories::destroy",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@destroy",
        "expected_test_path": "tests/Feature/CategoriesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Categories;\n\nclass CategoriesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\Categories@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Settings\\Categories@destroy is PROOF_READY but no test file at tests/Feature/CategoriesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Categories.php::App\\Http\\Controllers\\Settings\\Categories::disable",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@disable",
        "expected_test_path": "tests/Feature/CategoriesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Categories;\n\nclass CategoriesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\Categories@disable\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_disable_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $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\\Categories@disable is PROOF_READY but no test file at tests/Feature/CategoriesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Categories.php::App\\Http\\Controllers\\Settings\\Categories::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@edit",
        "expected_test_path": "tests/Feature/CategoriesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Categories;\n\nclass CategoriesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\Categories@edit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_edit_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $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\\Categories@edit is PROOF_READY but no test file at tests/Feature/CategoriesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Categories.php::App\\Http\\Controllers\\Settings\\Categories::enable",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@enable",
        "expected_test_path": "tests/Feature/CategoriesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Categories;\n\nclass CategoriesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\Categories@enable\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_enable_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $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\\Categories@enable is PROOF_READY but no test file at tests/Feature/CategoriesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Categories.php::App\\Http\\Controllers\\Settings\\Categories::export",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@export",
        "expected_test_path": "tests/Feature/CategoriesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Categories;\n\nclass CategoriesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\Categories@export\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_export_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Settings\\Categories@export is PROOF_READY but no test file at tests/Feature/CategoriesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Categories.php::App\\Http\\Controllers\\Settings\\Categories::import",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@import",
        "expected_test_path": "tests/Feature/CategoriesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Categories;\n\nclass CategoriesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\Categories@import\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_import_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $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\\Categories@import is PROOF_READY but no test file at tests/Feature/CategoriesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Categories.php::App\\Http\\Controllers\\Settings\\Categories::index",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@index",
        "expected_test_path": "tests/Feature/CategoriesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Categories;\n\nclass CategoriesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\Categories@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\\Settings\\Categories@index is PROOF_READY but no test file at tests/Feature/CategoriesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Categories.php::App\\Http\\Controllers\\Settings\\Categories::show",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@show",
        "expected_test_path": "tests/Feature/CategoriesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Categories;\n\nclass CategoriesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\Categories@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\\Categories@show is PROOF_READY but no test file at tests/Feature/CategoriesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Categories.php::App\\Http\\Controllers\\Settings\\Categories::store",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@store",
        "expected_test_path": "tests/Feature/CategoriesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Categories;\n\nclass CategoriesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\Categories@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\\Settings\\Categories@store is PROOF_READY but no test file at tests/Feature/CategoriesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Categories.php::App\\Http\\Controllers\\Settings\\Categories::update",
        "fqmn": "App\\Http\\Controllers\\Settings\\Categories@update",
        "expected_test_path": "tests/Feature/CategoriesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Categories;\n\nclass CategoriesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\Categories@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\\Settings\\Categories@update is PROOF_READY but no test file at tests/Feature/CategoriesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Company.php::App\\Http\\Controllers\\Settings\\Company::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\Company@edit",
        "expected_test_path": "tests/Feature/CompanyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Company;\n\nclass CompanyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\Company@edit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_edit_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $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\\Company@edit is PROOF_READY but no test file at tests/Feature/CompanyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Currencies.php::App\\Http\\Controllers\\Settings\\Currencies::config",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@config",
        "expected_test_path": "tests/Feature/CurrenciesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Currencies;\n\nclass CurrenciesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\Currencies@config\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_config_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $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\\Currencies@config is PROOF_READY but no test file at tests/Feature/CurrenciesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Currencies.php::App\\Http\\Controllers\\Settings\\Currencies::create",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@create",
        "expected_test_path": "tests/Feature/CurrenciesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Currencies;\n\nclass CurrenciesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\Currencies@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\\Http\\Controllers\\Settings\\Currencies@create is PROOF_READY but no test file at tests/Feature/CurrenciesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Currencies.php::App\\Http\\Controllers\\Settings\\Currencies::destroy",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@destroy",
        "expected_test_path": "tests/Feature/CurrenciesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Currencies;\n\nclass CurrenciesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\Currencies@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Settings\\Currencies@destroy is PROOF_READY but no test file at tests/Feature/CurrenciesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Currencies.php::App\\Http\\Controllers\\Settings\\Currencies::disable",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@disable",
        "expected_test_path": "tests/Feature/CurrenciesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Currencies;\n\nclass CurrenciesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\Currencies@disable\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_disable_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $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\\Currencies@disable is PROOF_READY but no test file at tests/Feature/CurrenciesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Currencies.php::App\\Http\\Controllers\\Settings\\Currencies::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@edit",
        "expected_test_path": "tests/Feature/CurrenciesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Currencies;\n\nclass CurrenciesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\Currencies@edit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_edit_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $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\\Currencies@edit is PROOF_READY but no test file at tests/Feature/CurrenciesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Currencies.php::App\\Http\\Controllers\\Settings\\Currencies::enable",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@enable",
        "expected_test_path": "tests/Feature/CurrenciesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Currencies;\n\nclass CurrenciesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\Currencies@enable\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_enable_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $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\\Currencies@enable is PROOF_READY but no test file at tests/Feature/CurrenciesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Currencies.php::App\\Http\\Controllers\\Settings\\Currencies::index",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@index",
        "expected_test_path": "tests/Feature/CurrenciesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Currencies;\n\nclass CurrenciesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\Currencies@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\\Settings\\Currencies@index is PROOF_READY but no test file at tests/Feature/CurrenciesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Currencies.php::App\\Http\\Controllers\\Settings\\Currencies::show",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@show",
        "expected_test_path": "tests/Feature/CurrenciesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Currencies;\n\nclass CurrenciesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\Currencies@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\\Currencies@show is PROOF_READY but no test file at tests/Feature/CurrenciesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Currencies.php::App\\Http\\Controllers\\Settings\\Currencies::store",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@store",
        "expected_test_path": "tests/Feature/CurrenciesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Currencies;\n\nclass CurrenciesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\Currencies@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\\Settings\\Currencies@store is PROOF_READY but no test file at tests/Feature/CurrenciesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Currencies.php::App\\Http\\Controllers\\Settings\\Currencies::update",
        "fqmn": "App\\Http\\Controllers\\Settings\\Currencies@update",
        "expected_test_path": "tests/Feature/CurrenciesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Currencies;\n\nclass CurrenciesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\Currencies@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\\Settings\\Currencies@update is PROOF_READY but no test file at tests/Feature/CurrenciesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Defaults.php::App\\Http\\Controllers\\Settings\\Defaults::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\Defaults@edit",
        "expected_test_path": "tests/Feature/DefaultsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Settings\\Defaults;\n\nclass DefaultsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\Defaults@edit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_edit_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Settings\\Defaults@edit is PROOF_READY but no test file at tests/Feature/DefaultsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Email.php::App\\Http\\Controllers\\Settings\\Email::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\Email@edit",
        "expected_test_path": "tests/Feature/EmailTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Email;\n\nclass EmailTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\Email@edit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_edit_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $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\\Email@edit is PROOF_READY but no test file at tests/Feature/EmailTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/EmailTemplates.php::App\\Http\\Controllers\\Settings\\EmailTemplates::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\EmailTemplates@edit",
        "expected_test_path": "tests/Feature/EmailTemplatesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\EmailTemplates;\n\nclass EmailTemplatesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\EmailTemplates@edit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_edit_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $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\\EmailTemplates@edit is PROOF_READY but no test file at tests/Feature/EmailTemplatesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/EmailTemplates.php::App\\Http\\Controllers\\Settings\\EmailTemplates::get",
        "fqmn": "App\\Http\\Controllers\\Settings\\EmailTemplates@get",
        "expected_test_path": "tests/Feature/EmailTemplatesTest.php",
        "intent": null,
        "intent_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\\Settings\\EmailTemplates;\n\nclass EmailTemplatesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\EmailTemplates@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\\Http\\Controllers\\Settings\\EmailTemplates@get is PROOF_READY but no test file at tests/Feature/EmailTemplatesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/EmailTemplates.php::App\\Http\\Controllers\\Settings\\EmailTemplates::update",
        "fqmn": "App\\Http\\Controllers\\Settings\\EmailTemplates@update",
        "expected_test_path": "tests/Feature/EmailTemplatesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\EmailTemplates;\n\nclass EmailTemplatesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\EmailTemplates@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\\Settings\\EmailTemplates@update is PROOF_READY but no test file at tests/Feature/EmailTemplatesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Invoice.php::App\\Http\\Controllers\\Settings\\Invoice::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\Invoice@edit",
        "expected_test_path": "tests/Feature/InvoiceTest.php",
        "intent": null,
        "intent_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\\Settings\\Invoice;\n\nclass InvoiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\Invoice@edit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_edit_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Settings\\Invoice@edit is PROOF_READY but no test file at tests/Feature/InvoiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Localisation.php::App\\Http\\Controllers\\Settings\\Localisation::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\Localisation@edit",
        "expected_test_path": "tests/Feature/LocalisationTest.php",
        "intent": null,
        "intent_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\\Settings\\Localisation;\n\nclass LocalisationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\Localisation@edit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_edit_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Settings\\Localisation@edit is PROOF_READY but no test file at tests/Feature/LocalisationTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Modules.php::App\\Http\\Controllers\\Settings\\Modules::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\Modules@edit",
        "expected_test_path": "tests/Feature/ModulesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Modules;\n\nclass ModulesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\Modules@edit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_edit_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $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\\Modules@edit is PROOF_READY but no test file at tests/Feature/ModulesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Modules.php::App\\Http\\Controllers\\Settings\\Modules::update",
        "fqmn": "App\\Http\\Controllers\\Settings\\Modules@update",
        "expected_test_path": "tests/Feature/ModulesTest.php",
        "intent": null,
        "intent_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\\Modules;\n\nclass ModulesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\Modules@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\\Modules@update is PROOF_READY but no test file at tests/Feature/ModulesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Schedule.php::App\\Http\\Controllers\\Settings\\Schedule::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\Schedule@edit",
        "expected_test_path": "tests/Feature/ScheduleTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Schedule;\n\nclass ScheduleTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\Schedule@edit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_edit_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $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\\Schedule@edit is PROOF_READY but no test file at tests/Feature/ScheduleTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::create",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@create",
        "expected_test_path": "tests/Feature/TaxesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Taxes;\n\nclass TaxesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\Taxes@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\\Http\\Controllers\\Settings\\Taxes@create is PROOF_READY but no test file at tests/Feature/TaxesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::destroy",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@destroy",
        "expected_test_path": "tests/Feature/TaxesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Taxes;\n\nclass TaxesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\Taxes@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Settings\\Taxes@destroy is PROOF_READY but no test file at tests/Feature/TaxesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::disable",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@disable",
        "expected_test_path": "tests/Feature/TaxesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Taxes;\n\nclass TaxesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\Taxes@disable\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_disable_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $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\\Taxes@disable is PROOF_READY but no test file at tests/Feature/TaxesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::edit",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@edit",
        "expected_test_path": "tests/Feature/TaxesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Taxes;\n\nclass TaxesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\Taxes@edit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_edit_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $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\\Taxes@edit is PROOF_READY but no test file at tests/Feature/TaxesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::enable",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@enable",
        "expected_test_path": "tests/Feature/TaxesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Taxes;\n\nclass TaxesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\Taxes@enable\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_enable_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $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\\Taxes@enable is PROOF_READY but no test file at tests/Feature/TaxesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::export",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@export",
        "expected_test_path": "tests/Feature/TaxesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Taxes;\n\nclass TaxesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\Taxes@export\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_export_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Settings\\Taxes@export is PROOF_READY but no test file at tests/Feature/TaxesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::import",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@import",
        "expected_test_path": "tests/Feature/TaxesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Taxes;\n\nclass TaxesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\Taxes@import\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_import_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $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\\Taxes@import is PROOF_READY but no test file at tests/Feature/TaxesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::index",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@index",
        "expected_test_path": "tests/Feature/TaxesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Taxes;\n\nclass TaxesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\Taxes@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\\Settings\\Taxes@index is PROOF_READY but no test file at tests/Feature/TaxesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::show",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@show",
        "expected_test_path": "tests/Feature/TaxesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Taxes;\n\nclass TaxesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\Taxes@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\\Taxes@show is PROOF_READY but no test file at tests/Feature/TaxesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::store",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@store",
        "expected_test_path": "tests/Feature/TaxesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Taxes;\n\nclass TaxesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\Taxes@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\\Settings\\Taxes@store is PROOF_READY but no test file at tests/Feature/TaxesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add 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/Taxes.php::App\\Http\\Controllers\\Settings\\Taxes::update",
        "fqmn": "App\\Http\\Controllers\\Settings\\Taxes@update",
        "expected_test_path": "tests/Feature/TaxesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Taxes;\n\nclass TaxesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Settings\\Taxes@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\\Settings\\Taxes@update is PROOF_READY but no test file at tests/Feature/TaxesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Wizard/Companies.php::App\\Http\\Controllers\\Wizard\\Companies::edit",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Companies@edit",
        "expected_test_path": "tests/Feature/CompaniesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Wizard\\Companies;\n\nclass CompaniesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Wizard\\Companies@edit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_edit_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Wizard\\Companies@edit is PROOF_READY but no test file at tests/Feature/CompaniesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Wizard/Companies.php::App\\Http\\Controllers\\Wizard\\Companies::update",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Companies@update",
        "expected_test_path": "tests/Feature/CompaniesTest.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\\Wizard\\Companies;\n\nclass CompaniesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Wizard\\Companies@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->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Wizard\\Companies@update is PROOF_READY but no test file at tests/Feature/CompaniesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Wizard/Currencies.php::App\\Http\\Controllers\\Wizard\\Currencies::destroy",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Currencies@destroy",
        "expected_test_path": "tests/Feature/CurrenciesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Wizard\\Currencies;\n\nclass CurrenciesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Wizard\\Currencies@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Wizard\\Currencies@destroy is PROOF_READY but no test file at tests/Feature/CurrenciesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Wizard/Currencies.php::App\\Http\\Controllers\\Wizard\\Currencies::index",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Currencies@index",
        "expected_test_path": "tests/Feature/CurrenciesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Wizard\\Currencies;\n\nclass CurrenciesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Wizard\\Currencies@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\\Wizard\\Currencies@index is PROOF_READY but no test file at tests/Feature/CurrenciesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Wizard/Currencies.php::App\\Http\\Controllers\\Wizard\\Currencies::show",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Currencies@show",
        "expected_test_path": "tests/Feature/CurrenciesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Wizard\\Currencies;\n\nclass CurrenciesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Wizard\\Currencies@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\\Wizard\\Currencies@show is PROOF_READY but no test file at tests/Feature/CurrenciesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Wizard/Currencies.php::App\\Http\\Controllers\\Wizard\\Currencies::store",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Currencies@store",
        "expected_test_path": "tests/Feature/CurrenciesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Wizard\\Currencies;\n\nclass CurrenciesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Wizard\\Currencies@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\\Wizard\\Currencies@store is PROOF_READY but no test file at tests/Feature/CurrenciesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Wizard/Currencies.php::App\\Http\\Controllers\\Wizard\\Currencies::update",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Currencies@update",
        "expected_test_path": "tests/Feature/CurrenciesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Wizard\\Currencies;\n\nclass CurrenciesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Wizard\\Currencies@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\\Wizard\\Currencies@update is PROOF_READY but no test file at tests/Feature/CurrenciesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Wizard/Finish.php::App\\Http\\Controllers\\Wizard\\Finish::index",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Finish@index",
        "expected_test_path": "tests/Feature/FinishTest.php",
        "intent": null,
        "intent_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\\Wizard\\Finish;\n\nclass FinishTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Wizard\\Finish@index\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_index_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Wizard\\Finish@index is PROOF_READY but no test file at tests/Feature/FinishTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Wizard/Finish.php::App\\Http\\Controllers\\Wizard\\Finish::update",
        "fqmn": "App\\Http\\Controllers\\Wizard\\Finish@update",
        "expected_test_path": "tests/Feature/FinishTest.php",
        "intent": null,
        "intent_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\\Wizard\\Finish;\n\nclass FinishTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Wizard\\Finish@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\\Wizard\\Finish@update is PROOF_READY but no test file at tests/Feature/FinishTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Forgot.php::App\\Http\\Requests\\Auth\\Forgot::authorize",
        "fqmn": "App\\Http\\Requests\\Auth\\Forgot@authorize",
        "expected_test_path": "tests/Feature/ForgotTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Forgot;\n\nclass ForgotTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Auth\\Forgot@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\\Forgot@authorize is PROOF_READY but no test file at tests/Feature/ForgotTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Forgot.php::App\\Http\\Requests\\Auth\\Forgot::rules",
        "fqmn": "App\\Http\\Requests\\Auth\\Forgot@rules",
        "expected_test_path": "tests/Feature/ForgotTest.php",
        "intent": null,
        "intent_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\\Forgot;\n\nclass ForgotTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Auth\\Forgot@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\\Forgot@rules is PROOF_READY but no test file at tests/Feature/ForgotTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Login.php::App\\Http\\Requests\\Auth\\Login::authorize",
        "fqmn": "App\\Http\\Requests\\Auth\\Login@authorize",
        "expected_test_path": "tests/Feature/LoginTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Login;\n\nclass LoginTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Auth\\Login@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\\Login@authorize is PROOF_READY but no test file at tests/Feature/LoginTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Login.php::App\\Http\\Requests\\Auth\\Login::rules",
        "fqmn": "App\\Http\\Requests\\Auth\\Login@rules",
        "expected_test_path": "tests/Feature/LoginTest.php",
        "intent": null,
        "intent_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\\Login;\n\nclass LoginTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Auth\\Login@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\\Login@rules is PROOF_READY but no test file at tests/Feature/LoginTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Register.php::App\\Http\\Requests\\Auth\\Register::authorize",
        "fqmn": "App\\Http\\Requests\\Auth\\Register@authorize",
        "expected_test_path": "tests/Feature/RegisterTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Register;\n\nclass RegisterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Auth\\Register@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\\Register@authorize is PROOF_READY but no test file at tests/Feature/RegisterTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Register.php::App\\Http\\Requests\\Auth\\Register::rules",
        "fqmn": "App\\Http\\Requests\\Auth\\Register@rules",
        "expected_test_path": "tests/Feature/RegisterTest.php",
        "intent": null,
        "intent_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\\Register;\n\nclass RegisterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Auth\\Register@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\\Register@rules is PROOF_READY but no test file at tests/Feature/RegisterTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Reset.php::App\\Http\\Requests\\Auth\\Reset::authorize",
        "fqmn": "App\\Http\\Requests\\Auth\\Reset@authorize",
        "expected_test_path": "tests/Feature/ResetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Reset;\n\nclass ResetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Auth\\Reset@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\\Reset@authorize is PROOF_READY but no test file at tests/Feature/ResetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Reset.php::App\\Http\\Requests\\Auth\\Reset::rules",
        "fqmn": "App\\Http\\Requests\\Auth\\Reset@rules",
        "expected_test_path": "tests/Feature/ResetTest.php",
        "intent": null,
        "intent_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\\Reset;\n\nclass ResetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Auth\\Reset@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\\Reset@rules is PROOF_READY but no test file at tests/Feature/ResetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/User.php::App\\Http\\Requests\\Auth\\User::authorize",
        "fqmn": "App\\Http\\Requests\\Auth\\User@authorize",
        "expected_test_path": "tests/Feature/UserTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\User;\n\nclass UserTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Auth\\User@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\\User@authorize is PROOF_READY but no test file at tests/Feature/UserTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/Auth/User.php::App\\Http\\Requests\\Auth\\User::messages",
        "fqmn": "App\\Http\\Requests\\Auth\\User@messages",
        "expected_test_path": "tests/Feature/UserTest.php",
        "intent": null,
        "intent_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\\User;\n\nclass UserTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Auth\\User@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\\User@messages is PROOF_READY but no test file at tests/Feature/UserTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/Auth/User.php::App\\Http\\Requests\\Auth\\User::rules",
        "fqmn": "App\\Http\\Requests\\Auth\\User@rules",
        "expected_test_path": "tests/Feature/UserTest.php",
        "intent": null,
        "intent_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\\User;\n\nclass UserTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Auth\\User@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\\User@rules is PROOF_READY but no test file at tests/Feature/UserTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/Banking/Account.php::App\\Http\\Requests\\Banking\\Account::rules",
        "fqmn": "App\\Http\\Requests\\Banking\\Account@rules",
        "expected_test_path": "tests/Feature/AccountTest.php",
        "intent": null,
        "intent_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\\Banking\\Account;\n\nclass AccountTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Banking\\Account@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\\Banking\\Account@rules is PROOF_READY but no test file at tests/Feature/AccountTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Banking/Reconciliation.php::App\\Http\\Requests\\Banking\\Reconciliation::rules",
        "fqmn": "App\\Http\\Requests\\Banking\\Reconciliation@rules",
        "expected_test_path": "tests/Feature/ReconciliationTest.php",
        "intent": null,
        "intent_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\\Banking\\Reconciliation;\n\nclass ReconciliationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Banking\\Reconciliation@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\\Banking\\Reconciliation@rules is PROOF_READY but no test file at tests/Feature/ReconciliationTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Banking/ReconciliationCalculate.php::App\\Http\\Requests\\Banking\\ReconciliationCalculate::rules",
        "fqmn": "App\\Http\\Requests\\Banking\\ReconciliationCalculate@rules",
        "expected_test_path": "tests/Feature/ReconciliationCalculateTest.php",
        "intent": null,
        "intent_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\\Banking\\ReconciliationCalculate;\n\nclass ReconciliationCalculateTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Banking\\ReconciliationCalculate@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\\Banking\\ReconciliationCalculate@rules is PROOF_READY but no test file at tests/Feature/ReconciliationCalculateTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Banking/Transaction.php::App\\Http\\Requests\\Banking\\Transaction::rules",
        "fqmn": "App\\Http\\Requests\\Banking\\Transaction@rules",
        "expected_test_path": "tests/Feature/TransactionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Banking\\Transaction;\n\nclass TransactionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Banking\\Transaction@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\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\\Banking\\Transaction@rules is PROOF_READY but no test file at tests/Feature/TransactionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Banking/TransactionConnect.php::App\\Http\\Requests\\Banking\\TransactionConnect::rules",
        "fqmn": "App\\Http\\Requests\\Banking\\TransactionConnect@rules",
        "expected_test_path": "tests/Feature/TransactionConnectTest.php",
        "intent": null,
        "intent_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\\Banking\\TransactionConnect;\n\nclass TransactionConnectTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Banking\\TransactionConnect@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\\Banking\\TransactionConnect@rules is PROOF_READY but no test file at tests/Feature/TransactionConnectTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Banking/Transfer.php::App\\Http\\Requests\\Banking\\Transfer::rules",
        "fqmn": "App\\Http\\Requests\\Banking\\Transfer@rules",
        "expected_test_path": "tests/Feature/TransferTest.php",
        "intent": null,
        "intent_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\\Banking\\Transfer;\n\nclass TransferTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Banking\\Transfer@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\\Banking\\Transfer@rules is PROOF_READY but no test file at tests/Feature/TransferTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Common/BulkAction.php::App\\Http\\Requests\\Common\\BulkAction::rules",
        "fqmn": "App\\Http\\Requests\\Common\\BulkAction@rules",
        "expected_test_path": "tests/Feature/BulkActionTest.php",
        "intent": null,
        "intent_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\\Common\\BulkAction;\n\nclass BulkActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Common\\BulkAction@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\\Common\\BulkAction@rules is PROOF_READY but no test file at tests/Feature/BulkActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Common/Company.php::App\\Http\\Requests\\Common\\Company::messages",
        "fqmn": "App\\Http\\Requests\\Common\\Company@messages",
        "expected_test_path": "tests/Feature/CompanyTest.php",
        "intent": null,
        "intent_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\\Common\\Company;\n\nclass CompanyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Common\\Company@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\\Common\\Company@messages is PROOF_READY but no test file at tests/Feature/CompanyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Common/Company.php::App\\Http\\Requests\\Common\\Company::rules",
        "fqmn": "App\\Http\\Requests\\Common\\Company@rules",
        "expected_test_path": "tests/Feature/CompanyTest.php",
        "intent": null,
        "intent_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\\Common\\Company;\n\nclass CompanyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Common\\Company@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\\Common\\Company@rules is PROOF_READY but no test file at tests/Feature/CompanyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Common/Contact.php::App\\Http\\Requests\\Common\\Contact::messages",
        "fqmn": "App\\Http\\Requests\\Common\\Contact@messages",
        "expected_test_path": "tests/Feature/ContactTest.php",
        "intent": null,
        "intent_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\\Common\\Contact;\n\nclass ContactTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Common\\Contact@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\\Common\\Contact@messages is PROOF_READY but no test file at tests/Feature/ContactTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Common/Contact.php::App\\Http\\Requests\\Common\\Contact::rules",
        "fqmn": "App\\Http\\Requests\\Common\\Contact@rules",
        "expected_test_path": "tests/Feature/ContactTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Contact;\n\nclass ContactTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Common\\Contact@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\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\\Common\\Contact@rules is PROOF_READY but no test file at tests/Feature/ContactTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Common/ContactPerson.php::App\\Http\\Requests\\Common\\ContactPerson::rules",
        "fqmn": "App\\Http\\Requests\\Common\\ContactPerson@rules",
        "expected_test_path": "tests/Feature/ContactPersonTest.php",
        "intent": null,
        "intent_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\\Common\\ContactPerson;\n\nclass ContactPersonTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Common\\ContactPerson@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\\Common\\ContactPerson@rules is PROOF_READY but no test file at tests/Feature/ContactPersonTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Common/CustomMail.php::App\\Http\\Requests\\Common\\CustomMail::rules",
        "fqmn": "App\\Http\\Requests\\Common\\CustomMail@rules",
        "expected_test_path": "tests/Feature/CustomMailTest.php",
        "intent": null,
        "intent_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\\Common\\CustomMail;\n\nclass CustomMailTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Common\\CustomMail@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\\Common\\CustomMail@rules is PROOF_READY but no test file at tests/Feature/CustomMailTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Common/Dashboard.php::App\\Http\\Requests\\Common\\Dashboard::rules",
        "fqmn": "App\\Http\\Requests\\Common\\Dashboard@rules",
        "expected_test_path": "tests/Feature/DashboardTest.php",
        "intent": null,
        "intent_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\\Common\\Dashboard;\n\nclass DashboardTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Common\\Dashboard@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\\Common\\Dashboard@rules is PROOF_READY but no test file at tests/Feature/DashboardTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Common/Import.php::App\\Http\\Requests\\Common\\Import::rules",
        "fqmn": "App\\Http\\Requests\\Common\\Import@rules",
        "expected_test_path": "tests/Feature/ImportTest.php",
        "intent": null,
        "intent_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\\Common\\Import;\n\nclass ImportTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Common\\Import@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\\Common\\Import@rules is PROOF_READY but no test file at tests/Feature/ImportTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Common/Item.php::App\\Http\\Requests\\Common\\Item::maxSizePrice",
        "fqmn": "App\\Http\\Requests\\Common\\Item@maxSizePrice",
        "expected_test_path": "tests/Feature/ItemTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Common\\Item;\n\nclass ItemTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Common\\Item@maxSizePrice\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_maxsizeprice_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\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\\Common\\Item@maxSizePrice is PROOF_READY but no test file at tests/Feature/ItemTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Common/Item.php::App\\Http\\Requests\\Common\\Item::messages",
        "fqmn": "App\\Http\\Requests\\Common\\Item@messages",
        "expected_test_path": "tests/Feature/ItemTest.php",
        "intent": null,
        "intent_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\\Common\\Item;\n\nclass ItemTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Common\\Item@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\\Common\\Item@messages is PROOF_READY but no test file at tests/Feature/ItemTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Common/Item.php::App\\Http\\Requests\\Common\\Item::rules",
        "fqmn": "App\\Http\\Requests\\Common\\Item@rules",
        "expected_test_path": "tests/Feature/ItemTest.php",
        "intent": null,
        "intent_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\\Common\\Item;\n\nclass ItemTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Common\\Item@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\\Common\\Item@rules is PROOF_READY but no test file at tests/Feature/ItemTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Common/ItemTax.php::App\\Http\\Requests\\Common\\ItemTax::rules",
        "fqmn": "App\\Http\\Requests\\Common\\ItemTax@rules",
        "expected_test_path": "tests/Feature/ItemTaxTest.php",
        "intent": null,
        "intent_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\\Common\\ItemTax;\n\nclass ItemTaxTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Common\\ItemTax@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\\Common\\ItemTax@rules is PROOF_READY but no test file at tests/Feature/ItemTaxTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Common/Notification.php::App\\Http\\Requests\\Common\\Notification::rules",
        "fqmn": "App\\Http\\Requests\\Common\\Notification@rules",
        "expected_test_path": "tests/Feature/NotificationTest.php",
        "intent": null,
        "intent_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\\Common\\Notification;\n\nclass NotificationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Common\\Notification@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\\Common\\Notification@rules is PROOF_READY but no test file at tests/Feature/NotificationTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Common/ReportShow.php::App\\Http\\Requests\\Common\\ReportShow::failedValidation",
        "fqmn": "App\\Http\\Requests\\Common\\ReportShow@failedValidation",
        "expected_test_path": "tests/Feature/ReportShowTest.php",
        "intent": null,
        "intent_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\\Common\\ReportShow;\n\nclass ReportShowTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Common\\ReportShow@failedValidation\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_failedvalidation_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\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\\Common\\ReportShow@failedValidation is PROOF_READY but no test file at tests/Feature/ReportShowTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Common/ReportShow.php::App\\Http\\Requests\\Common\\ReportShow::rules",
        "fqmn": "App\\Http\\Requests\\Common\\ReportShow@rules",
        "expected_test_path": "tests/Feature/ReportShowTest.php",
        "intent": null,
        "intent_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\\Common\\ReportShow;\n\nclass ReportShowTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Common\\ReportShow@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\\Common\\ReportShow@rules is PROOF_READY but no test file at tests/Feature/ReportShowTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Common/TotalItem.php::App\\Http\\Requests\\Common\\TotalItem::messages",
        "fqmn": "App\\Http\\Requests\\Common\\TotalItem@messages",
        "expected_test_path": "tests/Feature/TotalItemTest.php",
        "intent": null,
        "intent_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\\Common\\TotalItem;\n\nclass TotalItemTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Common\\TotalItem@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\\Common\\TotalItem@messages is PROOF_READY but no test file at tests/Feature/TotalItemTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Common/TotalItem.php::App\\Http\\Requests\\Common\\TotalItem::rules",
        "fqmn": "App\\Http\\Requests\\Common\\TotalItem@rules",
        "expected_test_path": "tests/Feature/TotalItemTest.php",
        "intent": null,
        "intent_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\\Common\\TotalItem;\n\nclass TotalItemTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Common\\TotalItem@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\\Common\\TotalItem@rules is PROOF_READY but no test file at tests/Feature/TotalItemTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Common/Widget.php::App\\Http\\Requests\\Common\\Widget::messages",
        "fqmn": "App\\Http\\Requests\\Common\\Widget@messages",
        "expected_test_path": "tests/Feature/WidgetTest.php",
        "intent": null,
        "intent_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\\Common\\Widget;\n\nclass WidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Common\\Widget@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\\Common\\Widget@messages is PROOF_READY but no test file at tests/Feature/WidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Common/Widget.php::App\\Http\\Requests\\Common\\Widget::rules",
        "fqmn": "App\\Http\\Requests\\Common\\Widget@rules",
        "expected_test_path": "tests/Feature/WidgetTest.php",
        "intent": null,
        "intent_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\\Common\\Widget;\n\nclass WidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Common\\Widget@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\\Common\\Widget@rules is PROOF_READY but no test file at tests/Feature/WidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/Document/Document.php::App\\Http\\Requests\\Document\\Document::messages",
        "fqmn": "App\\Http\\Requests\\Document\\Document@messages",
        "expected_test_path": "tests/Feature/DocumentTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\Document\\Document;\n\nclass DocumentTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Document\\Document@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\Document\\Document@messages is PROOF_READY but no test file at tests/Feature/DocumentTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/Document/Document.php::App\\Http\\Requests\\Document\\Document::rules",
        "fqmn": "App\\Http\\Requests\\Document\\Document@rules",
        "expected_test_path": "tests/Feature/DocumentTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\Document\\Document;\n\nclass DocumentTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Document\\Document@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\Document\\Document@rules is PROOF_READY but no test file at tests/Feature/DocumentTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/Document/DocumentAddItem.php::App\\Http\\Requests\\Document\\DocumentAddItem::rules",
        "fqmn": "App\\Http\\Requests\\Document\\DocumentAddItem@rules",
        "expected_test_path": "tests/Feature/DocumentAddItemTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\Document\\DocumentAddItem;\n\nclass DocumentAddItemTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Document\\DocumentAddItem@rules\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_rules_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\Document\\DocumentAddItem@rules is PROOF_READY but no test file at tests/Feature/DocumentAddItemTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/Document/DocumentHistory.php::App\\Http\\Requests\\Document\\DocumentHistory::rules",
        "fqmn": "App\\Http\\Requests\\Document\\DocumentHistory@rules",
        "expected_test_path": "tests/Feature/DocumentHistoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\Document\\DocumentHistory;\n\nclass DocumentHistoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Document\\DocumentHistory@rules\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_rules_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\Document\\DocumentHistory@rules is PROOF_READY but no test file at tests/Feature/DocumentHistoryTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/Document/DocumentItem.php::App\\Http\\Requests\\Document\\DocumentItem::messages",
        "fqmn": "App\\Http\\Requests\\Document\\DocumentItem@messages",
        "expected_test_path": "tests/Feature/DocumentItemTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\Document\\DocumentItem;\n\nclass DocumentItemTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Document\\DocumentItem@messages\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_messages_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\Document\\DocumentItem@messages is PROOF_READY but no test file at tests/Feature/DocumentItemTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/Document/DocumentItem.php::App\\Http\\Requests\\Document\\DocumentItem::rules",
        "fqmn": "App\\Http\\Requests\\Document\\DocumentItem@rules",
        "expected_test_path": "tests/Feature/DocumentItemTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\Document\\DocumentItem;\n\nclass DocumentItemTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Document\\DocumentItem@rules\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_rules_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\Document\\DocumentItem@rules is PROOF_READY but no test file at tests/Feature/DocumentItemTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/Document/DocumentItemTax.php::App\\Http\\Requests\\Document\\DocumentItemTax::rules",
        "fqmn": "App\\Http\\Requests\\Document\\DocumentItemTax@rules",
        "expected_test_path": "tests/Feature/DocumentItemTaxTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\Document\\DocumentItemTax;\n\nclass DocumentItemTaxTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Document\\DocumentItemTax@rules\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_rules_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\Document\\DocumentItemTax@rules is PROOF_READY but no test file at tests/Feature/DocumentItemTaxTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/Document/DocumentTotal.php::App\\Http\\Requests\\Document\\DocumentTotal::rules",
        "fqmn": "App\\Http\\Requests\\Document\\DocumentTotal@rules",
        "expected_test_path": "tests/Feature/DocumentTotalTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\Document\\DocumentTotal;\n\nclass DocumentTotalTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Document\\DocumentTotal@rules\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_rules_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\Document\\DocumentTotal@rules is PROOF_READY but no test file at tests/Feature/DocumentTotalTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Install/Database.php::App\\Http\\Requests\\Install\\Database::rules",
        "fqmn": "App\\Http\\Requests\\Install\\Database@rules",
        "expected_test_path": "tests/Feature/DatabaseTest.php",
        "intent": null,
        "intent_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\\Install\\Database;\n\nclass DatabaseTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Install\\Database@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\\Install\\Database@rules is PROOF_READY but no test file at tests/Feature/DatabaseTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Install/Setting.php::App\\Http\\Requests\\Install\\Setting::rules",
        "fqmn": "App\\Http\\Requests\\Install\\Setting@rules",
        "expected_test_path": "tests/Feature/SettingTest.php",
        "intent": null,
        "intent_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\\Install\\Setting;\n\nclass SettingTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Install\\Setting@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\\Install\\Setting@rules is PROOF_READY but no test file at tests/Feature/SettingTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Module/Install.php::App\\Http\\Requests\\Module\\Install::rules",
        "fqmn": "App\\Http\\Requests\\Module\\Install@rules",
        "expected_test_path": "tests/Feature/InstallTest.php",
        "intent": null,
        "intent_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\\Module\\Install;\n\nclass InstallTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Module\\Install@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\\Module\\Install@rules is PROOF_READY but no test file at tests/Feature/InstallTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Module/Module.php::App\\Http\\Requests\\Module\\Module::__construct",
        "fqmn": "App\\Http\\Requests\\Module\\Module@__construct",
        "expected_test_path": "tests/Feature/ModuleTest.php",
        "intent": null,
        "intent_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\\Module\\Module;\n\nclass ModuleTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Module\\Module@__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\\Requests\\Module\\Module@__construct is PROOF_READY but no test file at tests/Feature/ModuleTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Module/Module.php::App\\Http\\Requests\\Module\\Module::rules",
        "fqmn": "App\\Http\\Requests\\Module\\Module@rules",
        "expected_test_path": "tests/Feature/ModuleTest.php",
        "intent": null,
        "intent_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\\Module\\Module;\n\nclass ModuleTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Module\\Module@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\\Module\\Module@rules is PROOF_READY but no test file at tests/Feature/ModuleTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Portal/InvoiceConfirm.php::App\\Http\\Requests\\Portal\\InvoiceConfirm::rules",
        "fqmn": "App\\Http\\Requests\\Portal\\InvoiceConfirm@rules",
        "expected_test_path": "tests/Feature/InvoiceConfirmTest.php",
        "intent": null,
        "intent_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\\Portal\\InvoiceConfirm;\n\nclass InvoiceConfirmTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Portal\\InvoiceConfirm@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\\Portal\\InvoiceConfirm@rules is PROOF_READY but no test file at tests/Feature/InvoiceConfirmTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Portal/InvoicePayment.php::App\\Http\\Requests\\Portal\\InvoicePayment::rules",
        "fqmn": "App\\Http\\Requests\\Portal\\InvoicePayment@rules",
        "expected_test_path": "tests/Feature/InvoicePaymentTest.php",
        "intent": null,
        "intent_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\\Portal\\InvoicePayment;\n\nclass InvoicePaymentTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Portal\\InvoicePayment@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\\Portal\\InvoicePayment@rules is PROOF_READY but no test file at tests/Feature/InvoicePaymentTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Portal/InvoiceShow.php::App\\Http\\Requests\\Portal\\InvoiceShow::authorize",
        "fqmn": "App\\Http\\Requests\\Portal\\InvoiceShow@authorize",
        "expected_test_path": "tests/Feature/InvoiceShowTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Portal\\InvoiceShow;\n\nclass InvoiceShowTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Portal\\InvoiceShow@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\\Portal\\InvoiceShow@authorize is PROOF_READY but no test file at tests/Feature/InvoiceShowTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Portal/InvoiceShow.php::App\\Http\\Requests\\Portal\\InvoiceShow::rules",
        "fqmn": "App\\Http\\Requests\\Portal\\InvoiceShow@rules",
        "expected_test_path": "tests/Feature/InvoiceShowTest.php",
        "intent": null,
        "intent_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\\Portal\\InvoiceShow;\n\nclass InvoiceShowTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Portal\\InvoiceShow@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\\Portal\\InvoiceShow@rules is PROOF_READY but no test file at tests/Feature/InvoiceShowTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Portal/PaymentShow.php::App\\Http\\Requests\\Portal\\PaymentShow::authorize",
        "fqmn": "App\\Http\\Requests\\Portal\\PaymentShow@authorize",
        "expected_test_path": "tests/Feature/PaymentShowTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Portal\\PaymentShow;\n\nclass PaymentShowTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Portal\\PaymentShow@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\\Portal\\PaymentShow@authorize is PROOF_READY but no test file at tests/Feature/PaymentShowTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Portal/PaymentShow.php::App\\Http\\Requests\\Portal\\PaymentShow::rules",
        "fqmn": "App\\Http\\Requests\\Portal\\PaymentShow@rules",
        "expected_test_path": "tests/Feature/PaymentShowTest.php",
        "intent": null,
        "intent_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\\Portal\\PaymentShow;\n\nclass PaymentShowTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Portal\\PaymentShow@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\\Portal\\PaymentShow@rules is PROOF_READY but no test file at tests/Feature/PaymentShowTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Portal/Profile.php::App\\Http\\Requests\\Portal\\Profile::messages",
        "fqmn": "App\\Http\\Requests\\Portal\\Profile@messages",
        "expected_test_path": "tests/Feature/ProfileTest.php",
        "intent": null,
        "intent_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\\Portal\\Profile;\n\nclass ProfileTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Portal\\Profile@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\\Portal\\Profile@messages is PROOF_READY but no test file at tests/Feature/ProfileTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Portal/Profile.php::App\\Http\\Requests\\Portal\\Profile::rules",
        "fqmn": "App\\Http\\Requests\\Portal\\Profile@rules",
        "expected_test_path": "tests/Feature/ProfileTest.php",
        "intent": null,
        "intent_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\\Portal\\Profile;\n\nclass ProfileTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Portal\\Profile@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\\Portal\\Profile@rules is PROOF_READY but no test file at tests/Feature/ProfileTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Setting/Category.php::App\\Http\\Requests\\Setting\\Category::rules",
        "fqmn": "App\\Http\\Requests\\Setting\\Category@rules",
        "expected_test_path": "tests/Feature/CategoryTest.php",
        "intent": null,
        "intent_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\\Setting\\Category;\n\nclass CategoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Setting\\Category@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\\Setting\\Category@rules is PROOF_READY but no test file at tests/Feature/CategoryTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Setting/Currency.php::App\\Http\\Requests\\Setting\\Currency::rules",
        "fqmn": "App\\Http\\Requests\\Setting\\Currency@rules",
        "expected_test_path": "tests/Feature/CurrencyTest.php",
        "intent": null,
        "intent_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\\Setting\\Currency;\n\nclass CurrencyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Setting\\Currency@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\\Setting\\Currency@rules is PROOF_READY but no test file at tests/Feature/CurrencyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Setting/EmailTemplate.php::App\\Http\\Requests\\Setting\\EmailTemplate::rules",
        "fqmn": "App\\Http\\Requests\\Setting\\EmailTemplate@rules",
        "expected_test_path": "tests/Feature/EmailTemplateTest.php",
        "intent": null,
        "intent_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\\Setting\\EmailTemplate;\n\nclass EmailTemplateTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Setting\\EmailTemplate@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\\Setting\\EmailTemplate@rules is PROOF_READY but no test file at tests/Feature/EmailTemplateTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Setting/Module.php::App\\Http\\Requests\\Setting\\Module::rules",
        "fqmn": "App\\Http\\Requests\\Setting\\Module@rules",
        "expected_test_path": "tests/Feature/ModuleTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Setting\\Module;\n\nclass ModuleTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Setting\\Module@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\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\\Setting\\Module@rules is PROOF_READY but no test file at tests/Feature/ModuleTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Setting/Setting.php::App\\Http\\Requests\\Setting\\Setting::messages",
        "fqmn": "App\\Http\\Requests\\Setting\\Setting@messages",
        "expected_test_path": "tests/Feature/SettingTest.php",
        "intent": null,
        "intent_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\\Setting\\Setting;\n\nclass SettingTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Setting\\Setting@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\\Setting\\Setting@messages is PROOF_READY but no test file at tests/Feature/SettingTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Setting/Setting.php::App\\Http\\Requests\\Setting\\Setting::rules",
        "fqmn": "App\\Http\\Requests\\Setting\\Setting@rules",
        "expected_test_path": "tests/Feature/SettingTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Setting\\Setting;\n\nclass SettingTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Setting\\Setting@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\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\\Setting\\Setting@rules is PROOF_READY but no test file at tests/Feature/SettingTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Setting/Tax.php::App\\Http\\Requests\\Setting\\Tax::rules",
        "fqmn": "App\\Http\\Requests\\Setting\\Tax@rules",
        "expected_test_path": "tests/Feature/TaxTest.php",
        "intent": null,
        "intent_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\\Setting\\Tax;\n\nclass TaxTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Setting\\Tax@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\\Setting\\Tax@rules is PROOF_READY but no test file at tests/Feature/TaxTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Wizard/Company.php::App\\Http\\Requests\\Wizard\\Company::__construct",
        "fqmn": "App\\Http\\Requests\\Wizard\\Company@__construct",
        "expected_test_path": "tests/Feature/CompanyTest.php",
        "intent": null,
        "intent_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\\Wizard\\Company;\n\nclass CompanyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Wizard\\Company@__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\\Requests\\Wizard\\Company@__construct is PROOF_READY but no test file at tests/Feature/CompanyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Wizard/Company.php::App\\Http\\Requests\\Wizard\\Company::messages",
        "fqmn": "App\\Http\\Requests\\Wizard\\Company@messages",
        "expected_test_path": "tests/Feature/CompanyTest.php",
        "intent": null,
        "intent_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\\Wizard\\Company;\n\nclass CompanyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Wizard\\Company@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\\Wizard\\Company@messages is PROOF_READY but no test file at tests/Feature/CompanyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to 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/Wizard/Company.php::App\\Http\\Requests\\Wizard\\Company::rules",
        "fqmn": "App\\Http\\Requests\\Wizard\\Company@rules",
        "expected_test_path": "tests/Feature/CompanyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_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\\Wizard\\Company;\n\nclass CompanyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Wizard\\Company@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, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\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\\Wizard\\Company@rules is PROOF_READY but no test file at tests/Feature/CompanyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Resources/Auth/Role.php::App\\Http\\Resources\\Auth\\Role::toArray",
        "fqmn": "App\\Http\\Resources\\Auth\\Role@toArray",
        "expected_test_path": "tests/Feature/RoleTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Resources\\Auth\\Role;\n\nclass RoleTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Resources\\Auth\\Role@toArray\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_toarray_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Resources\\Auth\\Role@toArray is PROOF_READY but no test file at tests/Feature/RoleTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Resources/Auth/User.php::App\\Http\\Resources\\Auth\\User::toArray",
        "fqmn": "App\\Http\\Resources\\Auth\\User@toArray",
        "expected_test_path": "tests/Feature/UserTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Resources\\Auth\\User;\n\nclass UserTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Resources\\Auth\\User@toArray\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_toarray_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Resources\\Auth\\User@toArray is PROOF_READY but no test file at tests/Feature/UserTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Resources/Banking/Account.php::App\\Http\\Resources\\Banking\\Account::toArray",
        "fqmn": "App\\Http\\Resources\\Banking\\Account@toArray",
        "expected_test_path": "tests/Feature/AccountTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Resources\\Banking\\Account;\n\nclass AccountTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Resources\\Banking\\Account@toArray\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_toarray_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Resources\\Banking\\Account@toArray is PROOF_READY but no test file at tests/Feature/AccountTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Resources/Banking/Reconciliation.php::App\\Http\\Resources\\Banking\\Reconciliation::toArray",
        "fqmn": "App\\Http\\Resources\\Banking\\Reconciliation@toArray",
        "expected_test_path": "tests/Feature/ReconciliationTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Resources\\Banking\\Reconciliation;\n\nclass ReconciliationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Resources\\Banking\\Reconciliation@toArray\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_toarray_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Resources\\Banking\\Reconciliation@toArray is PROOF_READY but no test file at tests/Feature/ReconciliationTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Resources/Banking/Transaction.php::App\\Http\\Resources\\Banking\\Transaction::toArray",
        "fqmn": "App\\Http\\Resources\\Banking\\Transaction@toArray",
        "expected_test_path": "tests/Feature/TransactionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Resources\\Banking\\Transaction;\n\nclass TransactionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Resources\\Banking\\Transaction@toArray\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_toarray_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Resources\\Banking\\Transaction@toArray is PROOF_READY but no test file at tests/Feature/TransactionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Resources/Banking/TransactionTax.php::App\\Http\\Resources\\Banking\\TransactionTax::toArray",
        "fqmn": "App\\Http\\Resources\\Banking\\TransactionTax@toArray",
        "expected_test_path": "tests/Feature/TransactionTaxTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Resources\\Banking\\TransactionTax;\n\nclass TransactionTaxTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Resources\\Banking\\TransactionTax@toArray\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_toarray_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Resources\\Banking\\TransactionTax@toArray is PROOF_READY but no test file at tests/Feature/TransactionTaxTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Resources/Banking/Transfer.php::App\\Http\\Resources\\Banking\\Transfer::toArray",
        "fqmn": "App\\Http\\Resources\\Banking\\Transfer@toArray",
        "expected_test_path": "tests/Feature/TransferTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Resources\\Banking\\Transfer;\n\nclass TransferTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Resources\\Banking\\Transfer@toArray\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_toarray_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Resources\\Banking\\Transfer@toArray is PROOF_READY but no test file at tests/Feature/TransferTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Resources/Common/Company.php::App\\Http\\Resources\\Common\\Company::toArray",
        "fqmn": "App\\Http\\Resources\\Common\\Company@toArray",
        "expected_test_path": "tests/Feature/CompanyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Resources\\Common\\Company;\n\nclass CompanyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Resources\\Common\\Company@toArray\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_toarray_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Resources\\Common\\Company@toArray is PROOF_READY but no test file at tests/Feature/CompanyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Resources/Common/Contact.php::App\\Http\\Resources\\Common\\Contact::toArray",
        "fqmn": "App\\Http\\Resources\\Common\\Contact@toArray",
        "expected_test_path": "tests/Feature/ContactTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Resources\\Common\\Contact;\n\nclass ContactTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Resources\\Common\\Contact@toArray\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_toarray_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Resources\\Common\\Contact@toArray is PROOF_READY but no test file at tests/Feature/ContactTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Resources/Common/ContactPerson.php::App\\Http\\Resources\\Common\\ContactPerson::toArray",
        "fqmn": "App\\Http\\Resources\\Common\\ContactPerson@toArray",
        "expected_test_path": "tests/Feature/ContactPersonTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Resources\\Common\\ContactPerson;\n\nclass ContactPersonTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Resources\\Common\\ContactPerson@toArray\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_toarray_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Resources\\Common\\ContactPerson@toArray is PROOF_READY but no test file at tests/Feature/ContactPersonTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Resources/Common/Dashboard.php::App\\Http\\Resources\\Common\\Dashboard::toArray",
        "fqmn": "App\\Http\\Resources\\Common\\Dashboard@toArray",
        "expected_test_path": "tests/Feature/DashboardTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Resources\\Common\\Dashboard;\n\nclass DashboardTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Resources\\Common\\Dashboard@toArray\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_toarray_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Resources\\Common\\Dashboard@toArray is PROOF_READY but no test file at tests/Feature/DashboardTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Resources/Common/Item.php::App\\Http\\Resources\\Common\\Item::toArray",
        "fqmn": "App\\Http\\Resources\\Common\\Item@toArray",
        "expected_test_path": "tests/Feature/ItemTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Resources\\Common\\Item;\n\nclass ItemTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Resources\\Common\\Item@toArray\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_toarray_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Resources\\Common\\Item@toArray is PROOF_READY but no test file at tests/Feature/ItemTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Resources/Common/ItemTax.php::App\\Http\\Resources\\Common\\ItemTax::toArray",
        "fqmn": "App\\Http\\Resources\\Common\\ItemTax@toArray",
        "expected_test_path": "tests/Feature/ItemTaxTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Resources\\Common\\ItemTax;\n\nclass ItemTaxTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Resources\\Common\\ItemTax@toArray\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_toarray_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Resources\\Common\\ItemTax@toArray is PROOF_READY but no test file at tests/Feature/ItemTaxTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Resources/Common/Widget.php::App\\Http\\Resources\\Common\\Widget::toArray",
        "fqmn": "App\\Http\\Resources\\Common\\Widget@toArray",
        "expected_test_path": "tests/Feature/WidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Resources\\Common\\Widget;\n\nclass WidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Resources\\Common\\Widget@toArray\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_toarray_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Resources\\Common\\Widget@toArray is PROOF_READY but no test file at tests/Feature/WidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Resources/Document/Document.php::App\\Http\\Resources\\Document\\Document::toArray",
        "fqmn": "App\\Http\\Resources\\Document\\Document@toArray",
        "expected_test_path": "tests/Feature/DocumentTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Resources\\Document\\Document;\n\nclass DocumentTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Resources\\Document\\Document@toArray\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_toarray_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Resources\\Document\\Document@toArray is PROOF_READY but no test file at tests/Feature/DocumentTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Resources/Document/DocumentHistory.php::App\\Http\\Resources\\Document\\DocumentHistory::toArray",
        "fqmn": "App\\Http\\Resources\\Document\\DocumentHistory@toArray",
        "expected_test_path": "tests/Feature/DocumentHistoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Resources\\Document\\DocumentHistory;\n\nclass DocumentHistoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Resources\\Document\\DocumentHistory@toArray\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_toarray_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Resources\\Document\\DocumentHistory@toArray is PROOF_READY but no test file at tests/Feature/DocumentHistoryTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Resources/Document/DocumentItem.php::App\\Http\\Resources\\Document\\DocumentItem::toArray",
        "fqmn": "App\\Http\\Resources\\Document\\DocumentItem@toArray",
        "expected_test_path": "tests/Feature/DocumentItemTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Resources\\Document\\DocumentItem;\n\nclass DocumentItemTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Resources\\Document\\DocumentItem@toArray\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_toarray_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Resources\\Document\\DocumentItem@toArray is PROOF_READY but no test file at tests/Feature/DocumentItemTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Resources/Document/DocumentItemTax.php::App\\Http\\Resources\\Document\\DocumentItemTax::toArray",
        "fqmn": "App\\Http\\Resources\\Document\\DocumentItemTax@toArray",
        "expected_test_path": "tests/Feature/DocumentItemTaxTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Resources\\Document\\DocumentItemTax;\n\nclass DocumentItemTaxTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Resources\\Document\\DocumentItemTax@toArray\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_toarray_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Resources\\Document\\DocumentItemTax@toArray is PROOF_READY but no test file at tests/Feature/DocumentItemTaxTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Resources/Document/DocumentTotal.php::App\\Http\\Resources\\Document\\DocumentTotal::toArray",
        "fqmn": "App\\Http\\Resources\\Document\\DocumentTotal@toArray",
        "expected_test_path": "tests/Feature/DocumentTotalTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Resources\\Document\\DocumentTotal;\n\nclass DocumentTotalTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Resources\\Document\\DocumentTotal@toArray\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_toarray_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Resources\\Document\\DocumentTotal@toArray is PROOF_READY but no test file at tests/Feature/DocumentTotalTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Resources/Setting/Category.php::App\\Http\\Resources\\Setting\\Category::toArray",
        "fqmn": "App\\Http\\Resources\\Setting\\Category@toArray",
        "expected_test_path": "tests/Feature/CategoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Resources\\Setting\\Category;\n\nclass CategoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Resources\\Setting\\Category@toArray\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_toarray_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Resources\\Setting\\Category@toArray is PROOF_READY but no test file at tests/Feature/CategoryTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Resources/Setting/Currency.php::App\\Http\\Resources\\Setting\\Currency::toArray",
        "fqmn": "App\\Http\\Resources\\Setting\\Currency@toArray",
        "expected_test_path": "tests/Feature/CurrencyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Resources\\Setting\\Currency;\n\nclass CurrencyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Resources\\Setting\\Currency@toArray\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_toarray_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Resources\\Setting\\Currency@toArray is PROOF_READY but no test file at tests/Feature/CurrencyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Resources/Setting/Setting.php::App\\Http\\Resources\\Setting\\Setting::toArray",
        "fqmn": "App\\Http\\Resources\\Setting\\Setting@toArray",
        "expected_test_path": "tests/Feature/SettingTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Resources\\Setting\\Setting;\n\nclass SettingTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Resources\\Setting\\Setting@toArray\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_toarray_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Resources\\Setting\\Setting@toArray is PROOF_READY but no test file at tests/Feature/SettingTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Resources/Setting/Tax.php::App\\Http\\Resources\\Setting\\Tax::toArray",
        "fqmn": "App\\Http\\Resources\\Setting\\Tax@toArray",
        "expected_test_path": "tests/Feature/TaxTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Resources\\Setting\\Tax;\n\nclass TaxTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Resources\\Setting\\Tax@toArray\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_toarray_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Resources\\Setting\\Tax@toArray is PROOF_READY but no test file at tests/Feature/TaxTest.php is in the MANUAL allowlist. 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/Auth/CreateInvitation.php::App\\Jobs\\Auth\\CreateInvitation::handle",
        "fqmn": "App\\Jobs\\Auth\\CreateInvitation@handle",
        "expected_test_path": "tests/Feature/CreateInvitationTest.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\\Auth\\CreateInvitation;\n\nclass CreateInvitationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Auth\\CreateInvitation@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Auth\\CreateInvitation@handle is PROOF_READY but no test file at tests/Feature/CreateInvitationTest.php is in the MANUAL allowlist. 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/Auth/CreatePermission.php::App\\Jobs\\Auth\\CreatePermission::handle",
        "fqmn": "App\\Jobs\\Auth\\CreatePermission@handle",
        "expected_test_path": "tests/Feature/CreatePermissionTest.php",
        "intent": null,
        "intent_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\\Auth\\CreatePermission;\n\nclass CreatePermissionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Auth\\CreatePermission@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Auth\\CreatePermission@handle is PROOF_READY but no test file at tests/Feature/CreatePermissionTest.php is in the MANUAL allowlist. 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/Auth/CreateRole.php::App\\Jobs\\Auth\\CreateRole::handle",
        "fqmn": "App\\Jobs\\Auth\\CreateRole@handle",
        "expected_test_path": "tests/Feature/CreateRoleTest.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\\Jobs\\Auth\\CreateRole;\n\nclass CreateRoleTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Auth\\CreateRole@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Jobs\\Auth\\CreateRole@handle is PROOF_READY but no test file at tests/Feature/CreateRoleTest.php is in the MANUAL allowlist. 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/Auth/CreateUser.php::App\\Jobs\\Auth\\CreateUser::handle",
        "fqmn": "App\\Jobs\\Auth\\CreateUser@handle",
        "expected_test_path": "tests/Feature/CreateUserTest.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\\Auth\\CreateUser;\n\nclass CreateUserTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Auth\\CreateUser@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\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\\Auth\\CreateUser@handle is PROOF_READY but no test file at tests/Feature/CreateUserTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Jobs",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Jobs/Auth/DeleteInvitation.php::App\\Jobs\\Auth\\DeleteInvitation::handle",
        "fqmn": "App\\Jobs\\Auth\\DeleteInvitation@handle",
        "expected_test_path": "tests/Feature/DeleteInvitationTest.php",
        "intent": null,
        "intent_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\\Auth\\DeleteInvitation;\n\nclass DeleteInvitationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Auth\\DeleteInvitation@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Auth\\DeleteInvitation@handle is PROOF_READY but no test file at tests/Feature/DeleteInvitationTest.php is in the MANUAL allowlist. 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/Auth/DeletePermission.php::App\\Jobs\\Auth\\DeletePermission::handle",
        "fqmn": "App\\Jobs\\Auth\\DeletePermission@handle",
        "expected_test_path": "tests/Feature/DeletePermissionTest.php",
        "intent": null,
        "intent_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\\Auth\\DeletePermission;\n\nclass DeletePermissionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Auth\\DeletePermission@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Auth\\DeletePermission@handle is PROOF_READY but no test file at tests/Feature/DeletePermissionTest.php is in the MANUAL allowlist. 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/Auth/DeleteRole.php::App\\Jobs\\Auth\\DeleteRole::handle",
        "fqmn": "App\\Jobs\\Auth\\DeleteRole@handle",
        "expected_test_path": "tests/Feature/DeleteRoleTest.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\\Jobs\\Auth\\DeleteRole;\n\nclass DeleteRoleTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Auth\\DeleteRole@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Jobs\\Auth\\DeleteRole@handle is PROOF_READY but no test file at tests/Feature/DeleteRoleTest.php is in the MANUAL allowlist. 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/Auth/DeleteUser.php::App\\Jobs\\Auth\\DeleteUser::handle",
        "fqmn": "App\\Jobs\\Auth\\DeleteUser@handle",
        "expected_test_path": "tests/Feature/DeleteUserTest.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\\Jobs\\Auth\\DeleteUser;\n\nclass DeleteUserTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Auth\\DeleteUser@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Jobs\\Auth\\DeleteUser@handle is PROOF_READY but no test file at tests/Feature/DeleteUserTest.php is in the MANUAL allowlist. 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/Auth/UpdatePermission.php::App\\Jobs\\Auth\\UpdatePermission::handle",
        "fqmn": "App\\Jobs\\Auth\\UpdatePermission@handle",
        "expected_test_path": "tests/Feature/UpdatePermissionTest.php",
        "intent": null,
        "intent_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\\Auth\\UpdatePermission;\n\nclass UpdatePermissionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Auth\\UpdatePermission@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Auth\\UpdatePermission@handle is PROOF_READY but no test file at tests/Feature/UpdatePermissionTest.php is in the MANUAL allowlist. 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/Auth/UpdateRole.php::App\\Jobs\\Auth\\UpdateRole::handle",
        "fqmn": "App\\Jobs\\Auth\\UpdateRole@handle",
        "expected_test_path": "tests/Feature/UpdateRoleTest.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\\Jobs\\Auth\\UpdateRole;\n\nclass UpdateRoleTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Auth\\UpdateRole@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Jobs\\Auth\\UpdateRole@handle is PROOF_READY but no test file at tests/Feature/UpdateRoleTest.php is in the MANUAL allowlist. 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/Auth/UpdateUser.php::App\\Jobs\\Auth\\UpdateUser::handle",
        "fqmn": "App\\Jobs\\Auth\\UpdateUser@handle",
        "expected_test_path": "tests/Feature/UpdateUserTest.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\\Jobs\\Auth\\UpdateUser;\n\nclass UpdateUserTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Auth\\UpdateUser@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Jobs\\Auth\\UpdateUser@handle is PROOF_READY but no test file at tests/Feature/UpdateUserTest.php is in the MANUAL allowlist. 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/Banking/CreateAccount.php::App\\Jobs\\Banking\\CreateAccount::handle",
        "fqmn": "App\\Jobs\\Banking\\CreateAccount@handle",
        "expected_test_path": "tests/Feature/CreateAccountTest.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\\Jobs\\Banking\\CreateAccount;\n\nclass CreateAccountTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Banking\\CreateAccount@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Jobs\\Banking\\CreateAccount@handle is PROOF_READY but no test file at tests/Feature/CreateAccountTest.php is in the MANUAL allowlist. 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/Banking/CreateBankingDocumentTransaction.php::App\\Jobs\\Banking\\CreateBankingDocumentTransaction::handle",
        "fqmn": "App\\Jobs\\Banking\\CreateBankingDocumentTransaction@handle",
        "expected_test_path": "tests/Feature/CreateBankingDocumentTransactionTest.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\\Banking\\CreateBankingDocumentTransaction;\n\nclass CreateBankingDocumentTransactionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Banking\\CreateBankingDocumentTransaction@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Banking\\CreateBankingDocumentTransaction@handle is PROOF_READY but no test file at tests/Feature/CreateBankingDocumentTransactionTest.php is in the MANUAL allowlist. 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/Banking/CreateReconciliation.php::App\\Jobs\\Banking\\CreateReconciliation::handle",
        "fqmn": "App\\Jobs\\Banking\\CreateReconciliation@handle",
        "expected_test_path": "tests/Feature/CreateReconciliationTest.php",
        "intent": null,
        "intent_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\\Banking\\CreateReconciliation;\n\nclass CreateReconciliationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Banking\\CreateReconciliation@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Banking\\CreateReconciliation@handle is PROOF_READY but no test file at tests/Feature/CreateReconciliationTest.php is in the MANUAL allowlist. 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/Banking/CreateTransaction.php::App\\Jobs\\Banking\\CreateTransaction::handle",
        "fqmn": "App\\Jobs\\Banking\\CreateTransaction@handle",
        "expected_test_path": "tests/Feature/CreateTransactionTest.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\\Banking\\CreateTransaction;\n\nclass CreateTransactionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Banking\\CreateTransaction@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Banking\\CreateTransaction@handle is PROOF_READY but no test file at tests/Feature/CreateTransactionTest.php is in the MANUAL allowlist. 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/Banking/CreateTransactionTaxes.php::App\\Jobs\\Banking\\CreateTransactionTaxes::getTaxesCalculated",
        "fqmn": "App\\Jobs\\Banking\\CreateTransactionTaxes@getTaxesCalculated",
        "expected_test_path": "tests/Feature/CreateTransactionTaxesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Banking\\CreateTransactionTaxes;\n\nclass CreateTransactionTaxesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Banking\\CreateTransactionTaxes@getTaxesCalculated\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettaxescalculated_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Banking\\CreateTransactionTaxes@getTaxesCalculated is PROOF_READY but no test file at tests/Feature/CreateTransactionTaxesTest.php is in the MANUAL allowlist. 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/Banking/CreateTransactionTaxes.php::App\\Jobs\\Banking\\CreateTransactionTaxes::handle",
        "fqmn": "App\\Jobs\\Banking\\CreateTransactionTaxes@handle",
        "expected_test_path": "tests/Feature/CreateTransactionTaxesTest.php",
        "intent": null,
        "intent_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\\Banking\\CreateTransactionTaxes;\n\nclass CreateTransactionTaxesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Banking\\CreateTransactionTaxes@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Banking\\CreateTransactionTaxes@handle is PROOF_READY but no test file at tests/Feature/CreateTransactionTaxesTest.php is in the MANUAL allowlist. 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/Banking/CreateTransfer.php::App\\Jobs\\Banking\\CreateTransfer::handle",
        "fqmn": "App\\Jobs\\Banking\\CreateTransfer@handle",
        "expected_test_path": "tests/Feature/CreateTransferTest.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\\Banking\\CreateTransfer;\n\nclass CreateTransferTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Banking\\CreateTransfer@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Banking\\CreateTransfer@handle is PROOF_READY but no test file at tests/Feature/CreateTransferTest.php is in the MANUAL allowlist. 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/Banking/DeleteAccount.php::App\\Jobs\\Banking\\DeleteAccount::getRelationships",
        "fqmn": "App\\Jobs\\Banking\\DeleteAccount@getRelationships",
        "expected_test_path": "tests/Feature/DeleteAccountTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Banking\\DeleteAccount;\n\nclass DeleteAccountTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Banking\\DeleteAccount@getRelationships\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getrelationships_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Banking\\DeleteAccount@getRelationships is PROOF_READY but no test file at tests/Feature/DeleteAccountTest.php is in the MANUAL allowlist. 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/Banking/DeleteAccount.php::App\\Jobs\\Banking\\DeleteAccount::handle",
        "fqmn": "App\\Jobs\\Banking\\DeleteAccount@handle",
        "expected_test_path": "tests/Feature/DeleteAccountTest.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\\Jobs\\Banking\\DeleteAccount;\n\nclass DeleteAccountTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Banking\\DeleteAccount@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Jobs\\Banking\\DeleteAccount@handle is PROOF_READY but no test file at tests/Feature/DeleteAccountTest.php is in the MANUAL allowlist. 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/Banking/DeleteReconciliation.php::App\\Jobs\\Banking\\DeleteReconciliation::handle",
        "fqmn": "App\\Jobs\\Banking\\DeleteReconciliation@handle",
        "expected_test_path": "tests/Feature/DeleteReconciliationTest.php",
        "intent": null,
        "intent_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\\Banking\\DeleteReconciliation;\n\nclass DeleteReconciliationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Banking\\DeleteReconciliation@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Banking\\DeleteReconciliation@handle is PROOF_READY but no test file at tests/Feature/DeleteReconciliationTest.php is in the MANUAL allowlist. 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/Banking/DeleteTransaction.php::App\\Jobs\\Banking\\DeleteTransaction::handle",
        "fqmn": "App\\Jobs\\Banking\\DeleteTransaction@handle",
        "expected_test_path": "tests/Feature/DeleteTransactionTest.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\\Jobs\\Banking\\DeleteTransaction;\n\nclass DeleteTransactionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Banking\\DeleteTransaction@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Jobs\\Banking\\DeleteTransaction@handle is PROOF_READY but no test file at tests/Feature/DeleteTransactionTest.php is in the MANUAL allowlist. 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/Banking/DeleteTransfer.php::App\\Jobs\\Banking\\DeleteTransfer::handle",
        "fqmn": "App\\Jobs\\Banking\\DeleteTransfer@handle",
        "expected_test_path": "tests/Feature/DeleteTransferTest.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\\Jobs\\Banking\\DeleteTransfer;\n\nclass DeleteTransferTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Banking\\DeleteTransfer@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Jobs\\Banking\\DeleteTransfer@handle is PROOF_READY but no test file at tests/Feature/DeleteTransferTest.php is in the MANUAL allowlist. 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/Banking/DuplicateTransaction.php::App\\Jobs\\Banking\\DuplicateTransaction::handle",
        "fqmn": "App\\Jobs\\Banking\\DuplicateTransaction@handle",
        "expected_test_path": "tests/Feature/DuplicateTransactionTest.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\\Jobs\\Banking\\DuplicateTransaction;\n\nclass DuplicateTransactionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Banking\\DuplicateTransaction@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Jobs\\Banking\\DuplicateTransaction@handle is PROOF_READY but no test file at tests/Feature/DuplicateTransactionTest.php is in the MANUAL allowlist. 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/Banking/MatchBankingDocumentTransaction.php::App\\Jobs\\Banking\\MatchBankingDocumentTransaction::handle",
        "fqmn": "App\\Jobs\\Banking\\MatchBankingDocumentTransaction@handle",
        "expected_test_path": "tests/Feature/MatchBankingDocumentTransactionTest.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\\Banking\\MatchBankingDocumentTransaction;\n\nclass MatchBankingDocumentTransactionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Banking\\MatchBankingDocumentTransaction@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Banking\\MatchBankingDocumentTransaction@handle is PROOF_READY but no test file at tests/Feature/MatchBankingDocumentTransactionTest.php is in the MANUAL allowlist. 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/Banking/UpdateAccount.php::App\\Jobs\\Banking\\UpdateAccount::authorize",
        "fqmn": "App\\Jobs\\Banking\\UpdateAccount@authorize",
        "expected_test_path": "tests/Feature/UpdateAccountTest.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\\Banking\\UpdateAccount;\n\nclass UpdateAccountTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Banking\\UpdateAccount@authorize\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_authorize_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\Banking\\UpdateAccount@authorize is PROOF_READY but no test file at tests/Feature/UpdateAccountTest.php is in the MANUAL allowlist. 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/Banking/UpdateAccount.php::App\\Jobs\\Banking\\UpdateAccount::getRelationships",
        "fqmn": "App\\Jobs\\Banking\\UpdateAccount@getRelationships",
        "expected_test_path": "tests/Feature/UpdateAccountTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Banking\\UpdateAccount;\n\nclass UpdateAccountTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Banking\\UpdateAccount@getRelationships\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getrelationships_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Banking\\UpdateAccount@getRelationships is PROOF_READY but no test file at tests/Feature/UpdateAccountTest.php is in the MANUAL allowlist. 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/Banking/UpdateAccount.php::App\\Jobs\\Banking\\UpdateAccount::handle",
        "fqmn": "App\\Jobs\\Banking\\UpdateAccount@handle",
        "expected_test_path": "tests/Feature/UpdateAccountTest.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\\Jobs\\Banking\\UpdateAccount;\n\nclass UpdateAccountTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Banking\\UpdateAccount@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Jobs\\Banking\\UpdateAccount@handle is PROOF_READY but no test file at tests/Feature/UpdateAccountTest.php is in the MANUAL allowlist. 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/Banking/UpdateBankingDocumentTransaction.php::App\\Jobs\\Banking\\UpdateBankingDocumentTransaction::handle",
        "fqmn": "App\\Jobs\\Banking\\UpdateBankingDocumentTransaction@handle",
        "expected_test_path": "tests/Feature/UpdateBankingDocumentTransactionTest.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\\Banking\\UpdateBankingDocumentTransaction;\n\nclass UpdateBankingDocumentTransactionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Banking\\UpdateBankingDocumentTransaction@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Banking\\UpdateBankingDocumentTransaction@handle is PROOF_READY but no test file at tests/Feature/UpdateBankingDocumentTransactionTest.php is in the MANUAL allowlist. 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/Banking/UpdateReconciliation.php::App\\Jobs\\Banking\\UpdateReconciliation::handle",
        "fqmn": "App\\Jobs\\Banking\\UpdateReconciliation@handle",
        "expected_test_path": "tests/Feature/UpdateReconciliationTest.php",
        "intent": null,
        "intent_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\\Banking\\UpdateReconciliation;\n\nclass UpdateReconciliationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Banking\\UpdateReconciliation@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Banking\\UpdateReconciliation@handle is PROOF_READY but no test file at tests/Feature/UpdateReconciliationTest.php is in the MANUAL allowlist. 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/Banking/UpdateTransaction.php::App\\Jobs\\Banking\\UpdateTransaction::handle",
        "fqmn": "App\\Jobs\\Banking\\UpdateTransaction@handle",
        "expected_test_path": "tests/Feature/UpdateTransactionTest.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\\Banking\\UpdateTransaction;\n\nclass UpdateTransactionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Banking\\UpdateTransaction@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Banking\\UpdateTransaction@handle is PROOF_READY but no test file at tests/Feature/UpdateTransactionTest.php is in the MANUAL allowlist. 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/Banking/UpdateTransfer.php::App\\Jobs\\Banking\\UpdateTransfer::handle",
        "fqmn": "App\\Jobs\\Banking\\UpdateTransfer@handle",
        "expected_test_path": "tests/Feature/UpdateTransferTest.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\\Jobs\\Banking\\UpdateTransfer;\n\nclass UpdateTransferTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Banking\\UpdateTransfer@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Jobs\\Banking\\UpdateTransfer@handle is PROOF_READY but no test file at tests/Feature/UpdateTransferTest.php is in the MANUAL allowlist. 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/Common/CreateCompany.php::App\\Jobs\\Common\\CreateCompany::handle",
        "fqmn": "App\\Jobs\\Common\\CreateCompany@handle",
        "expected_test_path": "tests/Feature/CreateCompanyTest.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\\Jobs\\Common\\CreateCompany;\n\nclass CreateCompanyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\CreateCompany@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Jobs\\Common\\CreateCompany@handle is PROOF_READY but no test file at tests/Feature/CreateCompanyTest.php is in the MANUAL allowlist. 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/Common/CreateContact.php::App\\Jobs\\Common\\CreateContact::createUser",
        "fqmn": "App\\Jobs\\Common\\CreateContact@createUser",
        "expected_test_path": "tests/Feature/CreateContactTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Jobs\\Common\\CreateContact;\n\nclass CreateContactTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\CreateContact@createUser\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_createuser_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\Common\\CreateContact@createUser is PROOF_READY but no test file at tests/Feature/CreateContactTest.php is in the MANUAL allowlist. 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/Common/CreateContact.php::App\\Jobs\\Common\\CreateContact::handle",
        "fqmn": "App\\Jobs\\Common\\CreateContact@handle",
        "expected_test_path": "tests/Feature/CreateContactTest.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\\Common\\CreateContact;\n\nclass CreateContactTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\CreateContact@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Common\\CreateContact@handle is PROOF_READY but no test file at tests/Feature/CreateContactTest.php is in the MANUAL allowlist. 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/Common/CreateContactPerson.php::App\\Jobs\\Common\\CreateContactPerson::handle",
        "fqmn": "App\\Jobs\\Common\\CreateContactPerson@handle",
        "expected_test_path": "tests/Feature/CreateContactPersonTest.php",
        "intent": null,
        "intent_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\\Common\\CreateContactPerson;\n\nclass CreateContactPersonTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\CreateContactPerson@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Common\\CreateContactPerson@handle is PROOF_READY but no test file at tests/Feature/CreateContactPersonTest.php is in the MANUAL allowlist. 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/Common/CreateContactPersons.php::App\\Jobs\\Common\\CreateContactPersons::handle",
        "fqmn": "App\\Jobs\\Common\\CreateContactPersons@handle",
        "expected_test_path": "tests/Feature/CreateContactPersonsTest.php",
        "intent": null,
        "intent_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\\Common\\CreateContactPersons;\n\nclass CreateContactPersonsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\CreateContactPersons@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Common\\CreateContactPersons@handle is PROOF_READY but no test file at tests/Feature/CreateContactPersonsTest.php is in the MANUAL allowlist. 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/Common/CreateDashboard.php::App\\Jobs\\Common\\CreateDashboard::handle",
        "fqmn": "App\\Jobs\\Common\\CreateDashboard@handle",
        "expected_test_path": "tests/Feature/CreateDashboardTest.php",
        "intent": null,
        "intent_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\\Common\\CreateDashboard;\n\nclass CreateDashboardTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\CreateDashboard@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Common\\CreateDashboard@handle is PROOF_READY but no test file at tests/Feature/CreateDashboardTest.php is in the MANUAL allowlist. 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/Common/CreateItem.php::App\\Jobs\\Common\\CreateItem::handle",
        "fqmn": "App\\Jobs\\Common\\CreateItem@handle",
        "expected_test_path": "tests/Feature/CreateItemTest.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\\Common\\CreateItem;\n\nclass CreateItemTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\CreateItem@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Common\\CreateItem@handle is PROOF_READY but no test file at tests/Feature/CreateItemTest.php is in the MANUAL allowlist. 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/Common/CreateItemTaxes.php::App\\Jobs\\Common\\CreateItemTaxes::handle",
        "fqmn": "App\\Jobs\\Common\\CreateItemTaxes@handle",
        "expected_test_path": "tests/Feature/CreateItemTaxesTest.php",
        "intent": null,
        "intent_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\\Common\\CreateItemTaxes;\n\nclass CreateItemTaxesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\CreateItemTaxes@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Common\\CreateItemTaxes@handle is PROOF_READY but no test file at tests/Feature/CreateItemTaxesTest.php is in the MANUAL allowlist. 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/Common/CreateMediableForDownload.php::App\\Jobs\\Common\\CreateMediableForDownload::getLocalQueuedMedia",
        "fqmn": "App\\Jobs\\Common\\CreateMediableForDownload@getLocalQueuedMedia",
        "expected_test_path": "tests/Feature/CreateMediableForDownloadTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Common\\CreateMediableForDownload;\n\nclass CreateMediableForDownloadTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\CreateMediableForDownload@getLocalQueuedMedia\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getlocalqueuedmedia_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Common\\CreateMediableForDownload@getLocalQueuedMedia is PROOF_READY but no test file at tests/Feature/CreateMediableForDownloadTest.php is in the MANUAL allowlist. 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/Common/CreateMediableForDownload.php::App\\Jobs\\Common\\CreateMediableForDownload::getQueuedMedia",
        "fqmn": "App\\Jobs\\Common\\CreateMediableForDownload@getQueuedMedia",
        "expected_test_path": "tests/Feature/CreateMediableForDownloadTest.php",
        "intent": null,
        "intent_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\\Common\\CreateMediableForDownload;\n\nclass CreateMediableForDownloadTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\CreateMediableForDownload@getQueuedMedia\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getqueuedmedia_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Common\\CreateMediableForDownload@getQueuedMedia is PROOF_READY but no test file at tests/Feature/CreateMediableForDownloadTest.php is in the MANUAL allowlist. 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/Common/CreateMediableForDownload.php::App\\Jobs\\Common\\CreateMediableForDownload::getRemoteQueuedMedia",
        "fqmn": "App\\Jobs\\Common\\CreateMediableForDownload@getRemoteQueuedMedia",
        "expected_test_path": "tests/Feature/CreateMediableForDownloadTest.php",
        "intent": null,
        "intent_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\\Common\\CreateMediableForDownload;\n\nclass CreateMediableForDownloadTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\CreateMediableForDownload@getRemoteQueuedMedia\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getremotequeuedmedia_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\Common\\CreateMediableForDownload@getRemoteQueuedMedia is PROOF_READY but no test file at tests/Feature/CreateMediableForDownloadTest.php is in the MANUAL allowlist. 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/Common/CreateMediableForExport.php::App\\Jobs\\Common\\CreateMediableForExport::getLocalQueuedMedia",
        "fqmn": "App\\Jobs\\Common\\CreateMediableForExport@getLocalQueuedMedia",
        "expected_test_path": "tests/Feature/CreateMediableForExportTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Common\\CreateMediableForExport;\n\nclass CreateMediableForExportTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\CreateMediableForExport@getLocalQueuedMedia\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getlocalqueuedmedia_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Common\\CreateMediableForExport@getLocalQueuedMedia is PROOF_READY but no test file at tests/Feature/CreateMediableForExportTest.php is in the MANUAL allowlist. 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/Common/CreateMediableForExport.php::App\\Jobs\\Common\\CreateMediableForExport::getQueuedMedia",
        "fqmn": "App\\Jobs\\Common\\CreateMediableForExport@getQueuedMedia",
        "expected_test_path": "tests/Feature/CreateMediableForExportTest.php",
        "intent": null,
        "intent_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\\Common\\CreateMediableForExport;\n\nclass CreateMediableForExportTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\CreateMediableForExport@getQueuedMedia\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getqueuedmedia_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Common\\CreateMediableForExport@getQueuedMedia is PROOF_READY but no test file at tests/Feature/CreateMediableForExportTest.php is in the MANUAL allowlist. 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/Common/CreateMediableForExport.php::App\\Jobs\\Common\\CreateMediableForExport::getRemoteQueuedMedia",
        "fqmn": "App\\Jobs\\Common\\CreateMediableForExport@getRemoteQueuedMedia",
        "expected_test_path": "tests/Feature/CreateMediableForExportTest.php",
        "intent": null,
        "intent_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\\Common\\CreateMediableForExport;\n\nclass CreateMediableForExportTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\CreateMediableForExport@getRemoteQueuedMedia\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getremotequeuedmedia_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\Common\\CreateMediableForExport@getRemoteQueuedMedia is PROOF_READY but no test file at tests/Feature/CreateMediableForExportTest.php is in the MANUAL allowlist. 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/Common/CreateReport.php::App\\Jobs\\Common\\CreateReport::handle",
        "fqmn": "App\\Jobs\\Common\\CreateReport@handle",
        "expected_test_path": "tests/Feature/CreateReportTest.php",
        "intent": null,
        "intent_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\\Common\\CreateReport;\n\nclass CreateReportTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\CreateReport@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Common\\CreateReport@handle is PROOF_READY but no test file at tests/Feature/CreateReportTest.php is in the MANUAL allowlist. 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/Common/CreateWidget.php::App\\Jobs\\Common\\CreateWidget::handle",
        "fqmn": "App\\Jobs\\Common\\CreateWidget@handle",
        "expected_test_path": "tests/Feature/CreateWidgetTest.php",
        "intent": null,
        "intent_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\\Common\\CreateWidget;\n\nclass CreateWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\CreateWidget@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Common\\CreateWidget@handle is PROOF_READY but no test file at tests/Feature/CreateWidgetTest.php is in the MANUAL allowlist. 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/Common/CreateZipForDownload.php::App\\Jobs\\Common\\CreateZipForDownload::copyQueuedFile",
        "fqmn": "App\\Jobs\\Common\\CreateZipForDownload@copyQueuedFile",
        "expected_test_path": "tests/Feature/CreateZipForDownloadTest.php",
        "intent": null,
        "intent_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\\Common\\CreateZipForDownload;\n\nclass CreateZipForDownloadTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\CreateZipForDownload@copyQueuedFile\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_copyqueuedfile_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Common\\CreateZipForDownload@copyQueuedFile is PROOF_READY but no test file at tests/Feature/CreateZipForDownloadTest.php is in the MANUAL allowlist. 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/Common/CreateZipForDownload.php::App\\Jobs\\Common\\CreateZipForDownload::copyRemoteQueuedMedia",
        "fqmn": "App\\Jobs\\Common\\CreateZipForDownload@copyRemoteQueuedMedia",
        "expected_test_path": "tests/Feature/CreateZipForDownloadTest.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\\Common\\CreateZipForDownload;\n\nclass CreateZipForDownloadTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\CreateZipForDownload@copyRemoteQueuedMedia\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_copyremotequeuedmedia_behaves_correctly(): void\n    {\n\n        // TODO: 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\\Common\\CreateZipForDownload@copyRemoteQueuedMedia is PROOF_READY but no test file at tests/Feature/CreateZipForDownloadTest.php is in the MANUAL allowlist. 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/Common/CreateZipForDownload.php::App\\Jobs\\Common\\CreateZipForDownload::getLocalQueuedMedia",
        "fqmn": "App\\Jobs\\Common\\CreateZipForDownload@getLocalQueuedMedia",
        "expected_test_path": "tests/Feature/CreateZipForDownloadTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Common\\CreateZipForDownload;\n\nclass CreateZipForDownloadTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\CreateZipForDownload@getLocalQueuedMedia\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getlocalqueuedmedia_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Common\\CreateZipForDownload@getLocalQueuedMedia is PROOF_READY but no test file at tests/Feature/CreateZipForDownloadTest.php is in the MANUAL allowlist. 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/Common/CreateZipForDownload.php::App\\Jobs\\Common\\CreateZipForDownload::getQueuedFile",
        "fqmn": "App\\Jobs\\Common\\CreateZipForDownload@getQueuedFile",
        "expected_test_path": "tests/Feature/CreateZipForDownloadTest.php",
        "intent": null,
        "intent_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\\Common\\CreateZipForDownload;\n\nclass CreateZipForDownloadTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\CreateZipForDownload@getQueuedFile\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getqueuedfile_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Common\\CreateZipForDownload@getQueuedFile is PROOF_READY but no test file at tests/Feature/CreateZipForDownloadTest.php is in the MANUAL allowlist. 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/Common/CreateZipForDownload.php::App\\Jobs\\Common\\CreateZipForDownload::getRemoteQueuedMedia",
        "fqmn": "App\\Jobs\\Common\\CreateZipForDownload@getRemoteQueuedMedia",
        "expected_test_path": "tests/Feature/CreateZipForDownloadTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Common\\CreateZipForDownload;\n\nclass CreateZipForDownloadTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\CreateZipForDownload@getRemoteQueuedMedia\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getremotequeuedmedia_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Common\\CreateZipForDownload@getRemoteQueuedMedia is PROOF_READY but no test file at tests/Feature/CreateZipForDownloadTest.php is in the MANUAL allowlist. 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/Common/CreateZipForDownload.php::App\\Jobs\\Common\\CreateZipForDownload::handle",
        "fqmn": "App\\Jobs\\Common\\CreateZipForDownload@handle",
        "expected_test_path": "tests/Feature/CreateZipForDownloadTest.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\\Jobs\\Common\\CreateZipForDownload;\n\nclass CreateZipForDownloadTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\CreateZipForDownload@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Jobs\\Common\\CreateZipForDownload@handle is PROOF_READY but no test file at tests/Feature/CreateZipForDownloadTest.php is in the MANUAL allowlist. 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/Common/DeleteCompany.php::App\\Jobs\\Common\\DeleteCompany::getRelationshipsToDelete",
        "fqmn": "App\\Jobs\\Common\\DeleteCompany@getRelationshipsToDelete",
        "expected_test_path": "tests/Feature/DeleteCompanyTest.php",
        "intent": null,
        "intent_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\\Common\\DeleteCompany;\n\nclass DeleteCompanyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\DeleteCompany@getRelationshipsToDelete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getrelationshipstodelete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Common\\DeleteCompany@getRelationshipsToDelete is PROOF_READY but no test file at tests/Feature/DeleteCompanyTest.php is in the MANUAL allowlist. 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/Common/DeleteCompany.php::App\\Jobs\\Common\\DeleteCompany::handle",
        "fqmn": "App\\Jobs\\Common\\DeleteCompany@handle",
        "expected_test_path": "tests/Feature/DeleteCompanyTest.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\\Jobs\\Common\\DeleteCompany;\n\nclass DeleteCompanyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\DeleteCompany@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Jobs\\Common\\DeleteCompany@handle is PROOF_READY but no test file at tests/Feature/DeleteCompanyTest.php is in the MANUAL allowlist. 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/Common/DeleteContact.php::App\\Jobs\\Common\\DeleteContact::getRelationships",
        "fqmn": "App\\Jobs\\Common\\DeleteContact@getRelationships",
        "expected_test_path": "tests/Feature/DeleteContactTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Common\\DeleteContact;\n\nclass DeleteContactTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\DeleteContact@getRelationships\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getrelationships_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Common\\DeleteContact@getRelationships is PROOF_READY but no test file at tests/Feature/DeleteContactTest.php is in the MANUAL allowlist. 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/Common/DeleteContact.php::App\\Jobs\\Common\\DeleteContact::handle",
        "fqmn": "App\\Jobs\\Common\\DeleteContact@handle",
        "expected_test_path": "tests/Feature/DeleteContactTest.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\\Common\\DeleteContact;\n\nclass DeleteContactTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\DeleteContact@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Common\\DeleteContact@handle is PROOF_READY but no test file at tests/Feature/DeleteContactTest.php is in the MANUAL allowlist. 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/Common/DeleteContactPerson.php::App\\Jobs\\Common\\DeleteContactPerson::handle",
        "fqmn": "App\\Jobs\\Common\\DeleteContactPerson@handle",
        "expected_test_path": "tests/Feature/DeleteContactPersonTest.php",
        "intent": null,
        "intent_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\\Common\\DeleteContactPerson;\n\nclass DeleteContactPersonTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\DeleteContactPerson@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Common\\DeleteContactPerson@handle is PROOF_READY but no test file at tests/Feature/DeleteContactPersonTest.php is in the MANUAL allowlist. 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/Common/DeleteDashboard.php::App\\Jobs\\Common\\DeleteDashboard::handle",
        "fqmn": "App\\Jobs\\Common\\DeleteDashboard@handle",
        "expected_test_path": "tests/Feature/DeleteDashboardTest.php",
        "intent": null,
        "intent_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\\Common\\DeleteDashboard;\n\nclass DeleteDashboardTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\DeleteDashboard@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Common\\DeleteDashboard@handle is PROOF_READY but no test file at tests/Feature/DeleteDashboardTest.php is in the MANUAL allowlist. 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/Common/DeleteItem.php::App\\Jobs\\Common\\DeleteItem::getRelationships",
        "fqmn": "App\\Jobs\\Common\\DeleteItem@getRelationships",
        "expected_test_path": "tests/Feature/DeleteItemTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Common\\DeleteItem;\n\nclass DeleteItemTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\DeleteItem@getRelationships\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getrelationships_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Common\\DeleteItem@getRelationships is PROOF_READY but no test file at tests/Feature/DeleteItemTest.php is in the MANUAL allowlist. 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/Common/DeleteItem.php::App\\Jobs\\Common\\DeleteItem::handle",
        "fqmn": "App\\Jobs\\Common\\DeleteItem@handle",
        "expected_test_path": "tests/Feature/DeleteItemTest.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\\Jobs\\Common\\DeleteItem;\n\nclass DeleteItemTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\DeleteItem@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Jobs\\Common\\DeleteItem@handle is PROOF_READY but no test file at tests/Feature/DeleteItemTest.php is in the MANUAL allowlist. 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/Common/DeleteReport.php::App\\Jobs\\Common\\DeleteReport::deleteFavorite",
        "fqmn": "App\\Jobs\\Common\\DeleteReport@deleteFavorite",
        "expected_test_path": "tests/Feature/DeleteReportTest.php",
        "intent": null,
        "intent_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\\Common\\DeleteReport;\n\nclass DeleteReportTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\DeleteReport@deleteFavorite\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_deletefavorite_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\Common\\DeleteReport@deleteFavorite is PROOF_READY but no test file at tests/Feature/DeleteReportTest.php is in the MANUAL allowlist. 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/Common/DeleteReport.php::App\\Jobs\\Common\\DeleteReport::deletePin",
        "fqmn": "App\\Jobs\\Common\\DeleteReport@deletePin",
        "expected_test_path": "tests/Feature/DeleteReportTest.php",
        "intent": null,
        "intent_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\\Common\\DeleteReport;\n\nclass DeleteReportTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\DeleteReport@deletePin\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_deletepin_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — 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\\Common\\DeleteReport@deletePin is PROOF_READY but no test file at tests/Feature/DeleteReportTest.php is in the MANUAL allowlist. 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/Common/DeleteReport.php::App\\Jobs\\Common\\DeleteReport::handle",
        "fqmn": "App\\Jobs\\Common\\DeleteReport@handle",
        "expected_test_path": "tests/Feature/DeleteReportTest.php",
        "intent": null,
        "intent_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\\Common\\DeleteReport;\n\nclass DeleteReportTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\DeleteReport@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Common\\DeleteReport@handle is PROOF_READY but no test file at tests/Feature/DeleteReportTest.php is in the MANUAL allowlist. 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/Common/DeleteWidget.php::App\\Jobs\\Common\\DeleteWidget::handle",
        "fqmn": "App\\Jobs\\Common\\DeleteWidget@handle",
        "expected_test_path": "tests/Feature/DeleteWidgetTest.php",
        "intent": null,
        "intent_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\\Common\\DeleteWidget;\n\nclass DeleteWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\DeleteWidget@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Common\\DeleteWidget@handle is PROOF_READY but no test file at tests/Feature/DeleteWidgetTest.php is in the MANUAL allowlist. 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/Common/DuplicateContact.php::App\\Jobs\\Common\\DuplicateContact::handle",
        "fqmn": "App\\Jobs\\Common\\DuplicateContact@handle",
        "expected_test_path": "tests/Feature/DuplicateContactTest.php",
        "intent": null,
        "intent_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\\Common\\DuplicateContact;\n\nclass DuplicateContactTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\DuplicateContact@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Common\\DuplicateContact@handle is PROOF_READY but no test file at tests/Feature/DuplicateContactTest.php is in the MANUAL allowlist. 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/Common/UpdateCompany.php::App\\Jobs\\Common\\UpdateCompany::handle",
        "fqmn": "App\\Jobs\\Common\\UpdateCompany@handle",
        "expected_test_path": "tests/Feature/UpdateCompanyTest.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\\Jobs\\Common\\UpdateCompany;\n\nclass UpdateCompanyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\UpdateCompany@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Jobs\\Common\\UpdateCompany@handle is PROOF_READY but no test file at tests/Feature/UpdateCompanyTest.php is in the MANUAL allowlist. 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/Common/UpdateContact.php::App\\Jobs\\Common\\UpdateContact::createUser",
        "fqmn": "App\\Jobs\\Common\\UpdateContact@createUser",
        "expected_test_path": "tests/Feature/UpdateContactTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Jobs\\Common\\UpdateContact;\n\nclass UpdateContactTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\UpdateContact@createUser\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_createuser_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\Common\\UpdateContact@createUser is PROOF_READY but no test file at tests/Feature/UpdateContactTest.php is in the MANUAL allowlist. 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/Common/UpdateContact.php::App\\Jobs\\Common\\UpdateContact::getRelationships",
        "fqmn": "App\\Jobs\\Common\\UpdateContact@getRelationships",
        "expected_test_path": "tests/Feature/UpdateContactTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Common\\UpdateContact;\n\nclass UpdateContactTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\UpdateContact@getRelationships\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getrelationships_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Common\\UpdateContact@getRelationships is PROOF_READY but no test file at tests/Feature/UpdateContactTest.php is in the MANUAL allowlist. 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/Common/UpdateContact.php::App\\Jobs\\Common\\UpdateContact::handle",
        "fqmn": "App\\Jobs\\Common\\UpdateContact@handle",
        "expected_test_path": "tests/Feature/UpdateContactTest.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\\Common\\UpdateContact;\n\nclass UpdateContactTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\UpdateContact@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Common\\UpdateContact@handle is PROOF_READY but no test file at tests/Feature/UpdateContactTest.php is in the MANUAL allowlist. 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/Common/UpdateContactPerson.php::App\\Jobs\\Common\\UpdateContactPerson::handle",
        "fqmn": "App\\Jobs\\Common\\UpdateContactPerson@handle",
        "expected_test_path": "tests/Feature/UpdateContactPersonTest.php",
        "intent": null,
        "intent_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\\Common\\UpdateContactPerson;\n\nclass UpdateContactPersonTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\UpdateContactPerson@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Common\\UpdateContactPerson@handle is PROOF_READY but no test file at tests/Feature/UpdateContactPersonTest.php is in the MANUAL allowlist. 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/Common/UpdateDashboard.php::App\\Jobs\\Common\\UpdateDashboard::handle",
        "fqmn": "App\\Jobs\\Common\\UpdateDashboard@handle",
        "expected_test_path": "tests/Feature/UpdateDashboardTest.php",
        "intent": null,
        "intent_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\\Common\\UpdateDashboard;\n\nclass UpdateDashboardTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\UpdateDashboard@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Common\\UpdateDashboard@handle is PROOF_READY but no test file at tests/Feature/UpdateDashboardTest.php is in the MANUAL allowlist. 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/Common/UpdateItem.php::App\\Jobs\\Common\\UpdateItem::handle",
        "fqmn": "App\\Jobs\\Common\\UpdateItem@handle",
        "expected_test_path": "tests/Feature/UpdateItemTest.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\\Common\\UpdateItem;\n\nclass UpdateItemTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\UpdateItem@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Common\\UpdateItem@handle is PROOF_READY but no test file at tests/Feature/UpdateItemTest.php is in the MANUAL allowlist. 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/Common/UpdateReport.php::App\\Jobs\\Common\\UpdateReport::handle",
        "fqmn": "App\\Jobs\\Common\\UpdateReport@handle",
        "expected_test_path": "tests/Feature/UpdateReportTest.php",
        "intent": null,
        "intent_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\\Common\\UpdateReport;\n\nclass UpdateReportTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\UpdateReport@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Common\\UpdateReport@handle is PROOF_READY but no test file at tests/Feature/UpdateReportTest.php is in the MANUAL allowlist. 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/Common/UpdateWidget.php::App\\Jobs\\Common\\UpdateWidget::handle",
        "fqmn": "App\\Jobs\\Common\\UpdateWidget@handle",
        "expected_test_path": "tests/Feature/UpdateWidgetTest.php",
        "intent": null,
        "intent_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\\Common\\UpdateWidget;\n\nclass UpdateWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Common\\UpdateWidget@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Common\\UpdateWidget@handle is PROOF_READY but no test file at tests/Feature/UpdateWidgetTest.php is in the MANUAL allowlist. 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/Document/CreateDocument.php::App\\Jobs\\Document\\CreateDocument::handle",
        "fqmn": "App\\Jobs\\Document\\CreateDocument@handle",
        "expected_test_path": "tests/Feature/CreateDocumentTest.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\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Jobs\\Document\\CreateDocument;\n\nclass CreateDocumentTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Document\\CreateDocument@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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        // Http::assertSent(fn ($req) => $req->url() === '<url>');\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\Document\\CreateDocument@handle is PROOF_READY but no test file at tests/Feature/CreateDocumentTest.php is in the MANUAL allowlist. 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/Document/CreateDocumentHistory.php::App\\Jobs\\Document\\CreateDocumentHistory::getCustomSourceName",
        "fqmn": "App\\Jobs\\Document\\CreateDocumentHistory@getCustomSourceName",
        "expected_test_path": "tests/Feature/CreateDocumentHistoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Document\\CreateDocumentHistory;\n\nclass CreateDocumentHistoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Document\\CreateDocumentHistory@getCustomSourceName\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getcustomsourcename_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Document\\CreateDocumentHistory@getCustomSourceName is PROOF_READY but no test file at tests/Feature/CreateDocumentHistoryTest.php is in the MANUAL allowlist. 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/Document/CreateDocumentHistory.php::App\\Jobs\\Document\\CreateDocumentHistory::handle",
        "fqmn": "App\\Jobs\\Document\\CreateDocumentHistory@handle",
        "expected_test_path": "tests/Feature/CreateDocumentHistoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Document\\CreateDocumentHistory;\n\nclass CreateDocumentHistoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Document\\CreateDocumentHistory@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Document\\CreateDocumentHistory@handle is PROOF_READY but no test file at tests/Feature/CreateDocumentHistoryTest.php is in the MANUAL allowlist. 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/Document/CreateDocumentItem.php::App\\Jobs\\Document\\CreateDocumentItem::handle",
        "fqmn": "App\\Jobs\\Document\\CreateDocumentItem@handle",
        "expected_test_path": "tests/Feature/CreateDocumentItemTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Document\\CreateDocumentItem;\n\nclass CreateDocumentItemTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Document\\CreateDocumentItem@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Document\\CreateDocumentItem@handle is PROOF_READY but no test file at tests/Feature/CreateDocumentItemTest.php is in the MANUAL allowlist. 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/Document/CreateDocumentItemsAndTotals.php::App\\Jobs\\Document\\CreateDocumentItemsAndTotals::fixedDiscountCalculate",
        "fqmn": "App\\Jobs\\Document\\CreateDocumentItemsAndTotals@fixedDiscountCalculate",
        "expected_test_path": "tests/Feature/CreateDocumentItemsAndTotalsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Document\\CreateDocumentItemsAndTotals;\n\nclass CreateDocumentItemsAndTotalsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Document\\CreateDocumentItemsAndTotals@fixedDiscountCalculate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_fixeddiscountcalculate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Document\\CreateDocumentItemsAndTotals@fixedDiscountCalculate is PROOF_READY but no test file at tests/Feature/CreateDocumentItemsAndTotalsTest.php is in the MANUAL allowlist. 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/Document/DeleteDocument.php::App\\Jobs\\Document\\DeleteDocument::handle",
        "fqmn": "App\\Jobs\\Document\\DeleteDocument@handle",
        "expected_test_path": "tests/Feature/DeleteDocumentTest.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\\Jobs\\Document\\DeleteDocument;\n\nclass DeleteDocumentTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Document\\DeleteDocument@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Jobs\\Document\\DeleteDocument@handle is PROOF_READY but no test file at tests/Feature/DeleteDocumentTest.php is in the MANUAL allowlist. 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/Document/DownloadDocument.php::App\\Jobs\\Document\\DownloadDocument::handle",
        "fqmn": "App\\Jobs\\Document\\DownloadDocument@handle",
        "expected_test_path": "tests/Feature/DownloadDocumentTest.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\\Jobs\\Document\\DownloadDocument;\n\nclass DownloadDocumentTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Document\\DownloadDocument@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Jobs\\Document\\DownloadDocument@handle is PROOF_READY but no test file at tests/Feature/DownloadDocumentTest.php is in the MANUAL allowlist. 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/Document/DuplicateDocument.php::App\\Jobs\\Document\\DuplicateDocument::handle",
        "fqmn": "App\\Jobs\\Document\\DuplicateDocument@handle",
        "expected_test_path": "tests/Feature/DuplicateDocumentTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write",
          "assert_event_dispatched"
        ],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Jobs\\Document\\DuplicateDocument;\n\nclass DuplicateDocumentTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Document\\DuplicateDocument@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\Document\\DuplicateDocument@handle is PROOF_READY but no test file at tests/Feature/DuplicateDocumentTest.php is in the MANUAL allowlist. 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/Document/RestoreDocument.php::App\\Jobs\\Document\\RestoreDocument::handle",
        "fqmn": "App\\Jobs\\Document\\RestoreDocument@handle",
        "expected_test_path": "tests/Feature/RestoreDocumentTest.php",
        "intent": null,
        "intent_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\\Document\\RestoreDocument;\n\nclass RestoreDocumentTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Document\\RestoreDocument@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Document\\RestoreDocument@handle is PROOF_READY but no test file at tests/Feature/RestoreDocumentTest.php is in the MANUAL allowlist. 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/Document/UpdateDocument.php::App\\Jobs\\Document\\UpdateDocument::handle",
        "fqmn": "App\\Jobs\\Document\\UpdateDocument@handle",
        "expected_test_path": "tests/Feature/UpdateDocumentTest.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\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Jobs\\Document\\UpdateDocument;\n\nclass UpdateDocumentTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Document\\UpdateDocument@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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        // Http::assertSent(fn ($req) => $req->url() === '<url>');\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\Document\\UpdateDocument@handle is PROOF_READY but no test file at tests/Feature/UpdateDocumentTest.php is in the MANUAL allowlist. 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/Install/DownloadFile.php::App\\Jobs\\Install\\DownloadFile::handle",
        "fqmn": "App\\Jobs\\Install\\DownloadFile@handle",
        "expected_test_path": "tests/Feature/DownloadFileTest.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\\Jobs\\Install\\DownloadFile;\n\nclass DownloadFileTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Install\\DownloadFile@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\Install\\DownloadFile@handle is PROOF_READY but no test file at tests/Feature/DownloadFileTest.php is in the MANUAL allowlist. 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/Install/FinishUpdate.php::App\\Jobs\\Install\\FinishUpdate::getCompanies",
        "fqmn": "App\\Jobs\\Install\\FinishUpdate@getCompanies",
        "expected_test_path": "tests/Feature/FinishUpdateTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Install\\FinishUpdate;\n\nclass FinishUpdateTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Install\\FinishUpdate@getCompanies\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getcompanies_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Install\\FinishUpdate@getCompanies is PROOF_READY but no test file at tests/Feature/FinishUpdateTest.php is in the MANUAL allowlist. 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/Install/FinishUpdate.php::App\\Jobs\\Install\\FinishUpdate::getCompaniesOfModule",
        "fqmn": "App\\Jobs\\Install\\FinishUpdate@getCompaniesOfModule",
        "expected_test_path": "tests/Feature/FinishUpdateTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Install\\FinishUpdate;\n\nclass FinishUpdateTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Install\\FinishUpdate@getCompaniesOfModule\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getcompaniesofmodule_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Install\\FinishUpdate@getCompaniesOfModule is PROOF_READY but no test file at tests/Feature/FinishUpdateTest.php is in the MANUAL allowlist. 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/Install/FinishUpdate.php::App\\Jobs\\Install\\FinishUpdate::getListenerTypeOfModule",
        "fqmn": "App\\Jobs\\Install\\FinishUpdate@getListenerTypeOfModule",
        "expected_test_path": "tests/Feature/FinishUpdateTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Install\\FinishUpdate;\n\nclass FinishUpdateTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Install\\FinishUpdate@getListenerTypeOfModule\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getlistenertypeofmodule_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Install\\FinishUpdate@getListenerTypeOfModule is PROOF_READY but no test file at tests/Feature/FinishUpdateTest.php is in the MANUAL allowlist. 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/Install/UnzipFile.php::App\\Jobs\\Install\\UnzipFile::handle",
        "fqmn": "App\\Jobs\\Install\\UnzipFile@handle",
        "expected_test_path": "tests/Feature/UnzipFileTest.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\\Jobs\\Install\\UnzipFile;\n\nclass UnzipFileTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Install\\UnzipFile@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\Install\\UnzipFile@handle is PROOF_READY but no test file at tests/Feature/UnzipFileTest.php is in the MANUAL allowlist. 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/Setting/CreateCategory.php::App\\Jobs\\Setting\\CreateCategory::handle",
        "fqmn": "App\\Jobs\\Setting\\CreateCategory@handle",
        "expected_test_path": "tests/Feature/CreateCategoryTest.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\\Jobs\\Setting\\CreateCategory;\n\nclass CreateCategoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Setting\\CreateCategory@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Jobs\\Setting\\CreateCategory@handle is PROOF_READY but no test file at tests/Feature/CreateCategoryTest.php is in the MANUAL allowlist. 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/Setting/CreateCurrency.php::App\\Jobs\\Setting\\CreateCurrency::handle",
        "fqmn": "App\\Jobs\\Setting\\CreateCurrency@handle",
        "expected_test_path": "tests/Feature/CreateCurrencyTest.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\\Jobs\\Setting\\CreateCurrency;\n\nclass CreateCurrencyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Setting\\CreateCurrency@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Jobs\\Setting\\CreateCurrency@handle is PROOF_READY but no test file at tests/Feature/CreateCurrencyTest.php is in the MANUAL allowlist. 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/Setting/CreateEmailTemplate.php::App\\Jobs\\Setting\\CreateEmailTemplate::handle",
        "fqmn": "App\\Jobs\\Setting\\CreateEmailTemplate@handle",
        "expected_test_path": "tests/Feature/CreateEmailTemplateTest.php",
        "intent": null,
        "intent_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\\Setting\\CreateEmailTemplate;\n\nclass CreateEmailTemplateTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Setting\\CreateEmailTemplate@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Setting\\CreateEmailTemplate@handle is PROOF_READY but no test file at tests/Feature/CreateEmailTemplateTest.php is in the MANUAL allowlist. 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/Setting/CreateTax.php::App\\Jobs\\Setting\\CreateTax::handle",
        "fqmn": "App\\Jobs\\Setting\\CreateTax@handle",
        "expected_test_path": "tests/Feature/CreateTaxTest.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\\Jobs\\Setting\\CreateTax;\n\nclass CreateTaxTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Setting\\CreateTax@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Jobs\\Setting\\CreateTax@handle is PROOF_READY but no test file at tests/Feature/CreateTaxTest.php is in the MANUAL allowlist. 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/Setting/DeleteCategory.php::App\\Jobs\\Setting\\DeleteCategory::getRelationships",
        "fqmn": "App\\Jobs\\Setting\\DeleteCategory@getRelationships",
        "expected_test_path": "tests/Feature/DeleteCategoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Setting\\DeleteCategory;\n\nclass DeleteCategoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Setting\\DeleteCategory@getRelationships\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getrelationships_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Setting\\DeleteCategory@getRelationships is PROOF_READY but no test file at tests/Feature/DeleteCategoryTest.php is in the MANUAL allowlist. 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/Setting/DeleteCategory.php::App\\Jobs\\Setting\\DeleteCategory::handle",
        "fqmn": "App\\Jobs\\Setting\\DeleteCategory@handle",
        "expected_test_path": "tests/Feature/DeleteCategoryTest.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\\Jobs\\Setting\\DeleteCategory;\n\nclass DeleteCategoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Setting\\DeleteCategory@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Jobs\\Setting\\DeleteCategory@handle is PROOF_READY but no test file at tests/Feature/DeleteCategoryTest.php is in the MANUAL allowlist. 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/Setting/DeleteCurrency.php::App\\Jobs\\Setting\\DeleteCurrency::getRelationships",
        "fqmn": "App\\Jobs\\Setting\\DeleteCurrency@getRelationships",
        "expected_test_path": "tests/Feature/DeleteCurrencyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Setting\\DeleteCurrency;\n\nclass DeleteCurrencyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Setting\\DeleteCurrency@getRelationships\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getrelationships_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Setting\\DeleteCurrency@getRelationships is PROOF_READY but no test file at tests/Feature/DeleteCurrencyTest.php is in the MANUAL allowlist. 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/Setting/DeleteCurrency.php::App\\Jobs\\Setting\\DeleteCurrency::handle",
        "fqmn": "App\\Jobs\\Setting\\DeleteCurrency@handle",
        "expected_test_path": "tests/Feature/DeleteCurrencyTest.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\\Jobs\\Setting\\DeleteCurrency;\n\nclass DeleteCurrencyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Setting\\DeleteCurrency@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Jobs\\Setting\\DeleteCurrency@handle is PROOF_READY but no test file at tests/Feature/DeleteCurrencyTest.php is in the MANUAL allowlist. 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/Setting/DeleteEmailTemplate.php::App\\Jobs\\Setting\\DeleteEmailTemplate::handle",
        "fqmn": "App\\Jobs\\Setting\\DeleteEmailTemplate@handle",
        "expected_test_path": "tests/Feature/DeleteEmailTemplateTest.php",
        "intent": null,
        "intent_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\\Setting\\DeleteEmailTemplate;\n\nclass DeleteEmailTemplateTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Setting\\DeleteEmailTemplate@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Setting\\DeleteEmailTemplate@handle is PROOF_READY but no test file at tests/Feature/DeleteEmailTemplateTest.php is in the MANUAL allowlist. 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/Setting/DeleteTax.php::App\\Jobs\\Setting\\DeleteTax::getRelationships",
        "fqmn": "App\\Jobs\\Setting\\DeleteTax@getRelationships",
        "expected_test_path": "tests/Feature/DeleteTaxTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Setting\\DeleteTax;\n\nclass DeleteTaxTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Setting\\DeleteTax@getRelationships\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getrelationships_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Setting\\DeleteTax@getRelationships is PROOF_READY but no test file at tests/Feature/DeleteTaxTest.php is in the MANUAL allowlist. 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/Setting/DeleteTax.php::App\\Jobs\\Setting\\DeleteTax::handle",
        "fqmn": "App\\Jobs\\Setting\\DeleteTax@handle",
        "expected_test_path": "tests/Feature/DeleteTaxTest.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\\Jobs\\Setting\\DeleteTax;\n\nclass DeleteTaxTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Setting\\DeleteTax@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Jobs\\Setting\\DeleteTax@handle is PROOF_READY but no test file at tests/Feature/DeleteTaxTest.php is in the MANUAL allowlist. 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/Setting/UpdateCategory.php::App\\Jobs\\Setting\\UpdateCategory::authorize",
        "fqmn": "App\\Jobs\\Setting\\UpdateCategory@authorize",
        "expected_test_path": "tests/Feature/UpdateCategoryTest.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\\Setting\\UpdateCategory;\n\nclass UpdateCategoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Setting\\UpdateCategory@authorize\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_authorize_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\Setting\\UpdateCategory@authorize is PROOF_READY but no test file at tests/Feature/UpdateCategoryTest.php is in the MANUAL allowlist. 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/Setting/UpdateCategory.php::App\\Jobs\\Setting\\UpdateCategory::getRelationships",
        "fqmn": "App\\Jobs\\Setting\\UpdateCategory@getRelationships",
        "expected_test_path": "tests/Feature/UpdateCategoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Setting\\UpdateCategory;\n\nclass UpdateCategoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Setting\\UpdateCategory@getRelationships\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getrelationships_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Setting\\UpdateCategory@getRelationships is PROOF_READY but no test file at tests/Feature/UpdateCategoryTest.php is in the MANUAL allowlist. 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/Setting/UpdateCategory.php::App\\Jobs\\Setting\\UpdateCategory::handle",
        "fqmn": "App\\Jobs\\Setting\\UpdateCategory@handle",
        "expected_test_path": "tests/Feature/UpdateCategoryTest.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\\Jobs\\Setting\\UpdateCategory;\n\nclass UpdateCategoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Setting\\UpdateCategory@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Jobs\\Setting\\UpdateCategory@handle is PROOF_READY but no test file at tests/Feature/UpdateCategoryTest.php is in the MANUAL allowlist. 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/Setting/UpdateCurrency.php::App\\Jobs\\Setting\\UpdateCurrency::authorize",
        "fqmn": "App\\Jobs\\Setting\\UpdateCurrency@authorize",
        "expected_test_path": "tests/Feature/UpdateCurrencyTest.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\\Setting\\UpdateCurrency;\n\nclass UpdateCurrencyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Setting\\UpdateCurrency@authorize\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_authorize_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\Setting\\UpdateCurrency@authorize is PROOF_READY but no test file at tests/Feature/UpdateCurrencyTest.php is in the MANUAL allowlist. 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/Setting/UpdateCurrency.php::App\\Jobs\\Setting\\UpdateCurrency::getRelationships",
        "fqmn": "App\\Jobs\\Setting\\UpdateCurrency@getRelationships",
        "expected_test_path": "tests/Feature/UpdateCurrencyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Setting\\UpdateCurrency;\n\nclass UpdateCurrencyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Setting\\UpdateCurrency@getRelationships\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getrelationships_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Setting\\UpdateCurrency@getRelationships is PROOF_READY but no test file at tests/Feature/UpdateCurrencyTest.php is in the MANUAL allowlist. 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/Setting/UpdateCurrency.php::App\\Jobs\\Setting\\UpdateCurrency::handle",
        "fqmn": "App\\Jobs\\Setting\\UpdateCurrency@handle",
        "expected_test_path": "tests/Feature/UpdateCurrencyTest.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\\Jobs\\Setting\\UpdateCurrency;\n\nclass UpdateCurrencyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Setting\\UpdateCurrency@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Jobs\\Setting\\UpdateCurrency@handle is PROOF_READY but no test file at tests/Feature/UpdateCurrencyTest.php is in the MANUAL allowlist. 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/Setting/UpdateEmailTemplate.php::App\\Jobs\\Setting\\UpdateEmailTemplate::handle",
        "fqmn": "App\\Jobs\\Setting\\UpdateEmailTemplate@handle",
        "expected_test_path": "tests/Feature/UpdateEmailTemplateTest.php",
        "intent": null,
        "intent_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\\Setting\\UpdateEmailTemplate;\n\nclass UpdateEmailTemplateTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Setting\\UpdateEmailTemplate@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Setting\\UpdateEmailTemplate@handle is PROOF_READY but no test file at tests/Feature/UpdateEmailTemplateTest.php is in the MANUAL allowlist. 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/Setting/UpdateTax.php::App\\Jobs\\Setting\\UpdateTax::authorize",
        "fqmn": "App\\Jobs\\Setting\\UpdateTax@authorize",
        "expected_test_path": "tests/Feature/UpdateTaxTest.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\\Setting\\UpdateTax;\n\nclass UpdateTaxTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Setting\\UpdateTax@authorize\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_authorize_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\Setting\\UpdateTax@authorize is PROOF_READY but no test file at tests/Feature/UpdateTaxTest.php is in the MANUAL allowlist. 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/Setting/UpdateTax.php::App\\Jobs\\Setting\\UpdateTax::getRelationships",
        "fqmn": "App\\Jobs\\Setting\\UpdateTax@getRelationships",
        "expected_test_path": "tests/Feature/UpdateTaxTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "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\\Setting\\UpdateTax;\n\nclass UpdateTaxTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Setting\\UpdateTax@getRelationships\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getrelationships_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Setting\\UpdateTax@getRelationships is PROOF_READY but no test file at tests/Feature/UpdateTaxTest.php is in the MANUAL allowlist. 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/Setting/UpdateTax.php::App\\Jobs\\Setting\\UpdateTax::handle",
        "fqmn": "App\\Jobs\\Setting\\UpdateTax@handle",
        "expected_test_path": "tests/Feature/UpdateTaxTest.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\\Jobs\\Setting\\UpdateTax;\n\nclass UpdateTaxTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Setting\\UpdateTax@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Jobs\\Setting\\UpdateTax@handle is PROOF_READY but no test file at tests/Feature/UpdateTaxTest.php is in the MANUAL allowlist. 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/Common/ClearPlansCache.php::App\\Listeners\\Common\\ClearPlansCache::subscribe",
        "fqmn": "App\\Listeners\\Common\\ClearPlansCache@subscribe",
        "expected_test_path": "tests/Feature/ClearPlansCacheTest.php",
        "intent": null,
        "intent_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\\Common\\ClearPlansCache;\n\nclass ClearPlansCacheTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Common\\ClearPlansCache@subscribe\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_subscribe_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Listeners\\Common\\ClearPlansCache@subscribe is PROOF_READY but no test file at tests/Feature/ClearPlansCacheTest.php is in the MANUAL allowlist. 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/Common/PreparingResponse.php::App\\Listeners\\Common\\PreparingResponse::handle",
        "fqmn": "App\\Listeners\\Common\\PreparingResponse@handle",
        "expected_test_path": "tests/Feature/PreparingResponseTest.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\\Common\\PreparingResponse;\n\nclass PreparingResponseTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Common\\PreparingResponse@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Common\\PreparingResponse@handle is PROOF_READY but no test file at tests/Feature/PreparingResponseTest.php is in the MANUAL allowlist. 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/Common/SkipScheduleInReadOnlyMode.php::App\\Listeners\\Common\\SkipScheduleInReadOnlyMode::handle",
        "fqmn": "App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@handle",
        "expected_test_path": "tests/Feature/SkipScheduleInReadOnlyModeTest.php",
        "intent": null,
        "intent_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\\Common\\SkipScheduleInReadOnlyMode;\n\nclass SkipScheduleInReadOnlyModeTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Common\\SkipScheduleInReadOnlyMode@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Common\\SkipScheduleInReadOnlyMode@handle is PROOF_READY but no test file at tests/Feature/SkipScheduleInReadOnlyModeTest.php is in the MANUAL allowlist. 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/Document/CreateDocumentTransaction.php::App\\Listeners\\Document\\CreateDocumentTransaction::handle",
        "fqmn": "App\\Listeners\\Document\\CreateDocumentTransaction@handle",
        "expected_test_path": "tests/Feature/CreateDocumentTransactionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Listeners\\Document\\CreateDocumentTransaction;\n\nclass CreateDocumentTransactionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Document\\CreateDocumentTransaction@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Listeners\\Document\\CreateDocumentTransaction@handle is PROOF_READY but no test file at tests/Feature/CreateDocumentTransactionTest.php is in the MANUAL allowlist. 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/Document/MarkDocumentSent.php::App\\Listeners\\Document\\MarkDocumentSent::getDescription",
        "fqmn": "App\\Listeners\\Document\\MarkDocumentSent@getDescription",
        "expected_test_path": "tests/Feature/MarkDocumentSentTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Listeners\\Document\\MarkDocumentSent;\n\nclass MarkDocumentSentTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Document\\MarkDocumentSent@getDescription\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getdescription_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Document\\MarkDocumentSent@getDescription is PROOF_READY but no test file at tests/Feature/MarkDocumentSentTest.php is in the MANUAL allowlist. 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/Document/MarkDocumentViewed.php::App\\Listeners\\Document\\MarkDocumentViewed::handle",
        "fqmn": "App\\Listeners\\Document\\MarkDocumentViewed@handle",
        "expected_test_path": "tests/Feature/MarkDocumentViewedTest.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\\Listeners\\Document\\MarkDocumentViewed;\n\nclass MarkDocumentViewedTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Document\\MarkDocumentViewed@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Listeners\\Document\\MarkDocumentViewed@handle is PROOF_READY but no test file at tests/Feature/MarkDocumentViewedTest.php is in the MANUAL allowlist. 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/Document/SendDocumentPaymentNotification.php::App\\Listeners\\Document\\SendDocumentPaymentNotification::handle",
        "fqmn": "App\\Listeners\\Document\\SendDocumentPaymentNotification@handle",
        "expected_test_path": "tests/Feature/SendDocumentPaymentNotificationTest.php",
        "intent": null,
        "intent_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\\Document\\SendDocumentPaymentNotification;\n\nclass SendDocumentPaymentNotificationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Document\\SendDocumentPaymentNotification@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Document\\SendDocumentPaymentNotification@handle is PROOF_READY but no test file at tests/Feature/SendDocumentPaymentNotificationTest.php is in the MANUAL allowlist. 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/Document/SendDocumentRecurringNotification.php::App\\Listeners\\Document\\SendDocumentRecurringNotification::handle",
        "fqmn": "App\\Listeners\\Document\\SendDocumentRecurringNotification@handle",
        "expected_test_path": "tests/Feature/SendDocumentRecurringNotificationTest.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\\Listeners\\Document\\SendDocumentRecurringNotification;\n\nclass SendDocumentRecurringNotificationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Document\\SendDocumentRecurringNotification@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Listeners\\Document\\SendDocumentRecurringNotification@handle is PROOF_READY but no test file at tests/Feature/SendDocumentRecurringNotificationTest.php is in the MANUAL allowlist. 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/Document/SendDocumentViewNotification.php::App\\Listeners\\Document\\SendDocumentViewNotification::handle",
        "fqmn": "App\\Listeners\\Document\\SendDocumentViewNotification@handle",
        "expected_test_path": "tests/Feature/SendDocumentViewNotificationTest.php",
        "intent": null,
        "intent_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\\Document\\SendDocumentViewNotification;\n\nclass SendDocumentViewNotificationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Document\\SendDocumentViewNotification@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Document\\SendDocumentViewNotification@handle is PROOF_READY but no test file at tests/Feature/SendDocumentViewNotificationTest.php is in the MANUAL allowlist. 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/Document/SettingFieldCreated.php::App\\Listeners\\Document\\SettingFieldCreated::handle",
        "fqmn": "App\\Listeners\\Document\\SettingFieldCreated@handle",
        "expected_test_path": "tests/Feature/SettingFieldCreatedTest.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\\Document\\SettingFieldCreated;\n\nclass SettingFieldCreatedTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Document\\SettingFieldCreated@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Document\\SettingFieldCreated@handle is PROOF_READY but no test file at tests/Feature/SettingFieldCreatedTest.php is in the MANUAL allowlist. 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/Document/SettingFieldUpdated.php::App\\Listeners\\Document\\SettingFieldUpdated::handle",
        "fqmn": "App\\Listeners\\Document\\SettingFieldUpdated@handle",
        "expected_test_path": "tests/Feature/SettingFieldUpdatedTest.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\\Document\\SettingFieldUpdated;\n\nclass SettingFieldUpdatedTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Document\\SettingFieldUpdated@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Document\\SettingFieldUpdated@handle is PROOF_READY but no test file at tests/Feature/SettingFieldUpdatedTest.php is in the MANUAL allowlist. 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/Email/DisablePersonDueToInvalidEmail.php::App\\Listeners\\Email\\DisablePersonDueToInvalidEmail::disableContact",
        "fqmn": "App\\Listeners\\Email\\DisablePersonDueToInvalidEmail@disableContact",
        "expected_test_path": "tests/Feature/DisablePersonDueToInvalidEmailTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Listeners\\Email\\DisablePersonDueToInvalidEmail;\n\nclass DisablePersonDueToInvalidEmailTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Email\\DisablePersonDueToInvalidEmail@disableContact\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_disablecontact_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Listeners\\Email\\DisablePersonDueToInvalidEmail@disableContact is PROOF_READY but no test file at tests/Feature/DisablePersonDueToInvalidEmailTest.php is in the MANUAL allowlist. 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/Email/DisablePersonDueToInvalidEmail.php::App\\Listeners\\Email\\DisablePersonDueToInvalidEmail::disableUser",
        "fqmn": "App\\Listeners\\Email\\DisablePersonDueToInvalidEmail@disableUser",
        "expected_test_path": "tests/Feature/DisablePersonDueToInvalidEmailTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Listeners\\Email\\DisablePersonDueToInvalidEmail;\n\nclass DisablePersonDueToInvalidEmailTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Email\\DisablePersonDueToInvalidEmail@disableUser\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_disableuser_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Listeners\\Email\\DisablePersonDueToInvalidEmail@disableUser is PROOF_READY but no test file at tests/Feature/DisablePersonDueToInvalidEmailTest.php is in the MANUAL allowlist. 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/Email/SendInvalidEmailNotification.php::App\\Listeners\\Email\\SendInvalidEmailNotification::handle",
        "fqmn": "App\\Listeners\\Email\\SendInvalidEmailNotification@handle",
        "expected_test_path": "tests/Feature/SendInvalidEmailNotificationTest.php",
        "intent": null,
        "intent_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\\Email\\SendInvalidEmailNotification;\n\nclass SendInvalidEmailNotificationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Email\\SendInvalidEmailNotification@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Email\\SendInvalidEmailNotification@handle is PROOF_READY but no test file at tests/Feature/SendInvalidEmailNotificationTest.php is in the MANUAL allowlist. 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/Email/SendInvalidEmailNotification.php::App\\Listeners\\Email\\SendInvalidEmailNotification::notifyAdminsAboutInvalidContactEmail",
        "fqmn": "App\\Listeners\\Email\\SendInvalidEmailNotification@notifyAdminsAboutInvalidContactEmail",
        "expected_test_path": "tests/Feature/SendInvalidEmailNotificationTest.php",
        "intent": null,
        "intent_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\\Email\\SendInvalidEmailNotification;\n\nclass SendInvalidEmailNotificationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Email\\SendInvalidEmailNotification@notifyAdminsAboutInvalidContactEmail\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_notifyadminsaboutinvalidcontactemail_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Email\\SendInvalidEmailNotification@notifyAdminsAboutInvalidContactEmail is PROOF_READY but no test file at tests/Feature/SendInvalidEmailNotificationTest.php is in the MANUAL allowlist. 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/Email/SendInvalidEmailNotification.php::App\\Listeners\\Email\\SendInvalidEmailNotification::notifyAdminsAboutInvalidUserEmail",
        "fqmn": "App\\Listeners\\Email\\SendInvalidEmailNotification@notifyAdminsAboutInvalidUserEmail",
        "expected_test_path": "tests/Feature/SendInvalidEmailNotificationTest.php",
        "intent": null,
        "intent_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\\Email\\SendInvalidEmailNotification;\n\nclass SendInvalidEmailNotificationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Email\\SendInvalidEmailNotification@notifyAdminsAboutInvalidUserEmail\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_notifyadminsaboutinvaliduseremail_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Email\\SendInvalidEmailNotification@notifyAdminsAboutInvalidUserEmail is PROOF_READY but no test file at tests/Feature/SendInvalidEmailNotificationTest.php is in the MANUAL allowlist. 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/Email/TellFirewallTooManyEmailsSent.php::App\\Listeners\\Email\\TellFirewallTooManyEmailsSent::handle",
        "fqmn": "App\\Listeners\\Email\\TellFirewallTooManyEmailsSent@handle",
        "expected_test_path": "tests/Feature/TellFirewallTooManyEmailsSentTest.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\\Listeners\\Email\\TellFirewallTooManyEmailsSent;\n\nclass TellFirewallTooManyEmailsSentTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Email\\TellFirewallTooManyEmailsSent@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Listeners\\Email\\TellFirewallTooManyEmailsSent@handle is PROOF_READY but no test file at tests/Feature/TellFirewallTooManyEmailsSentTest.php is in the MANUAL allowlist. 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/Email/TellFirewallTooManyEmailsSent.php::App\\Listeners\\Email\\TellFirewallTooManyEmailsSent::skip",
        "fqmn": "App\\Listeners\\Email\\TellFirewallTooManyEmailsSent@skip",
        "expected_test_path": "tests/Feature/TellFirewallTooManyEmailsSentTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Listeners\\Email\\TellFirewallTooManyEmailsSent;\n\nclass TellFirewallTooManyEmailsSentTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Email\\TellFirewallTooManyEmailsSent@skip\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_skip_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Email\\TellFirewallTooManyEmailsSent@skip is PROOF_READY but no test file at tests/Feature/TellFirewallTooManyEmailsSentTest.php is in the MANUAL allowlist. 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/Menu/ShowInNotifications.php::App\\Listeners\\Menu\\ShowInNotifications::handle",
        "fqmn": "App\\Listeners\\Menu\\ShowInNotifications@handle",
        "expected_test_path": "tests/Feature/ShowInNotificationsTest.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\\Menu\\ShowInNotifications;\n\nclass ShowInNotificationsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Menu\\ShowInNotifications@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Menu\\ShowInNotifications@handle is PROOF_READY but no test file at tests/Feature/ShowInNotificationsTest.php is in the MANUAL allowlist. 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/Module/InstallExtraModules.php::App\\Listeners\\Module\\InstallExtraModules::handle",
        "fqmn": "App\\Listeners\\Module\\InstallExtraModules@handle",
        "expected_test_path": "tests/Feature/InstallExtraModulesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Listeners\\Module\\InstallExtraModules;\n\nclass InstallExtraModulesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Module\\InstallExtraModules@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Listeners\\Module\\InstallExtraModules@handle is PROOF_READY but no test file at tests/Feature/InstallExtraModulesTest.php is in the MANUAL allowlist. 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/Module/UpdateExtraModules.php::App\\Listeners\\Module\\UpdateExtraModules::handle",
        "fqmn": "App\\Listeners\\Module\\UpdateExtraModules@handle",
        "expected_test_path": "tests/Feature/UpdateExtraModulesTest.php",
        "intent": null,
        "intent_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\\Module\\UpdateExtraModules;\n\nclass UpdateExtraModulesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Module\\UpdateExtraModules@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Module\\UpdateExtraModules@handle is PROOF_READY but no test file at tests/Feature/UpdateExtraModulesTest.php is in the MANUAL allowlist. 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/Report/AddAccounts.php::App\\Listeners\\Report\\AddAccounts::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddAccounts@handleFilterShowing",
        "expected_test_path": "tests/Feature/AddAccountsTest.php",
        "intent": null,
        "intent_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\\Report\\AddAccounts;\n\nclass AddAccountsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Report\\AddAccounts@handleFilterShowing\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handlefiltershowing_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Report\\AddAccounts@handleFilterShowing is PROOF_READY but no test file at tests/Feature/AddAccountsTest.php is in the MANUAL allowlist. 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/Report/AddAccounts.php::App\\Listeners\\Report\\AddAccounts::handleGroupApplying",
        "fqmn": "App\\Listeners\\Report\\AddAccounts@handleGroupApplying",
        "expected_test_path": "tests/Feature/AddAccountsTest.php",
        "intent": null,
        "intent_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\\Report\\AddAccounts;\n\nclass AddAccountsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Report\\AddAccounts@handleGroupApplying\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handlegroupapplying_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Report\\AddAccounts@handleGroupApplying is PROOF_READY but no test file at tests/Feature/AddAccountsTest.php is in the MANUAL allowlist. 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/Report/AddAccounts.php::App\\Listeners\\Report\\AddAccounts::handleGroupShowing",
        "fqmn": "App\\Listeners\\Report\\AddAccounts@handleGroupShowing",
        "expected_test_path": "tests/Feature/AddAccountsTest.php",
        "intent": null,
        "intent_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\\Report\\AddAccounts;\n\nclass AddAccountsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Report\\AddAccounts@handleGroupShowing\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handlegroupshowing_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Report\\AddAccounts@handleGroupShowing is PROOF_READY but no test file at tests/Feature/AddAccountsTest.php is in the MANUAL allowlist. 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/Report/AddAccounts.php::App\\Listeners\\Report\\AddAccounts::handleRowsShowing",
        "fqmn": "App\\Listeners\\Report\\AddAccounts@handleRowsShowing",
        "expected_test_path": "tests/Feature/AddAccountsTest.php",
        "intent": null,
        "intent_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\\Report\\AddAccounts;\n\nclass AddAccountsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Report\\AddAccounts@handleRowsShowing\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handlerowsshowing_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Report\\AddAccounts@handleRowsShowing is PROOF_READY but no test file at tests/Feature/AddAccountsTest.php is in the MANUAL allowlist. 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/Report/AddBasis.php::App\\Listeners\\Report\\AddBasis::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddBasis@handleFilterShowing",
        "expected_test_path": "tests/Feature/AddBasisTest.php",
        "intent": null,
        "intent_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\\Report\\AddBasis;\n\nclass AddBasisTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Report\\AddBasis@handleFilterShowing\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handlefiltershowing_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Report\\AddBasis@handleFilterShowing is PROOF_READY but no test file at tests/Feature/AddBasisTest.php is in the MANUAL allowlist. 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/Report/AddContacts.php::App\\Listeners\\Report\\AddContacts::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddContacts@handleFilterShowing",
        "expected_test_path": "tests/Feature/AddContactsTest.php",
        "intent": null,
        "intent_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\\Report\\AddContacts;\n\nclass AddContactsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Report\\AddContacts@handleFilterShowing\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handlefiltershowing_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Report\\AddContacts@handleFilterShowing is PROOF_READY but no test file at tests/Feature/AddContactsTest.php is in the MANUAL allowlist. 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/Report/AddContacts.php::App\\Listeners\\Report\\AddContacts::handleGroupShowing",
        "fqmn": "App\\Listeners\\Report\\AddContacts@handleGroupShowing",
        "expected_test_path": "tests/Feature/AddContactsTest.php",
        "intent": null,
        "intent_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\\Report\\AddContacts;\n\nclass AddContactsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Report\\AddContacts@handleGroupShowing\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handlegroupshowing_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Report\\AddContacts@handleGroupShowing is PROOF_READY but no test file at tests/Feature/AddContactsTest.php is in the MANUAL allowlist. 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/Report/AddContacts.php::App\\Listeners\\Report\\AddContacts::handleRowsShowing",
        "fqmn": "App\\Listeners\\Report\\AddContacts@handleRowsShowing",
        "expected_test_path": "tests/Feature/AddContactsTest.php",
        "intent": null,
        "intent_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\\Report\\AddContacts;\n\nclass AddContactsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Report\\AddContacts@handleRowsShowing\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handlerowsshowing_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Report\\AddContacts@handleRowsShowing is PROOF_READY but no test file at tests/Feature/AddContactsTest.php is in the MANUAL allowlist. 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/Report/AddCustomers.php::App\\Listeners\\Report\\AddCustomers::handleFilterApplying",
        "fqmn": "App\\Listeners\\Report\\AddCustomers@handleFilterApplying",
        "expected_test_path": "tests/Feature/AddCustomersTest.php",
        "intent": null,
        "intent_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\\Report\\AddCustomers;\n\nclass AddCustomersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Report\\AddCustomers@handleFilterApplying\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handlefilterapplying_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Report\\AddCustomers@handleFilterApplying is PROOF_READY but no test file at tests/Feature/AddCustomersTest.php is in the MANUAL allowlist. 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/Report/AddCustomers.php::App\\Listeners\\Report\\AddCustomers::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddCustomers@handleFilterShowing",
        "expected_test_path": "tests/Feature/AddCustomersTest.php",
        "intent": null,
        "intent_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\\Report\\AddCustomers;\n\nclass AddCustomersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Report\\AddCustomers@handleFilterShowing\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handlefiltershowing_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Report\\AddCustomers@handleFilterShowing is PROOF_READY but no test file at tests/Feature/AddCustomersTest.php is in the MANUAL allowlist. 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/Report/AddCustomers.php::App\\Listeners\\Report\\AddCustomers::handleGroupApplying",
        "fqmn": "App\\Listeners\\Report\\AddCustomers@handleGroupApplying",
        "expected_test_path": "tests/Feature/AddCustomersTest.php",
        "intent": null,
        "intent_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\\Report\\AddCustomers;\n\nclass AddCustomersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Report\\AddCustomers@handleGroupApplying\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handlegroupapplying_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Report\\AddCustomers@handleGroupApplying is PROOF_READY but no test file at tests/Feature/AddCustomersTest.php is in the MANUAL allowlist. 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/Report/AddCustomers.php::App\\Listeners\\Report\\AddCustomers::handleGroupShowing",
        "fqmn": "App\\Listeners\\Report\\AddCustomers@handleGroupShowing",
        "expected_test_path": "tests/Feature/AddCustomersTest.php",
        "intent": null,
        "intent_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\\Report\\AddCustomers;\n\nclass AddCustomersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Report\\AddCustomers@handleGroupShowing\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handlegroupshowing_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Report\\AddCustomers@handleGroupShowing is PROOF_READY but no test file at tests/Feature/AddCustomersTest.php is in the MANUAL allowlist. 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/Report/AddCustomers.php::App\\Listeners\\Report\\AddCustomers::handleRowsShowing",
        "fqmn": "App\\Listeners\\Report\\AddCustomers@handleRowsShowing",
        "expected_test_path": "tests/Feature/AddCustomersTest.php",
        "intent": null,
        "intent_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\\Report\\AddCustomers;\n\nclass AddCustomersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Report\\AddCustomers@handleRowsShowing\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handlerowsshowing_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Report\\AddCustomers@handleRowsShowing is PROOF_READY but no test file at tests/Feature/AddCustomersTest.php is in the MANUAL allowlist. 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/Report/AddDate.php::App\\Listeners\\Report\\AddDate::handleFilterApplying",
        "fqmn": "App\\Listeners\\Report\\AddDate@handleFilterApplying",
        "expected_test_path": "tests/Feature/AddDateTest.php",
        "intent": null,
        "intent_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\\Report\\AddDate;\n\nclass AddDateTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Report\\AddDate@handleFilterApplying\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handlefilterapplying_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Report\\AddDate@handleFilterApplying is PROOF_READY but no test file at tests/Feature/AddDateTest.php is in the MANUAL allowlist. 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/Report/AddDate.php::App\\Listeners\\Report\\AddDate::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddDate@handleFilterShowing",
        "expected_test_path": "tests/Feature/AddDateTest.php",
        "intent": null,
        "intent_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\\Report\\AddDate;\n\nclass AddDateTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Report\\AddDate@handleFilterShowing\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handlefiltershowing_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Report\\AddDate@handleFilterShowing is PROOF_READY but no test file at tests/Feature/AddDateTest.php is in the MANUAL allowlist. 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/Report/AddDiscount.php::App\\Listeners\\Report\\AddDiscount::handleFilterApplying",
        "fqmn": "App\\Listeners\\Report\\AddDiscount@handleFilterApplying",
        "expected_test_path": "tests/Feature/AddDiscountTest.php",
        "intent": null,
        "intent_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\\Report\\AddDiscount;\n\nclass AddDiscountTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Report\\AddDiscount@handleFilterApplying\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handlefilterapplying_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Report\\AddDiscount@handleFilterApplying is PROOF_READY but no test file at tests/Feature/AddDiscountTest.php is in the MANUAL allowlist. 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/Report/AddDiscount.php::App\\Listeners\\Report\\AddDiscount::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddDiscount@handleFilterShowing",
        "expected_test_path": "tests/Feature/AddDiscountTest.php",
        "intent": null,
        "intent_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\\Report\\AddDiscount;\n\nclass AddDiscountTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Report\\AddDiscount@handleFilterShowing\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handlefiltershowing_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Report\\AddDiscount@handleFilterShowing is PROOF_READY but no test file at tests/Feature/AddDiscountTest.php is in the MANUAL allowlist. 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/Report/AddExpenseCategories.php::App\\Listeners\\Report\\AddExpenseCategories::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddExpenseCategories@handleFilterShowing",
        "expected_test_path": "tests/Feature/AddExpenseCategoriesTest.php",
        "intent": null,
        "intent_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\\Report\\AddExpenseCategories;\n\nclass AddExpenseCategoriesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Report\\AddExpenseCategories@handleFilterShowing\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handlefiltershowing_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Report\\AddExpenseCategories@handleFilterShowing is PROOF_READY but no test file at tests/Feature/AddExpenseCategoriesTest.php is in the MANUAL allowlist. 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/Report/AddExpenseCategories.php::App\\Listeners\\Report\\AddExpenseCategories::handleGroupShowing",
        "fqmn": "App\\Listeners\\Report\\AddExpenseCategories@handleGroupShowing",
        "expected_test_path": "tests/Feature/AddExpenseCategoriesTest.php",
        "intent": null,
        "intent_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\\Report\\AddExpenseCategories;\n\nclass AddExpenseCategoriesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Report\\AddExpenseCategories@handleGroupShowing\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handlegroupshowing_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Report\\AddExpenseCategories@handleGroupShowing is PROOF_READY but no test file at tests/Feature/AddExpenseCategoriesTest.php is in the MANUAL allowlist. 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/Report/AddExpenseCategories.php::App\\Listeners\\Report\\AddExpenseCategories::handleRowsShowing",
        "fqmn": "App\\Listeners\\Report\\AddExpenseCategories@handleRowsShowing",
        "expected_test_path": "tests/Feature/AddExpenseCategoriesTest.php",
        "intent": null,
        "intent_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\\Report\\AddExpenseCategories;\n\nclass AddExpenseCategoriesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Report\\AddExpenseCategories@handleRowsShowing\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handlerowsshowing_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Report\\AddExpenseCategories@handleRowsShowing is PROOF_READY but no test file at tests/Feature/AddExpenseCategoriesTest.php is in the MANUAL allowlist. 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/Report/AddGroup.php::App\\Listeners\\Report\\AddGroup::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddGroup@handleFilterShowing",
        "expected_test_path": "tests/Feature/AddGroupTest.php",
        "intent": null,
        "intent_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\\Report\\AddGroup;\n\nclass AddGroupTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Report\\AddGroup@handleFilterShowing\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handlefiltershowing_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Report\\AddGroup@handleFilterShowing is PROOF_READY but no test file at tests/Feature/AddGroupTest.php is in the MANUAL allowlist. 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/Report/AddIncomeCategories.php::App\\Listeners\\Report\\AddIncomeCategories::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddIncomeCategories@handleFilterShowing",
        "expected_test_path": "tests/Feature/AddIncomeCategoriesTest.php",
        "intent": null,
        "intent_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\\Report\\AddIncomeCategories;\n\nclass AddIncomeCategoriesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Report\\AddIncomeCategories@handleFilterShowing\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handlefiltershowing_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Report\\AddIncomeCategories@handleFilterShowing is PROOF_READY but no test file at tests/Feature/AddIncomeCategoriesTest.php is in the MANUAL allowlist. 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/Report/AddIncomeCategories.php::App\\Listeners\\Report\\AddIncomeCategories::handleGroupShowing",
        "fqmn": "App\\Listeners\\Report\\AddIncomeCategories@handleGroupShowing",
        "expected_test_path": "tests/Feature/AddIncomeCategoriesTest.php",
        "intent": null,
        "intent_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\\Report\\AddIncomeCategories;\n\nclass AddIncomeCategoriesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Report\\AddIncomeCategories@handleGroupShowing\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handlegroupshowing_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Report\\AddIncomeCategories@handleGroupShowing is PROOF_READY but no test file at tests/Feature/AddIncomeCategoriesTest.php is in the MANUAL allowlist. 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/Report/AddIncomeCategories.php::App\\Listeners\\Report\\AddIncomeCategories::handleRowsShowing",
        "fqmn": "App\\Listeners\\Report\\AddIncomeCategories@handleRowsShowing",
        "expected_test_path": "tests/Feature/AddIncomeCategoriesTest.php",
        "intent": null,
        "intent_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\\Report\\AddIncomeCategories;\n\nclass AddIncomeCategoriesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Report\\AddIncomeCategories@handleRowsShowing\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handlerowsshowing_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Report\\AddIncomeCategories@handleRowsShowing is PROOF_READY but no test file at tests/Feature/AddIncomeCategoriesTest.php is in the MANUAL allowlist. 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/Report/AddIncomeExpenseCategories.php::App\\Listeners\\Report\\AddIncomeExpenseCategories::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddIncomeExpenseCategories@handleFilterShowing",
        "expected_test_path": "tests/Feature/AddIncomeExpenseCategoriesTest.php",
        "intent": null,
        "intent_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\\Report\\AddIncomeExpenseCategories;\n\nclass AddIncomeExpenseCategoriesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Report\\AddIncomeExpenseCategories@handleFilterShowing\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handlefiltershowing_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Report\\AddIncomeExpenseCategories@handleFilterShowing is PROOF_READY but no test file at tests/Feature/AddIncomeExpenseCategoriesTest.php is in the MANUAL allowlist. 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/Report/AddIncomeExpenseCategories.php::App\\Listeners\\Report\\AddIncomeExpenseCategories::handleGroupShowing",
        "fqmn": "App\\Listeners\\Report\\AddIncomeExpenseCategories@handleGroupShowing",
        "expected_test_path": "tests/Feature/AddIncomeExpenseCategoriesTest.php",
        "intent": null,
        "intent_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\\Report\\AddIncomeExpenseCategories;\n\nclass AddIncomeExpenseCategoriesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Report\\AddIncomeExpenseCategories@handleGroupShowing\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handlegroupshowing_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Report\\AddIncomeExpenseCategories@handleGroupShowing is PROOF_READY but no test file at tests/Feature/AddIncomeExpenseCategoriesTest.php is in the MANUAL allowlist. 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/Report/AddIncomeExpenseCategories.php::App\\Listeners\\Report\\AddIncomeExpenseCategories::handleRowsShowing",
        "fqmn": "App\\Listeners\\Report\\AddIncomeExpenseCategories@handleRowsShowing",
        "expected_test_path": "tests/Feature/AddIncomeExpenseCategoriesTest.php",
        "intent": null,
        "intent_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\\Report\\AddIncomeExpenseCategories;\n\nclass AddIncomeExpenseCategoriesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Report\\AddIncomeExpenseCategories@handleRowsShowing\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handlerowsshowing_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Report\\AddIncomeExpenseCategories@handleRowsShowing is PROOF_READY but no test file at tests/Feature/AddIncomeExpenseCategoriesTest.php is in the MANUAL allowlist. 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/Report/AddPeriod.php::App\\Listeners\\Report\\AddPeriod::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddPeriod@handleFilterShowing",
        "expected_test_path": "tests/Feature/AddPeriodTest.php",
        "intent": null,
        "intent_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\\Report\\AddPeriod;\n\nclass AddPeriodTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Report\\AddPeriod@handleFilterShowing\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handlefiltershowing_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Report\\AddPeriod@handleFilterShowing is PROOF_READY but no test file at tests/Feature/AddPeriodTest.php is in the MANUAL allowlist. 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/Report/AddRowsToTax.php::App\\Listeners\\Report\\AddRowsToTax::handleRowsShowing",
        "fqmn": "App\\Listeners\\Report\\AddRowsToTax@handleRowsShowing",
        "expected_test_path": "tests/Feature/AddRowsToTaxTest.php",
        "intent": null,
        "intent_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\\Report\\AddRowsToTax;\n\nclass AddRowsToTaxTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Report\\AddRowsToTax@handleRowsShowing\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handlerowsshowing_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Report\\AddRowsToTax@handleRowsShowing is PROOF_READY but no test file at tests/Feature/AddRowsToTaxTest.php is in the MANUAL allowlist. 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/Report/AddSearchString.php::App\\Listeners\\Report\\AddSearchString::handleFilterApplying",
        "fqmn": "App\\Listeners\\Report\\AddSearchString@handleFilterApplying",
        "expected_test_path": "tests/Feature/AddSearchStringTest.php",
        "intent": null,
        "intent_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\\Report\\AddSearchString;\n\nclass AddSearchStringTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Report\\AddSearchString@handleFilterApplying\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handlefilterapplying_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Report\\AddSearchString@handleFilterApplying is PROOF_READY but no test file at tests/Feature/AddSearchStringTest.php is in the MANUAL allowlist. 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/Report/AddVendors.php::App\\Listeners\\Report\\AddVendors::handleFilterApplying",
        "fqmn": "App\\Listeners\\Report\\AddVendors@handleFilterApplying",
        "expected_test_path": "tests/Feature/AddVendorsTest.php",
        "intent": null,
        "intent_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\\Report\\AddVendors;\n\nclass AddVendorsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Report\\AddVendors@handleFilterApplying\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handlefilterapplying_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Report\\AddVendors@handleFilterApplying is PROOF_READY but no test file at tests/Feature/AddVendorsTest.php is in the MANUAL allowlist. 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/Report/AddVendors.php::App\\Listeners\\Report\\AddVendors::handleFilterShowing",
        "fqmn": "App\\Listeners\\Report\\AddVendors@handleFilterShowing",
        "expected_test_path": "tests/Feature/AddVendorsTest.php",
        "intent": null,
        "intent_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\\Report\\AddVendors;\n\nclass AddVendorsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Report\\AddVendors@handleFilterShowing\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handlefiltershowing_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Report\\AddVendors@handleFilterShowing is PROOF_READY but no test file at tests/Feature/AddVendorsTest.php is in the MANUAL allowlist. 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/Report/AddVendors.php::App\\Listeners\\Report\\AddVendors::handleGroupApplying",
        "fqmn": "App\\Listeners\\Report\\AddVendors@handleGroupApplying",
        "expected_test_path": "tests/Feature/AddVendorsTest.php",
        "intent": null,
        "intent_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\\Report\\AddVendors;\n\nclass AddVendorsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Report\\AddVendors@handleGroupApplying\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handlegroupapplying_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Report\\AddVendors@handleGroupApplying is PROOF_READY but no test file at tests/Feature/AddVendorsTest.php is in the MANUAL allowlist. 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/Report/AddVendors.php::App\\Listeners\\Report\\AddVendors::handleGroupShowing",
        "fqmn": "App\\Listeners\\Report\\AddVendors@handleGroupShowing",
        "expected_test_path": "tests/Feature/AddVendorsTest.php",
        "intent": null,
        "intent_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\\Report\\AddVendors;\n\nclass AddVendorsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Report\\AddVendors@handleGroupShowing\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handlegroupshowing_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Report\\AddVendors@handleGroupShowing is PROOF_READY but no test file at tests/Feature/AddVendorsTest.php is in the MANUAL allowlist. 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/Report/AddVendors.php::App\\Listeners\\Report\\AddVendors::handleRowsShowing",
        "fqmn": "App\\Listeners\\Report\\AddVendors@handleRowsShowing",
        "expected_test_path": "tests/Feature/AddVendorsTest.php",
        "intent": null,
        "intent_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\\Report\\AddVendors;\n\nclass AddVendorsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Report\\AddVendors@handleRowsShowing\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handlerowsshowing_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data 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\\Report\\AddVendors@handleRowsShowing is PROOF_READY but no test file at tests/Feature/AddVendorsTest.php is in the MANUAL allowlist. 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/Setting/DeleteCategoryDeletedSubCategories.php::App\\Listeners\\Setting\\DeleteCategoryDeletedSubCategories::handle",
        "fqmn": "App\\Listeners\\Setting\\DeleteCategoryDeletedSubCategories@handle",
        "expected_test_path": "tests/Feature/DeleteCategoryDeletedSubCategoriesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Listeners\\Setting\\DeleteCategoryDeletedSubCategories;\n\nclass DeleteCategoryDeletedSubCategoriesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Setting\\DeleteCategoryDeletedSubCategories@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Listeners\\Setting\\DeleteCategoryDeletedSubCategories@handle is PROOF_READY but no test file at tests/Feature/DeleteCategoryDeletedSubCategoriesTest.php is in the MANUAL allowlist. 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/Update/CreateModuleUpdatedHistory.php::App\\Listeners\\Update\\CreateModuleUpdatedHistory::handle",
        "fqmn": "App\\Listeners\\Update\\CreateModuleUpdatedHistory@handle",
        "expected_test_path": "tests/Feature/CreateModuleUpdatedHistoryTest.php",
        "intent": null,
        "intent_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\\Update\\CreateModuleUpdatedHistory;\n\nclass CreateModuleUpdatedHistoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Update\\CreateModuleUpdatedHistory@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Update\\CreateModuleUpdatedHistory@handle is PROOF_READY but no test file at tests/Feature/CreateModuleUpdatedHistoryTest.php is in the MANUAL allowlist. 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/Update/SendNotificationOnFailure.php::App\\Listeners\\Update\\SendNotificationOnFailure::getKey",
        "fqmn": "App\\Listeners\\Update\\SendNotificationOnFailure@getKey",
        "expected_test_path": "tests/Feature/SendNotificationOnFailureTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Listeners\\Update\\SendNotificationOnFailure;\n\nclass SendNotificationOnFailureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Update\\SendNotificationOnFailure@getKey\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getkey_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Update\\SendNotificationOnFailure@getKey is PROOF_READY but no test file at tests/Feature/SendNotificationOnFailureTest.php is in the MANUAL allowlist. 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/Update/SendNotificationOnFailure.php::App\\Listeners\\Update\\SendNotificationOnFailure::routeNotificationForMail",
        "fqmn": "App\\Listeners\\Update\\SendNotificationOnFailure@routeNotificationForMail",
        "expected_test_path": "tests/Feature/SendNotificationOnFailureTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Listeners\\Update\\SendNotificationOnFailure;\n\nclass SendNotificationOnFailureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Update\\SendNotificationOnFailure@routeNotificationForMail\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_routenotificationformail_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Update\\SendNotificationOnFailure@routeNotificationForMail is PROOF_READY but no test file at tests/Feature/SendNotificationOnFailureTest.php is in the MANUAL allowlist. 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/Update/SendNotificationOnFailure.php::App\\Listeners\\Update\\SendNotificationOnFailure::routeNotificationForSlack",
        "fqmn": "App\\Listeners\\Update\\SendNotificationOnFailure@routeNotificationForSlack",
        "expected_test_path": "tests/Feature/SendNotificationOnFailureTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Listeners\\Update\\SendNotificationOnFailure;\n\nclass SendNotificationOnFailureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Update\\SendNotificationOnFailure@routeNotificationForSlack\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_routenotificationforslack_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Update\\SendNotificationOnFailure@routeNotificationForSlack is PROOF_READY but no test file at tests/Feature/SendNotificationOnFailureTest.php is in the MANUAL allowlist. 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/Update/V30/Version300.php::App\\Listeners\\Update\\V30\\Version300::getTransactionNumber",
        "fqmn": "App\\Listeners\\Update\\V30\\Version300@getTransactionNumber",
        "expected_test_path": "tests/Feature/Version300Test.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Listeners\\Update\\V30\\Version300;\n\nclass Version300Test extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Update\\V30\\Version300@getTransactionNumber\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettransactionnumber_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data 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\\Update\\V30\\Version300@getTransactionNumber is PROOF_READY but no test file at tests/Feature/Version300Test.php is in the MANUAL allowlist. 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/Update/V30/Version300.php::App\\Listeners\\Update\\V30\\Version300::handle",
        "fqmn": "App\\Listeners\\Update\\V30\\Version300@handle",
        "expected_test_path": "tests/Feature/Version300Test.php",
        "intent": null,
        "intent_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\\Update\\V30\\Version300;\n\nclass Version300Test extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Update\\V30\\Version300@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Update\\V30\\Version300@handle is PROOF_READY but no test file at tests/Feature/Version300Test.php is in the MANUAL allowlist. 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/Update/V30/Version3013.php::App\\Listeners\\Update\\V30\\Version3013::handle",
        "fqmn": "App\\Listeners\\Update\\V30\\Version3013@handle",
        "expected_test_path": "tests/Feature/Version3013Test.php",
        "intent": null,
        "intent_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\\Update\\V30\\Version3013;\n\nclass Version3013Test extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Update\\V30\\Version3013@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Update\\V30\\Version3013@handle is PROOF_READY but no test file at tests/Feature/Version3013Test.php is in the MANUAL allowlist. 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/Update/V30/Version3014.php::App\\Listeners\\Update\\V30\\Version3014::handle",
        "fqmn": "App\\Listeners\\Update\\V30\\Version3014@handle",
        "expected_test_path": "tests/Feature/Version3014Test.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Listeners\\Update\\V30\\Version3014;\n\nclass Version3014Test extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Update\\V30\\Version3014@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Listeners\\Update\\V30\\Version3014@handle is PROOF_READY but no test file at tests/Feature/Version3014Test.php is in the MANUAL allowlist. 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/Update/V30/Version3015.php::App\\Listeners\\Update\\V30\\Version3015::handle",
        "fqmn": "App\\Listeners\\Update\\V30\\Version3015@handle",
        "expected_test_path": "tests/Feature/Version3015Test.php",
        "intent": null,
        "intent_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\\Update\\V30\\Version3015;\n\nclass Version3015Test extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Update\\V30\\Version3015@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Update\\V30\\Version3015@handle is PROOF_READY but no test file at tests/Feature/Version3015Test.php is in the MANUAL allowlist. 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/Update/V30/Version3016.php::App\\Listeners\\Update\\V30\\Version3016::handle",
        "fqmn": "App\\Listeners\\Update\\V30\\Version3016@handle",
        "expected_test_path": "tests/Feature/Version3016Test.php",
        "intent": null,
        "intent_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\\Update\\V30\\Version3016;\n\nclass Version3016Test extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Update\\V30\\Version3016@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Update\\V30\\Version3016@handle is PROOF_READY but no test file at tests/Feature/Version3016Test.php is in the MANUAL allowlist. 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/Update/V30/Version3017.php::App\\Listeners\\Update\\V30\\Version3017::handle",
        "fqmn": "App\\Listeners\\Update\\V30\\Version3017@handle",
        "expected_test_path": "tests/Feature/Version3017Test.php",
        "intent": null,
        "intent_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\\Update\\V30\\Version3017;\n\nclass Version3017Test extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Update\\V30\\Version3017@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Update\\V30\\Version3017@handle is PROOF_READY but no test file at tests/Feature/Version3017Test.php is in the MANUAL allowlist. 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/Update/V30/Version303.php::App\\Listeners\\Update\\V30\\Version303::handle",
        "fqmn": "App\\Listeners\\Update\\V30\\Version303@handle",
        "expected_test_path": "tests/Feature/Version303Test.php",
        "intent": null,
        "intent_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\\Update\\V30\\Version303;\n\nclass Version303Test extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Update\\V30\\Version303@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Update\\V30\\Version303@handle is PROOF_READY but no test file at tests/Feature/Version303Test.php is in the MANUAL allowlist. 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/Update/V30/Version304.php::App\\Listeners\\Update\\V30\\Version304::handle",
        "fqmn": "App\\Listeners\\Update\\V30\\Version304@handle",
        "expected_test_path": "tests/Feature/Version304Test.php",
        "intent": null,
        "intent_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\\Update\\V30\\Version304;\n\nclass Version304Test extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Update\\V30\\Version304@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Update\\V30\\Version304@handle is PROOF_READY but no test file at tests/Feature/Version304Test.php is in the MANUAL allowlist. 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/Update/V30/Version305.php::App\\Listeners\\Update\\V30\\Version305::handle",
        "fqmn": "App\\Listeners\\Update\\V30\\Version305@handle",
        "expected_test_path": "tests/Feature/Version305Test.php",
        "intent": null,
        "intent_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\\Update\\V30\\Version305;\n\nclass Version305Test extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Update\\V30\\Version305@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Update\\V30\\Version305@handle is PROOF_READY but no test file at tests/Feature/Version305Test.php is in the MANUAL allowlist. 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/Update/V30/Version307.php::App\\Listeners\\Update\\V30\\Version307::handle",
        "fqmn": "App\\Listeners\\Update\\V30\\Version307@handle",
        "expected_test_path": "tests/Feature/Version307Test.php",
        "intent": null,
        "intent_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\\Update\\V30\\Version307;\n\nclass Version307Test extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Update\\V30\\Version307@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Update\\V30\\Version307@handle is PROOF_READY but no test file at tests/Feature/Version307Test.php is in the MANUAL allowlist. 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/Update/V30/Version309.php::App\\Listeners\\Update\\V30\\Version309::handle",
        "fqmn": "App\\Listeners\\Update\\V30\\Version309@handle",
        "expected_test_path": "tests/Feature/Version309Test.php",
        "intent": null,
        "intent_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\\Update\\V30\\Version309;\n\nclass Version309Test extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Update\\V30\\Version309@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Update\\V30\\Version309@handle is PROOF_READY but no test file at tests/Feature/Version309Test.php is in the MANUAL allowlist. 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/Update/V31/Version310.php::App\\Listeners\\Update\\V31\\Version310::handle",
        "fqmn": "App\\Listeners\\Update\\V31\\Version310@handle",
        "expected_test_path": "tests/Feature/Version310Test.php",
        "intent": null,
        "intent_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\\Update\\V31\\Version310;\n\nclass Version310Test extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Update\\V31\\Version310@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Update\\V31\\Version310@handle is PROOF_READY but no test file at tests/Feature/Version310Test.php is in the MANUAL allowlist. 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/Update/V31/Version3112.php::App\\Listeners\\Update\\V31\\Version3112::handle",
        "fqmn": "App\\Listeners\\Update\\V31\\Version3112@handle",
        "expected_test_path": "tests/Feature/Version3112Test.php",
        "intent": null,
        "intent_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\\Update\\V31\\Version3112;\n\nclass Version3112Test extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Update\\V31\\Version3112@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Update\\V31\\Version3112@handle is PROOF_READY but no test file at tests/Feature/Version3112Test.php is in the MANUAL allowlist. 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/Update/V31/Version3115.php::App\\Listeners\\Update\\V31\\Version3115::handle",
        "fqmn": "App\\Listeners\\Update\\V31\\Version3115@handle",
        "expected_test_path": "tests/Feature/Version3115Test.php",
        "intent": null,
        "intent_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\\Update\\V31\\Version3115;\n\nclass Version3115Test extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Update\\V31\\Version3115@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Update\\V31\\Version3115@handle is PROOF_READY but no test file at tests/Feature/Version3115Test.php is in the MANUAL allowlist. 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/Update/V31/Version3119.php::App\\Listeners\\Update\\V31\\Version3119::handle",
        "fqmn": "App\\Listeners\\Update\\V31\\Version3119@handle",
        "expected_test_path": "tests/Feature/Version3119Test.php",
        "intent": null,
        "intent_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\\Update\\V31\\Version3119;\n\nclass Version3119Test extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Update\\V31\\Version3119@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Update\\V31\\Version3119@handle is PROOF_READY but no test file at tests/Feature/Version3119Test.php is in the MANUAL allowlist. 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/Update/V31/Version3122.php::App\\Listeners\\Update\\V31\\Version3122::handle",
        "fqmn": "App\\Listeners\\Update\\V31\\Version3122@handle",
        "expected_test_path": "tests/Feature/Version3122Test.php",
        "intent": null,
        "intent_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\\Update\\V31\\Version3122;\n\nclass Version3122Test extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Update\\V31\\Version3122@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Update\\V31\\Version3122@handle is PROOF_READY but no test file at tests/Feature/Version3122Test.php is in the MANUAL allowlist. 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/Update/V31/Version315.php::App\\Listeners\\Update\\V31\\Version315::handle",
        "fqmn": "App\\Listeners\\Update\\V31\\Version315@handle",
        "expected_test_path": "tests/Feature/Version315Test.php",
        "intent": null,
        "intent_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\\Update\\V31\\Version315;\n\nclass Version315Test extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Update\\V31\\Version315@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Update\\V31\\Version315@handle is PROOF_READY but no test file at tests/Feature/Version315Test.php is in the MANUAL allowlist. 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/Update/V31/Version317.php::App\\Listeners\\Update\\V31\\Version317::handle",
        "fqmn": "App\\Listeners\\Update\\V31\\Version317@handle",
        "expected_test_path": "tests/Feature/Version317Test.php",
        "intent": null,
        "intent_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\\Update\\V31\\Version317;\n\nclass Version317Test extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Update\\V31\\Version317@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Update\\V31\\Version317@handle is PROOF_READY but no test file at tests/Feature/Version317Test.php is in the MANUAL allowlist. 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/Update/V31/Version318.php::App\\Listeners\\Update\\V31\\Version318::handle",
        "fqmn": "App\\Listeners\\Update\\V31\\Version318@handle",
        "expected_test_path": "tests/Feature/Version318Test.php",
        "intent": null,
        "intent_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\\Update\\V31\\Version318;\n\nclass Version318Test extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Update\\V31\\Version318@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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\\Update\\V31\\Version318@handle is PROOF_READY but no test file at tests/Feature/Version318Test.php is in the MANUAL allowlist. 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/Common/Company.php::App\\Models\\Common\\Company::forgetCurrent",
        "fqmn": "App\\Models\\Common\\Company@forgetCurrent",
        "expected_test_path": "tests/Unit/CompanyTest.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\\Models\\Common\\Company;\n\nclass CompanyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Models\\Common\\Company@forgetCurrent\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_forgetcurrent_behaves_correctly(): void\n    {\n\n        // 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\\Models\\Common\\Company@forgetCurrent is PROOF_READY but no test file at tests/Unit/CompanyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Util",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Utilities/Console.php::App\\Utilities\\Console::run",
        "fqmn": "App\\Utilities\\Console@run",
        "expected_test_path": "tests/Unit/ConsoleTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Utilities\\Console;\n\nclass ConsoleTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Utilities\\Console@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\\Utilities\\Console@run is PROOF_READY but no test file at tests/Unit/ConsoleTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Util",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Utilities/Export.php::App\\Utilities\\Export::toExcel",
        "fqmn": "App\\Utilities\\Export@toExcel",
        "expected_test_path": "tests/Unit/ExportTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Utilities\\Export;\n\nclass ExportTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Utilities\\Export@toExcel\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_toexcel_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Utilities\\Export@toExcel is PROOF_READY but no test file at tests/Unit/ExportTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Util",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Utilities/Import.php::App\\Utilities\\Import::fromExcel",
        "fqmn": "App\\Utilities\\Import@fromExcel",
        "expected_test_path": "tests/Unit/ImportTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Utilities\\Import;\n\nclass ImportTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Utilities\\Import@fromExcel\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_fromexcel_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Utilities\\Import@fromExcel is PROOF_READY but no test file at tests/Unit/ImportTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Util",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Utilities/Installer.php::App\\Utilities\\Installer::createDbTables",
        "fqmn": "App\\Utilities\\Installer@createDbTables",
        "expected_test_path": "tests/Unit/InstallerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Utilities\\Installer;\n\nclass InstallerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Utilities\\Installer@createDbTables\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_createdbtables_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Utilities\\Installer@createDbTables is PROOF_READY but no test file at tests/Unit/InstallerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Util",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Utilities/Modules.php::App\\Utilities\\Modules::getPaymentMethods",
        "fqmn": "App\\Utilities\\Modules@getPaymentMethods",
        "expected_test_path": "tests/Unit/ModulesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched"
        ],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Utilities\\Modules;\n\nclass ModulesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Utilities\\Modules@getPaymentMethods\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getpaymentmethods_behaves_correctly(): void\n    {\n\n        // 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->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Utilities\\Modules@getPaymentMethods is PROOF_READY but no test file at tests/Unit/ModulesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Util",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Utilities/Reports.php::App\\Utilities\\Reports::cannotShow",
        "fqmn": "App\\Utilities\\Reports@cannotShow",
        "expected_test_path": "tests/Unit/ReportsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Utilities\\Reports;\n\nclass ReportsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Utilities\\Reports@cannotShow\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_cannotshow_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Utilities\\Reports@cannotShow is PROOF_READY but no test file at tests/Unit/ReportsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Util",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Utilities/Reports.php::App\\Utilities\\Reports::getClasses",
        "fqmn": "App\\Utilities\\Reports@getClasses",
        "expected_test_path": "tests/Unit/ReportsTest.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\\Utilities\\Reports;\n\nclass ReportsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Utilities\\Reports@getClasses\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getclasses_behaves_correctly(): void\n    {\n\n        // 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\\Utilities\\Reports@getClasses is PROOF_READY but no test file at tests/Unit/ReportsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Util",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Utilities/Reports.php::App\\Utilities\\Reports::getClassInstance",
        "fqmn": "App\\Utilities\\Reports@getClassInstance",
        "expected_test_path": "tests/Unit/ReportsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Utilities\\Reports;\n\nclass ReportsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Utilities\\Reports@getClassInstance\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getclassinstance_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Utilities\\Reports@getClassInstance is PROOF_READY but no test file at tests/Unit/ReportsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Util",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Utilities/Versions.php::App\\Utilities\\Versions::changelog",
        "fqmn": "App\\Utilities\\Versions@changelog",
        "expected_test_path": "tests/Unit/VersionsTest.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\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Utilities\\Versions;\n\nclass VersionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Utilities\\Versions@changelog\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_changelog_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // 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\\Utilities\\Versions@changelog is PROOF_READY but no test file at tests/Unit/VersionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Util",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Utilities/Versions.php::App\\Utilities\\Versions::getUpdates",
        "fqmn": "App\\Utilities\\Versions@getUpdates",
        "expected_test_path": "tests/Unit/VersionsTest.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\\Utilities\\Versions;\n\nclass VersionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Utilities\\Versions@getUpdates\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getupdates_behaves_correctly(): void\n    {\n\n        // TODO: 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\\Utilities\\Versions@getUpdates is PROOF_READY but no test file at tests/Unit/VersionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Util",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Utilities/Versions.php::App\\Utilities\\Versions::latest",
        "fqmn": "App\\Utilities\\Versions@latest",
        "expected_test_path": "tests/Unit/VersionsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Utilities\\Versions;\n\nclass VersionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Utilities\\Versions@latest\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_latest_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Utilities\\Versions@latest is PROOF_READY but no test file at tests/Unit/VersionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Util",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Utilities/Versions.php::App\\Utilities\\Versions::shouldUpdate",
        "fqmn": "App\\Utilities\\Versions@shouldUpdate",
        "expected_test_path": "tests/Unit/VersionsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Utilities\\Versions;\n\nclass VersionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Utilities\\Versions@shouldUpdate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_shouldupdate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Utilities\\Versions@shouldUpdate is PROOF_READY but no test file at tests/Unit/VersionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Util",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Utilities/Widgets.php::App\\Utilities\\Widgets::canShow",
        "fqmn": "App\\Utilities\\Widgets@canShow",
        "expected_test_path": "tests/Unit/WidgetsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Utilities\\Widgets;\n\nclass WidgetsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Utilities\\Widgets@canShow\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_canshow_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Utilities\\Widgets@canShow is PROOF_READY but no test file at tests/Unit/WidgetsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Util",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Utilities/Widgets.php::App\\Utilities\\Widgets::getClasses",
        "fqmn": "App\\Utilities\\Widgets@getClasses",
        "expected_test_path": "tests/Unit/WidgetsTest.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\\Utilities\\Widgets;\n\nclass WidgetsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Utilities\\Widgets@getClasses\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getclasses_behaves_correctly(): void\n    {\n\n        // 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\\Utilities\\Widgets@getClasses is PROOF_READY but no test file at tests/Unit/WidgetsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::override",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::overrides/akaunting/laravel-module/Commands/DisableCommand.php::Akaunting\\Module\\Commands\\DisableCommand::handle",
        "fqmn": "Akaunting\\Module\\Commands\\DisableCommand@handle",
        "expected_test_path": "tests/Unit/DisableCommandTest.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 Akaunting\\Module\\Commands\\DisableCommand;\n\nclass DisableCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: Akaunting\\Module\\Commands\\DisableCommand@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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 Akaunting\\Module\\Commands\\DisableCommand@handle is PROOF_READY but no test file at tests/Unit/DisableCommandTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::override",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::overrides/akaunting/laravel-module/Commands/EnableCommand.php::Akaunting\\Module\\Commands\\EnableCommand::handle",
        "fqmn": "Akaunting\\Module\\Commands\\EnableCommand@handle",
        "expected_test_path": "tests/Unit/EnableCommandTest.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 Akaunting\\Module\\Commands\\EnableCommand;\n\nclass EnableCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: Akaunting\\Module\\Commands\\EnableCommand@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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 Akaunting\\Module\\Commands\\EnableCommand@handle is PROOF_READY but no test file at tests/Unit/EnableCommandTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::override",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::overrides/akaunting/laravel-module/Commands/InstallCommand.php::Akaunting\\Module\\Commands\\InstallCommand::handle",
        "fqmn": "Akaunting\\Module\\Commands\\InstallCommand@handle",
        "expected_test_path": "tests/Unit/InstallCommandTest.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 Akaunting\\Module\\Commands\\InstallCommand;\n\nclass InstallCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: Akaunting\\Module\\Commands\\InstallCommand@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting 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 Akaunting\\Module\\Commands\\InstallCommand@handle is PROOF_READY but no test file at tests/Unit/InstallCommandTest.php is in the 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/gu",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/guest.php::get::/::closure",
        "fqmn": "route::routes/guest.php::get::/::closure",
        "expected_test_path": "tests/Unit/route::routes/guest.php::get::/::closureTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\route::routes/guest.php::get::/::closure;\n\nclass route::routes/guest.php::get::/::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/guest.php::get::/::closure\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_method_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface route::routes/guest.php::get::/::closure is PROOF_READY but no test file at tests/Unit/route::routes/guest.php::get::/::closureTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      }
    ],
    "total": 2326
  },
  "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."
  }
}