Files
carlospalanca.es/AGENTS.md

141 lines
4.3 KiB
Markdown

# AGENTS.md — Fuente de Verdad del Sistema de Agentes
**Los agentes deben leer este archivo antes de ejecutar cualquier tarea.**
---
## Regla #1: Pull Requests, NUNCA Commits Directos
**NINGÚN agente puede hacer commit directo a la rama `main`.**
Flujo obligatorio para cualquier cambio:
1. Crear rama con el formato: `tipo/agente-YYYYMMDD-descripcion-corta`
2. Hacer commit en esa rama
3. Abrir Pull Request con título y descripción claros
4. Esperar revisión y aprobación de Carlos antes de mergear
---
## Mapa de Agentes
| Agente | Canal Discord | Rama base | Carpeta destino |
|--------|--------------|-----------|----------------|
| Tyrion (orquestador) | #el-trono-de-hierro | — | — |
| Varys (SEO & Research) | #el-pajarillo | `seo/varys-...` | `src/content/` |
| Samwell (Guiones & Blog) | #la-ciudadela | `guiones/samwell-...` o `blog/samwell-...` | `src/content/guiones/` o `src/content/blog/` |
| Bronn (Sponsors) | #el-banco-de-hierro | `sponsors/bronn-...` | `docs/sponsors/` |
| Bran (Infraestructura) | #el-muro | `infra/bran-...` | `vps/` o `agents/` |
| Davos (Redes Sociales) | #desembarco-del-rey | `social/davos-...` | `docs/social/` |
| Arya (Code Review) | #cara-sin-nombre | — | Revisa PRs, no crea contenido propio |
| Daenerys (Visuales) | #poniente-en-llamas | `visual/daenerys-...` | `remotion/src/components/` |
| Jon (Formación) | #la-guardia-de-la-noche | `edu/jon-...` | `docs/certifications/` |
---
## Estructura del Repositorio
```
src/content/blog/ → Artículos del blog (MDX/MD)
src/content/guiones/ → Guiones de vídeos (MDX/MD)
docs/certifications/ → Guías de certificación (Jon)
docs/sponsors/ → Research de sponsors (Bronn)
docs/social/ → Estrategia de redes sociales (Davos)
remotion/src/components/ → Componentes visuales Remotion (Daenerys)
vps/ → Configuración de infraestructura (Bran)
agents/ → Código de los agentes Discord
```
---
## Schema de Frontmatter
### Blog posts (`src/content/blog/`)
```yaml
---
title: "Título del artículo"
description: "150-160 caracteres para SEO. Incluye la keyword principal."
pubDate: YYYY-MM-DD
author: "Carlos Palanca"
tags: [tag1, tag2] # Máximo 5 tags
draft: true # Siempre true hasta aprobación de Carlos
heroImage: "/images/..." # Opcional
agentCreated: true
agentName: "Samwell"
---
```
### Guiones (`src/content/guiones/`)
```yaml
---
title: "Título del vídeo"
status: borrador # borrador | revision | aprobado | publicado
tags: [kubernetes, devops]
youtubeId: "" # Se rellena al publicar
agentCreated: true
agentName: "Samwell"
---
```
---
## Scopes del GitHub Token
El token de GitHub tiene ÚNICAMENTE estos permisos:
- `Contents: Write` — crear ramas y archivos
- `Pull requests: Write` — abrir y comentar PRs
- Scoped SOLO al repositorio `carlospalanca.es`
Los agentes **NO pueden**:
- Eliminar ramas de otros agentes
- Hacer merge de PRs
- Gestionar releases, webhooks o Actions
- Acceder a otros repositorios
---
## Comunicación entre Agentes
Los agentes NO se llaman entre sí directamente por API.
La comunicación ocurre **exclusivamente a través de Discord**:
1. Carlos escribe en `#el-trono-de-hierro`
2. Tyrion analiza y publica la tarea delegada en el canal del agente destino
3. El bot del agente destino detecta el mensaje y lo procesa
4. El resultado (PR creado, análisis, texto) se reporta en ese mismo canal
---
## Conventional Commits
Todos los commits deben seguir este formato:
```
tipo(scope): descripción en español
```
| Tipo | Uso |
|------|-----|
| `content` | Blog posts, guiones |
| `feat` | Nueva funcionalidad o componente |
| `fix` | Corrección de errores |
| `infra` | Cambios de infraestructura |
| `docs` | Documentación |
| `style` | Cambios de estilo sin lógica |
Ejemplos:
- `content(blog): añadir artículo sobre kubernetes ingress`
- `feat(visual): componente lower-third animado`
- `infra(nginx): optimizar config de caché`
---
## Escalación a Carlos
Si un agente encuentra un bloqueo, ambigüedad o problema inesperado:
1. Publica el problema en su canal de Discord con contexto
2. Menciona `@Carlos` para escalación humana
3. **NO intentes adivinar ni ejecutar sin confirmación**
4. Mejor preguntar que deshacer un cambio no deseado