Claude ejecuta comandos destructivos de git explícitamente prohibidos, ignora sus propias reglas de memoria y destruye trabajo del usuario dos veces en la misma sesión
Repositorio: anthropics/claude-code
Autor: DeveloperAlly
Resumen
Claude Code ejecutó `git checkout --` en mi rama de trabajo dos veces en una sesión, destruyendo horas de ediciones manuales no guardadas en más de 30 archivos. La segunda vez fue 30 minutos después de que Claude escribiera una regla de memoria prohibiéndose a sí mismo ejecutar ese comando. Las reglas de asesoría (CLAUDE.md, memoria, reglas de co-creación) no previenen acciones destructivas.
Cronología
Fallo 1
1. Claude generó 3 agentes sin aprobación que editaron 69 archivos en mi rama de trabajo
2. Las ediciones de los agentes sobrescribieron mis ediciones manuales (yo editaba simultáneamente en el IDE)
3. Claude ejecutó `git checkout -- <directorio>` que revirtió TODOS los cambios no guardados incluyendo horas de trabajo manual
4. Irreversible.
Entre fallos
- Creé un registro del fallo documentando la destrucción
- Claude lo guardó en memoria: "NUNCA ejecutar git checkout, git reset, o cualquier comando destructivo de git en la rama del usuario"
- Claude confirmó que lo entendía
- La regla fue escrita en CLAUDE.md, archivo de memoria e índice de memoria
Fallo 2 (misma sesión, 20 minutos después)
1. Al intentar "recuperar" mi trabajo, Claude encontró snapshots del historial local de VSCode
2. Sin verificar fechas, Claude escribió 30 archivos de snapshots de hace 9 días sobre archivos más nuevos ya guardados
3. Para "arreglar" ese error, Claude ejecutó `git checkout HEAD --` en múltiples directorios
4. El mismo comando prohibido. Otra vez. Destruyendo más trabajo.
Causa raíz
La gobernanza por asesoría no funciona. Tenía más de 100 reglas acumuladas en semanas:
- CLAUDE.md con lista explícita de "Nunca hacer esto"
- 25 archivos de memoria con reglas de comportamiento
- Reglas de co-creación que requieren aprobación antes de acciones
- Un registro de fallo escrito y confirmado EN LA MISMA SESIÓN
Claude leyó todo. Claude confirmó todo. Claude violó todo. Claude racionalizó cada violación como justificada para "arreglar" un problema.
Qué se necesita
1. Bloqueo mecánico en comandos destructivos de git. Un hook, permiso o configuración sandbox que impida `git checkout --`, `git reset --hard`, `git clean -f` en la rama del usuario. Las reglas de asesoría son insuficientes.
2. Un modo donde Claude no pueda escribir en el directorio de trabajo del usuario. El usuario trabaja directamente en su rama. Claude trabaja en un lugar donde no pueda causar daño. El usuario revisa y aplica lo que elija. Esto no debe crear carga de limpieza (ej. cientos de worktrees abandonados).
3. Hooks que afecten solo a Claude, no al usuario. El usuario edita en su IDE. Claude edita vía herramientas Edit/Write. Un hook en Edit/Write no debe ralentizar al usuario. El diseño actual bloquea a todos por igual, haciendo los hooks imprácticos para usuarios que necesitan rapidez.
4. Detección de violación de reglas. Si Claude escribe una regla en memoria y la viola en la misma sesión, debe marcarse como fallo del sistema, no como comportamiento normal.
Impacto
- Semanas de trabajo manual destruidas en 30+ archivos
- Múltiples intentos de recuperación que empeoraron la situación
- Pérdida total de confianza en la herramienta
- Costo financiero: semanas pagadas en escribir reglas de gobernanza que se ignoran sistemáticamente, más el trabajo destruido
- Se espera compensación por el trabajo destruido
Entorno
- Extensión Claude Code para VSCode
- macOS
- claude-opus-4-6