背景
PR #1215(fix(agent): 防止下游 harness 能力无感覆盖 Cindy)已经建立了 Cindy 的 capability routing,覆盖 Feishu 与 Computer Use 等会与 Cindy 能力冲突的下游来源。
但该 PR 明确保留用户本地 Skill、项目 Skill、官方插件和普通 MCP;同时当前路由表只登记具体能力冲突,没有覆盖“Cindy-owned workflow Skill 必须先于下游 harness plugin Skill 执行”的通用 Skill precedence / prerequisite 机制。
实际复现
Codex 会加载 OpenAI curated remote GitHub plugin 中的:
~/.codex/plugins/cache/openai-curated-remote/github/0.1.8-2841cf9749ae/skills/yeet/SKILL.md
来源元数据是 github plugin(repository: openai/plugins,author: OpenAI),skill 名称为 yeet。
在 Cindy 仓库内,~/.agents/skills/git-workflow/SKILL.md 才是包含 Cindy canonical PR workflow 的规则来源,包括:
- ready PR 必须绑定 repository-wide heartbeat;
- 必须检查
reviewDecision、checks、reviews、comments 和 unresolved threads;
- follow-up 必须自动继续,不能把“要不要跟进”再交回用户;
- 提交前的 DCO、工作区和测试门禁。
github:yeet 可以直接驱动 push / 开 PR 流程,而没有声明或触发 Cindy git-workflow 的前置约束。因此 downstream plugin skill 可以绕过 Cindy 的收口规则。当前本机 cache 上的手工补丁不是持久修复,插件更新后会被覆盖。
期望行为
- 在 Cindy 会话/工作区内,Cindy-owned Skill 或 workflow policy 应先被解析并绑定;下游 Codex/Claude plugin skill 只能在其后作为补充执行。
- 该机制应覆盖 Codex 自己安装或 remote-installed 的 plugin skill,也覆盖 Claude 对应的下游 skill 来源,而不只覆盖 Cindy Desktop 生成的能力 overlay。
- 对与 Cindy-owned policy 不冲突的用户 Skill、项目 Skill、官方插件和普通 MCP 继续保留可用,不做全局禁用。
- 下游同类能力需要可审计的来源命名空间或显式点名;不能因为 harness 自己的 skill router 先命中就静默绕过 Cindy 规则。
- 增加至少一个 Codex 回归测试:
github:yeet(或等价的外部 plugin skill)在 Cindy workdir 中运行时,能证明 git-workflow 已先绑定并完成 heartbeat 收口。
关联项
非目标
不要求禁用所有官方插件,也不要求把 Codex/Claude 的非冲突工具全部替换成 Cindy 实现;目标只是保证 Cindy-owned 规则在冲突或工作流前置场景不会被下游 skill 绕过。
背景
PR #1215(
fix(agent): 防止下游 harness 能力无感覆盖 Cindy)已经建立了 Cindy 的 capability routing,覆盖 Feishu 与 Computer Use 等会与 Cindy 能力冲突的下游来源。但该 PR 明确保留用户本地 Skill、项目 Skill、官方插件和普通 MCP;同时当前路由表只登记具体能力冲突,没有覆盖“Cindy-owned workflow Skill 必须先于下游 harness plugin Skill 执行”的通用 Skill precedence / prerequisite 机制。
实际复现
Codex 会加载 OpenAI curated remote GitHub plugin 中的:
来源元数据是
githubplugin(repository:openai/plugins,author: OpenAI),skill 名称为yeet。在 Cindy 仓库内,
~/.agents/skills/git-workflow/SKILL.md才是包含 Cindy canonical PR workflow 的规则来源,包括:reviewDecision、checks、reviews、comments 和 unresolved threads;github:yeet可以直接驱动 push / 开 PR 流程,而没有声明或触发 Cindygit-workflow的前置约束。因此 downstream plugin skill 可以绕过 Cindy 的收口规则。当前本机 cache 上的手工补丁不是持久修复,插件更新后会被覆盖。期望行为
github:yeet(或等价的外部 plugin skill)在 Cindy workdir 中运行时,能证明git-workflow已先绑定并完成 heartbeat 收口。关联项
非目标
不要求禁用所有官方插件,也不要求把 Codex/Claude 的非冲突工具全部替换成 Cindy 实现;目标只是保证 Cindy-owned 规则在冲突或工作流前置场景不会被下游 skill 绕过。