{
  "counts": {
    "baseline": 1651,
    "candidate": 1628,
    "semantic_lineage_unmapped": 22,
    "strict_path_rule_message_matched": 1606,
    "strict_path_rule_message_unmatched": 22,
    "unmatched_mapped_by_exact_five_line_context": 0,
    "unmatched_mapped_by_exact_trigger_line": 0
  },
  "mappings": [],
  "scanner_logs": {
    "baseline_sha256": "16d290c100eb3111e77657d6c0029f25f9022f4efe716f0922af27fb680f38d3",
    "candidate_sha256": "ba08df4953990f60c2ae01f1d48129134cf1ec7f8d7ef6c37ca02fb281bde65a"
  },
  "schema": "task12-independent-no-excuse-semantic-lineage-v1",
  "scope": "exact changed-member Python union from Task1 baseline and candidate wheels",
  "unmapped": [
    {
      "column": 1,
      "line": 1,
      "logical_path": "hermes/gateway/platforms/nutrition_coaching.py",
      "message": "21393 pure LOC (limit: 250) \u2014 split by responsibility",
      "rule": "oversized-module",
      "source_line": "\"\"\"Exact-address multi-customer coordination beside the personal coach flow.\"\"\""
    },
    {
      "column": 9,
      "line": 145,
      "logical_path": "hermes/gateway/platforms/nutrition_weekly_reminder_resources.py",
      "message": "`except BaseException` is too broad \u2014 catch the specific exception you expect",
      "rule": "broad-except",
      "source_line": "except BaseException:"
    },
    {
      "column": 13,
      "line": 42,
      "logical_path": "hermes/gateway/platforms/nutrition_weekly_reminder_resources.py",
      "message": "`except BaseException` is too broad \u2014 catch the specific exception you expect",
      "rule": "broad-except",
      "source_line": "except BaseException as error:"
    },
    {
      "column": 13,
      "line": 93,
      "logical_path": "hermes/gateway/platforms/nutrition_weekly_reminder_resources.py",
      "message": "`except BaseException` is too broad \u2014 catch the specific exception you expect",
      "rule": "broad-except",
      "source_line": "except BaseException as error:"
    },
    {
      "column": 13,
      "line": 164,
      "logical_path": "hermes/gateway/platforms/nutrition_weekly_reminder_resources.py",
      "message": "`except BaseException` is too broad \u2014 catch the specific exception you expect",
      "rule": "broad-except",
      "source_line": "except BaseException:"
    },
    {
      "column": 1,
      "line": 1,
      "logical_path": "hermes/gateway/platforms/telegram.py",
      "message": "13888 pure LOC (limit: 250) \u2014 split by responsibility",
      "rule": "oversized-module",
      "source_line": "\"\"\""
    },
    {
      "column": 5,
      "line": 60,
      "logical_path": "hermes/gateway/platforms/telegram_edit_transport.py",
      "message": "`except Exception` is too broad \u2014 catch the specific exception you expect",
      "rule": "broad-except",
      "source_line": "except Exception as error:"
    },
    {
      "column": 9,
      "line": 74,
      "logical_path": "hermes/gateway/platforms/telegram_weekly_host_capabilities.py",
      "message": "`except BaseException` is too broad \u2014 catch the specific exception you expect",
      "rule": "broad-except",
      "source_line": "except BaseException:"
    },
    {
      "column": 9,
      "line": 86,
      "logical_path": "hermes/gateway/platforms/telegram_weekly_host_capabilities.py",
      "message": "`except BaseException` is too broad \u2014 catch the specific exception you expect",
      "rule": "broad-except",
      "source_line": "except BaseException:"
    },
    {
      "column": 1,
      "line": 1,
      "logical_path": "profile/checkin_cli/customer_reporting.py",
      "message": "649 pure LOC (limit: 250) \u2014 split by responsibility",
      "rule": "oversized-module",
      "source_line": "\"\"\"Deterministic customer-scoped period reporting.\"\"\""
    },
    {
      "column": 1,
      "line": 1,
      "logical_path": "profile/checkin_cli/customer_schedule.py",
      "message": "1884 pure LOC (limit: 250) \u2014 split by responsibility",
      "rule": "oversized-module",
      "source_line": "\"\"\"Deterministic KST schedule projection and crash-safe delivery reservations.\"\"\""
    },
    {
      "column": 1,
      "line": 1,
      "logical_path": "profile/checkin_cli/diagnostic_evidence.py",
      "message": "821 pure LOC (limit: 250) \u2014 split by responsibility",
      "rule": "oversized-module",
      "source_line": "from __future__ import annotations"
    },
    {
      "column": 1,
      "line": 1,
      "logical_path": "profile/checkin_cli/models.py",
      "message": "864 pure LOC (limit: 250) \u2014 split by responsibility",
      "rule": "oversized-module",
      "source_line": "\"\"\"Canonical profile-contract models and internal derived-view values.\"\"\""
    },
    {
      "column": 5,
      "line": 65,
      "logical_path": "profile/checkin_cli/weekly_operations_wizard_host_branch_r4.py",
      "message": "match without `case _: assert_never(x)` default",
      "rule": "missing-assert-never",
      "source_line": "match trainer_session:"
    },
    {
      "column": 1,
      "line": 1,
      "logical_path": "profile/checkin_cli/weekly_reminder_ledger_authority.py",
      "message": "254 pure LOC (limit: 250) \u2014 split by responsibility",
      "rule": "oversized-module",
      "source_line": "\"\"\"Registered-canonical descriptor authority for the schedule reminder ledger.\"\"\""
    },
    {
      "column": 5,
      "line": 277,
      "logical_path": "profile/checkin_cli/wizard.py",
      "message": "match without `case _: assert_never(x)` default",
      "rule": "missing-assert-never",
      "source_line": "match WizardFlow(flow):"
    },
    {
      "column": 13,
      "line": 461,
      "logical_path": "profile/checkin_cli/wizard.py",
      "message": "`raise TypeError(\"...\")` - define a typed error class instead",
      "rule": "generic-exception",
      "source_line": "raise TypeError(\"registered WizardService requires CustomerRuntime\")"
    },
    {
      "column": 17,
      "line": 406,
      "logical_path": "profile/checkin_cli/wizard.py",
      "message": "`raise ValueError(\"...\")` - define a typed error class instead",
      "rule": "generic-exception",
      "source_line": "raise ValueError(\"standalone WizardService cannot carry a registered binding\")"
    },
    {
      "column": 17,
      "line": 410,
      "logical_path": "profile/checkin_cli/wizard.py",
      "message": "`raise ValueError(\"...\")` - define a typed error class instead",
      "rule": "generic-exception",
      "source_line": "raise ValueError(\"registered WizardService requires a sealed binding\")"
    },
    {
      "column": 17,
      "line": 983,
      "logical_path": "profile/checkin_cli/wizard.py",
      "message": "`raise ValueError(\"...\")` - define a typed error class instead",
      "rule": "generic-exception",
      "source_line": "raise ValueError(f\"unsupported wizard flow: {session.flow}\")"
    },
    {
      "column": 13,
      "line": 978,
      "logical_path": "profile/checkin_cli/wizard.py",
      "message": "isinstance/enum if/elif chain \u2014 use match/case + assert_never",
      "rule": "if-elif-on-variant",
      "source_line": "elif session.flow is WizardFlow.NUTRITION:"
    },
    {
      "column": 1,
      "line": 1,
      "logical_path": "profile/checkin_cli/wizard.py",
      "message": "1205 pure LOC (limit: 250) \u2014 split by responsibility",
      "rule": "oversized-module",
      "source_line": "\"\"\"Owner/topic-bound personal and customer check-in wizard domain.\"\"\""
    }
  ],
  "verdict": "FAIL"
}
