===============================================================
  OPCIÓN B — MULTI-AGENTE (RECOMENDADA)
===============================================================

ARQUITECTURA
------------

  Lunes 03:00 — SCOUT
       Detecta cambios upstream, genera reporte JSON con:
         - Lista de archivos cambiados
         - Categorización (safe / review / skip)
         - Resumen de cada cambio
       Output: /var/oasis-auto/reports/YYYY-MM-DD-scout.json
               /var/oasis-auto/reports/YYYY-MM-DD-scout.md (humano)
       Notifica Telegram: "Reporte semanal listo, revisa /scout"

  Lunes 04:00 — MERGER
       Lee scout.json. Si está marcado como "approved" (manual
       o automático según safety level), aplica los cambios
       safe + abre branch con merge para los review.
       Output: /var/oasis-auto/reports/YYYY-MM-DD-merger.md
       Notifica Telegram: "Branch auto-merge-X creada, lista build"

  Lunes 05:00 — BUILDER
       Verifica que no haya conflictos en working tree.
       Hace build APK + firma + sube a /testing-app.
       Output: /var/oasis-auto/apks/oasis-YYYY-MM-DD.apk
       Notifica Telegram: con link a la APK


FLUJO DETALLADO
---------------

  1. scout corre cron
     ├─ git fetch upstream
     ├─ git log HEAD..upstream/main --stat → lista de cambios
     ├─ Para cada archivo cambiado:
     │   - Aplica reglas de clasificación (safe / review / skip)
     │   - Genera resumen breve del cambio
     ├─ Escribe scout.json + scout.md
     └─ Telegram bot: "Reporte listo en {URL}"

  2. (HUMANO, opcional) revisa scout.md y aprueba con:
     curl -X POST https://your-vps.com/api/approve/YYYY-MM-DD
     o solo deja que el cron continúe (auto-aprobar si "safety_score" > 0.8)

  3. merger corre cron
     ├─ Lee scout.json
     ├─ Si !approved AND auto_approve=false: salir y notificar
     ├─ git checkout -b auto-merge-YYYY-MM-DD
     ├─ Para cada archivo "safe": git checkout upstream/main -- $file
     ├─ Para cada archivo "review": deja conflict marker
     ├─ Para cada archivo "skip": ignora
     ├─ git commit -m "feat: auto-merge upstream v$VERSION"
     └─ Telegram bot: "Branch lista, building..."

  4. builder corre cron
     ├─ Verifica working tree limpio
     ├─ bash build-apk.sh
     ├─ Sube APK a /testing-app endpoint
     └─ Telegram bot: "APK lista: {URL}"


CRON ENTRIES
------------
  0  3 * * 1 /opt/scripts/oasis-scout.sh
  0  4 * * 1 /opt/scripts/oasis-merger.sh
  0  5 * * 1 /opt/scripts/oasis-builder.sh


SISTEMA DE CLASIFICACIÓN AUTO
-----------------------------
  El scout aplica estas reglas:

  SAFE (auto-aplicar):
    ✓ src/views/*_view.js si es nuevo file (no existía antes)
    ✓ src/views/markdown.js (helper nuevo)
    ✓ src/client/assets/translations/*.js (todos)
    ✓ src/client/assets/themes/Clear-SNH.css
    ✓ src/client/assets/themes/Dark-SNH.css
    ✓ src/client/assets/themes/Matrix-SNH.css
    ✓ src/client/assets/themes/Purple-SNH.css

  REVIEW (necesita mirada humana):
    ⚠ src/models/* (puede conflictuar con nuestro inviteLog)
    ⚠ src/backend/backend.js (rutas + constructors)
    ⚠ src/views/main_views.js (NUESTRO menú hamburger)
    ⚠ src/views/blockchain_view.js (puede tener inviteLog refs)
    ⚠ src/views/tribes_view.js
    ⚠ src/client/assets/styles/style.css
    ⚠ src/server/package.json (puede traer deps no compatibles)

  SKIP (NUNCA aplicar):
    ✗ src/client/assets/themes/OasisMobile.css
    ✗ src/client/assets/styles/mobile.css
    ✗ src/client/public/js/mobile-ui.js
    ✗ src/views/mobile_pager.js (es nuestro)
    ✗ dependencies: @xenova/transformers, node-llama-cpp


REPORTES (formato scout.md)
---------------------------
  # Oasis upstream sync — 2026-05-09

  Upstream: v0.7.5 → v0.7.6 (3 commits, +4349/-1266)

  ## Safe (aplicar auto): 12 archivos
  - [+] src/views/graphos_view.js (nuevo, 245 líneas)
  - [+] src/views/markdown.js (nuevo, 80 líneas)
  - [M] src/client/assets/translations/oasis_es.js (+24 strings)
  - ...

  ## Review (revisar manual): 6 archivos
  - [M] src/models/tribes_model.js — afecta a inviteLog, revisar
  - [M] src/views/main_views.js — añade ítem menu en Tools, NO aplicar
  - ...

  ## Skip: 3 archivos
  - [M] src/client/assets/themes/OasisMobile.css
  - [M] src/client/assets/styles/mobile.css
  - server/package.json (deps prohibidos)

  ## Acciones recomendadas
  - Auto-merge: yes
  - Conflict score: 0.2 (bajo)
  - Build APK: yes


VENTAJAS CRÍTICAS
-----------------
  1. Cada agente tiene su prompt corto → menos tokens → más fiable
  2. Logs separados → fácil debuggear
  3. Recuperable: si builder falla, re-ejecutas solo builder
  4. Auditable: histórico de scouts.json en /var/oasis-auto/reports
  5. Reversible: cada merge en su branch, fácil de revertir


NIVEL DE AUTOMATIZACIÓN AJUSTABLE
---------------------------------
  Variable AUTO_APPROVE_THRESHOLD en /opt/scripts/config:
    1.0 = nunca auto, siempre humano aprueba
    0.7 = auto si scout reporta "conflict_score < 0.3"
    0.0 = todo auto (no recomendado)

  Empezar en 1.0, después de 4 semanas exitosas bajar a 0.7.
