SuperAPI AI 工具集

safe-git-ops

编程与开发

查看项目

更新于 10-15 07:42

技能介绍

Safe Git Ops 是一个面向 Git 操作的安全辅助技能,旨在帮助用户在不混淆沙箱失败、仓库状态问题和真实内容冲突的前提下,完成常见的 Git 操作。

用途 该技能主要用于处理 commit、push、merge、rebase、stash、worktree、冲突、锁文件、权限等 Git 相关任务。当用户以模糊语言报告 Git 失败,或出现特定错误文本(如 CONFLICT、index.lock、operation not permitted、permission denied、Could not resolve host、Connection timed out、.git/worktrees/、ORIG_HEAD、CHERRY_PICK_HEAD、branch is already checked out 等)时,应尽早激活该技能进行诊断。

主要能力

  • 将预检检查与状态变更的 Git 命令分离。
  • 区分沙箱或权限失败与合并冲突。
  • 将 worktree 视为特殊情况,因为其可能写入可见工作目录之外的共享 Git 元数据。
  • 在执行破坏性操作(如 reset --hard、checkout --、删除分支、丢弃 stash)前询问用户。
  • 优先使用非交互式 Git 命令。
  • 使用风险分级的提交路径,使低风险的文本/文档变更无需承担完整验证、完整冒烟测试或完整技能重装的开销。
  • 对于常规网络推送,优先使用稳定包装器 project-push <repo> <remote> <branch>,而非临时命令形式。
  • 在可行时,使用 sidecar-task-runner 预提交分类来减少主代理决策时间。
  • 当写操作被沙箱阻止时,清晰解释并请求升级,而非猜测冲突。
  • 当网络 Git 操作失败时,在要求用户更改凭据前,先区分网络/沙箱访问与认证、Git 远程或仓库问题。

使用方式 技能目录包含 SKILL.md、scripts/project-push 以及 references/failure-modes.md、references/commit-paths.md、references/worktrees.md。始终阅读 failure-modes.md;当用户要求提交、推送、加速收尾或选择验证/重装范围时,阅读 commit-paths.md;当仓库使用 git worktree、.git 指向其他目录或用户提及多个 worktree 时,阅读 worktrees.md。

操作流程包括:

  1. 定位仓库:使用 git rev-parse --show-toplevel、git rev-parse --git-dir、git branch --show-current、git status --short 等命令检查仓库形态,必要时检查 worktree 列表和公共 git 目录。
  2. 分类请求:将请求分为 inspect、network_inspect、safe_write、destructive_write 四类,并采取相应措施。
  3. 预检:在任何状态变更命令前收集上下文,避免草率处理失败。
  4. 执行并正确解释失败:根据 Git 报告的错误类型,分类为代码冲突、沙箱/权限问题、网络/沙箱访问问题或仓库状态问题。
  5. 当沙箱限制是真正问题时,清晰升级:说明失败是环境性的,指出被阻止的操作和可能的写入目标,请求权限升级并重新运行相同命令。
  6. worktree 特定规则:假设 commit、cherry-pick、merge、rebase 等命令可能写入当前 worktree 目录之外,提前检查共享元数据位置。
  7. 精确报告结果:明确报告成功、需要手动解决的冲突、沙箱或权限限制、网络/沙箱限制或需要用户选择的仓库状态问题,并给出下一步行动。

适用场景 适用于需要执行 Git 操作的开发、运维或研究环境,尤其是存在沙箱限制、worktree 使用或网络访问控制的场景。

限制 该技能不编造功能、收费、价格、平台、效果或使用步骤。对于破坏性操作,必须获得用户明确批准。对于网络操作,需在获得网络权限后重新运行,才能进一步诊断认证或远程配置问题。