# Codex Suite · auditoría exhaustiva y brainstorming comercial

> Corte de análisis: **8 de agosto de 2026, ~00:40 Europe/Madrid**.
>
> Método: inspección directa de `cursor-mobile-bridge` y `C:\Users\Paterna\.codex`, herramientas simbólicas Serena, lectura de documentación canónica y ejecución real de la batería de pruebas.
>
> Este documento no inventa capacidades. Distingue **hechos verificados hoy**, **estado documental canónico** y **hipótesis de producto**.

## 0. Veredicto en una frase

Codex Suite ya es una **plataforma privada avanzada de ingeniería gobernada por evidencias**, integrada en Cursor Mobile Bridge; **no** es todavía un producto comercializable, pero la arquitectura y el roadmap hacia “Evidence OS / Premium Ready” son coherentes si se cierra primero la deuda P0 (persistencia versionada, guardrails heredados, fiabilidad durable y sync documental).

---

## 1. Qué es cada carpeta del workspace

### 1.1 `C:\xampp\htdocs\cursor-mobile-bridge` — código del producto

Es el **anfitrión** y el **código fuente de Codex Suite**:

| Área | Rol |
|---|---|
| `server.js` (~84.5 KB) | Entrypoint Express del bridge; compone Codex Suite + chat Cursor SDK + lanzador `/apps` + hub/ops/vault heredados |
| `lib/codex-*.js` (29 módulos) | Backend propio de Codex Suite |
| `lib/*.js` restantes (~50) | Bridge móvil, IDE sync, Telegram, MCP orchestrator, proyectos, SFTP, system manager |
| `static/codex-suite/` | PWA cliente (HTML/CSS + módulos ES) |
| `static/{apps,hub,mirror,vault,...}` | Aplicaciones vecinas del bridge |
| `docs/CODEX-SUITE-*.md` | Fuentes canónicas de estado, roadmap, manual, negocio y seguridad |
| `test/*.test.js` (28) | Contratos automatizados |
| `tools/verify-codex-ui.mjs` | Auditoría Chrome/CDP responsive |
| `storage/codex-*` | Stores JSON/JSONL de evidencia, checkpoints, twin, evals, metadata |
| `.codex-suite/integrations.json` | Registro local de integraciones evaluadas (sin secretos) |
| `config/` | Defaults del bridge, catálogo EQUIPITELLO, settings Codex Suite |

Puerto principal verificado hoy: **8095** (`/health` → `ok`).

### 1.2 `C:\Users\Paterna\.codex` — home del runtime Codex CLI

**No es el repositorio del producto.** Es el directorio de datos/configuración del agente Codex instalado en la máquina:

| Elemento | Rol |
|---|---|
| `config.toml` | Proveedor/modelo (`freemodel` / `gpt-5.6-sol`), sandbox elevated, proyectos trusted, plugins |
| `auth.json` | Credenciales locales (no inspeccionar ni filtrar) |
| `*.sqlite` | goals, logs, memories, queue, state del CLI |
| `skills/.system/*` | Skills de sistema (imagegen, review-agent, skill-creator, …) |
| `plugins/cache/*` | Plugins curados (github, coderabbit, codex-security) |
| `.sandbox*`, `sandbox.*.log` | Entorno y logs de sandbox |
| `Agents.md` | Principios operativos (calidad, verificación, no inventar resultados) |
| `version.json` | Codex CLI `0.147.0` (check 7 ago 2026) |

Relación correcta:

```text
Codex Suite (PWA + bridge)
    → habla con Codex App Server (proceso stdio)
        → App Server usa ~/.codex (config, auth, skills, plugins, estado)
```

Conclusión: continuar la implementación comercial se hace en **`cursor-mobile-bridge`**; `~/.codex` se opera, respalda y endurece, pero no se “desarrolla” como suite.

---

## 2. Historia de la implementación (cómo se llegó aquí)

1. **Origen**: chat petición/respuesta en `/codex-suite` con token en navegador (paquete histórico `docs/codex-suite-agent/`, ya marcado como superado).
2. **Migración a agente real**: App Server por `stdio`, threads/turns, SSE, aprobaciones, checkpoints, PWA.
3. **Diferenciador Evidence OS**: Mission Contracts, Evidence Ledger, Workspace Twin, Preflight Staging, router FCC/evals, hardening de sesión.
4. **Resincronización 3 ago**: roadmap canónico fases 0–10 + Definition of Premium Ready.
5. **Modular Foundation 4–7 ago**:
   - **0.1a–0.1g** backend: sesión, admin, workspace, capacidades, threads/SSE, evidence/deploy, router + error boundary.
   - **0.2a–0.2f** frontend: core, settings, workspace/integrations, control, chat, composition + boundary visual. PWA documentada como **v34**.
6. **Post-cierre 0.2f (noche 7–8 ago, aún no reflejado en STATUS)**:
   - Adaptador **Cursor SDK como motor de respaldo** dentro de Codex Suite.
   - PWA elevada a **`codex-suite-shell-v35`**.
   - +2 módulos backend, +1 archivo de pruebas, batería real **118/118**.

---

## 3. Fotografía verificada hoy (vs documentación canónica)

| Indicador | Docs (`STATUS`/`ROADMAP`, corte 7 ago) | Realidad verificada 8 ago |
|---|---|---|
| PWA | `codex-suite-shell-v34` | **`v35`** |
| Pruebas | 115 en 27 archivos | **118/118 en 28 archivos** (ejecutado) |
| Módulos `lib/codex-*` | 27 | **29** (+ `codex-cursor-routes.js`, `codex-cursor-sessions.js`) |
| Rutas en `registerCodexSuite` | 75 | **75** (contrato de test vigente) |
| Rutas `/api/codex/*` totales | 75 | **78** (75 del router + 3 del adaptador Cursor registradas en `server.js`) |
| `app.js` | 281 B | 281 B |
| `chat.js` | ~43.3 KB | **~48.6 KB** |
| `composition.js` | ~41.6 KB | **~42.2 KB** |
| `server.js` | 83.851 B | **84.563 B** |
| Fase 0.1 / 0.2 | Completadas | Completadas |
| Fase 0.3 | Pendiente | **Pendiente** (sin módulos de esquema/migración) |
| Git | `.git` inválido | Confirmado: **carpeta `.git` vacía** (sin `HEAD`/`config`) |
| Bridge 8095 | Operativo en cortes previos | **`/health` OK** |

**Drift crítico**: la documentación canónica no incluye todavía el adaptador Cursor ni v35/118 tests. Debe sincronizarse en el próximo corte documental antes de declarar cualquier bloque nuevo “cerrado”.

---

## 4. Arquitectura real del producto

```text
iPhone / escritorio (PWA Codex Suite v35)
        │  cookie HttpOnly + SameSite=Strict
        ▼
Cursor Mobile Bridge :8095
  ├─ /apps lanzador + apps vecinas (hub, vault, mirror, ops, …)
  ├─ chat Cursor SDK heredado (/api/chat/stream, IDE transcripts)
  └─ Codex Suite
        ├─ registerCodexSuite → 75 rutas /api/codex/*
        │    sesión · admin · workspace · capacidades · threads/SSE · evidence
        └─ registerCodexCursorRoutes → 3 rutas extra (motor respaldo)
             status · cursor-context · cursor-turns
                    │
        ┌───────────┴────────────┐
        ▼                        ▼
 Codex App Server (stdio)   Cursor SDK (@cursor/sdk)
   usa ~/.codex               CURSOR_API_KEY en .env
        │
   checkpoints / evidence / twin / staging / deploy (FTP|FTPS|SFTP)
```

### 4.1 Backend Codex (29 módulos) — mapa por dominio

| Dominio | Módulos |
|---|---|
| Composición | `codex-suite-router.js`, `codex-session-boundary.js` |
| Admin / settings | `codex-admin-routes.js`, `codex-settings.js`, `codex-credentials.js`, `codex-config-view.js`, `codex-command-catalog.js` |
| Workspace | `codex-workspace-routes.js`, `codex-workspace-tools.js`, `codex-attachments.js` |
| Capacidades | `codex-capability-routes.js`, `codex-integrations.js`, `codex-model-evals.js`, `codex-model-router.js`, `codex-security-monitor.js` |
| Runtime agente | `codex-thread-routes.js`, `codex-chat.js`, `codex-app-server.js`, `codex-turn-reliability.js`, `codex-turn-metadata.js` |
| Evidence / release | `codex-evidence-routes.js`, `codex-evidence-ledger.js`, `codex-mission-contracts.js`, `codex-checkpoints.js`, `codex-staging-preflight.js`, `codex-deployments.js`, `codex-workspace-twin.js` |
| Dual-engine | `codex-cursor-routes.js`, `codex-cursor-sessions.js` |

### 4.2 Frontend modular

| Módulo | Responsabilidad |
|---|---|
| `core.js` | Estado, DOM, API, i18n técnica, conexión |
| `settings.js` | Preferencias, admin write-only, diagnóstico |
| `workspace.js` | Catálogo, explorer, AGENTS.md, memoria/áreas |
| `integrations.js` | MCP/plugins/complementos, deploy UI, seguridad RO |
| `control.js` | Modelos/evals, misiones, twin, staging, contratos |
| `chat.js` | Threads, SSE, watchdog, review, **engine codex\|cursor** |
| `composition.js` | Bootstrap, bindings idempotentes, boundary visual |
| `app.js` | Entrypoint mínimo (281 B) |

### 4.3 Persistencia observada en `storage/`

| Store | Contenido observado |
|---|---|
| `codex-evidence` | Ledger JSONL por workspace (~1.4 MB) |
| `codex-checkpoints` | Snapshots de revisión (~1.3 MB) |
| `codex-workspace-twins` | 21 snapshots de metadatos (~1.7 MB) |
| `codex-model-evals` | Resultados de evals |
| `codex-turn-metadata` | Metadatos efectivos de turno (sin prompts/secretos) |
| `codex-app-server-schema-current` | Esquema/cache App Server (267 archivos) |
| `codex-cursor-sessions.json` | (previsto por código) historial motor Cursor por thread |

**Problema estructural confirmado por roadmap**: varios JSON/JSONL sin esquema versionado común, migraciones ni auditoría de corrupción → bloque **0.3**.

---

## 5. Matriz de madurez (completado / parcial / no hecho)

### 5.1 Completado con evidencia

- Sesión compartida endurecida; token en URL rechazado; bootstrap sin secretos.
- App Server persistente; threads/turns; SSE con reconnection contract v1.
- Watchdog, recuperación explícita, metadata de ejecución transparente.
- Aprobaciones mediadas; diff aceptar/rechazar; checkpoints/rollback local.
- Evidence Ledger + panel Misiones; Mission Contracts; Twin v1; Staging estático v1.
- Router/evals/automático opt-in; marketplace explicado en español; complementos propios.
- Deploy de aceptados FTP/FTPS/SFTP + DPAPI; seguridad read-only; PWA responsive (CDP histórico + contrato v35).
- Modularización 0.1 + 0.2; tests **118/118** hoy.
- Adaptador Cursor SDK como respaldo (código + tests; docs pendientes).

### 5.2 Parcial (v1 útil, no premium)

- Replay SSE durable (buffer memoria 1.000).
- Pending checkpoints solo en memoria hasta finalizar turno.
- Evidence sin grafo causal completo ni exportación firmada.
- Twin sin AST/semántica.
- Staging sin tests/builds dinámicos.
- Deploy sin cola/promoción/rollback remoto.
- Auto router sin tool-calling certificado universal ni costes monetarios confirmados.
- Marketplace sin firma/SBOM/reputación.
- Vault = write-only simple + DPAPI deploy, no vault profesional.
- PWA sin matriz física iPhone/iPad prolongada.
- Dual-engine Cursor: streaming vía `/api/chat/stream`, sin paridad completa de checkpoints/Evidence Graph del motor Codex.

### 5.3 No implementado (bloquea “comercializable”)

- 0.3 esquemas/migraciones; 0.4 guardrails vecinas; 0.5 Git sano (bloqueado).
- Identidad multiusuario, roles, tenancy, SSO, facturación.
- HTTPS administrado + Session Migration v2 completa.
- Backups cifrados con restore drills.
- Índice semántico incremental.
- Monaco + LSP aislados + terminal mediado.
- Staging dinámico + pipelines + deploy queue.
- Cliente Flutter.
- Contención/retirada de `/vault` heredado que revela `.env` (`SEC-16`).
- Creación premium de proyectos bajo `htdocs` (`SEC-17` / fase 2.1).

---

## 6. Deudas y riesgos P0 (condicionan el orden)

1. **Drift documental** tras Cursor adapter / v35 / 118 tests.
2. **Persistencia sin contratos comunes (0.3)** — cualquier feature nueva multiplica esquemas ad hoc.
3. **`.git` vacío** — sin historial recuperable; checkpoints no sustituyen VCS.
4. **`SEC-16` vault heredado** — revelación de `.env` a sesión admin.
5. **`SEC-17` project-create heredado** — no listo para UI premium.
6. **Compatibilidad vecinas** — reinicios del bridge afectan CaptaJaus/Lliria/etc.; hace falta 0.4.
7. **Cursor routes fuera del router** — contrato “75” intacto, pero el inventario público ya es 78; hay que decidir si se absorben en `registerCodexSuite` o se documentan como extensión.
8. **Comercialización bloqueada por seguridad**: `SEC-01`…`SEC-08` (HTTPS, migración token, rotación, CSP, vault, backups, aislamiento workers, supply chain).

---

## 7. Relación con EQUIPITELLO / lab IA

El bridge no es solo Codex Suite: es el **plano de control local** de un lab (lanzador de apps, Telegram hub, MCP orchestrator, system manager, ops, vault). Codex Suite debe seguir siendo **aplicación vecina premium**, no absorber todo el anfitrión.

Implicación comercial: empaquetar “Codex Suite” como producto implica:

- frontera clara de APIs estables;
- no arrastrar vault/project-create inseguros al SKU;
- instalar el anfitrión mínimo + App Server + PWA, con opciones de lab como add-ons.

---

## 8. Brainstorming avanzado · hacia suite completa y comercializable

### 8.1 Tesis de producto (no negociable)

**No vender “otro IDE con chat”.** Vender un **Evidence OS para agentes locales**:

```text
Intención → Contrato → Contexto versionado → Ejecución con permisos
→ Evidencia → Decisión humana → Staging → Deploy → Recuperación
```

Desde móvil: **Mission Cockpit** (qué ocurre, qué riesgo, qué debo decidir).  
Desde escritorio: densidad, edición, observación y workbench.

### 8.2 Tres apuestas diferenciales

1. **Confidence Budget**  
   Cada misión consume/recupera “incertidumbre” con evidencias reales (evals, gates, revisiones). Evita scores mágicos.

2. **Workspace Time Machine**  
   Twin + checkpoints + decisiones + deploys = “cómo estaba, por qué cambió, cómo vuelvo”. Distinguir metadatos de código respaldado.

3. **Human Decision Queue móvil**  
   Pantalla iPhone centrada solo en decisiones pendientes (aprobar, diff, criterio, modelo, promote, rollback). El resto es progreso en background.

Otras hipótesis fuertes (roadmap §7): Project Guardian read-only, Capability Health Score, Incident-aware Engineering (CaptaJaus → gate reutilizable), Reproducible Agent Recipes.

### 8.3 Dual-engine Codex + Cursor · oportunidad y peligro

**Oportunidad**: Continuidad cuando App Server/proveedor falla; reutilizar el SDK ya maduro del bridge; narrativa “elige motor sin salir de la suite”.

**Peligro**: dos semánticas de turn/evidencia/aprobación. Si Cursor no produce el mismo grafo Evidence, el diferenciador se diluye.

**Diseño recomendado**:

- Codex = motor canónico de Evidence OS.
- Cursor = *failover / plan-mode / tareas IDE-native* con etiqueta visible.
- Un **Evidence Adapter** común: todo turno (cualquier motor) emite eventos normalizados al ledger.
- Nunca mezclar silenciosamente permisos ni checkpoints entre motores.

### 8.4 Camino a “Premium Ready” (Definition of Done comercial)

Reutilizar el Definition of Premium Ready del roadmap, condensado en 10 puertas:

1. Reinicios/redes inestables sin estado ambiguo.
2. Acciones sensibles con identidad + evidencia + rollback.
3. Secretos write-only + vault + rotación.
4. Workspaces aislados (datos, índices, integraciones).
5. Sync PWA/escritorio bajo pruebas físicas.
6. Modelos/herramientas por evals reproducibles.
7. Staging/deploy transaccional.
8. Backups restaurados periódicamente.
9. Supply chain (firma/SBOM/políticas).
10. Observabilidad privada + soporte + incident response + términos/privacidad.

Hasta cerrar esas puertas: **plataforma privada avanzada**, no SaaS comercial.

### 8.5 Modelo de negocio plausible (cuando existan puertas 1–10)

| Plan | Qué vende | Prerrequisito técnico |
|---|---|---|
| Personal | PWA local + Tailscale + 1 máquina | HTTPS/sesión, vault, backups |
| Profesional | + evals, staging, deploy queue, recipes | Fases 1, 4, 6 |
| Equipo | + roles, decisiones por actor, auditoría | Fase 8 + SEC-01/02 |
| Empresa | + tenancy, DPA, SBOM, on-prem/Docker `.16` | Fases 7–8 |

Precio no debe prometer “IA más potente”: debe prometer **trazabilidad, reversibilidad y control móvil**.

### 8.6 Empaquetado comercial (SKU)

Propuesta de empaquetado incremental:

1. **Codex Suite Core** — PWA + App Server bridge + Evidence + checkpoints.
2. **Codex Suite Control** — Mission Cockpit, contracts, twin, staging, deploy queue.
3. **Codex Suite Forge** — índice semántico, Monaco/LSP, recipes, evals.
4. **Codex Suite Team** — identidad, roles, tenancy.
5. **Mobile Companion** (Flutter) — Decision Queue + notificaciones; no IDE completo.

El lab EQUIPITELLO queda como **operador interno**, no como SKU público.

---

## 9. Plan de continuación inmediato (orden recomendado)

> Alineado con roadmap canónico; ajustado al drift real del 8 ago.

### Sprint A · Cierre de base (P0)

1. ~~**Sync documental** — STATUS/ROADMAP/MANUAL: v35, 118+ tests, adaptador Cursor.~~ **Hecho 8 ago.**
2. ~~**0.3 Persistencia versionada** — schemas, IDs estables, escrituras atómicas, migraciones, auditoría RO.~~ **Hecho 8 ago (123/123).**
3. ~~**Decisión de composición** — rutas Cursor absorbidas en `registerCodexSuite` (79 rutas).~~ **Hecho 8 ago.**
4. ~~**0.4 Guardrails vecinas** — inventario health/puertos; preflight variables sin revelar valores.~~ **Hecho 8 ago.**
5. **0.5 Git** (decisión) o ~~**1.1 Pending Checkpoints durables**~~ → **hecho**; siguiente **1.2 Event Log durable**.
5. **Decisión admin sobre Git (0.5)** — backup + reparar/reinicializar; no improvisar.

### Sprint B · Fiabilidad diferencial (P0/P1)

6. **1.1 Pending checkpoints durables**.
7. **1.2 Event log durable + replay**.
8. **Evidence Adapter multi-motor** (Codex + Cursor → mismo ledger).
9. **1.3 Mission Evidence Graph v1**.

### Sprint C · Administración segura (P0/P1)

10. **Contener `SEC-16`** (bloquear revelación `.env` o sustituir UI).
11. **2.3 API Key Vault v1** (segunda contraseña, write-only, rotación).
12. **2.1 Crear proyecto confinado bajo htdocs**.

### Sprint D · Confianza y contexto (P1)

13. Observabilidad privada + backups cifrados con restore drill.
14. Índice semántico incremental con exclusión de secretos.
15. Evals v2 + Auto Router transparente.

### Sprint E · Superficie premium (P1/P2)

16. Design System + QA física iPhone.
17. Dynamic Staging + Deploy Queue.
18. Monaco/LSP solo después de aislamiento de workers.

### Sprint F · Comercial (P2/P3, no antes)

19. HTTPS + Session Migration v2 + rotación.
20. Identidad/roles; luego Flutter Decision Queue.
21. Pentest, privacidad, onboarding, planes.

Estimación heredada del roadmap (aún válida a alto nivel): **~74–99 bloques** de implementación verificada hasta Premium Ready; el adaptador Cursor no reduce esa deuda, solo añade un motor paralelo que debe normalizarse.

---

## 10. Brainstorming de riesgos de producto (anti-patrones)

| Tentación | Por qué destruiría el producto |
|---|---|
| Multiusuario antes de vault/backups | Multiplica radio de fuga |
| Monaco antes de workers aislados | El navegador se vuelve fachada de RCE |
| “Que haga cualquier tarea del móvil” en el mismo runtime | Mezcla asistente personal con ingeniería privilegiada |
| Marketplace de VSIX | Dependencia ajena y superficie incontrolable |
| Revelar API keys “porque soy admin” | Sesión robada = exfiltración total |
| Prometer sincronización mágica con chats Cursor IDE ajenos al thread | Mentira de continuidad; ya está bien documentada la limitación |
| Tratar `~/.codex` como monorepo a comercializar | Confunde runtime local con producto |

---

## 11. Checklist de verificación ejecutada en este corte

- [x] Inventario de ambas raíces del workspace.
- [x] Lectura de STATUS, ROADMAP, BUSINESS PLAN, SECURITY BACKLOG, Modular Foundation, agent pack histórico.
- [x] Activación Serena del proyecto `cursor-mobile-bridge` + exploración simbólica de router, chat, evidence, cursor adapter, composition.
- [x] Conteo de módulos, rutas, frontend, stores.
- [x] `npm test` completo: **118/118 pass**.
- [x] Tests focales cursor+router: **5/5 pass**.
- [x] Health bridge 8095: OK.
- [x] Diagnóstico `.git`: vacío / no repositorio.
- [x] Memoria Serena `codex-suite-audit-2026-08-08`.
- [ ] CDP físico iPhone: no ejecutado en este corte (histórico existe en `storage/*-mobile.png`).
- [ ] Pentest / restore drill: no aplicables aún.

---

## 12. Próxima pregunta de decisión para el administrador

Para no diluir el siguiente bloque técnico, hace falta una decisión explícita:

1. **¿Siguiente bloque = 0.3 persistencia** (recomendado por roadmap), o  
2. **¿Primero sync documental + absorción del adaptador Cursor en el router**, o  
3. **¿Priorizar contención `SEC-16` / vault** por riesgo de sesión?

Recomendación del análisis: **(2) sync corto + (1) 0.3**, y aparcar features nuevas hasta que los stores tengan contrato versionado.

---

## 13. Referencias canónicas

- [CODEX-SUITE-STATUS.md](CODEX-SUITE-STATUS.md) — estado (actualizar con drift de este corte)
- [CODEX-SUITE-ROADMAP.md](CODEX-SUITE-ROADMAP.md) — orden futuro
- [CODEX-SUITE-MODULAR-FOUNDATION.md](CODEX-SUITE-MODULAR-FOUNDATION.md) — 0.1/0.2
- [CODEX-SUITE-MANUAL.md](CODEX-SUITE-MANUAL.md) — uso
- [CODEX-SUITE-BUSINESS-PLAN.md](CODEX-SUITE-BUSINESS-PLAN.md) — estrategia
- [CODEX-SUITE-SECURITY-BACKLOG.md](CODEX-SUITE-SECURITY-BACKLOG.md) — seguridad aplazada
- [hardening/session-migration-v2/hardening.md](hardening/session-migration-v2/hardening.md)
