From 17b7830f04e7373fa12d1705e4f3f9953159c8cc Mon Sep 17 00:00:00 2001 From: Myfro9 <36755290+Myfro9@users.noreply.github.com> Date: Tue, 8 Sep 2026 05:26:09 +0800 Subject: [PATCH] =?UTF-8?q?tools-sync:=20=E6=96=87=E6=A1=A3=E8=A1=A5?= =?UTF-8?q?=E4=B8=8A=E5=AE=BF=E4=B8=BB=E8=87=AA=E8=A3=85=20skill=20?= =?UTF-8?q?=E7=9A=84=E6=96=B9=E5=90=91=E4=B8=8E=20MCP=20=E5=86=8D=E6=AC=A1?= =?UTF-8?q?=E8=A2=AB=E6=B8=85=E7=A9=BA=E7=9A=84=E4=BA=8B=E5=AE=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 阶段 2 决策表新增两行:主副本条目本身是链接、以及被其他工具 skills 目录 链接指向的真实目录,均判为宿主自装、脚本让开;并写清 2026-09-07 实跑 因此弄丢 orca-cli 的经过与用 `orca skills install` 恢复的办法。 - Codex MCP 存储模型:0.153.4 升级后 7 个用户 MCP 第二次全部消失;另记一次 与升级无关、无法复现的消失。结论不变——每次同步必须重跑审计,退出码 2 就 -Apply。 Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01438Zbcx49e4o46uSA71mFF --- tools-sync/SKILL.md | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/tools-sync/SKILL.md b/tools-sync/SKILL.md index 5bbed09..6481482 100644 --- a/tools-sync/SKILL.md +++ b/tools-sync/SKILL.md @@ -162,12 +162,22 @@ powershell -File \scripts\gitea_doctor.ps1 -Fix # 检查→登 | 真实目录,与主副本同名且内容**相同** | 直接塌缩成 junction(丢不了东西) | | 真实目录,与主副本同名但内容**不同** | 报 CONFLICT,两边都不动,退出码 2 | | 目录里没有 SKILL.md | 忽略并说明 | +| **主副本里的同名条目本身就是链接** | 归宿主所有,只计数不动(它的物理家在 registry,方向与本仓库相反) | +| 真实目录,且 `~\.*` 下其他工具的 skills 目录有链接指向它 | 判为宿主自装,**不** ingest | 最后把主副本每个 skill 镜像进 `-MirrorRegistry`(默认 `~\.codex\skills`)。 `.system\` 等点开头目录永远不动。 判断力要点: +- **宿主自装的 skill 可能把物理副本放在 registry,方向和本仓库相反。** + Orca 就是这样:真目录在 `~\.agents\skills`,再把 `.claude` / `.codex` / `.augment` / + `.factory` / `.hermes` / `.pi` 等每个工具都链过去。这种时候主副本里的条目本身是链接, + 把 registry 里的真目录“塌缩成 junction”会让链接指向自己,**唯一的真副本就没了** + (2026-09-07 实跑就这么弄丢了 orca-cli)。脚本现在对两种形状都会认出并让开, + 镜像阶段也会跳过它们(否则 Codex 会把同一个 skill 注册两遍)。 + 弄坏了用它自己的安装器恢复,例如 `orca skills install --skill orca-cli`。 + - **CONFLICT 是唯一需要人裁决的分支。** 内容指纹排除了 `.git`、`__pycache__`、 `.langgraph_api`、`*.pckl`、`*.sqlite` 这类运行时产物,所以报出来的分叉是真分叉。 处理方式:把想留的内容并进主副本,再带 `-Force` 重跑(`-Force` 一律主副本胜出)。 @@ -219,7 +229,7 @@ commit + push 一次(junction 模型下 codex 侧自动同步,无需额外 ## 阶段 5 — MCP server 双向发现、注册与校验(Claude Code ↔ Codex) -### Codex 的 MCP 存储模型(codex-cli 0.150.1 实测,官方无文档) +### Codex 的 MCP 存储模型(codex-cli 0.150.1 / 0.153.4 实测,官方无文档) 动手前必须知道这三条,否则会写出"看起来成功、实际无效"的配置: @@ -229,8 +239,11 @@ commit + push 一次(junction 模型下 codex 侧自动同步,无需额外 手写一整节则完全不出现。config.toml 里现存的那几节是历史遗留。 **本 skill 旧版"缺失的补写 TOML 节"是错的,别再那样做——它静默地什么也没干。** - **这个存储不跨 CLI 升级存活。** 2026-08-29 注册好的 7 个用户 MCP,在升级到 0.150.1 - 后全部消失。所以每次同步都要重新审计 Codex 侧,`~\skills_env.md` 的 MCP 配置节 - 才是可重建的真源。 + 后全部消失;2026-09-07 升到 0.153.4 后**又全没了一次**。所以每次同步都要重新审计 + Codex 侧,`~\skills_env.md` 的 MCP 配置节才是可重建的真源。 + 同一天还观察到一次**与升级无关**的消失(补齐后几分钟内 7 个条目又只剩两个自带的), + 事后 add / remove / list 反复验证都正常、无法复现。别去猜原因——审计脚本退出码是 2 + 就直接 `-Apply` 补回来,这也是每次同步都必须跑一遍审计的理由。 由此还有一个已知缺口:`codex mcp add` 没有 `--tool-timeout-sec` / `env_vars` 之类的参数, config.toml 又不生效,所以这两个键**目前无任何设置入口**。需要它们的 MCP 记在