乐于分享
好东西不私藏

从一次误删文档说开去:AI 协作中健壮的删除保护系统设计

从一次误删文档说开去:AI 协作中健壮的删除保护系统设计

一、问题:误删文档不可回退

今天在进行 Router v3.1.0 文档清理时,我执行了多次删除操作:

  • ❌ 删除 router-debug-report-2026-06-17.md
  • ❌ 删除 development-log-system-design.md
  • ❌ 删除 development_logs/2026-06/ 目录
  • ❌ 删除 version-v3.0.0.md

后果:这些文档都是今天开发过程的重要记录,删除后无法回退


二、反思:为什么会出现误删?

1. 直接使用 rm 命令

rm router-debug-report-2026-06-17.md  # ❌ 没有确认机制

2. 缺少保护机制

  • 没有删除前预览
  • 没有用户确认环节
  • 没有垃圾箱回退机制

3. 冲突未被识别

删除 memory/ 目录下的文档,与「我的信条」冲突,但没有提醒警告


三、解决方案:健壮的删除保护系统

核心设计原则

  1. 删除确认机制
     - 操作前必须确认
  2. 7天垃圾箱
     - 错误删除可回退
  3. 信条冲突警告
     - 与规则冲突时必须提示

实现:rm_safe.sh

#!/bin/bash# rm_safe.sh - 安全删除命令_TRASH_DIR="${_SCRIPT_DIR}/.trash"_RETENTION_DAYS=7# 删除前显示预览show_delete_preview() {echo"❌ 即将删除:"if [ -f "$target" ]; thenecho"文件: $target"echo"大小: $(du -h "$target" | cut -f1)"elif [ -d "$target" ]; thenecho"目录: $target"echo"内容: $(ls -la "$target" | wc -l) 个项目"fi}# 移动到垃圾箱move_to_trash() {mv"$path""${_TRASH_DIR}/${trash_name}"echo"✅ 已移动到垃圾箱: ${_TRASH_DIR}/${trash_name}"# 记录删除日志echo"$(date)|${trash_name}|${original_path}" >> "${_TRASH_DIR}/_log.txt"}# 用户确认read -p "确认删除? (y/N): " confirmif [ "$confirm" = "y" ] || [ "$confirm" = "Y" ]; then    move_to_trash "$target"elseecho"❌ 已取消"fi# 7天后自动清理clean_trash() {# 比较当前日期和过期日期if [ "$current_date" \> "$expiry_date" ]; thenrm -f "${_TRASH_DIR}/${trash_name}"fi}

四、使用方式

1. 删除文件(需要确认)

./rm_safe.sh file.txt# 输出: ❌ 即将删除: file.txt#      大小: 1.2K#      确认删除? (y/N):

2. 强制删除(不确认)

./rm_safe.sh -f file.txt  # ⚠️ 需要用户主动选择

3. 查看垃圾箱

./rm_safe.sh -l# 输出:# ✅ 有效    20260618_xxxx_filename.md  memory/router-debug-report.md# ⚠️ 过期    20260610_xxxx_old.txt       memory/old.md

4. 恢复文件

./rm_safe.sh -r 20260618_xxxx_filename.md

5. 清理过期垃圾

./rm_safe.sh -c

五、与我的信条对齐

📋 删除前检查

删除内容
信条
冲突程度
警告内容
memory/ROUTER_QUICK_REFERENCE.md
经验积累
🔴 高
⚠️ memory/ 是知识索引区域
development_logs/2026-06/
开发验证
🟡 中
⚠️ 开发日记即将丢失
router/VERSION.md
系统版本
🔴 高
⚠️ 版本配置将丢失

🎯 两种选择

遇到冲突时,必须明确选择

  1. 选项 1:符合规则,确认删除

    • 说明理由
    • 记录临时方案
  2. 选项 2:确认删除,规则需要完善

    • 更新 soul.md
    • 升级信条规则

六、经验总结

经验 1:删除是高风险操作

删除操作的破坏性远超想象一次误删可能丢失数小时的工作成果

实践

  • 所有删除必须通过 rm_safe.sh
  • 关键目录删除需要双重确认
  • 记录每次删除操作

经验 2:垃圾箱机制是生命线

7天回退期给纠正错误预留了时间窗口

实践

  • 所有删除移动到 .trash/ 目录
  • 记录原始路径和删除时间
  • 7天后自动清理

经验 3:规则冲突必须警告

AI 协作中,规则冲突预警比操作本身更重要

实践

  • 删除前检查是否违反我的信条
  • 必须提示用户两种选择
  • 记录冲突处理过程

七、后续改进方向

  • [ ] 集成到 shell profile,使 rm 自动使用 rm_safe.sh
  • [ ] 添加 Web 管理界面查看垃圾箱
  • [ ] 支持回滚到特定时间点
  • [ ] 与版本控制系统集成

八、结语

这次误删文档的教训是宝贵的:

  1. 删除保护系统
    :已经实现并集成到 soul.md
  2. 删除确认机制
    :所有删除操作需要确认
  3. 垃圾箱机制
    :7天可回退
  4. 信条冲突警告
    :与之冲突时必须提示

AI 协作的健壮性,体现在对高风险操作的防御设计上。

希望这篇分享帮助你在 AI 协作中建立自己的删除保护系统。


全文完