# 10_LIMITACIONES_Y_BLOQUEOS.md — Declaración de Bloqueos de Seguridad y Limitaciones Científicas (ORC-29)

## 1. Capacidades Deliberadamente Bloqueadas por Política de Seguridad

Siguiendo las reglas estrictas de seguridad experimental y honestidad científica (Secciones 6, 9 y 11), las siguientes dos capacidades permanecen **intencionalmente bloqueadas** en el candidato `ORC-29`:

### A. Ejecución de Código Experimental No Confiable (Categoría B) — `SANDBOX_UNAVAILABLE`
- **Módulo:** `app/core/sandbox.py` (`ExecutionPolicy.execute_untrusted_code`)
- **Estado:** `BLOCKED` (`status="SANDBOX_UNAVAILABLE"`, `candidate_status="PENDING_SAFE_ENVIRONMENT"`)
- **Justificación técnica:** `ProcessSandbox` es un arnés de subproceso local (`isolation_level="SUBPROCESS_HARNESS_NOT_OS_CONTAINER"`) que aplica sanitización de variables de entorno sensibles, confinamiento de directorio de trabajo (`storage/sandbox_tmp`), límite de tiempo (`timeout_seconds`) y corte recursivo de árbol de procesos por memoria RSS (`max_memory_mb`). Sin embargo, un subproceso del sistema operativo **no es un contenedor de kernel ni una máquina virtual aislada**. Por ello, todo código arbitrario o no confiable enviado mediante `custom_code` / `untrusted_code` o `proposed_custom_code` se conserva únicamente como propuesta auditada sin ejecutarse jamás en el host.

### B. Proveedores Externos de Modelos Generativos (LLMs en la Nube) — `NEEDS_MODEL`
- **Módulo:** `app/core/ai_provider.py` (`ExternalCloudAIProvider`)
- **Estado:** `BLOCKED` (`status="NEEDS_MODEL"`, `success=False`, `origin_type="NONE"`)
- **Justificación técnica:** Por política de aislamiento y control de costos (`ALLOW_EXTERNAL_API_CALLS=False` por defecto y ausencia de clientes externos autorizados), el sistema no realiza llamadas de red a proveedores externos (OpenAI, Anthropic, Gemini). Cuando se invoca sin cliente real configurado, devuelve honestamente `NEEDS_MODEL` y nunca simula una investigación completada (`COMPLETED`).

---

## 2. Fronteras de Seguridad Físicas y Financieras Activas

1. **Prohibición de Trading Financiero en Vivo (`RealTradingProhibitedError`):**
   - `QuantitativeResearchEngine.assert_no_live_trading()` bloquea activamente cualquier intento de enviar órdenes reales (`live_order=True`), configurar endpoints de brokers (`broker_endpoint=...`) o habilitar `ALLOW_LIVE_TRADING=true`.
2. **Prohibición de Actuación sobre Hardware Robótico Físico (`HardwareActuationLockedError`):**
   - `RoboticsSimulationEngine.assert_simulation_only()` bloquea activamente cualquier intento de activar actuadores físicos (`allow_physical_actuation=True`), interfaces de hardware (`hardware_interface=...`) o habilitar `ALLOW_PHYSICAL_ACTUATION=true`.
3. **Desconexión Estricta de Adaptadores Externos (`DISCONNECTED`):**
   - `TitanAdapter` y `NeuroLabAdapter` operan exclusivamente en estado `DISCONNECTED` bajo el perfil `LAPTOP_STANDALONE`. Ningún servicio ni archivo de Digital Optimus/Titan o NeuroLab ha sido tocado, iniciado ni conectado.

---

## 3. Interpretación del Indicador `LABORATORIOS_100_FUNCIONAL`

Conforme a la Sección 11:
- **No se declara `LABORATORIOS_100_FUNCIONAL=TRUE` de manera irrestricta** porque existen capacidades declaradas en la arquitectura general que permanecen deliberadamente bloqueadas por política de seguridad (`SANDBOX_UNAVAILABLE` para código arbitrario Categoría B y `NEEDS_MODEL` para proveedores LLM externos no autorizados).
- **El 100 % de las pruebas obligatorias de la suite global (157/157 PASS), los 6 escenarios científicos A–F (6/6 PASS), el empaquetado portátil (`PASS`), la instalación limpia en directorio temporal (`PASS`) y la validación estándar CSV (`PASS`) han sido superados sin regresiones.**

