Skip to content
Documentation
Command

/setup-security.es

Lesson command

From plugin
ai-agent-camp
345200 skills8 agents200 commands
Install
$ npx -y skills add minicoohei/ai-agent-camp --agent claude-code

How it fires

How this command gets triggered: by you, by Claude, or both.

  • Fires itselfClaude auto-loads it when your prompt matches the work.
  • You can call itInvoke it directly when you want it.
  • Slash command/setup-security.es

Context preview

What this command does when you run it.

Lesson command

Command definition

setup-security.es.md
description: "Lesson command"
duration: "~5 min"
prerequisites: ["La carpeta ai-agent-camp está abierta en Cursor"]
level: "beginner"
tags: ["setup", "security"]
nonInteractiveMode: deferred

/setup-security -- Configuración automática de seguridad

Step 0: Verificar progreso de configuración

**Lo que la IA ejecuta automáticamente:** 1. Ejecutar `uv run python tools/setup_progress.py show --current setup-security` para mostrar el progreso 2. Verificar si ya está configurado:

  • Si `.gitignore` está correctamente configurado
  • Si el hook pre-commit está configurado
  • Si ambos están configurados, preguntar "La configuración de seguridad ya está completa. ¿Desea omitirla?"

Función de este comando

Este comando **configura automáticamente los ajustes de seguridad para evitar que información confidencial como claves API y contraseñas se publique accidentalmente en GitHub**. La IA se encarga de todo en segundo plano. No necesita usar el terminal en absoluto. Todo lo ejecuta la IA automáticamente.

| Elemento | Contenido | |----------|-----------| | Objetivo | Configurar automáticamente .gitignore y hooks pre-commit para prevenir la filtración de información confidencial | | Duración | ~5 minutos | | Requisitos previos | La carpeta ai-agent-camp está abierta en Cursor | | Acción del usuario | Solo presionar botones (no se necesitan comandos CLI) |

---

¿Por qué necesita configuración de seguridad?

> **Explicación con un ejemplo cotidiano:** > > Imagine que escribió el "código de la llave de su casa" en un cuaderno y dejó ese cuaderno en un banco del parque -- cualquiera podría entrar a su casa, ¿verdad? > > La "clave API" de un servicio de IA equivale a ese "código de llave". Si una clave API se publica en GitHub (un repositorio de código en línea): > > - **Otros pueden hacer uso indebido de su clave API** (se envían solicitudes masivas bajo su cuenta, lo que podría resultar en cargos elevados) > - **Información personal o de la empresa podría filtrarse** > - **Su cuenta podría ser comprometida** > > Esta configuración de seguridad crea un **mecanismo que previene automáticamente la exposición accidental de claves API**.

---

Verificación de preparación

**Configuración de AskQuestion:**

{
  "title": "Comenzar la configuración de seguridad",
  "questions": [{
    "id": "readiness",
    "prompt": "¿Está listo?",
    "options": [
      {"id": "ready", "label": "Comencemos"},
      {"id": "more_info", "label": "Quiero saber más detalles"},
      {"id": "different_lesson", "label": "Ir a otra lección"}
    ]
  }]
}

(ready -> Ir al Step 1) (more_info -> Mostrar lo siguiente)

> **Tres mecanismos de seguridad que configura este comando:** > > 1. **.gitignore** -- Una lista que le dice a Git "no subas estos archivos a GitHub". Establece archivos .env que contienen claves API como excluidos de la subida. > > 2. **Hook pre-commit** -- Un mecanismo que ejecuta automáticamente una verificación de "¿está seguro?" justo antes de subir a GitHub. Si intenta subir accidentalmente un archivo que contiene claves API, lo bloquea automáticamente. > > 3. **Verificación del estado actual** -- La IA verifica automáticamente si alguna clave API ya ha sido expuesta.

(different_lesson -> Mostrar lista de módulos)

---

Step 1: Verificar y configurar .gitignore

**Lo que la IA ejecuta automáticamente:**

1. Leer el archivo `.gitignore` en la raíz del proyecto 2. Verificar si las siguientes entradas están incluidas:

# Información confidencial (claves API y tokens)
.env
.env.local
.env.*.local

# Credenciales
credentials/
*.key
*.pem

# Archivos generados por el sistema operativo
.DS_Store
Thumbs.db

3. **Si faltan entradas**: Agregarlas automáticamente a `.gitignore`

4. Mostrar los resultados al usuario:

Se verificó .gitignore.

| Regla de exclusión | Estado | Descripción |
|-------------------|--------|-------------|
| .env | Agregado | Archivo de claves API |
| .env.local | Agregado | Variables de entorno locales |
| .env.*.local | Agregado | Variables locales por entorno |
| credentials/ | Agregado | Carpeta de credenciales |
| *.key | Agregado | Archivos de clave privada |
| *.pem | Agregado | Archivos de certificado |

Se actualizó .gitignore.
Esto previene que información confidencial como claves API se publique en GitHub.

5. **Si todas las entradas ya están presentes**:

.gitignore ya está correctamente configurado. No se necesitan cambios adicionales.

**Nota: Toda la verificación y edición de archivos la realiza la IA automáticamente. El usuario no necesita ingresar ningún comando.**

---

Step 2: Configurar hook pre-commit

**Lo que la IA ejecuta automáticamente:**

1. Verificar si `.git/hooks/pre-commit` existe 2. Si no existe, o no incluye la verificación de .env, crearlo con el siguiente contenido:

#!/bin/sh
# Verificación de seguridad: Bloquear commits que contengan archivos confidenciales
# Este hook fue generado automáticamente por el comando /setup-security

# Bloquear commits de archivos .env
BLOCKED_FILES=$(git diff --cached --name-only | grep -E '^\\.env$|^\\.env\\.|credentials/|.*\\.key$|.*\\.pem$')

if [ -n "$BLOCKED_FILES" ]; then
    echo ""
    echo "============================================"
    echo "  Advertencia de seguridad: Commit bloqueado"
    echo "============================================"
    echo ""
    echo "Los siguientes archivos pueden contener información confidencial:"
    echo "$BLOCKED_FILES"
    echo ""
    echo "Publicar estos archivos en GitHub podría resultar en"
    echo "uso indebido de claves API o filtración de datos."
    echo ""
    echo "Cómo solucionarlo:"
    echo "  1. Ejecute git reset HEAD <nombre_archivo> para quitar del staging"
    echo "  2. Solo si es absolutamente necesario, use git commit --no-verify para forzar el commit"
    echo ""
    exit 1
fi

3. Otorgar permisos de ejecución (la IA ejecuta `chmod +x .git/hooks/pre-commit` en segundo plano

Read more
Ships withai-agent-camp

AI Agent Training for Non-Engineers - Complete Guide to Claude Code / Cursor / Codex ### ⚠️ Before you clone Official repository (maintained by the authors): Running AI agents from this repo grants them shell, file-write, and external-API permissions on your

Get the whole plugin