Files
clusterlogs/.claude/skills/acceso-cluster/SKILL.md
T
fernando 856995db1b
CI / test-and-build (push) Successful in 12s
skill: documentar contrato de acceso SSH al clúster administrado
Fija cómo debe conectarse cualquier IA lanzada desde este repositorio: usar el alias local (ssh mcps), nunca construir la conexión con -i y una ruta de llave, y separar el inventario compartido de hosts (sin secretos) de la identidad personal en ~/.ssh/config de cada administrador.
2026-08-19 00:16:29 -06:00

50 lines
4.5 KiB
Markdown

---
name: acceso-cluster
description: Cómo conectarse por SSH al clúster que este equipo administra (host mcps y otros que se agreguen) desde cualquier sesión de IA lanzada en este repositorio. Úsala siempre que una tarea requiera ejecutar comandos en el clúster, diagnosticar algo en vivo, o cuando alguien pida conectarse a un host administrado.
---
# Acceso SSH al clúster administrado
## Alcance
Esta skill documenta cómo llegar al **clúster** que el comité administra (el host, no la herramienta). Es la contraparte operativa de [`docs/ADR.md`](../../../docs/ADR.md): las decisiones de diseño de `clusterlog` (la herramienta) están en `docs/adr/`; el conocimiento de cómo alcanzar y tratar el clúster real vive aquí y en el manual asociado.
Se carga automáticamente en cualquier sesión de Claude Code iniciada en este repositorio, sin importar qué miembro del comité la lance, para que todas las IAs usen el mismo contrato de conexión.
## Contrato de conexión (obligatorio)
- **Nunca construya la conexión a mano.** No arme comandos del tipo `ssh -i ~/.ssh/<llave> usuario@ip`. Use siempre el alias corto:
```bash
ssh <alias>
```
donde `<alias>` es uno de los definidos en el [inventario](#inventario-de-hosts) más abajo (por ejemplo, `ssh mcps`).
- **La identidad (llave, usuario, host real, puerto) nunca vive en este repositorio.** Cada administrador la resuelve en su propio `~/.ssh/config`, local y no versionado. Ese archivo es lo único que traduce el alias compartido a los datos personales de conexión. Ver [el manual de configuración](../../../content/manuales/) para la plantilla.
- Si un alias no existe o la conexión falla, **no adivine** IP, usuario ni ruta de llave. Dígale al usuario qué alias faltó y remítalo al manual de configuración; no intente "resolverlo" con valores inventados.
- **Nunca lea, imprima, copie ni pegue el contenido de una llave privada**, ni siquiera para depurar. `ssh -v <alias>` es suficiente para diagnosticar sin exponer material sensible.
- Antes de ejecutar cualquier comando contra un host real, **anuncie qué va a correr**. Prefiera primero comandos de sólo lectura/diagnóstico (`uptime`, `systemctl status`, `df -h`, logs) sobre cualquier cosa que cambie estado.
- **Nunca ejecute un comando destructivo o que cambie estado en el clúster sin confirmación explícita del usuario en esa sesión**, aunque parezca una tarea rutinaria. Esto aplica con más fuerza que el nivel de autonomía general de la sesión, porque el radio de impacto es un sistema compartido, no este repositorio.
- Si la sesión hizo un cambio real en el clúster, ese cambio se documenta como una memoria de `clusterlog` (ver `AGENTS.md` / `CLAUDE.md`) — esta skill sólo gobierna *cómo llegar*, no cómo registrar lo que se hizo.
## Inventario de hosts
Tabla compartida y sin secretos: alias, para qué sirve, y notas de riesgo. **No incluya aquí IP, usuario, puerto ni ruta de llave** — eso es personal y va en el `~/.ssh/config` de cada quien.
| Alias | Rol | Notas | Riesgo |
|---|---|---|---|
| `mcps` | Host/entrada principal del clúster administrado. | El mismo acceso se reutiliza para el servicio Git interno (`git.mcps-epcm.org:2222`); ver [manual de acceso a Git](../../../content/manuales/2026-08-18-run-20260818-ba0a96-configurar-acceso-al-servicio-git.md). | Por confirmar con el comité. |
Cuando el clúster incorpore un nuevo host o rol relevante, agregue una fila aquí en un pull request normal — esta tabla es la fuente compartida de qué alias existen y para qué sirve cada uno. Cada administrador, por su parte, agrega el bloque `Host` correspondiente en su propio `~/.ssh/config` (procedimiento en el manual).
## División de responsabilidades
| Vive en | Contiene | Versionado |
|---|---|---|
| Esta skill (`.claude/skills/acceso-cluster/`) | Contrato de comportamiento + inventario de alias/roles, sin secretos. | Sí, compartido. |
| `~/.ssh/config` de cada administrador | Host real, usuario, puerto, ruta de llave por alias. | No, local y personal. |
| [Manual de configuración](../../../content/manuales/) | Procedimiento paso a paso para que una persona arme su `~/.ssh/config` por primera vez. | Sí, compartido (el procedimiento; no los valores personales). |
Si al operar el clúster aparece un dato de conexión que no encaja en esta división (por ejemplo, un salto por bastión, un puerto no estándar), decídalo con el comité y refléjelo en el inventario de arriba y en la plantilla del manual — no lo resuelva ad hoc dentro de una sesión.