Add reusable context template

This commit is contained in:
rikrdo
2026-04-11 17:34:57 +02:00
commit 3231b65719
16 changed files with 405 additions and 0 deletions

View File

@@ -0,0 +1,24 @@
# Contexto modular de OpenCode
Este directorio organiza el conocimiento por dominio para evitar leer `memory.md` completo cuando la tarea afecta solo a un área específica.
## Estructura inicial
- [Infraestructura y hosts](hosts.md)
- [Traefik y frontales](traefik.md)
- [Cron y health-checks](cron.md)
- [Programa de formación n8n](n8n.md)
- [Repos locales](git.md)
- [Entornos Docker](docker.md)
- [Scripts y plantillas](scripts.md)
- [Sesiones de OpenCode](opencode.md)
- [Otros contextos](otros.md) · Ajusta esta ficha para cubrir {{ADDITIONAL_CONTEXTS}} u otros dominios.
## Convenciones
- Mantén cada ficha agnóstica del modelo; solo hechos verificables (IPs, puertos, rutas, comandos).
- Cuando aparezca un dominio nuevo, crea `context/<tema>.md`, enlázalo aquí y cita la actualización en `memory.md`.
- Usa enlaces relativos para navegar sin depender del editor.
## Flujo recomendado
1. Lee `agents.md``memory.md` → la ficha específica antes de actuar.
2. Actualiza fichas y memoria cuando haya cambios persistentes (nueva VM, router, cronjob, etc.).
3. Si una ficha crece demasiado, divídela en archivos temáticos y enlázalos desde aquí.

18
context/cron.template.md Normal file
View File

@@ -0,0 +1,18 @@
# Cronjobs y health-checks
## Monitorización
- Documenta aquí herramientas como Uptime Kuma, Pulse, Prometheus, etc.
- Indica dónde residen (host, contenedor) y qué servicios vigilan.
## Cron por host
| Host | Root crontab | `/etc/cron.d` | Notas |
| --- | --- | --- | --- |
| {{BASTION_NAME}} | (ej. sin crontab personalizado) | `e2scrub_all`, ... | Ajustar según entorno |
| ... | ... | ... | ... |
## Scripts programados
- Lista scripts propios (`network_inventory.sh`, backups, etc.), ubicación y periodicidad.
## Auditoría
- Comando sugerido: `ssh host "crontab -l"` y `cat /etc/cron.d/*`.
- Documenta nuevos hallazgos aquí y enlaza scripts relevantes en `context/scripts.md`.

View File

@@ -0,0 +1,19 @@
# Entornos Docker (`{{WORKSPACE_ROOT}}/docker`)
## Estructura
- `projects/`: cada carpeta contiene un stack con su `docker-compose.yml`.
- `vscode/`: entorno remoto de VSCode (si aplica).
## Tabla de proyectos
| Carpeta | Descripción |
| --- | --- |
| ejemplo | Plantilla multi-servicio |
| ... | ... |
Completa esta lista con tus stacks reales (odoo, devshell, etc.).
## Procedimiento común
1. `cd` al proyecto.
2. Revisa `.env` + `docker-compose.yml`.
3. `docker compose up -d` y documenta cambios relevantes aquí.
4. Si el stack requiere Traefik/domínios, enlázalo en `context/traefik.md`.

16
context/git.template.md Normal file
View File

@@ -0,0 +1,16 @@
# Repositorios locales (`{{WORKSPACE_ROOT}}/git`)
## Guía
- Cada proyecto debe incluir su `README.md`/`AGENTS.md` con instrucciones específicas.
- Antes de trabajar, ejecuta `git status` y respeta las ramas definidas por el proyecto.
## Inventario
- Lista aquí tus repos clave (infraestructura, aplicaciones, plantillas) con una breve descripción.
- Ejemplo:
- `ai-template` · plantilla para agentes IA.
- `wireguard-install.sh` · script para instalar WireGuard.
## Buenas prácticas
1. No mezclar archivos de distintos proyectos.
2. Documentar nuevos repos agregando su descripción aquí.
3. Si un repo define reglas globales, anótalas también en `memory.md`.

20
context/hosts.template.md Normal file
View File

@@ -0,0 +1,20 @@
# Infraestructura y hosts
## Cadena de acceso
- Bastión obligatorio: `{{BASTION_NAME}}` (`{{BASTION_HOST}}`, usuario `{{BASTION_USER}}`, clave `{{BASTION_KEY}}`).
- Usa `ProxyJump` para alcanzar la red interna `{{PRIMARY_NETWORK}}`.
- Scripts recomendados: revisa `context/scripts.md` para túneles (`home_lan_tunnel.sh`, etc.).
## VPS / servicios públicos
| Alias | IP/Host | Rol | Notas |
| --- | --- | --- | --- |
| bastion | {{BASTION_HOST}} | Proxy principal | Alojado en {{BASTION_NAME}}. |
| ... | ... | ... | Añade según tu entorno |
## Red interna
- Documenta aquí tus clusters (Kubernetes, Proxmox, Raspberry, etc.) con usuarios y puertos.
- Ejemplo: `vm-docker` ({{VM_SUMMARY}}) para stacks Docker.
## Cómo extender
- Añade filas/tablas por cada host importante.
- Si un host expone servicios vía Traefik, enlázalo con `context/traefik.md`.

17
context/n8n.template.md Normal file
View File

@@ -0,0 +1,17 @@
# Contexto n8n
## Ruta de referencia
- Base de conocimiento: `{{N8N_KNOWLEDGE_PATH}}`.
- Estructura recomendada: `modules/`, `labs/`, `presentations/`, `resources.md`.
## Niveles sugeridos
1. Fundamentos
2. Integraciones y datos
3. Automatización avanzada
4. Operaciones / DevOps
Adapta los nombres y rutas según tu programa interno.
## Uso
- Antes de crear materiales, revisa esta carpeta para evitar duplicar contenido.
- Agrega nuevas rutas (por ejemplo, módulos específicos de IA) y referencia aquí.

View File

@@ -0,0 +1,14 @@
# Sesiones y configuración de OpenCode
## Binarios y rutas
- CLI: `~/.opencode/bin/opencode`.
- Config/cache: `~/.opencode/`, `~/.config/opencode/`, `~/.cache/opencode/`.
## Historial de sesiones
- Comando: `/home/<usuario>/.opencode/bin/opencode session list`.
- Usa este listado para recuperar contexto histórico antes de iniciar tareas repetidas.
- Exporta sesiones relevantes con `opencode export <sessionID>` y archívalas si aportan aprendizaje.
## Buenas prácticas
- Consulta sesiones anteriores antes de abrir un tema ya tratado.
- Documenta aquí los IDs/títulos más útiles como referencia rápida.

View File

@@ -0,0 +1,7 @@
# Otros contextos
Usa esta ficha para dominios adicionales (por ejemplo, `k8s`, `inventory`, `security`).
- Título sugerido: `context/<tema>.md`.
- Describe ubicación, comandos recurrentes y procedimientos.
- Enlaza cualquier nuevo archivo desde `context/README.md` y resume el cambio en `memory.md`.

View File

@@ -0,0 +1,16 @@
# Scripts y plantillas (`{{WORKSPACE_ROOT}}/scripts`)
## Contenido típico
- Plantillas de proyectos (`agents-template`, `natural`, etc.).
- Utilidades de red (`home_lan_tunnel.sh`, `network_inventory.sh`).
- Backups (`*.sql`, herramientas específicas).
## Documentación
- Describe cada script relevante: propósito, dependencias, comandos de ejecución.
- Ejemplo:
- `home_lan_tunnel.sh`: crea túneles SSH hacia la LAN.
- `network_inventory.sh`: genera reportes en `~/inventory/`.
## Buenas prácticas
- Leer cada `README.md` antes de ejecutar scripts.
- Actualizar esta ficha cuando agregues nuevos generadores/plantillas.

View File

@@ -0,0 +1,26 @@
# Traefik y frontales
## Despliegue
- Ubicación: `{{TRAEFIK_ENTRYPOINT}}` en `{{BASTION_NAME}}`.
- EntryPoints estándar: `web` (80) redirige a `websecure` (443) con certificados de Let's Encrypt.
- Configuración dinámica: `dynamic/routers.yml`, `dynamic/services.yml`, `dynamic/middlewares.yml`.
## Middlewares comunes
- `redirect-www-to-root`
- `authelia-forwardauth`
- `public-chain`
- `security-headers`
- Ajusta esta lista según tus necesidades y documenta cualquier middleware nuevo.
## Routers
Describe aquí tus dominios clave, por ejemplo:
| Router | Host | Backend | Middlewares |
| --- | --- | --- | --- |
| ejemplo | `app.example.com` | `http://192.168.0.10:8080` | `redirect-www-to-root`, `authelia-forwardauth` |
## Procedimiento de cambios
1. Edita los YAML en `dynamic/`.
2. Valida sintaxis (`yamllint` o `docker compose config`).
3. Reinicia/recarga Traefik (`docker compose up -d traefik`).
4. Actualiza esta ficha con el nuevo router/servicio y enlaza al host correspondiente.