Egutierrez 9a7a874a76 fix(infra): audit_uses_functions detecta imports Python anidados y multilinea (0056)
El parser Python de audit_uses_functions solo reconocia "from <pkg> import X"
con un unico componente de paquete (regex \w+), por lo que:

- "from <pkg>.<subpkg> import X" (import anidado) no matcheaba y la funcion se
  reportaba como falso unused_in_app_md.
- Las listas multilinea con parentesis "from <pkg> import (\n a,\n b,\n)" no se
  parseaban (escaneo linea a linea).

Cambios:
- Regex acepta puntos en el paquete y bloques parentizados multilinea.
- Resolucion validada contra el directorio de paquete del registry derivado de
  file_path (no del campo domain: las funciones metabase viven en
  python/functions/metabase/ pero tienen domain=infra). Imports de librerias
  externas se ignoran -> sin falsos missing.
- parsePyImportedSymbols descarta comentarios "# noqa", maneja "as alias" y
  star imports (tratados como vacio, no soportados por diseno).
- auditFnMeta carga file_path; query SELECT anade file_path.

Tests (functions/infra/audit_uses_functions_test.go):
- TestAuditUsesFunctions_DetectsNestedImport (golden)
- TestAuditUsesFunctions_NoFalsePositiveOnNested (edge: nested + multilinea)
- TestAuditUsesFunctions_StarImport (error/edge: star import no cuenta)

Verificado con fn doctor uses-functions sobre apps reales: drift baja de 11/42 a
9/42. mail_manager (9 falsos por "from infra.X import Y") y demand_radar (3 por
lista multilinea) quedan en 0 drift. El residual de osint_db/osint_web es carga
dinamica via importlib, documentado como fuera de alcance.

audit_uses_functions v1.0.0 -> v1.1.0. CHANGELOG actualizado.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-30 13:10:31 +02:00
2026-06-29 11:05:00 +02:00
2026-05-30 17:28:47 +02:00
2026-05-30 17:28:47 +02:00
2026-05-30 17:28:47 +02:00
2026-06-27 20:43:03 +02:00

fn-registry — Schema de documentación

Registry personal de código con búsqueda FTS. Diseñado para composición funcional y agentes.

Archivos

  • functions.md — Schema de la tabla functions (incluye pipelines y componentes React)
  • types.md — Schema de la tabla types
  • integrity.md — Reglas de integridad y referencias cruzadas
  • architecture.md — Visión general del sistema
  • sync_setup.md — Vincular una PC al server registry.organic-machine.com (env vars, fn sync, troubleshooting)
  • adr/ — Architecture Decision Records: decisiones de diseño (qué se decidió y por qué)
  • ../reports/ — Reportes de trabajo: artefacto local (entregable de una tarea: qué se hizo, cómo se verificó, gaps). Gitignored salvo .gitkeep, NO sube a Gitea ni se versiona (como los vaults). Convención en .claude/rules/reports.md. Decisión: ADR 0006

Tablas

Tabla Descripción
functions Funciones atómicas, pipelines y componentes React
types Tipos algebraicos (product / sum)

kind: valores posibles

Valor Descripción
function Función atómica pura o impura
pipeline Composición de funciones, siempre impura
component Componente React, extiende el schema base

fn-registry schema v1.0

S
Description
Registry personal de codigo reutilizable con busqueda FTS
Readme 155 MiB
Languages
Python 48.6%
Go 19.7%
C++ 16%
Shell 8.6%
C 3.7%
Other 3.3%