8917105184
Reduce falsos positivos en la deteccion de simbolos Go del auditor uses_functions, por dos vias complementarias. Fase 1 — commonAbbrevs ampliado: anade abreviaturas verificadas contra los nombres reales de las funciones Go del registry (OHLCV, DuckDB, ClickHouse, NordVPN, SHA256, MD5, ANSI, CIDR, AEAD, PTY, VPS, WG, VT, FFT, EMA, RSI, SMA, VWAP, AX, E2E, URLs). El analisis empirico mostro que reduce los mismatches PascalCase-vs-real de 76 a 40 sin romper ninguna funcion. Se documenta por que NO se mapean "cdp" (el registry usa Cdp: CdpGetHTML, CdpNavigate) ni "pdf" (inconsistente: CdpPrintPDF vs PdfSimpleReport) — anadirlos generaria mas falsos positivos de los que arregla. Fase 2 — fallback a lectura del .go: cuando ni la signature ni PascalCase(name) localizan el simbolo, se lee el .go de la funcion del registry y se extrae el primer func exportado top-level (cache por ejecucion para no reabrir archivos). El fallback esta GATEADO a signature vacia: cuando la signature ya aporta un `func <Name>` es la fuente de verdad y no se sobreescribe. Esto evita la mis-atribucion en archivos .go compartidos por varias funciones (patron "TU adicional", p.ej. cdp_new_tab vive en cdp_list_tabs.go): sin el gate, el primer func del archivo (CdpListTabs) se atribuiria a cada hermano y suprimiria hallazgos reales de "unused". Verificacion (DoD): - go build -tags fts5 + go vet limpios. - Tests nuevos: TestSnakeToPascal_HandlesAbbreviations (golden + non-mappings cdp/pdf), TestAuditUsesFunctions_GoFileFallback (golden + error sin archivo), TestAuditUsesFunctions_SharedGoFileNotMisattributed (regresion del archivo compartido), TestGoRealExportedName (top-level/generic/missing/empty). - A/B contra el registry real (fn doctor uses-functions): baseline 69 unused vs nuevo 69, cero regresion; cdp_get_html_go_browser sigue sin marcarse unused en script_navegador (Fase 3.1). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>