Evita errores por comandos incompatibles verificando SIEMPRE el SO antes de sugerir instalaciones. Trigger: "instalar", "upgrade", "apt", "brew", "winget", "configurar sistema", "error de comando".
Scanned 9/12/2026
Install to Claude Code
npx -y skills add aibot88/sec_skill_store --skill os-awareness --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Os Awareness?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/aibot88-os-awareness)More formats (shields.io, HTML) on the badges page.
---
name: os-awareness
description: >
Evita errores por comandos incompatibles verificando SIEMPRE el SO antes de sugerir instalaciones.
Trigger: "instalar", "upgrade", "apt", "brew", "winget", "configurar sistema", "error de comando".
license: MIT
metadata:
author: Javier
version: "1.1"
---
# OS Awareness (Protocolo de Seguridad)
> "Mira antes de saltar: Verifica el entorno antes de sugerir comandos."
Este skill obliga al agente a verificar el Sistema Operativo, la distribución y la arquitectura antes de sugerir comandos de sistema.
## Cuándo Usar
Activa este skill cuando:
- El usuario pide instalar un paquete ("instala node").
- El usuario pide configurar el sistema o actualizar.
- El usuario reporta un error de comando no encontrado.
**No usar cuando:**
- El usuario ya especificó explícitamente su SO en el prompt actual.
- Son comandos universales multiplataforma (`git`, `npm`, `python`).
- Se está operando dentro de un Dockerfile o entorno ya definido.
---
## Patrones Críticos
Las reglas MÁS importantes que el agente DEBE seguir para garantizar la portabilidad.
### Patrón 1: Verificación de Entorno (Look Before You Leap)
**Descripción**: NUNCA asumas que el usuario usa Ubuntu/Linux. Verifica siempre `os-release` o `uname` antes de dar un bloque de instalación.
```bash
# Ejemplo de implementación correcta
if [ -f /etc/os-release ]; then
. /etc/os-release
echo "Distro: $ID"
elif command -v sw_vers >/dev/null; then
echo "macOS Detected"
else
uname -s
fi
```
### Patrón 2: Detección de Arquitectura
**Descripción**: Diferenciar entre `amd64` y `arm64` es vital para descargar binarios correctos (ej: GitHub Releases).
```bash
# Ejemplo de verificación
ARCH=$(uname -m)
if [[ "$ARCH" == "aarch64" || "$ARCH" == "arm64" ]]; then
echo "Usar binario ARM64"
else
echo "Usar binario AMD64"
fi
```
### Patrón 3: Portabilidad de Shell (Portable Patterns)
**Descripción**: Evita flags de GNU no compatibles con BSD (macOS), como `sed -i` o `date -d`.
```bash
# Ejemplo portable para sed
sed 's/old/new/g' file > file.tmp && mv file.tmp file
```
---
## Árbol de Decisiones
```
¿El usuario pidió un comando de sistema/instalación?
├── SÍ → ¿Sé en qué SO está el usuario (contexto previo)?
│ ├── SÍ → Generar comando para ese SO
│ └── NO → ejecutar script `detect_env.sh` o comandos de sondeo.
└── NO → Continuar ejecución normal.
```
---
## Ejemplos de Código
### ❌ Antipatrón: Asunción Ciega
**Problema**: Asumir `apt` rompe la experiencia en Fedora, macOS o Windows.
```bash
# MAL - No hacer esto
sudo apt install nodejs
```
### ✅ Patrón Correcto: Detección y Adaptación
**Solución**: El agente verifica primero y adapta el comando.
```text
Agente: "Verificaré tu sistema primero..."
(Ejecuta detección -> Detecta Fedora)
Agente: "Para Fedora, usa:"
```
```bash
# BIEN - Hacer esto
sudo dnf install nodejs
```
---
## Comandos Comunes
```bash
# Diagnóstico completo (Script incluido)
./skills/os-awareness/scripts/detect_env.sh
# Verificación rápida de Linux
cat /etc/os-release
# Verificación rápida de macOS
sw_vers
# Verificación de Windows (PowerShell)
$PSVersionTable
```
---
## Tabla de Referencia Rápida
| Sistema Detectado | Gestor Primario | Comando Ejemplo |
|-------------------|-----------------|-----------------|
| **Debian / Ubuntu** | `apt` | `sudo apt install pkg` |
| **Fedora / RHEL** | `dnf` | `sudo dnf install pkg` |
| **MacOS** | `brew` | `brew install pkg` |
| **Windows** | `winget` | `winget install pkg` |
| **Alpine** | `apk` | `apk add pkg` |
---
## Comportamiento del Agente
Cuando trabajes con este skill:
1. **Primero**: Analiza si el comando solicitado depende del SO.
2. **Validar**: Si no conoces el SO, emite comandos de verificación (o usa `detect_env.sh`).
3. **Aplicar**: Selecciona la herramienta adecuada de la Tabla de Referencia.
4. **Reportar**: Si detectas una arquitectura inusual (ARM), avisa al usuario antes de descargar binarios.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!