fix(agent): enforce Cindy-owned workflow Skills before downstream harness plugins
- Dominant language
- TypeScript
- Stars
- 2.7k
- Forks
- 395
- Avg merge
- 21h 48m
- Merged PRs (30d)
- 776
Description
## 背景
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 上的手工补丁不是持久修复,插件更新后会被覆盖。
## 期望行为
1. 在 Cindy 会话/工作区内,Cindy-owned Skill 或 workflow policy 应先被解析并绑定;下游 Codex/Claude plugin skill 只能在其后作为补充执行。
2. 该机制应覆盖 Codex 自己安装或 remote-installed 的 plugin skill,也覆盖 Claude 对应的下游 skill 来源,而不只覆盖 Cindy Desktop 生成的能力 overlay。
3. 对与 Cindy-owned policy 不冲突的用户 Skill、项目 Skill、官方插件和普通 MCP 继续保留可用,不做全局禁用。
4. 下游同类能力需要可审计的来源命名空间或显式点名;不能因为 harness 自己的 skill router 先命中就静默绕过 Cindy 规则。
5. 增加至少一个 Codex 回归测试:`github:yeet`(或等价的外部 plugin skill)在 Cindy workdir 中运行时,能证明 `git-workflow` 已先绑定并完成 heartbeat 收口。
## 关联项
- PR #1215:已有 capability routing;本 issue 追踪其未覆盖的 Skill precedence / prerequisite 层。
- Issue #1252:长期会话刷新规则/Skill snapshot,范围不同,不替代本 issue。
## 非目标
不要求禁用所有官方插件,也不要求把 Codex/Claude 的非冲突工具全部替换成 Cindy 实现;目标只是保证 Cindy-owned 规则在冲突或工作流前置场景不会被下游 skill 绕过。
Contributor guide
Research direction
No Cindy implementation files are named; start by reading PR #1215 and the local ~/.agents/skills/git-workflow/SKILL.md rules. Reproduce the github:yeet case in a Cindy workdir, then add the requested Codex regression test. Done means Cindy-owned workflow precedence is observable and the heartbeat checks occur before the downstream skill proceeds.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github, typescript
- Domain
- ai-infra-agents, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100