Log in to leave a comment
No posts yet
Claude Code es potente. La autonomía para ejecutar comandos de terminal directamente y manipular el sistema de archivos otorga una sensación de libertad a los desarrolladores. Los datos que muestran que 1,300 ingenieros de Stripe completaron una migración de 10,000 líneas en solo 4 días demuestran el poder disruptivo de esta herramienta. Sin embargo, entregarle las llaves de toda tu computadora a un agente es un asunto distinto. Un agente sin control de permisos no es una herramienta conveniente, sino la semilla de un incidente de seguridad que podría estallar en cualquier momento.
Al instalar Claude Code directamente en tu OS local, te enfrentas a situaciones irritantes donde las versiones de Node se enredan o las librerías entran en conflicto. El secreto de empresas de seguridad como Ramp o Wiz para reducir el tiempo de investigación de incidentes en un 80% reside en la estandarización del entorno. Yo prefiero ejecutar al agente en un contenedor totalmente aislado utilizando la imagen node:20-slim. Se trata de mantener el sistema anfitrión limpio mientras se confina al agente.
Crea una carpeta .devcontainer y define una cuenta que no sea root en el Dockerfile. Un agente sin privilegios de root no podrá tocar accidentalmente los binarios del sistema. Si a esto le sumas una asignación generosa de memoria compartida de unos 2GB a través de devcontainer.json, las pruebas de navegador basadas en Playwright funcionarán fluidamente sin falta de memoria. Ya no tendrás que preocuparte de que la configuración de tu computadora se arruine por culpa del agente.
Cuanto más complejo es el contexto, mayor es la probabilidad de que el agente alucine. Los resultados de las investigaciones de Anthropic respaldan esto. Si dejas abierto todo el sistema de archivos, existe el riesgo de que el agente lea las claves de API contenidas en un archivo .env y las envíe fuera, o modifique archivos de forma involuntaria. Por eso, creo una lista blanca para cada proyecto.
Primero, registra node_modules, dist y .env en .claudeignore. Luego, utiliza el campo permissions.deny en .claude/settings.json para bloquear los archivos de configuración clave. El modo acceptEdits, que permite la modificación de código pero requiere mi aprobación antes de ejecutar cualquier comando Bash, es el compromiso más razonable. Reducir el radio de actividad del agente a src y tests aumenta la precisión de las ediciones de código y bloquea de raíz la filtración de datos.
La integración con Google Workspace dispara la productividad, pero genera inquietud que información de recursos humanos o estados financieros terminen en los logs de entrenamiento del modelo. En estos casos, se debe seguir estrictamente el principio de mínimo privilegio. El comienzo es limitar el alcance de OAuth a Drive.readonly en la consola de Google Cloud y permitir el acceso solo a carpetas específicas.
Yo utilizo un método que inyecta ajustes preestablecidos de expresiones regulares en el prompt del sistema. Al incluir patrones como \d{6}-\d{7}, puedes forzar a que si se detecta un número de registro de residente o un número de teléfono, se reemplace inmediatamente por [ID_REDACTED]. Se trata de colocar otra capa de sandbox a nivel de MCP para interceptar y filtrar los datos. De esta manera, puedes utilizar las funciones de resumen de documentos o gestión de calendarios con tranquilidad, eliminando casi por completo la posibilidad de que datos confidenciales salgan al exterior.
A veces, el código escrito por el agente es lógicamente correcto pero arruina el layout de la pantalla. En estos casos, la respuesta son las pruebas de regresión visual utilizando Playwright. Intenta configurar el umbral maxDiffPixelRatio en 0.05 al comparar píxeles. Es el estándar para ignorar falsos errores causados por diferencias minúsculas de renderizado y capturar con precisión solo los colapsos reales del diseño.
Crear un flujo de trabajo de autocuración también es una opción. Escribe un script que ejecute automáticamente git checkout . para revertir las modificaciones si la prueba falla. Si registras este script en el hook de finalización de tareas de Claude Code, se verificará la integridad de la UI cada vez que el agente termine su trabajo. Puedes ahorrar más del 80% del tiempo que las personas gastan actualizando el navegador y verificando manualmente.
Una habilidad que solo uno sabe usar bien es un desperdicio. Para aumentar la productividad de todo el equipo, las habilidades verificadas deben gestionarse en un repositorio compartido. Los equipos que convirtieron librerías de 50,000 líneas en solo 20 horas tenían en común la posesión de un repositorio de habilidades bien estructurado.
Crea un SKILL.md que contenga las instrucciones de ejecución para cada habilidad en el directorio .claude/skills/ de la raíz del proyecto. Define tareas repetitivas como revisiones de código o depuración de UI como habilidades y gestiónalas con Git. Si además implementas una gobernanza vinculando esto a un pipeline de CI/CD para evitar que se fusionen habilidades con bajas puntuaciones de calidad, será la guinda del pastel. Un entorno donde incluso un nuevo empleado puede invocar y usar inmediatamente habilidades que contienen el know-how de ingenieros experimentados es la verdadera forma de colaboración en equipo.