clase:daw:daw-proyecto:tema02
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| clase:daw:daw-proyecto:tema02 [2026/10/14 00:06] – Sección Práctica convertida en Ejercicios, con la estructura de los demás módulos claude | clase:daw:daw-proyecto:tema02 [2026/10/15 07:02] (actual) – [Claude Code y OpenCode] Lorenzo | ||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| - | ====== 2. Git en el proyecto | + | ====== 2. IA y agentes |
| - | Objetivo del tema: que nadie vuelva a escribir | + | Objetivo del tema: saber qué es lo que se va a usar durante todo el módulo. Es un repaso rápido |
| - | Lo que ya sabéis y aquí no se repite: | + | ===== Qué es un agente ===== |
| - | | + | Un **modelo |
| - | | + | |
| - | * Scrum y los tableros de GitHub: [[clase: | + | |
| - | ===== Issues y tablero ===== | + | El bucle es siempre el mismo: |
| - | Todo trabajo empieza por un **issue**. El issue es la unidad: de él sale la rama, su número va en los commits | + | - Recibe una petición («añade |
| + | - Decide qué herramienta usar (leer '' | ||
| + | - Ejecuta | ||
| + | - Con lo que ha visto, decide la siguiente (editar el fichero, lanzar '' | ||
| + | - Repite hasta que considera que ha terminado, y responde. | ||
| - | El tablero es un **GitHub Project** del repositorio con tres columnas: //Todo//, //In progress// y //Done//. De sus automatizaciones (// | + | Dos consecuencias que explican casi todo lo que viene después: |
| - | Etiquetas: | + | * **Lo que el agente sabe es lo que tiene en la conversación.** No recuerda nada de la anterior. Lo que tenga que saber siempre, va en un fichero que lee al empezar ('' |
| + | * **Lo que el agente puede hacer es lo que sus herramientas | ||
| - | Los issues se crean desde la web o con '' | + | El detalle, |
| - | <sxh bash> | + | ===== Claude Code y OpenCode ===== |
| - | gh issue create --title "Alta de clientes" | + | |
| - | gh issue list | + | |
| - | gh issue view 12 | + | |
| - | </ | + | |
| - | ===== Las ramas de este proyecto | + | Son los dos agentes |
| - | El modelo de ramas de Despliegue 2 tiene '' | + | ^ ^ Claude Code ^ OpenCode ^ |
| + | | Instrucciones fijas del proyecto | '' | ||
| + | | Skills | '' | ||
| + | | Modo plan: solo lee, no toca código | '' | ||
| + | | Cambiar de modelo | ''/ | ||
| + | | Ver cuánto contexto va usado | ''/ | ||
| + | | Vaciar la conversación | ''/ | ||
| + | | Permisos | ''/ | ||
| + | | Servidores MCP | '' | ||
| - | * '' | + | Se usa cualquiera |
| - | * '' | + | |
| - | Y por cada issue, una **rama de trabajo** en su propio worktree: | ||
| - | ^ Cosa ^ Nombre ^ Ejemplo ^ | + | * Modos de Claude code |
| - | | Rama | ''< | + | |
| - | | Worktree | '' | + | |
| - | El número del issue en el nombre de la rama hace que la skill sepa siempre a qué issue pertenece, sin preguntarlo. | + | ^ Modo ^ Leer ^ Editar |
| + | | **Manual** | ✅ | Pregunta | Pregunta | Pregunta | | ||
| + | | **Accept Edits** | ✅ | ✅ | ✅ | Pregunta | | ||
| + | | **Plan** | ✅ | No edita en modo plan | ✅ (revisado por el clasificador) | Pregunta | | ||
| + | | **Auto** | ✅ | ✅ | ✅ | ✅ (revisado por el clasificador; | ||
| - | **Sin pull requests.** En un proyecto individual nadie va a revisar el PR, así que es un trámite que no aporta nada: la rama se fusiona en '' | + | |
| - | ===== El ciclo de una rama ===== | + | ^ Modo ^ Leer ^ Editar en la propia carpeta ^ Comandos simples ^ Todo el resto ^ |
| + | | Build | ✅ | ✅ | ✅ | ✅ (sin revisión; solo pregunta al leer .env o salir del workspace) | | ||
| + | | Plan | ✅ | Denegado (solo escribe en ~/ | ||
| + | ===== El contexto | ||
| - | - **Iniciar**: desde la carpeta principal (siempre en '' | + | El **contexto** es todo lo que el modelo tiene delante en una conversación: las instrucciones fijas, las skills que ha cargado, los ficheros |
| - | - **Trabajar** en el worktree. Commits pequeños con '' | + | |
| - | - **Actualizar**: | + | |
| - | - **Finalizar**: | + | |
| - | - **Publicar**: | + | |
| - | Por qué '' | + | * **Es limitado |
| + | * **Lo que no está en el contexto no existe para el agente.** Y lo que está de más, estorba: un log de doscientas líneas pegado entero tapa las tres que importan. | ||
| - | ==== El commit | + | De aquí sale la regla de oro del módulo, |
| - | GitHub cierra un issue automáticamente cuando llega a la **rama por defecto** un commit cuyo mensaje contiene '' | + | ===== Skills ===== |
| - | < | + | Una **skill** es un fichero |
| - | feat(#12): Alta de clientes | + | |
| - | Closes #12 | + | <sxh yaml; |
| - | </code> | + | --- |
| + | name: hola | ||
| + | description: | ||
| + | --- | ||
| + | Saluda en castellano a la persona cuyo nombre llega en $ARGUMENTS. | ||
| + | Si no llega ningún nombre, pregúntalo. | ||
| + | </sxh> | ||
| - | Al hacer push de '' | + | Lo que importa de cada parte: |
| - | ===== Reglas para que la IA toque git ===== | + | * **'' |
| + | * **El cuerpo** es el procedimiento, | ||
| + | * **'' | ||
| - | Una skill que ejecuta git puede hacer daño si improvisa. Estas reglas van en la skill y no se negocian: | + | Cómo escribir una skill: se le pide al propio agente un primer borrador («escribe una skill que haga X con estos pasos») y se corrige. Se prueba lanzándola y mirando qué hace; si se salta un paso o se inventa uno, se afina el texto. Qué es una skill, cómo se escribe su descripción y los tipos que hay: [[cursos: |
| - | * **Nunca '' | + | ===== MCP ===== |
| - | * **Nunca '' | + | |
| - | * **Nunca resolver un conflicto**. Si un merge da conflicto, la skill **se para**, enseña '' | + | |
| - | * **La carpeta principal siempre en '' | + | |
| - | * **Una operación por invocación**: | + | |
| - | * **'' | + | |
| - | ===== La skill /git-flow ===== | + | Un **MCP** (//Model Context Protocol//) es un servidor que da al agente **herramientas nuevas**: abrir un navegador y ver una página, consultar la documentación actual de una librería, hacer consultas a una base de datos. El agente las usa como las suyas propias. Lo que es, cómo se conecta y qué servidores existen: [[cursos: |
| - | Se parte de la skill que ya enlaza Despliegue 2, {{ :clase: | + | La diferencia con una skill: |
| - | * Quitar '' | + | ===== Subagentes |
| - | ^ Operación ^ Qué hace ^ | + | Un agente puede lanzar **otro agente** para una parte del trabajo: un **subagente**, con su propia conversación vacía y, a menudo, con instrucciones |
| - | | '' | + | |
| - | | '' | + | |
| - | | '' | + | |
| - | | '' | + | |
| - | | '' | + | |
| - | * El nombre del alumno para las ramas se lee de '' | + | * **Mantener limpio el contexto principal.** Buscar en qué ficheros |
| - | * Añadir '' | + | * **Especializar.** Un subagente |
| - | | + | |
| - | En el tema 3 '' | + | Con subagentes se montan **bucles**: un agente hace, otro comprueba, y se repite hasta que la comprobación pasa. El patrón más útil es [[cursos: |
| - | < | + | En este módulo el bucle no está dentro de una herramienta: |
| + | |||
| + | El resto de patrones (pipeline, orquestador, | ||
| + | |||
| + | ===== Lo que el agente no decide ===== | ||
| + | |||
| + | Todo lo anterior hace el trabajo; nada de lo anterior decide **qué** trabajo. Qué se construye, si lo que ha salido es lo que se quería y si se da por bueno, lo decide una persona, y en el módulo eso tiene tres sitios fijos: el issue y la spec, el navegador y los tests, y la revisión antes de cerrar. El agente | ||
| ===== Ejercicios ===== | ===== Ejercicios ===== | ||
| - | Todos los ejercicios se hacen en el repositorio del tema 1. Desde el ejercicio 2, ningún comando de git se escribe a mano. | ||
| ==== Ejercicio 1 ==== | ==== Ejercicio 1 ==== | ||
| - | * Crea el tablero del repositorio (GitHub Project) con las columnas //Todo//, //In progress// y //Done//. | + | * Instala Claude Code y OpenCode siguiendo |
| - | * Comprueba | + | * Con '' |
| - | * Crea las etiquetas | + | |
| - | * Crea con '' | + | |
| ==== Ejercicio 2 ==== | ==== Ejercicio 2 ==== | ||
| - | * Descarga {{ : | + | * Crea la skill ''/ |
| - | * Pide al agente que la adapte a este proyecto: quitar '' | + | * Cambia |
| - | * Pide que añada | + | |
| - | * Añade | + | |
| - | * Lee la skill entera y comprueba que '' | + | |
| ==== Ejercicio 3 ==== | ==== Ejercicio 3 ==== | ||
| - | * ''/ | + | * En Claude Code, pídele |
| - | | + | * Pídele |
| - | | + | |
| - | | + | |
| - | | + | |
| - | * ''/ | + | |
| - | + | ||
| - | ==== Ejercicio 4 ==== | + | |
| - | * ''/ | + | |
| - | | + | |
clase/daw/daw-proyecto/tema02.1791929181.txt.gz · Última modificación: por claude
