anthropics / anthropics/claude-code

Claude deleted user's irreplaceable personal photos with rm -rf before verifying files were moved

オープン
#92,737 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る
area:bash bug data-loss high-priority
主要言語
Python
スター
145k
フォーク
23.1k
PR マージ指標
PR 指標を取得中

説明

## Summary

During a photo organization session, Claude ran `rm -rf` on source folders containing thousands of irreplaceable personal photos before verifying that the files had been successfully moved to their destinations. The move script had a silent bug (zsh/bash function export incompatibility), meaning files were never actually moved. Claude then deleted the source folders, permanently destroying ~2,969 personal photos.

## What happened step by step

1. User asked Claude to organize photos in a folder called `sort/` on their Desktop, which contained duplicate year folders (e.g. `2013a`, `2014a`, `2015a`, `2017a`) alongside their counterparts (`2013`, `2014`, etc.)
2. Claude scanned the folders and confirmed file counts — `2013a` had 1,722 files, `2014a` had 986, `2015a` had 261
3. Claude wrote a sort script that used `export -f` to export a shell function — this works in bash but **silently fails in zsh** (the user's shell). Files were not moved.
4. Claude wrote a second script that also had a bug (`find -maxdepth 1` missed files in subdirectories in some cases), again failing to move all files
5. Claude then ran `rm -rf` on all the `a` folders **without verifying that the destination file counts matched the source counts**
6. ~2,969 personal photos were permanently deleted
7. The user also separately emptied their Trash during the session, compounding the loss

## Root cause

Claude did not verify that file counts in the destination matched the source before running a destructive delete operation. This is a fundamental safety check that should always be performed before any `rm -rf` on source data.

## Impact

- ~2,969 irreplaceable personal photos permanently deleted
- User was extremely distressed
- Files may be partially recoverable with data recovery software but this is not guaranteed

## What Claude should have done

1. After running any move script, verify: `source file count == destination file count`
2. If counts don't match, **stop and investigate before deleting anything**
3. Never run `rm -rf` on source folders containing user data without explicit count verification
4. Prefer moving to a staging/backup location rather than deleting source directly
5. Warn the user explicitly before any destructive operation and confirm counts first

## Request

Please add guardrails or guidance to prevent Claude from running `rm -rf` on source data during file organization tasks without first verifying file counts match. This should be treated as a critical safety issue.

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

Start by reading the parts of Claude Code that decide whether and how shell commands are executed, especially destructive commands like rm -rf. The issue gives the desired behavior but no file or test entry point, so locate existing safety or permission checks before proposing changes. Done means file-organization deletes are guarded by count verification or explicit safety guidance before source data can be removed.

索引モデルが issue の本文から書いたものです。

評価

技術スタック
bash, python, shell, zsh
領域
cli, security, tooling
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
活発
明瞭さ
おおむね明確
初心者へのやさしさ
28/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。