--- description: 自诊断 —— 一次查完所有前置条件,定位同步为什么不能用 --- 用 Bash(Windows 用 git-bash)运行诊断脚本(只读,不改任何东西): ```bash export ZCODE_SYNC_PASSPHRASE='团队口令' # 给了才能验证"latest 能否解密" SYNC_PLUGIN="${ZCODE_SYNC_PLUGIN:-$(find ~/.zcode/plugins -maxdepth 3 -name doctor.mjs -path '*env-sync*' 2>/dev/null | head -1)}" node "$SYNC_PLUGIN" ``` 二十多项检查(条数随环境变化),每项给 `✓ ok` / `⚠ warn` / `✗ fail`,失败项附**可执行的修复建议**: - 运行时:Node 版本、git 是否可用 - 凭据:同步口令是否设置且够长、Gitea token 是否读到 - 仓库:工作区是否已克隆、`origin` 是否内嵌凭据(会明文留在 `.git/config`)、 换行符锁定(`.gitattributes: * -text` + `core.autocrlf=false`,否则 hash 会漂移)、 `HEAD` 与 `origin/main` 是否一致、有无未提交改动 - 快照:总数与总体积、manifest 是否损坏、`latest` 指向是否有效、**当前口令能否解开 latest** - 环境:启用插件数、自研插件、本插件版本、MCP server 数、模型 provider(几个带密钥)、备份目录 退出码:有 `fail` 时为 1。 用法场景:**用户说"同步不工作/导入失败/推送失败/status 报版本不同"时,先跑这个**, 再把报告里的 `fail` 项与修复建议照实告诉用户,不要自己猜。 **把脚本输出原样展示给用户**。 用户附加要求:$ARGUMENTS