{
  "incident_id": "104",
  "rule_id": "DEF-104",
  "method": "hybrid",
  "summary": {
    "total_candidates": 17,
    "confirmed_siblings": 6,
    "safe_counterparts": 8,
    "out_of_scope": 3,
    "files_affected": 4,
    "modules_affected": 4,
    "by_module": {
      "fixture_direct_sibling": 1,
      "fixture_incident_104": 1,
      "fixture_renamed_sibling": 1,
      "fixture_verb_sibling": 3
    },
    "by_http_verb": {
      "get": 3,
      "post": 1,
      "put": 1,
      "delete": 1
    }
  },
  "sites": [
    {
      "path": "antibody/corpus/siblings/fixture_direct_sibling.py",
      "symbol": "fetch_site_manifest",
      "line": 12,
      "confidence": "high",
      "classification": "confirmed_sibling",
      "http_verb": "get",
      "rule_id": "DEF-104",
      "reason": "Outbound HTTP call without explicit timeout parameter matching DEF-104 structural pattern",
      "requires_validation": false,
      "scope_limit": null,
      "id": "SIB-104-001"
    },
    {
      "path": "antibody/corpus/siblings/fixture_incident_104.py",
      "symbol": "check_target_connection",
      "line": 13,
      "confidence": "high",
      "classification": "confirmed_sibling",
      "http_verb": "get",
      "rule_id": "DEF-104",
      "reason": "Outbound HTTP call without explicit timeout parameter matching DEF-104 structural pattern",
      "requires_validation": false,
      "scope_limit": null,
      "id": "SIB-104-002"
    },
    {
      "path": "antibody/corpus/siblings/fixture_out_of_scope.py",
      "symbol": "RemoteService.fetch_resource",
      "line": 17,
      "confidence": "medium",
      "classification": "out_of_scope",
      "http_verb": "get",
      "rule_id": "DEF-104",
      "reason": "Session accessed via object attribute or factory function; outside local intra-procedural AST scope",
      "requires_validation": true,
      "scope_limit": "attribute_or_factory_session",
      "id": "SIB-104-003"
    },
    {
      "path": "antibody/corpus/siblings/fixture_out_of_scope.py",
      "symbol": "query_with_factory",
      "line": 26,
      "confidence": "medium",
      "classification": "out_of_scope",
      "http_verb": "get",
      "rule_id": "DEF-104",
      "reason": "Session accessed via object attribute or factory function; outside local intra-procedural AST scope",
      "requires_validation": true,
      "scope_limit": "attribute_or_factory_session",
      "id": "SIB-104-004"
    },
    {
      "path": "antibody/corpus/siblings/fixture_renamed_sibling.py",
      "symbol": "retrieve_remote_metadata",
      "line": 12,
      "confidence": "high",
      "classification": "confirmed_sibling",
      "http_verb": "get",
      "rule_id": "DEF-104",
      "reason": "Outbound HTTP call without explicit timeout parameter matching DEF-104 structural pattern",
      "requires_validation": false,
      "scope_limit": null,
      "id": "SIB-104-005"
    },
    {
      "path": "antibody/corpus/siblings/fixture_safe_counterpart.py",
      "symbol": "safe_check_target",
      "line": 12,
      "confidence": "high",
      "classification": "safe_counterpart",
      "http_verb": "get",
      "rule_id": "DEF-104",
      "reason": "Outbound HTTP call protected by explicit, bounded timeout parameter",
      "requires_validation": false,
      "scope_limit": null,
      "id": "SIB-104-006"
    },
    {
      "path": "antibody/corpus/siblings/fixture_safe_counterpart.py",
      "symbol": "safe_post_payload",
      "line": 17,
      "confidence": "high",
      "classification": "safe_counterpart",
      "http_verb": "post",
      "rule_id": "DEF-104",
      "reason": "Outbound HTTP call protected by explicit, bounded timeout parameter",
      "requires_validation": false,
      "scope_limit": null,
      "id": "SIB-104-007"
    },
    {
      "path": "antibody/corpus/siblings/fixture_safe_counterpart.py",
      "symbol": "safe_session_query",
      "line": 23,
      "confidence": "high",
      "classification": "safe_counterpart",
      "http_verb": "get",
      "rule_id": "DEF-104",
      "reason": "Outbound HTTP call protected by explicit, bounded timeout parameter",
      "requires_validation": false,
      "scope_limit": null,
      "id": "SIB-104-008"
    },
    {
      "path": "antibody/corpus/siblings/fixture_verb_sibling.py",
      "symbol": "send_telemetry_beacon",
      "line": 12,
      "confidence": "high",
      "classification": "confirmed_sibling",
      "http_verb": "post",
      "rule_id": "DEF-104",
      "reason": "Outbound HTTP call without explicit timeout parameter matching DEF-104 structural pattern",
      "requires_validation": false,
      "scope_limit": null,
      "id": "SIB-104-009"
    },
    {
      "path": "antibody/corpus/siblings/fixture_verb_sibling.py",
      "symbol": "update_remote_state",
      "line": 17,
      "confidence": "high",
      "classification": "confirmed_sibling",
      "http_verb": "put",
      "rule_id": "DEF-104",
      "reason": "Outbound HTTP call without explicit timeout parameter matching DEF-104 structural pattern",
      "requires_validation": false,
      "scope_limit": null,
      "id": "SIB-104-010"
    },
    {
      "path": "antibody/corpus/siblings/fixture_verb_sibling.py",
      "symbol": "purge_remote_record",
      "line": 22,
      "confidence": "high",
      "classification": "confirmed_sibling",
      "http_verb": "delete",
      "rule_id": "DEF-104",
      "reason": "Outbound HTTP call without explicit timeout parameter matching DEF-104 structural pattern",
      "requires_validation": false,
      "scope_limit": null,
      "id": "SIB-104-011"
    },
    {
      "path": "sherlock_project/sherlock.py",
      "symbol": "SherlockFuturesSession.request",
      "line": 107,
      "confidence": "medium",
      "classification": "out_of_scope",
      "http_verb": "request",
      "rule_id": "DEF-104",
      "reason": "Session accessed via object attribute or factory function; outside local intra-procedural AST scope",
      "requires_validation": true,
      "scope_limit": "attribute_or_factory_session",
      "id": "SIB-104-012"
    },
    {
      "path": "sherlock_project/sherlock.py",
      "symbol": "main",
      "line": 703,
      "confidence": "high",
      "classification": "safe_counterpart",
      "http_verb": "get",
      "rule_id": "DEF-104",
      "reason": "Outbound HTTP call protected by explicit, bounded timeout parameter",
      "requires_validation": false,
      "scope_limit": null,
      "id": "SIB-104-013"
    },
    {
      "path": "sherlock_project/sherlock.py",
      "symbol": "main",
      "line": 751,
      "confidence": "high",
      "classification": "safe_counterpart",
      "http_verb": "get",
      "rule_id": "DEF-104",
      "reason": "Outbound HTTP call protected by explicit, bounded timeout parameter",
      "requires_validation": false,
      "scope_limit": null,
      "id": "SIB-104-014"
    },
    {
      "path": "sherlock_project/sites.py",
      "symbol": "SitesInformation.__init__",
      "line": 126,
      "confidence": "high",
      "classification": "safe_counterpart",
      "http_verb": "get",
      "rule_id": "DEF-104",
      "reason": "Outbound HTTP call protected by explicit, bounded timeout parameter",
      "requires_validation": false,
      "scope_limit": null,
      "id": "SIB-104-015"
    },
    {
      "path": "sherlock_project/sites.py",
      "symbol": "SitesInformation.__init__",
      "line": 163,
      "confidence": "high",
      "classification": "safe_counterpart",
      "http_verb": "get",
      "rule_id": "DEF-104",
      "reason": "Outbound HTTP call protected by explicit, bounded timeout parameter",
      "requires_validation": false,
      "scope_limit": null,
      "id": "SIB-104-016"
    },
    {
      "path": "sherlock_project/sites.py",
      "symbol": "check_target_connection",
      "line": 276,
      "confidence": "high",
      "classification": "safe_counterpart",
      "http_verb": "get",
      "rule_id": "DEF-104",
      "reason": "Outbound HTTP call protected by explicit, bounded timeout parameter",
      "requires_validation": false,
      "scope_limit": null,
      "id": "SIB-104-017"
    }
  ]
}