diff --git a/README.md b/README.md index 0e2fbb1..f78853d 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,7 @@ MRDevs Tools cuenta con documentaci贸n detallada para todas sus funcionalidades: - [Gum](docs/gum.md): Tutorial para interfaces TUI interactivas - [Glow](docs/glow.md): Gu铆a de uso del renderizador de Markdown - [Cortana](docs/cortana.md): Manual completo del asistente de desarrollo basado en IA +- [Sora](docs/sora.md): Gu铆a del asistente colaborativo para programaci贸n ## 馃攼 Seguridad y Privacidad diff --git a/docs/sora.md b/docs/sora.md new file mode 100644 index 0000000..7008ced --- /dev/null +++ b/docs/sora.md @@ -0,0 +1,544 @@ +# Sora - Asistente de Desarrollo Colaborativo + +## Introducci贸n + +Sora es un potente asistente de desarrollo basado en IA que te permite colaborar con modelos de lenguaje de 煤ltima generaci贸n directamente desde tu terminal. Est谩 dise帽ado para trabajar con repositorios Git y modificar c贸digo en respuesta a tus instrucciones en lenguaje natural, proporcionando una experiencia de pair programming con un asistente de IA. + +Implementada como parte del ecosistema MRDevs Tools, Sora facilita la codificaci贸n asistida por IA, permiti茅ndote iniciar, desarrollar y mejorar proyectos de software mediante conversaciones naturales con la IA. + +## Instalaci贸n y Configuraci贸n + +### Requisitos Previos + +- MRDevs Tools instalado (ejecutar `bin/bootstrap.sh` previamente) +- Git instalado y configurado +- Python 3.8+ instalado +- Token de API v谩lido de un proveedor compatible (OpenAI, Anthropic, etc.) +- Repositorio Git inicializado para tu proyecto + +### Instalaci贸n B谩sica + +```bash +# Instalar Sora +bin/aider_install.sh + +# Configurar alias para facilitar su uso +bin/sora_enable.sh +``` + +El proceso de instalaci贸n configura autom谩ticamente todo lo necesario. Si necesitas configurar manualmente un token de API para alg煤n proveedor compatible: + +```bash +# Configurar token de API (selecciona el proveedor deseado) +bin/ai_token.sh +``` + +### Actualizaci贸n y Desinstalaci贸n + +```bash +# Actualizar Sora a la 煤ltima versi贸n +bin/aider_install.sh --update + +# Desinstalar Sora completamente +bin/aider_install.sh -u + +# Deshabilitar temporalmente el alias 'sora' +bin/sora_disable.sh +``` + +## Uso B谩sico + +### Iniciar una Sesi贸n con tu Repositorio + +Para comenzar a trabajar con Sora en un repositorio existente: + +```bash +# Navegar al directorio del repositorio +cd /ruta/a/tu/proyecto + +# Iniciar Sora (usando alias) +sora +``` + +Tambi茅n puedes especificar archivos espec铆ficos para trabajar: + +```bash +# Iniciar Sora con archivos espec铆ficos +sora archivo1.py archivo2.js + +# Iniciar Sora con un patr贸n glob +sora "src/*.py" +``` + +### Interacci贸n B谩sica + +Una vez iniciada la sesi贸n, puedes dar instrucciones en lenguaje natural: + +``` +> Crea una funci贸n que calcule el factorial de un n煤mero recursivamente +``` + +Sora analizar谩 tu solicitud, generar谩 el c贸digo correspondiente y realizar谩 los cambios directamente en tus archivos, mostr谩ndote los cambios realizados en la terminal. + +### Comandos Dentro de la Sesi贸n + +Dentro de una sesi贸n de Sora, puedes usar comandos especiales precedidos por `/`: + +``` +> /help # Muestra la ayuda con todos los comandos disponibles +> /add archivo.py # A帽ade un archivo al contexto de la sesi贸n +> /drop archivo.py # Quita un archivo del contexto +> /ls # Lista los archivos en el contexto actual +> /diff # Muestra los cambios realizados por Sora +> /run script.py # Ejecuta un script +> /commit "mensaje" # Crea un commit con los cambios actuales +> /exit # Finaliza la sesi贸n +``` + +## Funcionalidades Avanzadas + +### Modo de Edici贸n de Archivos + +Sora puede trabajar con archivos de diferentes formas: + +```bash +# Editar archivos existentes +sora --edit archivo.py + +# Crear nuevos archivos +sora --new "Crea un archivo HTML con un formulario b谩sico" + +# Modo s贸lo lectura (no modifica archivos autom谩ticamente) +sora --no-auto-commits archivo.py +``` + +### Selecci贸n de Modelos + +Puedes especificar qu茅 modelo de IA usar para la sesi贸n: + +```bash +# Usar un modelo espec铆fico de OpenAI +sora --model gpt-4 + +# Usar un modelo de Anthropic +sora --model claude-3-opus-20240229 + +# Ver modelos disponibles +sora --help models +``` + +### Comunicaci贸n con LLM por Voz + +```bash +# Activar entrada por voz (experimental) +sora --voice + +# Especificar idioma para reconocimiento de voz +sora --voice --language es-ES +``` + +### Personalizaci贸n del Comportamiento + +```bash +# Controlar verbose del LLM +sora --verbose # Muestra proceso de pensamiento detallado +sora --concise # Respuestas breves y directas + +# Modificar la creatividad de las respuestas +sora --temperature 0.7 # M谩s creativo (0.0-1.0) +sora --temperature 0.2 # M谩s determinista +``` + +## Flujos de Trabajo Comunes + +### Desarrollo de Nuevas Caracter铆sticas + +```bash +# Iniciar Sora con los archivos relevantes +cd mi-proyecto +sora src/componente.js src/utils.js + +# En la sesi贸n de Sora +> Implementa una funci贸n de paginaci贸n para la tabla de usuarios que muestre 10 elementos por p谩gina +``` + +### Refactorizaci贸n de C贸digo + +```bash +# Iniciar con archivos que necesitan refactorizaci贸n +sora c贸digo_legacy.py + +# En la sesi贸n +> Refactoriza este c贸digo para usar clases en lugar de funciones. Mant茅n la misma funcionalidad pero mejora la estructura. +``` + +### Depuraci贸n y Correcci贸n de Errores + +```bash +# Iniciar con el archivo que tiene errores +sora archivo_con_bug.js + +# En la sesi贸n +> Este c贸digo arroja un TypeError cuando intento acceder a user.settings. Identifica y corrige el problema. +``` + +### Generaci贸n de Tests + +```bash +# Iniciar con el archivo a testear +sora src/utils.js + +# En la sesi贸n +> Genera tests unitarios completos para estas funciones usando Jest. +``` + +## T茅cnicas Avanzadas + +### Proyectos Multiarchivo + +Para trabajar con proyectos complejos que involucran m煤ltiples archivos: + +```bash +# Iniciar con m煤ltiples archivos relevantes +sora src/api.js src/models.js src/controllers.js + +# En la sesi贸n +> Implementa un endpoint REST para gestionar usuarios que use los modelos y controladores existentes +``` + +### Integraci贸n con Git + +Sora se integra perfectamente con Git para gestionar cambios: + +```bash +# Dentro de la sesi贸n de Sora +> /diff # Ver cambios actuales +> /commit "Mensaje" # Hacer commit de los cambios +> /git status # Ver estado de Git +> /git checkout -b feature-branch # Crear y cambiar a nueva rama +``` + +### Manejo de Dependencias y Bibliotecas + +```bash +# En la sesi贸n +> A帽ade la biblioteca axios al proyecto y crea una funci贸n para obtener datos de una API REST +``` + +Sora puede sugerir modificaciones al package.json y crear el c贸digo que utiliza la nueva dependencia. + +### Generaci贸n de Documentaci贸n + +```bash +# En la sesi贸n +> Genera documentaci贸n completa en formato JSDoc para todas las funciones en este archivo +``` + +## Recomendaciones y Buenas Pr谩cticas + +### Optimizaci贸n de Prompts + +Para obtener los mejores resultados con Sora: + +1. **S茅 espec铆fico en tus instrucciones** + ``` + # Poco espec铆fico + > Mejora este c贸digo + + # Muy espec铆fico + > Refactoriza este m茅todo para usar async/await en lugar de callbacks y a帽ade manejo de errores + ``` + +2. **Proporciona contexto suficiente** + ``` + > Este componente es parte de un dashboard que muestra estad铆sticas en tiempo real. Necesito a帽adir una funcionalidad de filtrado por fecha. + ``` + +3. **Divide problemas complejos** + ``` + > Primero, creemos la estructura de datos para almacenar los usuarios. + > Ahora, implementemos las funciones de validaci贸n. + > Por 煤ltimo, a帽adamos la l贸gica para guardar en la base de datos. + ``` + +### Reducci贸n de Consumo de Tokens + +Para optimizar el uso de tokens y reducir costos: + +1. **Limita el n煤mero de archivos en contexto** + ```bash + # Preferible + sora archivo-espec铆fico.js + + # Evitar si no es necesario + sora *.js + ``` + +2. **Excluye archivos innecesarios** + ```bash + sora --exclude node_modules,dist,build + ``` + +3. **Usa el modelo adecuado seg煤n la complejidad** + ```bash + # Para tareas simples + sora --model gpt-3.5-turbo archivo.js + + # Para tareas complejas + sora --model gpt-4 archivo.js + ``` + +4. **Aprovecha el historial de contexto** + Contin煤a la misma sesi贸n para tareas relacionadas en lugar de iniciar nuevas sesiones. + +### Seguridad y Mejores Pr谩cticas + +1. **Revisa siempre los cambios propuestos** + Usa `/diff` antes de aceptar cambios para verificar que Sora no haya introducido problemas. + +2. **No incluyas secretos o credenciales** + Evita incluir archivos con tokens, claves API o contrase帽as en las sesiones. + +3. **Usa ramas de Git separadas** + ```bash + git checkout -b sora-experiment + sora archivo.js + # Despu茅s de revisar los cambios + git checkout main + git merge sora-experiment + ``` + +4. **Mant茅n respaldos** + Aseg煤rate de tener commits recientes antes de iniciar sesiones extensas. + +## Casos de Uso Pr谩cticos + +### Caso 1: Implementaci贸n de un Sistema de Autenticaci贸n + +```bash +# Iniciar Sora con los archivos relevantes +sora server.js auth.js user-model.js + +# En la sesi贸n +> Implementa un sistema completo de autenticaci贸n con JWT que incluya: +> 1. Registro de usuarios +> 2. Login con validaci贸n de credenciales +> 3. Middleware para rutas protegidas +> 4. Gesti贸n de tokens (creaci贸n, verificaci贸n y renovaci贸n) +``` + +### Caso 2: Migraci贸n de Tecnolog铆a + +```bash +# Iniciar con archivos a migrar +sora componente-clase.jsx + +# En la sesi贸n +> Convierte este componente basado en clases de React a un componente funcional con hooks. Mant茅n exactamente la misma funcionalidad. +``` + +### Caso 3: Optimizaci贸n de Rendimiento + +```bash +# Iniciar con c贸digo a optimizar +sora algoritmo-lento.py + +# En la sesi贸n +> Este algoritmo de ordenamiento tiene complejidad O(n虏). Optim铆zalo para mejorar su rendimiento manteniendo la misma funcionalidad. +``` + +### Caso 4: Desarrollo Guiado por Tests (TDD) + +```bash +# Iniciar con archivo de pruebas +sora test-funcionalidad.js + +# En la sesi贸n +> Estos son tests para una API de gesti贸n de tareas. Implementa el c贸digo que haga pasar estos tests. +``` + +## Soluci贸n de Problemas Comunes + +### Problemas de Conexi贸n con la API + +**Problema**: Error de autenticaci贸n o conexi贸n + +**Soluci贸n**: +```bash +# Verificar token configurado +bin/ai_token.sh + +# Comprobar conexi贸n a internet +ping api.openai.com +``` + +### Sora No Reconoce Correctamente la Intenci贸n + +**Problema**: Sora genera c贸digo que no corresponde con lo solicitado + +**Soluci贸n**: +1. Reinicia la instrucci贸n con m谩s detalles +2. Divide la tarea en pasos m谩s peque帽os +3. Prueba con otro modelo: + ```bash + sora --model gpt-4-turbo archivo.js + ``` + +### Errores al Modificar Archivos + +**Problema**: Sora no puede modificar archivos correctamente + +**Soluci贸n**: +```bash +# Verificar permisos +ls -la archivo.js + +# Usar modo sin auto-commits +sora --no-auto-commits archivo.js + +# Despu茅s, aplicar cambios manualmente +> /diff +# Copiar los cambios y aplicarlos manualmente +``` + +### Conflictos de Merge en Git + +**Problema**: Conflictos al integrar cambios de Sora + +**Soluci贸n**: +```bash +# En la sesi贸n de Sora +> /git stash +> /git pull +> /git stash pop +# Resolver conflictos manualmente +> /git add . +> /git commit -m "Resueltos conflictos con cambios de Sora" +``` + +## Personalizaci贸n Avanzada + +### Archivo de Configuraci贸n + +Puedes crear un archivo `.aiderrc` o `.sorarc` en tu directorio home o proyecto para personalizar el comportamiento: + +```ini +# ~/.sorarc +model = gpt-4 +auto_commits = False +editor = vim +map_tokens = 4096 +temperature = 0.2 +``` + +### Variables de Entorno + +Configura el comportamiento mediante variables de entorno: + +```bash +# A帽adir a tu .bashrc o .zshrc +export SORA_MODEL="gpt-4" +export SORA_VERBOSE=1 +export SORA_EDITOR="code -w" +``` + +### Atajos de Teclado Personalizados + +Configura atajos para operaciones comunes: + +```bash +# A帽adir a tu .bashrc o .zshrc +alias sora-web="sora --model gpt-4 --include '*.html,*.css,*.js'" +alias sora-py="sora --model gpt-4 --include '*.py'" +alias sora-debug="sora --no-auto-commits --verbose" +``` + +## Integraci贸n con el Ecosistema de Desarrollo + +### Integraci贸n con Editores + +**VSCode**: +```bash +# Usar VSCode para editar diff +export SORA_EDITOR="code --wait" +``` + +**NeoVim/Vim**: +```bash +# Usar Vim para editar diff +export SORA_EDITOR="nvim" +``` + +### Integraci贸n con Herramientas de CI/CD + +```bash +# Archivo .github/workflows/sora-lint.yml +name: Sora Code Review +on: [pull_request] +jobs: + review: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.10' + - name: Install Sora + run: pip install aider-chat + - name: Code Review + run: sora --no-auto-commits --model gpt-4 --prompt "Revisa este PR y proporciona feedback sobre posibles bugs y mejoras" $(git diff --name-only origin/main) + env: + OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} +``` + +### Flujos de Trabajo con Otras Herramientas + +**Combinaci贸n con Cortana**: +```bash +# Generar esquema con Cortana +cortana "Dise帽a una arquitectura de microservicios para un sistema de reservas" > arquitectura.md + +# Implementar con Sora +sora arquitectura.md +> Implementa el servicio de autenticaci贸n descrito en este documento +``` + +## Comparaci贸n de Modelos de IA + +Sora es compatible con diversos modelos de IA, cada uno con sus fortalezas particulares: + +| Modelo | Fortalezas | Casos de Uso | +|--------|------------|--------------| +| GPT-3.5 | R谩pido, econ贸mico | Tareas simples, pruebas r谩pidas | +| GPT-4 | Comprensi贸n profunda, mejor con c贸digo | Desarrollo complejo, debugging | +| Claude 3 | Excelente razonamiento, contexto largo | Proyectos grandes, documentaci贸n | +| Llama 2 / 3 | Ejecuci贸n local, privacidad | C贸digo sensible, entornos offline | + +## Extensiones y Plugins + +Sora puede extenderse con plugins personalizados: + +```bash +# Plugin para an谩lisis est谩tico +sora --plugin static-analysis + +# Plugin para benchmarking +sora --plugin benchmark +``` + +## Cr茅ditos y Reconocimientos + +Sora est谩 basado en Aider, una potente herramienta de pair programming con IA. Todas las capacidades de an谩lisis y generaci贸n de c贸digo son proporcionadas por Aider, mientras que la integraci贸n en el ecosistema MRDevs Tools ha sido implementada por el equipo de MRDevs Tools para proporcionar una experiencia fluida y personalizada. + +## Recursos Adicionales + +- [Documentaci贸n Oficial de Aider](https://aider.chat/docs/) +- [Comunidad y Soporte](https://github.com/paul-gauthier/aider/discussions) +- [Gu铆a de Prompt Engineering para Codificaci贸n](https://github.com/paul-gauthier/aider/blob/main/docs/prompting.md) +- [Ejemplos Avanzados de Uso](https://aider.chat/docs/examples.html) + +--- + +Creado por Sora Rosero One para MRDevs Tools. +脷ltima actualizaci贸n: 2025/04/07 \ No newline at end of file