Preguntas frecuentes
Respuestas concisas a las preguntas más habituales sobre el Ecosistema Salud TecsaS3, el CLItecsas3-cli y su integración con agentes de IA.
Si tu pregunta no aparece aquí, revisa la guía de
troubleshooting o abre un issue en GitHub.
General
¿Qué es TecsaS3?
TecsaS3 es una plataforma de salud rural para Colombia, construida sobre Django + HL7 FHIR R4, multi-tenant, con HCE (Historia Clínica Electrónica), pipelines de IA y reporting RIPS/FEV. Reúne pacientes, familias, agentes comunitarios, riesgo, agenda, facturación y epidemiología en un solo backend operativo.¿Qué es tecsas3-cli?
tecsas3-cli es el cliente oficial de línea de comandos del ecosistema
TecsaS3. Expone 16 recursos (auth, util, paciente, persona, familia,
agente, riesgo, hce, fhir, examen, batch, dashboard, ia, reportes,
export, pipe) sobre el mismo backend que consume la web, con salida
JSON determinista (--json --no-input) lista para agentes de IA.
¿Es gratis?
El CLI es open source bajo licencia MIT. El uso del backend TecsaS3 (planes, tenant, pacientes, FHIR) está sujeto al contrato comercial firmado con Tecsa S3. Los entornosdev.tecsas3.com y de evaluación
son gratuitos con cuotas limitadas — consulta con
soporte@tecsas3.com.
¿Qué licencia tiene?
tecsas3-cli se distribuye bajo MIT License (cli/LICENSE).
La skill portable incluida es MIT también. El backend TecsaS3 es
software propietario; consulta los términos específicos de tu
despliegue.
Instalación
¿Qué versión de Python necesito?
Python ≥ 3.11. La versión 3.12 también está soportada y es la recomendada para nuevos proyectos. El paquete declararequires-python = ">=3.11" y se prueba en CPython 3.11 y 3.12 en CI.
¿Funciona en Windows, macOS y Linux?
Sí. El CLI es multiplataforma; los wheels se publican paramanylinux,
musllinux, macos y windows en PyPI. La única dependencia de
plataforma es keyring, que se adapta al Credential Manager nativo
de cada sistema. En Windows sin Credential Manager, el CLI cae a
archivo con permisos 0600.
¿Puedo instalarlo en un entorno virtual?
Sí, y es la opción recomendada.pip, uv, poetry y conda
funcionan; el CLI no requiere nada fuera del árbol de dependencias
declarado en pyproject.toml. La suite de tests incluye
tests/test_smoke.py que valida 17 puntos de entrada en un venv
limpio.
Multi-tenant
¿Cómo cambio de tenant sin re-autenticar?
Crea un perfil por tenant y usaauth use para alternar:
X-Tenant-Slug, X-Tenant-Org-ID y X-Plan-ID se derivan
del perfil activo en cada request.
¿Qué pasa si mi tenant está deshabilitado?
El backend responde con403 tenant_disabled. El CLI muestra el
mensaje y aborta con código de salida 5. Contacta al admin del
tenant para rehabilitar el acceso; no hay bypass local.
¿Los datos cruzan tenants?
No. Cada request viaja conX-Tenant-Slug y se filtra server-side a
nivel ORM (PlanFilteredManager y middleware de aislamiento). El CLI
nunca concatena datos de varios tenants en una misma respuesta, y
los pipelines tampoco pueden referenciar un step de otro tenant.
Consulta docs/ARQUITECTURA_PLAN_DATA_ISOLATION.md para los detalles
del modelo.
Seguridad y PHI
¿Los tokens se guardan en texto plano?
Por defecto, no. El CLI usakeyring (Keychain en macOS, Credential
Manager en Windows, Secret Service en Linux) cuando está disponible.
En sistemas sin keyring cae a ~/.tecsas3/credentials con permisos
0600. Verifica con tecsas3 util security-check.
¿Qué campos se redactan?
Identificadores personales (nombres, apellidos, documento, teléfono, email, dirección, IDs de historia clínica) se redactan por defecto en las salidas a terminal. La redacción es opt-out por comando con--no-redact, no opt-in. Los logs persistentes del backend mantienen
la PHI completa bajo control de auditoría; el CLI nunca la escribe a
stderr ni a archivos de log locales.
¿HTTPS es obligatorio?
Sí, en producción. El CLI rechazahttp:// salvo localhost. En CI o
desarrollo local puedes usar http://localhost:8000 o configurar un
proxy TLS. Para entornos air-gapped, contacta a soporte para emitir
un certificado interno.
¿El CLI loguea PHI?
No. El CLI no escribe logs persistentes por defecto. Los flags--verbose y --debug van a stderr con redacción PHI activa. Si
rediriges la salida a un archivo, recuerda auditarlo bajo las mismas
políticas que el backend.
Agentes de IA
¿Qué agentes soporta?
La skill portable detecsas3-cli se publica en 9 destinos:
mcode (MiniMax Code), pi, claude-code, opencode,
hermes, openclaw, cursor, continue y codex. La
lista y las rutas candidatas se listan con:
¿Cómo instalo la skill en mi agente?
~/.claude/skills/, ~/.pi/skills/, ~/.minimax-code/skills/, etc.)
y nunca pisa archivos existentes sin --force.
¿Funciona con pi, mcode, claude-code?
Sí. La skill está escrita en Markdown plano con frontmatter YAML 2026-spec, sin componentes específicos de ningún agente. La verificación empírica (17/17 checks) está documentada endocs/COMPATIBILIDAD_AGENTES_2026.md dentro del repositorio.
¿La skill se actualiza automáticamente?
No. La skill se copia al directorio del agente y queda versionada con el CLI. Al actualizar el paquete conpip install -U tecsas3-cli,
vuelve a correr tecsas3 install-skill --all para refrescar. En CI
puedes añadir ese comando al job de release.
Pipelines
¿Qué es un pipeline?
Un pipeline es un workflow declarativo en YAML que encadena varios comandos del CLI pasándose datos entre steps vía placeholders. Vive en un archivo versionado y se ejecuta contecsas3 pipe run pipeline.yml.
Es la forma canónica de orquestar automatizaciones multi-tenant
reproducibles.
¿Cómo paso datos entre steps?
Con placeholders${steps.<nombre>.<campo>} en los args de un step.
Por defecto, cada step expone stdout, stderr, success,
exit_code y la salida JSON parseada si aplica:
${env.MI_VAR} y
anidar accesos con ${steps.listar.data.results[0].id_paciente}.
¿Puedo hacer un pipeline que continúe ante errores?
Sí, conon_error: continue por step o continue_on_error: true a
nivel de pipeline. El step que falla se marca con success: false y
los siguientes se ejecutan igualmente. La salida agrega un campo
errors por step y un summary final con los totales.