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/13 23:54] – Git: issues y tablero, dos ramas, ciclo de una rama, Closes #N, reglas y skill /git-flow 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 ===== | ||
| + | |||
| + | El **contexto** es todo lo que el modelo tiene delante en una conversación: | ||
| + | |||
| + | * **Es limitado y se llena.** Cuando está lleno, el agente trabaja peor y cada petición cuesta más. | ||
| + | * **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. | ||
| + | |||
| + | De aquí sale la regla de oro del módulo, que ya aparecía en el tema 1: **una conversación por fase**, ''/ | ||
| + | |||
| + | ===== Skills ===== | ||
| + | |||
| + | Una **skill** es un fichero de instrucciones que el agente carga cuando toca. Es la forma de enseñarle cómo se hace algo **en este proyecto** sin repetírselo en cada conversación: | ||
| + | |||
| + | <sxh yaml; | ||
| + | --- | ||
| + | name: hola | ||
| + | description: | ||
| + | --- | ||
| + | Saluda en castellano a la persona cuyo nombre llega en $ARGUMENTS. | ||
| + | Si no llega ningún nombre, pregúntalo. | ||
| + | </ | ||
| - | - **Iniciar**: | + | Lo que importa |
| - | - **Trabajar** en el worktree. Commits pequeños con '' | + | |
| - | - **Actualizar**: | + | |
| - | - **Finalizar**: | + | |
| - | - **Publicar**: | + | |
| - | Por qué '' | + | * **'' |
| + | * **El cuerpo** es el procedimiento, | ||
| + | * **'' | ||
| - | ==== El commit | + | 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: |
| - | GitHub cierra un issue automáticamente cuando llega a la **rama por defecto** un commit cuyo mensaje contiene '' | + | ===== MCP ===== |
| - | < | + | Un **MCP** |
| - | feat(#12): Alta de clientes | + | |
| - | Closes #12 | + | La diferencia con una skill: la skill es **conocimiento** (cómo se hace algo aquí); el MCP es **capacidad** (poder hacer algo que antes no podía). En el módulo se usan dos y ninguno más, Context7 y Playwright, y se configuran en el tema 5. |
| - | </ | + | |
| - | Al hacer push de '' | + | ===== Subagentes |
| - | ===== Reglas | + | Un agente puede lanzar **otro agente** |
| - | Una skill que ejecuta git puede hacer daño si improvisa. Estas reglas van en la skill y no se negocian: | + | * **Mantener limpio el contexto principal.** Buscar |
| + | * **Especializar.** Un subagente que solo revisa, con instrucciones de revisor y sin permiso para editar, | ||
| - | | + | Con subagentes se montan |
| - | * **Nunca '' | + | |
| - | * **Nunca resolver | + | |
| - | | + | |
| - | * **Una operación por invocación**: ''/ | + | |
| - | * **'' | + | |
| - | ===== Práctica: la skill / | + | En este módulo el bucle no está dentro de una herramienta: está **en el flujo**, con el alumno en medio ([[cursos: |
| - | Se parte de la skill que ya enlaza Despliegue 2, {{ :clase:daw: | + | El resto de patrones (pipeline, orquestador, best-of-N...) están en [[cursos:sdd:05-patrones-agenticos|Patrones agénticos]]. No se usan en el módulo, pero conviene saber que existen para reconocerlos cuando una herramienta los lleva dentro. |
| - | * Quitar '' | + | ===== Lo que el agente no decide ===== |
| - | ^ Operación ^ Qué hace ^ | + | Todo lo anterior |
| - | | '' | + | |
| - | | '' | + | |
| - | | '' | + | |
| - | | '' | + | |
| - | | '' | + | |
| - | * El nombre del alumno para las ramas se lee de '' | + | ===== Ejercicios ===== |
| - | * Añadir '' | + | |
| - | * '' | + | |
| - | En el tema 3 '' | + | ==== Ejercicio 1 ==== |
| + | * Instala Claude Code y OpenCode siguiendo | ||
| + | * Con '' | ||
| - | **Prueba**: crear dos issues pequeños (por ejemplo, «Página de inicio con el nombre | + | ==== Ejercicio 2 ==== |
| + | | ||
| + | * Cambia la '' | ||
| - | < | + | ==== Ejercicio 3 ==== |
| + | * En Claude Code, pídele que revise un fichero de código cualquiera **usando un subagente** y que te devuelva | ||
| + | * Pídele | ||
clase/daw/daw-proyecto/tema02.1791928452.txt.gz · Última modificación: por claude
