Skip to content

Repository files navigation

Empresa Operativa Chile — crear, operar y controlar una empresa chilena a través del tiempo

🏢 Empresa Operativa Chile

Crear, operar y controlar una empresa chilena a través del tiempo

Aplicación local-first que acompaña a una empresa desde antes de existir hasta su operación y control: constitución, contabilidad explicable, procesos críticos con segregación de funciones, riesgos, conciliación y auditoría continua. La misma interfaz y el mismo motor en Android, Windows y navegador. Tus datos no salen del dispositivo.

CI Seguridad Pages

Versión Plataformas Pruebas Dependencias Telemetría Reglas Idioma Licencia

Android Windows PWA JavaScript Rust Tauri Capacitor Node

🌐 Abrir la app · 📥 Descargas · 🧭 Empezar aquí · 🎤 Presentación · 📘 Manual de usuario · 📕 Manual en PDF · 📋 Runbook mensual · 🏗️ Arquitectura · 🔗 Fuentes oficiales · 📖 Glosario · 📓 Changelog · 🗺️ Roadmap · 🤝 Contribuir · 🔐 Seguridad


🖥️ Vistas 🧮 Motor ✅ Pruebas 📦 Dependencias 📱 Plataformas 📄 Manual
15 1 158 0 3 HTML + PDF

Important

Esta aplicación no presenta ni paga nada ante el SII y no es asesoría tributaria. Calcula, controla y guarda evidencia; la presentación ocurre en los sistemas oficiales. Cuando esta aplicación y el SII no coincidan, manda el SII.

Llevar una empresa pequeña en Chile no falla por no saber sumar. Falla por perder el hilo: una factura que nunca se respaldó, un remanente de IVA que no se arrastró, un trámite que se dio por hecho sin guardar el comprobante, un mes que se cerró sin conciliar.

Empresa Operativa Chile acompaña ese hilo. Calcula, explica por qué calcula así, exige evidencia antes de dar algo por cumplido y deja registro de todo lo que cambió.

Desde v1.5, el mismo principio cubre operaciones críticas de bancos, fintech, e-commerce, marketplaces, tesorería, medios de pago, inventarios y activos digitales: nadie puede solicitar, aprobar, ejecutar, registrar, conciliar y auditar la misma operación. Cada etapa exige evidencia.

🖼️ Así se ve

Empezar aquí

Empezar aquí — la única pantalla ordenada por tiempo en vez de por función. Catorce etapas desde antes de que la empresa exista, cada una con su decisión, su documento y un botón que abre la ventana donde se hace.



Panel de control

El panel en modo SANDBOX: indicadores del mes, diagnóstico y próximos vencimientos.

Borrador del F29 con el remanente arrastrado Listado de operaciones del período
💰 Impuestos — borrador F29 con el remanente arrastrado 🧾 Operaciones — con las señales de respaldo e IVA
Los nueve trámites de constitución Cierre mensual con su lista de control
📜 Constitución — nueve trámites, cada uno con su evidencia 🔒 Cierre — congela el mes y deja constancia de qué se revisó
Capital y patrimonio: las seis magnitudes, el CPT y la patente municipal Glosario buscable con las definiciones del sistema
💰 Capital y patrimonio — seis magnitudes que no son la misma cifra 📖 Glosario — qué significa cada término y con qué no confundirlo
Panel en un teléfono Operaciones en un teléfono Impuestos en un teléfono
📱 En Android la navegación pasa a una barra inferior. Es la misma app, no una versión recortada.

📥 Descargas

Plataforma Archivo Notas
🌐 Navegador Abrir la aplicación Instalable como PWA. Funciona sin conexión.
📱 Android EmpresaOperativaChile-android.apk Android 6+. Hay que permitir orígenes desconocidos.
💻 Windows -setup.exe Instalador recomendado (NSIS).
💻 Windows .msi Instalación desatendida o corporativa.
💻 Windows -portable.exe Sin instalar nada.
⌨️ Terminal pnpm cli -- ayuda Cálculo y operación desde scripts.

Note

Los binarios no están firmados con certificado de código: Windows SmartScreen y Android avisarán la primera vez. Verifica lo que descargues con el SHA256SUMS.txt del release.

🎤 Presenta el producto: diapositivas y pauta

¿Tienes que mostrar esto en una clase, un comité o una reunión con un contador? Está hecho: una presentación de 8 diapositivas con letra grande y lo esencial en pantalla, y una pauta del expositor con el guion hablado, el tiempo de cada lámina y qué se ve proyectado. La charla completa dura ≈28 minutos, así que la muestra cabe en media hora dejando margen para preguntas.

Documento Abrir Para qué sirve
🖥️ Diapositivas en el navegador Ver online Proyectar sin instalar nada
🎞️ Diapositivas (PDF) PRESENTACION.pdf Proyectar sin conexión y repartir como material
🧾 Pauta del expositor (PDF) PAUTA.pdf Guion, tiempos y qué decir en cada lámina
✍️ Guion editable docs/presentacion.md La fuente: edítala y regenera los tres formatos

Los tres formatos salen del mismo archivo, así que el guion y las láminas no se separan a la segunda edición. Para regenerarlos: pnpm presentacion. Una comprobación abre los PDF, cuenta sus páginas y falla si una lámina se desbordó o si las cifras de arriba dejaron de cuadrar con la fuente.

✅ Estado verificable

Superficie Estado
Motor tributario ✅ IVA, PPM, honorarios, patente municipal, IDPC y asientos explicados
Capital societario ✅ social, suscrito, enterado, por enterar y movimientos, como magnitudes separadas
Capital Propio Tributario ✅ art. 41 y CPT simplificado Pro Pyme, con desglose · 🟡 sin corrección monetaria ni reorganizaciones
Patente municipal ✅ distingue empresa nueva de empresa en funcionamiento, con base legal citada
Tasas municipales por comuna ninguna viene inventada — el usuario registra la suya con fuente y fecha
Cierre anual ✅ snapshot inmutable con la versión de las reglas usadas
Glosario ✅ 54 términos, fuente única, sincronía comprobada en CI
Manuales dentro de la app ✅ guía ilustrada y manual completos, leíbles sin conexión desde la pestaña Ayuda
Ayuda contextual ✅ al pasar el cursor sobre cualquier término marcado
Atajos de teclado ✅ 12, con buscador Ctrl+K y ayuda en F1
Remanente de crédito fiscal ✅ arrastrado entre períodos · 🟡 sin reajuste (declarado como limitación)
Borrador F29 🟡 IVA, PPM y retenciones — no cubre todos los códigos del formulario
Vencimientos ✅ los tres plazos, con traslado por fin de semana · ⚪ feriados legales no modelados
Reglas tributarias ✅ año 2026 con fuente oficial y fecha de verificación por regla
Separación real / sandbox ✅ almacenes distintos, verificada en pruebas
Inmutabilidad del cierre ✅ ni altas ni bajas ni ediciones; reapertura con motivo obligatorio
Bitácora ✅ append-only, sin operación de borrado ni edición
App de Android ✅ APK con el contenido contado dentro del binario en CI
App de Windows ✅ MSI, NSIS y portable; arranca y se comprueba vivo en CI
Web / PWA ✅ publicada en Pages, instalable y sin conexión
Pruebas ✅ 158 en Ubuntu y Windows, Node 20 y 22
Seguridad ✅ CodeQL + detección de contabilidad real commiteada + acciones fijadas a SHA
Integración con el SII no existe — por diseño, no por falta de tiempo
Cifrado de datos locales ⚪ pendiente (roadmap)
Firma de binarios ⚪ pendiente (roadmap)

🌟 Qué lo hace distinto

  • Se niega a mentir. No marca un trámite como hecho sin evidencia, no toca un período cerrado y no dice "todo en orden" cuando faltan respaldos. El objetivo es detectar el hueco, no tranquilizar.
  • Un motor, tres plataformas. No son tres apps parecidas: es una interfaz y un motor. Cuando la web mejora, mejoran las tres.
  • Las tasas son datos, no código. Viven en rules/<año>.json, cada una con su fuente oficial y su fecha de verificación. Pedir un año sin reglas falla en vez de degradar en silencio.
  • Se verifica el artefacto, no el build. Un APK vacío compila perfectamente; por eso CI lo abre y cuenta lo que lleva dentro.
  • Cero dependencias de producción. El motor, la CLI y la interfaz no importan nada de terceros, y CI falla si eso cambia.
  • Explica con tus propios números. La academia usa el motor real: si cambia una tasa, la explicación cambia sola.
  • La documentación no puede mentir. Glosario, guía y atajos se generan desde el código y CI falla si el documento se desvía. Lo que lees en el repositorio es lo que hace la app.
  • No confunde capital con capital. Capital social, capital suscrito, capital enterado, patrimonio contable, Capital Propio Tributario y capital base de patente son seis magnitudes distintas, cada una con su momento, su fuente legal y su evidencia. Hay una prueba que falla si alguna vez coinciden.
  • No inventa tasas municipales. El D.L. 3.063 fija un rango; la tasa la elige cada comuna. El repositorio no publica ninguna: mientras el usuario no registre la suya con fuente y fecha, la cifra se muestra marcada como simulación.

🔐 El principio que ordena todo el producto

Una aplicación de cumplimiento que se marca sola las tareas como hechas da tranquilidad, no cumplimiento. Por eso el sistema distingue seis estados, y sólo llega solo hasta el segundo:

Los seis estados de una obligación

🏢 Dos empresas que nunca se tocan

flowchart TB
    subgraph REAL["🏢 EMPRESA REAL"]
        R1["📇 Ficha, constitución y evidencia"]
        R2["🧾 Operaciones reales"]
        R3["📖 Bitácora de auditoría"]
    end
    subgraph SB["🧪 SANDBOX"]
        S1["🎭 Empresa ficticia precargada"]
        S2["✏️ Operaciones de práctica"]
        S3["📖 Su propia bitácora"]
    end
    REAL -.->|"❌ nunca hay copia automática"| SB

    style REAL fill:#3d3020,stroke:#f0a83c,color:#e8edf5
    style SB fill:#123f31,stroke:#34d399,color:#e8edf5
Loading

Cada entorno tiene su propio almacén. La separación no es una bandera en los datos que alguien pueda olvidar de comprobar: son dos espacios distintos, y el motor recibe uno u otro.

El sandbox llega con dos meses sembrados — justamente para que se vea el remanente viajando de julio a agosto y un gasto con IVA no recuperable quedando fuera del F29.

🧬 La misma aplicación en las tres plataformas

flowchart TB
    CORE["🧮 <b>Núcleo</b><br/>chile-tax-rules · accounting-engine · company-operations<br/><i>ESM puro, sin node:*, sin dependencias</i>"]
    UI["🎨 <b>apps/web</b><br/>interfaz única"]
    CORE --> UI

    UI --> WEB["🌐 Navegador / PWA<br/><small>localStorage</small>"]
    UI --> AND["📱 Android<br/><small>Capacitor · WebView</small>"]
    UI --> WIN["💻 Windows<br/><small>Tauri 2 · WebView2</small>"]
    CORE --> CLI["⌨️ CLI<br/><small>archivos en disco</small>"]

    style CORE fill:#1e3a5f,stroke:#4f8cff,color:#e8edf5
    style UI fill:#123f31,stroke:#34d399,color:#e8edf5
Loading

El build embebe las reglas y los iconos, y falla si algún módulo que viaja al dispositivo importa node:* — el fallo que dejaría la pantalla en blanco dentro del APK sin ningún error visible.

En Windows, Tauri añade lo único que una WebView no da sola: los datos quedan además como archivos JSON reales en el disco, que puedes copiar y respaldar.

🔄 El ciclo que la aplicación acompaña

🏛️ Crear la empresa📅 Operarla cada mes
flowchart TB
    A["📝 Definir la SpA"] --> B["🏛️ Constituir en el RES"]
    B --> C["🆔 RUT / e-RUT"]
    C --> D["📋 Inicio de Actividades"]
    D --> E["🏷️ Actividades y régimen"]
    E --> F["📍 Domicilio"]
    F --> G["🧾 Facturación electrónica"]
    G --> H["🏦 Patente municipal"]
    H --> I["💳 Cuenta bancaria"]
    I --> J(["✅ HABILITADA<br/>PARA OPERAR"])
    style J fill:#123f31,stroke:#34d399,color:#e8edf5
Loading
flowchart TB
    A["🧾 Ventas, compras, gastos"] --> B["📎 Evidencias"]
    B --> C["🏦 Conciliación bancaria"]
    C --> D["📊 RCV"]
    D --> E["💰 IVA + PPM + retenciones"]
    E --> F["📋 Borrador F29"]
    F --> G["🔍 Comparar con el SII"]
    G --> H["📤 Presentar en el portal"]
    H --> I["🧷 Guardar comprobante"]
    I --> J["🔒 Cerrar período"]
    J --> K(["💾 Respaldo"])
    style K fill:#123f31,stroke:#34d399,color:#e8edf5
Loading

Y el ciclo anual, que es donde el capital de constitución deja de ser la respuesta:

flowchart LR
    A["📜 Constitución<br/>capital social"] --> B["💰 Capital enterado"]
    B --> C["📋 Inicio de actividades"]
    C --> D["🏛️ Patente inicial<br/><i>capital propio inicial declarado</i>"]
    D --> E["📅 Operaciones del año"]
    E --> F["🔒 Cierre anual"]
    F --> G["🧮 Capital Propio Tributario"]
    G --> H["🏛️ Patente siguiente<br/><i>capital propio del cierre anterior</i>"]
    H --> E
    style D fill:#3d2f14,stroke:#f0a92c,color:#e8edf5
    style H fill:#3d2f14,stroke:#f0a92c,color:#e8edf5
    style G fill:#123f31,stroke:#34d399,color:#e8edf5
Loading

Las dos cajas naranjas usan bases legales distintas (art. 24, inciso tercero del D.L. 3.063): la primera, el capital propio inicial declarado; la segunda, el capital propio del balance al 31 de diciembre anterior. Por eso la patente del año 2 casi nunca coincide con la del año 1. Detalle en patente municipal.

La rutina completa, con capturas, está en el manual de usuario.

🏛️ Reglas tributarias versionadas por año

Ninguna tasa está escrita en el código. Viven en packages/chile-tax-rules/rules/<año>.json, y cada una declara su fuente oficial y la fecha en que se verificó:

"honorarios": {
  "retentionRate": 0.1525,
  "source": "https://www.sii.cl/preguntas_frecuentes/renta/001_002_5310.htm",
  "lastVerified": "2026-08-09",
  "note": "Retención sobre boletas de honorarios según la gradualidad de la Ley 21.133."
}

Tres reglas de la casa, cada una respaldada por una prueba automatizada:

Regla Por qué
1️⃣ Nunca se reescribe una regla histórica Un año nuevo es un archivo nuevo: así se puede recalcular un período antiguo y obtener lo que se declaró entonces
2️⃣ Pedir un año sin reglas falla Un cálculo plausible con la tasa equivocada es el peor error posible: no se ve y no avisa
3️⃣ El JSON y el módulo embebido no pueden desincronizarse Sin esto se podría editar una tasa y publicar un APK que sigue calculando con la anterior

Detalle en docs/SOURCES-2026.md.

🛡️ Privacidad, que se puede comprobar

Afirmación Cómo comprobarla
🚫 No hay servidor propio El servidor local sólo sirve archivos estáticos: server.mjs
📡 No hay telemetría Ninguna llamada de red en apps/web/; la CSP declara default-src 'self'
📦 Cero dependencias de producción package.json — CI falla si aparece alguna
💾 Los datos no salen del dispositivo El almacén es localStorage (+ archivos locales en Windows)
🔒 El servidor local no queda expuesto Escucha en 127.0.0.1, no en 0.0.0.0
🕵️ No se sube contabilidad real por error CI busca respaldos, certificados y claves en cada push

🛠️ Desarrollo

Requiere Node 20+. Nada más para la web y la CLI.

git clone https://github.com/vladimiracunadev-create/empresa-operativa-chile.git
cd empresa-operativa-chile
pnpm start        # build + servidor en http://127.0.0.1:4180
Comando Qué hace
pnpm build Reglas embebidas → iconos → apps/web/dist
pnpm app Sirve la app ya construida
pnpm test 158 pruebas con el runner nativo de Node
pnpm check Sincronía de reglas + validación + pruebas
pnpm cli -- ayuda Todos los comandos de la CLI
pnpm desktop:build Instaladores de Windows (necesita Rust)
pnpm android:prepare Deja apps/android/www listo para Capacitor
pnpm capturas Regenera las capturas del manual
pnpm manual Regenera docs/MANUAL.pdf

Ejemplos de la CLI:

pnpm cli -- f29 --ventas-netas 1000000 --compras-netas 300000 --honorarios 250000
pnpm cli -- registrar --fecha 2026-08-05 --tipo sale --descripcion "Servicio" --neto 800000
pnpm cli -- resumen --periodo 2026-08

📦 Cómo se compilan las apps

Plataforma Herramienta Requisitos
📱 Android Capacitor 7 + Gradle JDK 21, Android SDK
💻 Windows Tauri 2 + Rust Rust estable, WebView2

Ambos builds corren en CI y verifican el artefacto por dentro: el APK se abre como ZIP y se cuentan las vistas, los módulos del motor y las reglas que lleva; el ejecutable de Windows se arranca y se comprueba que sigue vivo. Un build en verde no prueba que la app esté dentro.

🧪 Pruebas

158 pruebas, sin framework externo. Las que importan no comprueban aritmética, sino las reglas que hacen confiable al producto:

  • un período cerrado es inmutable en las dos direcciones (no se agrega y no se borra);
  • un trámite no puede marcarse hecho sin evidencia;
  • el remanente de crédito fiscal viaja correctamente entre meses;
  • real y sandbox no se contaminan aunque compartan el mismo origen;
  • exportar e importar reproduce el espacio de trabajo completo;
  • ningún módulo que viaja al dispositivo importa node:*;
  • la versión coincide en package.json, Tauri, Cargo y la app;
  • un préstamo del accionista nunca suma capital enterado, aunque entre por el mismo banco;
  • el CPT simplificado no se aplica a quien no califica para él;
  • la base de la patente cambia entre el año 1 y el año 2 de la misma empresa;
  • un ejercicio cerrado no se recalcula, no se cierra dos veces y un respaldo importado no lo pisa;
  • docs/GLOSSARY.md no puede desviarse de packages/glossary/index.mjs.
  • un proceso crítico no puede saltar etapas ni reutilizar una persona en funciones incompatibles;
  • una investigación exige independencia, conflicto declarado y evidencia preservada;
  • los respaldos v3 conservan controles, riesgos, procesos y denuncias sin romper v1/v2.

🎓 Academia

El material de aprendizaje está integrado en la propia aplicación (pestaña Academia), donde las explicaciones usan el mismo motor que opera tu empresa — no textos escritos aparte que con el tiempo dejen de coincidir:

📚 Documentación

Documento Contenido
🧭 Empezar aquí · HTML · PDF Si nunca has creado una empresa y no sabes por dónde partir. 14 etapas ilustradas con diagramas y las pantallas reales: qué decidir, qué documento te queda, cómo sabes que terminaste — y qué NO cubre el sistema
📘 Manual de usuario · HTML · PDF 21 capítulos, incluida la operación del módulo de control interno
🛡️ Control interno, SoD y auditoría Gobierno, RACI, procesos, controles, riesgo, KRI, whistleblowing y custodia
📋 Runbook mensual Qué hacer cada mes, en orden
📆 Runbook anual Ciclo anual y Operación Renta
🌳 Árbol de decisión Cuándo resolverlo solo y cuándo escalar
📗 Políticas contables Criterios del caso guía
📖 Glosario 54 términos, generado desde el propio sistema
⌨️ Atajos de teclado 12 atajos, sobre todo para la versión de Windows
🎤 Presentación · Ver online · PDF · Pauta 8 láminas y guion del expositor para presentar el producto en media hora
💰 Capital y patrimonio Las cinco magnitudes que no son sinónimos
🧮 Capital Propio Tributario Art. 41 y CPT simplificado Pro Pyme
🏛️ Patente municipal Por qué el año 2 no usa el capital de constitución
🏠 Oficina virtual Qué cambia y qué no si no tienes oficina física
🔗 Fuentes oficiales Verificación de cada tasa y plazo
🏗️ Arquitectura Cómo está construido y por qué
🗺️ Roadmap Qué viene y qué nunca se hará
📓 Changelog Historial de versiones

📕 Documentación de sistema

Documentación técnica, funcional, arquitectónica y operativa del repositorio, escrita recorriendo el código fuente. Complementa —no reemplaza— los documentos de producto de arriba: cada uno declara cuál es la fuente de verdad de su tema.

Documento Contenido
🗂️ Índice general Portada, los 19 documentos, convenciones y lo que quedó pendiente de validar
🔭 Descripción general Qué es, qué resuelve, qué NO hace — con una sección para lectores no técnicos
🏗️ Arquitectura Capas, diagramas y cómo se hace cumplir la regla node:*
🔎 Referencia técnica Catálogo de funciones: firma, efectos y riesgo al modificar
💾 Persistencia No hay base de datos: cuál es el mecanismo real y el diccionario de datos completo
🔐 Seguridad Controles presentes, controles ausentes y superficie real
⚠️ Riesgos y deuda técnica 22 hallazgos clasificados. Informativo: no se corrigió nada
📊 Resumen ejecutivo Para decisión, sin detalle técnico innecesario
🧑‍💻 Guía para nuevos desarrolladores Itinerario de incorporación de cinco días y primeras tareas
🧾 Matriz de trazabilidad De la pantalla al almacenamiento y a la prueba, en una fila
📄 Todo en PDF Un PDF por documento más el consolidado

Los PDF se regeneran con node scripts/build-system-docs.mjs.

🔗 Fuentes oficiales

Servicio de Impuestos Internos · Registro de Empresas y Sociedades · Inicio de Actividades · Facturación gratuita del SII · Regímenes tributarios · Portal Emprendedor

⚠️ Aviso

Este software no es asesoría tributaria ni contable. Automatiza lo repetible, explica lo que hace y está diseñado para detectar cuándo un caso excede las reglas implementadas. Fiscalizaciones, reorganizaciones, operaciones internacionales, remuneraciones complejas o cualquier escenario ambiguo deben escalarse a revisión especializada.

🤝 Contribuir

Las reglas para tocar una tasa tributaria están en CONTRIBUTING.md, y las de seguridad y privacidad en SECURITY.md. En resumen: toda regla nueva llega con vigencia, fuente oficial, fecha de verificación y una prueba que demuestre el comportamiento.

📄 Licencia

MIT © Vladimir Acuña

Hecho en Chile 🇨🇱 · Más proyectos

About

🏢 v1.4.0 · Crear, operar y controlar una empresa chilena a través del tiempo: constitución con evidencia, capital y CPT, patente municipal con su base legal, IVA/PPM, F29, cierre anual inmutable y auditoría. Guía, manual y glosario dentro de la app. Android, Windows y navegador. Reglas con fuente oficial. Cero telemetría. 🇨🇱

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages