SuperAPI AI 工具集

synthesis-repo-guard

部署与运维

查看项目

更新于 10-22 16:15

技能介绍

用途

synthesis-repo-guard 用于发现滞留在一台 Mac 上的工作:存在未提交、未推送、未拉取变更,或处于分离 HEAD(detached HEAD)状态的仓库。当代理和工具整天在改动文件时,如果这些改动只留在一台机器上而未提交或未推送,从另一台机器上就看不到。该技能负责把这些情况扫描出来。

主要能力

核心是脚本 scripts/repo_sync_check.py,它扫描工作区根目录下的每一个仓库,报告哪些仓库处于 dirty、ahead、behind 或 detached 状态,且不改变任何东西。

运行方式:

  • 默认扫描 ~/workspaces,深度三级;可用 --workspace DIR 指定工作区,用 --max-depth N 控制深度。
  • 会逐个打印需要关注的仓库及其标记,最后输出一行计数,例如:
/Users/you/workspaces/site/blog
  [uncommitted] 2 uncommitted file(s)
  [unpushed] 1 unpushed commit(s) on main
1 of 24 repositories need attention.
  • 默认写入报告文件 ~/.synthesis/repo-guard/last-report.json;加 --no-report 则不写。
  • --json 以 JSON 形式打印需要关注的仓库;--quiet 不打印任何内容。
  • 退出码:0 表示全部干净,1 表示有需要关注的内容,2 表示错误(如没有工作区)。
  • 若需要提醒,可加 --alert,产生通用横幅和语音计数,并遵守静音标志。

使用方式与规则

检测永不修改:扫描只读,从不 commit、stage、fetch 或 push。

提醒只带数量和指针,不带名称:语音和横幅不点名任何仓库、工作区或客户,因为说话可能被旁人听到、横幅可能被屏幕共享,任何时刻都如此,不只在共享时。细节只进入负责人主动打开的拉取渠道:报告文件和 synthesis-console。

静音即静音:当 ~/.synthesis/quiet-audio 存在时,不发声也不显示横幅;报告仍会更新,所以静音不会丢失信息。

只能对只读操作做定时调度:绝不要调度任何会 commit 或 push 的任务,因为按墙钟时间的变更会在多台机器之间产生仓库竞争。

提交与交接规则:只提交本次会话改动的内容,在其声明范围内,按精确路径提交,并让所有 hook 正常运行(即 synthesis handoff)。绝不要把另一个会话的脏文件扫进提交;提交结果要从 git log 读回确认,而不是以“没有报错”为准。

绝不强制:先 fetch,再只以 fast-forward 方式 push;出现分叉时把提交保留在本地并报告。绝不 rebase、绝不 force-push、绝不 --no-verify,也不要动 index.lock。

绝不把私有记录发布到负责人自身命名空间之外的远端,无论路径 glob 匹配到了什么。

操作流程:先运行扫描,读取结果,再据此行动。对于本会话自己的记录,使用 synthesis handoff(它会给出 READY 或 NOT READY 及原因)。对于其他内容,只在负责人阅读的会话中告知扫描发现,并不要动那个仓库,因为那是另一个会话或负责人自己的工作。synthesis who 可显示某个路径被哪个会话声明。

在一天结束以及切换 Mac 之前,在 synthesis handoff 之后运行扫描,作为确认没有工作被遗留的最终检查。

适用场景

  • 日常收尾时检查本机是否有遗漏的提交或推送。
  • 在多台 Mac 之间切换前,确认工作已同步。
  • 将扫描接入固定流程、控制台或 hook,用于定期只读巡检。

限制

扫描只读,不负责修复;它不会替用户提交、推送或拉取。调度只能用于只读操作。该技能不提供收费、平台兼容性等具体信息,相关事实暂未提供。