Skip to content

refactor: 精简托管合同与 MCP 指令中的重复协议 - #69

Merged
TimWongUp merged 4 commits into
mainfrom
refactor/slim-protocol-text
Oct 13, 2026
Merged

TimWongUp merged 4 commits into
mainfrom
refactor/slim-protocol-text

Conversation

@TimWongUp

Copy link
Copy Markdown
Owner

背景

多 Agent 讨论会(Codex、Grok、Antigravity、CodeBuddy、Claude)的共识是精简 Keepygaga 而不是去掉它。最大的浪费是同一套协议在托管合同和 MCP instructions 里各写了一遍。本 PR 只处理共识中不破坏接口兼容的两项:协议去重,以及把项目规程移出全局合同。

改动

  • docs/agent-contract.md:保留路由、来源归属和安全边界;项目索引只留短边界(每个项目一条 Fact、只认已核验的整合成果、本地分支/PR/安装版本不算进展、不另建冲突的重复页面),并指向服务端指令。CONTRACT_VERSION 7 → 8,各宿主 repair 后会更新托管块。
  • keepygaga/mcp_instructions.md:删去与合同重复的路由全文和偏好归属规则,以及各工具描述里已有的"applied 后不要再 read 验证"说明;项目索引的首次写入、Git 核验与发布细则压缩后只保留这一份。
  • 预留应用版本 0.10.5(patch)。
文件 改前 改后
docs/agent-contract.md 3,606 B 2,972 B
keepygaga/mcp_instructions.md 10,248 B 6,248 B

与原计划的偏差

原计划是把项目规程放进 create/add/update 的工具描述。test_mcp_schema 要求工具描述总长不超过 2,400 字符,因为部分宿主每轮都会带上全部工具描述;复制 3 份约 2.8KB,比原来合同里那段还贵。所以改成只在 server instructions 里保留一份,合同里留关键边界兜底。

不在范围内

8 个工具与 schema 不变;不改 Hook 事件投影;不删每轮 REMINDER;不动 Vault 数据。

验证

  • uv run ruff check .、uv run pyright:通过
  • uv run pytest -q:362 passed, 4 skipped
  • uv run python scripts/smoke_mcp_server.py:通过
  • uv build 后运行 scripts/check_distribution.py:distribution inventory ok

ruff format --check 报的 5 个文件格式问题在本 PR 之前就存在,未改动。

🤖 Generated with Claude Code

托管合同保留路由、来源归属与安全边界,项目索引只留短边界并指向服务端指令;
MCP 指令删去与合同重复的路由全文和偏好归属规则,以及工具描述已承载的回执说明,
项目索引的首写、Git 与发布细则只保留一份压缩版本。合同版本升至 8,预留 0.10.5。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
压缩 mcp_instructions 的项目索引段落时丢掉了“规范远端”限定,使规则变成只要存在
某个已发布的 Release tag 即可记录版本,fork 发布的 tag 可能被误记为上游项目的发布;
这与同 PR 保留的 docs/architecture.md 中“canonical remote”边界以及改前的托管合同的
表述不一致。改为只在规范远端的已发布 Release 指向包含该成果的 tag commit 时记录版本。
复核指出压缩时同时丢掉了“或直接真源”条件:改前合同与 docs/architecture.md 均要求
在没有持久远端或直接真源时才回退到本机路径,否则会把仍有持久直接真源的项目 Authority
降级为本机路径。此处恢复该限定。

Copy link
Copy Markdown
Owner Author

评审记录(codex-review-gate)

  • 候选 head:15053e1(origin/refactor/slim-protocol-text)
  • 目标 base:origin/main @ 964e3e4
  • 级别:R2 — 改动托管 Agent Contract(CONTRACT 7→8,注入到各宿主全局规则)、MCP server instructions 与发行包内容检查,属宽面公共契约改动。
  • 风险覆盖:correctness-reviewer 只读复核 + 定向复核,两轮后结论为无新增阻断项。

findings 与处理

  1. P2(已修)发布版本判定丢失“规范远端”限定。 压缩时写成“只要存在已发布的 Release tag”,fork 发布的 tag 可能被误记为上游项目的发布;与同 PR 保留的 docs/architecture.md 及改前合同不一致。已恢复为“规范远端上的已发布 Release 指向包含该成果的 tag commit”。
  2. P2(已修)本机路径回退丢失“或直接真源”限定。 改前合同与 docs/architecture.md 要求在没有持久远端或直接真源时才回退本机路径。已恢复该限定。
  3. P2(保留为已接受取舍,未改) 合同把项目索引 first-write/Git/release 细则委派给可能不可见的 server instructions。PR body 已记录这是刻意取舍:原计划放进 create/add/update 工具描述,但 test_mcp_schema 限制全部工具描述合计小于 2,400 字符,重复三份比原合同段落更贵,因此只在 server instructions 保留一份、合同留关键边界兜底。

验证与 CI

  • uv run pytest -q → 362 passed, 4 skipped;uv run ruff check . → All checks passed
  • scripts/smoke_mcp_server.py、check_distribution.py:作者已在 PR body 记录通过
  • Reviewer 定向复核:第 2 条修复成立,未发现其他实质限定遗漏

剩余风险

  • 已接受的取舍:不暴露 server instructions 的宿主(只有合同与 Tools 时)无法取得项目索引细则,Tool 描述与 schema 同样不含这些规则。若后续出现此类宿主,需要重新分配该内容归属。

@TimWongUp
TimWongUp merged commit 2ef72c2 into main Oct 13, 2026
6 checks passed
@TimWongUp
TimWongUp deleted the refactor/slim-protocol-text branch October 13, 2026 15:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant