===============================================================
  OPCIÓN A — CRON + CLAUDE HEADLESS
===============================================================

ARQUITECTURA
------------
  cron (lunes 03:00) → bash script → claude -p "..." → APK lista


REQUISITOS EN EL VPS DEBIAN
---------------------------
- Claude Code instalado y autenticado (claude login)
- Git CLI
- Android SDK build-tools (zipalign, apksigner)
- Keystore copiado: /home/sito/oasis-release-key.jks
- Clon del repo oasis_mobile en /opt/oasis_mobile
- Acceso al upstream: git remote add upstream
       https://github.com/epsylon/oasis.git
- ANTHROPIC_API_KEY exportada en .bashrc del usuario


ESTRUCTURA DE ARCHIVOS
----------------------
  /opt/oasis_mobile/
    .git/
    nodejs-project/...
    CONTEXT/
    AUTOMATIZACION/

  /opt/scripts/
    oasis-auto-update.sh        <- script principal
    oasis-build-apk.sh          <- build/sign APK
    oasis-notify-telegram.sh    <- enviar APK por bot

  /var/log/oasis-auto/
    YYYY-MM-DD.log              <- logs por ejecución


CRON ENTRY
----------
  0 3 * * 1 /opt/scripts/oasis-auto-update.sh \
    > /var/log/oasis-auto/$(date +\%Y-\%m-\%d).log 2>&1


ESQUELETO DEL SCRIPT (oasis-auto-update.sh)
-------------------------------------------
  #!/bin/bash
  set -euo pipefail
  cd /opt/oasis_mobile

  git fetch upstream
  HEAD_OLD=$(git rev-parse HEAD)
  UPSTREAM_HEAD=$(git rev-parse upstream/main)

  if [ "$HEAD_OLD" = "$UPSTREAM_HEAD" ]; then
    echo "No hay cambios upstream. Salgo."
    exit 0
  fi

  # Crear branch para el intento
  BRANCH="auto-merge-$(date +%Y%m%d)"
  git checkout -b "$BRANCH"

  # Invocar claude con el prompt
  claude -p "$(cat /opt/scripts/prompts/auto-merge.md)" \
    --allowed-tools "Read,Write,Edit,Bash"

  # Build APK si no hay conflictos
  if ! git diff --name-only --diff-filter=U | grep -q .; then
    bash /opt/scripts/oasis-build-apk.sh
    bash /opt/scripts/oasis-notify-telegram.sh \
      "APK $(date +%Y-%m-%d) lista en /opt/oasis_mobile/apk/"
  else
    bash /opt/scripts/oasis-notify-telegram.sh \
      "Conflictos en merge automático. Revisa $BRANCH."
  fi


PROMPT BASE PARA CLAUDE
-----------------------
  Lee CONTEXT/cambio_apk_repack.txt y CONTEXT/tareas_usabilidad.txt
  para entender el proyecto.

  Tu tarea:
  1. Compara HEAD con upstream/main.
  2. Aplica SOLO cambios safe a la rama actual:
     - views nuevos (graphos_view, markdown.js, etc)
     - models nuevos (preservando inviteLog en tribes_model)
     - translations (todos los idiomas)
     - peers_view, stats_view (visuales)
  3. NO toques:
     - main_views.js
     - assets/themes/OasisMobile.css
     - assets/styles/mobile.css
     - server/package.json (deps: @xenova/transformers, node-llama-cpp)
  4. Si encuentras conflictos en archivos críticos, NO los resuelvas
     automáticamente. Deja el conflicto marker y termina.
  5. Commit con mensaje "feat: merge upstream vX.Y.Z (auto)"
     y co-author Claude.

  Reporta qué archivos copiaste, cuáles dejaste, y cualquier
  conflicto encontrado.


PROS DE ESTA OPCIÓN
-------------------
  - Setup en 1 hora
  - Sin orquestación compleja
  - Cron + log = simple de debuggear

CONTRAS
-------
  - Un único prompt grande puede fallar parcialmente
  - Si claude se queda sin context, no se entera de ello
  - Difícil intervenir a mitad


CUÁNDO MIGRAR A OTRA OPCIÓN
---------------------------
  Si al 3er intento sale algo mal automatizado, pasar a opción B
  (multi-agente). El coste extra de setup vale la pena para tener
  fallos aislados y reportes parciales.
