safe-delete 是一个针对 DDEV Drupal 站点的重置/删除操作技能,核心原则是:在用户要求重置、清空、重新开始或删除站点时,选择能满足需求的最温和方式。
用途 该技能把“重置”分为三类:撤销近期更改、保留配置的全新安装、以及删除整个 DDEV 项目。技能要求按从轻到重的顺序选择,避免不必要的删除。
主要能力与使用方式
- 恢复快照:运行 ddev snapshot restore --latest 恢复最近快照,或用 ddev snapshot restore <name> 恢复指定名称快照。这一操作允许智能体自行执行。
- 保留配置的全新安装:使用 backend-setup 技能,仅限由 vibe-config-backend 模板创建的站点,且必须先做快照,并告知用户内容会丢失。该技能自身不提供全新安装命令,明确禁止通过删除项目来实现全新安装。
- 删除 DDEV 项目:只能由用户本人通过仓库中的删除脚本 skills/safe-delete/scripts/safe-delete.sh 执行。对于其他站点,只提供恢复和删除两种选项。
硬性规则 智能体不得运行 ddev delete,也不得运行该脚本。智能体不得伪造终端(伪终端、script、管道输入)绕过脚本的确认,脚本在没有真实终端时会主动拒绝。智能体需要把准确命令交给用户在其自己的终端中运行,并在交付前将脚本路径替换为本机绝对路径,因为用户需在 DDEV 项目文件夹中运行:skills/safe-delete/scripts/safe-delete.sh [--no-snapshot] [--remove-folder PATH] PROJECT。脚本会打印将删除的内容、要求用户输入项目名、做快照,然后删除。退出码 0 表示已删除,2 表示用法错误、无终端、名称错误或文件夹被拒,1 表示 ddev 调用失败。
适用场景与限制 适用于 DDEV Drupal 站点的重置与删除决策及安全交接。快照只覆盖数据库,不覆盖 sites/default/files、代码或导出的配置,使用前需明确告知用户。特别警告:名为 seed 的快照会在同名项目下次启动时重新载入;删除后以同名重启,seed 数据会回归而非空站点或全新站点;空数据库重启时 seed 快照也会加载。应在删除前告知用户这一风险。