Documentación de Selega
Selega es una herramienta de control para legalizar estados contables (EECC). Toma las cifras canónicas de un juego de estados, corre sobre ellas un conjunto de cruces numéricos, recorre un checklist por jurisdicción y propone un desenlace. Esta página describe cada parte.
El flujo: carga → validación en vivo → desenlace
Sección titulada «El flujo: carga → validación en vivo → desenlace»- Trae las cifras. Selega completa un esquema canónico de cifras repartidas entre el estado
de situación patrimonial (ESP), el estado de resultados (ER), el estado de evolución del
patrimonio neto (EEPN), el estado de flujo de efectivo (EFE), los anexos y las notas. El
esquema se puede completar de tres maneras:
- A mano, en una grilla — siempre disponible.
- Con el motor de extracción local — una plantilla por formato sobre un lienzo de PDF, con OCR por región (Tesseract) y procedencia. Sin red, privado. Es el camino por defecto.
- Con el motor de IA gateado — generaliza a cualquier formato pero manda datos a la nube, así que está apagado por defecto y es opt-in (ver IA gateada más abajo).
- Validación en vivo. A medida que llegan las cifras, los cruces corren continuamente. Cada cifra se pinta de verde cuando un cruce la corrobora, o de ámbar cuando entra en un cruce que no cierra. El revisor confirma; ningún número inconsistente pasa.
- Checklist. Junto con los cruces numéricos, se revisa el checklist de controles formales de la jurisdicción.
- Desenlace. El motor de decisión agrega los cruces que fallan y propone el desenlace — legalizar, observar, certificar la firma o denegar / devolver.
El esquema canónico
Sección titulada «El esquema canónico»Selega modela un juego de estados contables como un esquema plano de cifras y flags (definido en
src/core/schema.js), agnóstico del formato de PDF del que vinieron. Las cifras abarcan:
- ESP (situación patrimonial): activo total, pasivo total, patrimonio neto, caja y bancos al cierre y al inicio.
- EEPN (evolución del PN): patrimonio neto al cierre, resultado del ejercicio.
- ER (estado de resultados): resultado final.
- EFE (flujo de efectivo): método (directo / indirecto), efectivo al inicio y al cierre, variación del efectivo, flujos de operación / inversión / financiación, RECPAM del efectivo.
- Anexos: amortización de bienes de uso del ejercicio, amortización en el anexo de gastos.
- Notas / carátula: deuda de seguridad social SIPA, tipo societario, nota de prescindencia de la sindicatura, nota por patrimonio neto negativo.
Los cruces numéricos
Sección titulada «Los cruces numéricos»Los cruces son el corazón de Selega. Son universales — las normas FACPCE rigen en todo el país — así que el mismo conjunto siembra cada jurisdicción; lo que cambia según el Consejo es el catálogo de controles formales y sus consecuencias. Se guardan como datos (un conjunto de cruces en JSON dentro del rule-pack) y los evalúa un motor genérico, de modo que un admin puede editarlos desde un constructor visual sin tocar código.
El conjunto por defecto viene con los cruces de abajo. Las comparaciones usan una tolerancia chica (por defecto, 1 unidad de moneda) para absorber el redondeo. Cada uno es una comparación (dos lados deben ser iguales) o un control de presencia (una cifra o nota debe estar presente bajo una condición). Por defecto, cada cruce de este conjunto carga una consecuencia de denegación directa, pero la consecuencia es configurable por cruce.
| # | Cruce | Qué valida |
|---|---|---|
| 1 | Igualdad patrimonial (A = P + PN) | El activo total es igual al pasivo total más el patrimonio neto (ESP). |
| 2 | PN: ESP = EEPN | El patrimonio neto del ESP es igual al patrimonio neto al cierre del EEPN. |
| 3 | Resultado: ER = EEPN | El resultado final del estado de resultados es igual al resultado arrastrado en el EEPN. |
| 4 | Efectivo: ESP = EFE (cierre) | Caja y bancos al cierre en el ESP es igual al efectivo al cierre en el EFE. |
| 5 | Variación EFE = cierre − inicio | La variación del efectivo es igual al efectivo al cierre menos el efectivo al inicio. |
| 5b | Variación EFE = Op + Inv + Fin | La variación del efectivo es igual a los flujos de operación más inversión más financiación. |
| 6 | Resultado: ER = EFE (indirecto) | El resultado final concilia con el resultado del EFE. Solo cuando el método del EFE es indirecto. |
| 7 | Amortizaciones: ER = EFE (indirecto) | Las amortizaciones del estado de resultados son iguales a las del EFE. Solo método indirecto. |
| 8 | Imp. Ganancias: ER = EFE (indirecto) | El impuesto a las ganancias del estado de resultados es igual al del EFE. Solo método indirecto. |
| 9 | RECPAM del efectivo expuesto en EFE | Hay una línea dedicada de RECPAM del efectivo. Solo cuando el método del EFE es directo. |
| 10 | Amortizaciones: Anexo Bs.Uso = Anexo Gastos | La amortización del ejercicio coincide entre los dos anexos. |
| 11 | Seg. social art. 10 ley 17.250 | Está presente la declaración de deuda de seguridad social SIPA. |
| 12 | Nota por PN negativo | Cuando el patrimonio neto es menor que cero, debe estar la nota requerida. |
| 13 | Nota prescindencia sindicatura (SA/SAS) | Para sociedades SA / SAS, debe estar la nota de prescindencia de la sindicatura (art. 284). |
Resultados de los cruces
Sección titulada «Resultados de los cruces»Cada cruce evalúa a uno de cuatro estados: OK (cierra), DIFIERE (no cierra — las cifras involucradas quedan marcadas en ámbar), NA (no aplicable bajo las condiciones actuales, p. ej. un cruce de solo-indirecto cuando el EFE es directo) o FALTA (falta una cifra requerida).
El motor de decisión
Sección titulada «El motor de decisión»Los cruces que vuelven como DIFIERE se convierten en observaciones, cada una con la
consecuencia definida por su cruce. El motor de decisión (src/core/decision.js) computa entonces
el desenlace agregado por prioridad de consecuencia:
- Denegación directa → el trabajo se deniega / devuelve. Si se pagó una tasa borrador, en cambio se devuelve para corregir.
- Subsanable → se devuelve para corregir si se pagó una tasa borrador; si no, si el profesional opta por no corregir, se legaliza.
- Certificar firma → degrada a certificar solo la firma.
- Sin observación bloqueante → se legaliza.
Una tasa urgente combinada con cualquier observación pierde su carácter de urgente y el trabajo vuelve a la lista general de reingreso. Los desenlaces posibles son: Se legaliza, Se devuelve para corregir (tasa borrador), Se certifica solo la firma y Se deniega / se devuelve.
Multi-jurisdicción
Sección titulada «Multi-jurisdicción»- Selega trae un registro de las 24 jurisdicciones de Argentina; cada una está completamente definida o es una plantilla por completar.
- Cada Consejo define su propio rule-pack: el catálogo de controles formales, qué cruces están habilitados y las consecuencias. El rule-pack editado localmente de una jurisdicción pisa al que viene en el repo.
- Los cruces son universales (las normas FACPCE rigen en todo el país); los controles formales y las consecuencias son lo que varía según el Consejo.
- Un admin elige qué jurisdicciones atiende una instalación dada, y cambia la jurisdicción activa desde el encabezado.
Roles y circuito de revisión
Sección titulada «Roles y circuito de revisión»Selega tiene cinco roles — agente, supervisor, auditor, admin, superadmin — con un circuito de revisión configurable, una bandeja con semáforo y un expediente exportable de solo lectura. El acceso está gateado tanto visualmente (deshabilitando lo que un rol no puede hacer) como de verdad en el backend.
IA gateada
Sección titulada «IA gateada»La IA está apagada por defecto y es enchufable. Puede correr contra un motor local (Ollama, p. ej. Qwen2.5-VL en CPU) o la nube (OpenRouter), local-first. El camino de nube está gateado por tres condiciones: habilitada en Admin, una API key presente y autorización por documento — porque es el único camino que manda datos fuera de la caja. La API key vive del lado del servidor (guardada write-only cuando se carga desde Admin).
Persistencia
Sección titulada «Persistencia»El estado de Selega vive en PostgreSQL (el servicio db del compose, conectado vía
DATABASE_URL). La base persiste en el volumen selega-pg — es el registro de las legalizaciones,
así que respáldalo. El contenedor de la aplicación en sí solo lee /app y escribe la salida de OCR
en /tmp.
Configuración
Sección titulada «Configuración»Todo se configura por variables de entorno (12-factor) — ver
Instalar Selega para la tabla completa. En lo operativo, lo que
configuras es POSTGRES_PASSWORD (obligatoria), el email de admin, si estás detrás de TLS
(SELEGA_SECURE_COOKIE), el puerto del host y, opcionalmente, la API key de IA nube (mejor
cargada desde Admin). Las reglas por jurisdicción, los cruces, el checklist y los usuarios se
editan todos desde los paneles de Administración y Sistema en la interfaz — sin tocar
código.
JS vanilla (módulos ES, sin framework) · Node.js (su propio servidor HTTP) · PostgreSQL (pg) ·
Docker · pdf.js / Tesseract.js / pdf-lib vendorizados · Ollama opcional para IA local.