feat(onboarding/parity): lian-jing skill 补写操作确认与 unavailable/unknown 两条通用边界,接入包升至 1.8.0 #31

Merged
lanrtop merged 2 commits from feat/agent-client-parity-p7-skill-rules into master 2026-10-03 04:49:05 +08:00
Owner

目标

P7 实测发现,Codex 不会把 MCP 服务器说明带入模型上下文。服务器说明里有两条三端都须遵守的通用规则:「其他写操作仅在用户明确确认目标与影响后调用」和「状态 unavailable/unknown 不得当作成功」。这两条在 lian-jing skill 与 AGENTS.md 托管块里只有分场景的写法,Codex 会话因此读不到通用版本。本 PR 把这两条补进 skill,让三端共用同一来源。

改动

  • src-tauri/resources/onboarding/.agents/skills/lian-jing/SKILL.md:在「已发现 lian-jing MCP」之后新增两条通用边界,措辞与服务器说明一致。
    • 例外:只读查询、登记不含秘密的开发需求元数据(register_project_test_account)、回传炼境(report_envoy_return)可以直接调用。这与服务器说明里「其他写操作」的范围一致,也与 skill「回传不必逐条征得同意」相容。
    • 安装工具链、合并 PR、生成 CI workflow 标为这条规则的具体场景。
    • 原编号列表内容不变。onboarding.rs 会把同一模板双投影到 .agents/skills 和 .claude/skills。
  • 接入包 base-onboarding 从 1.7.0 升到 1.8.0:BASE_ONBOARDING_PACK_VERSION、模板 capability-packs.json、TEMPLATE_FINGERPRINTS 的指纹同步更新。
  • src-tauri/src/mcp_server.rs:新增测试 server_instruction_universal_rules_are_in_skill。服务器说明或 skill 任一侧缺这两条,测试就失败,防止以后只改服务器说明而 Codex 看不到。为此 TMPL_LIANJING_SKILL 改为 pub(crate)。
  • 蓝图 agent-client-parity.md 的 P7 卡在 known_limits 里记录已补齐。
  • docs/templates/agents-meta-rules.md:检查过,不需要同步。它描述的是 AGENTS.md 托管块的元规则,本次没有改 AGENTS.md.tmpl;skill 与 AGENTS 的分工(AGENTS 只留指路)也没变。

自验

  • cargo test(src-tauri 全量):273 passed,0 failed,5 ignored。5 个 ignored 都是原有用例,需要真实客户端或构建产物才能跑。managed_template_fingerprints_track_versions、skill_is_projected_to_codex_and_claude_from_one_source、skill_check_requires_canonical_context 和新增的 server_instruction_universal_rules_are_in_skill 都通过。
  • 指纹测试先在只升版本、没更新摘要时按预期失败,给出新摘要;回填后通过。
  • cargo fmt --check:本次改动的行没有格式差异。crate 里其他文件有原本就存在的格式差异,这次没动。

没验什么

  • 没有重建安装炼境,也没有对任何子项目跑 apply_onboarding_pack。存量项目要等重建安装、重跑接入包后才会拿到 1.8.0 的 skill;在此之前 verify_onboarding 会一直报版本不符。
  • 没有用三端无头探针验证模型是否真的遵守新条目,只验证了文本存在、两端投影一致。
  • AGENTS.md 托管块没改,仍然只有分场景的写法;Codex 只有在加载 lian-jing skill 时才读到通用版本。
  • 新的通用确认规则会让 skill 里原本没要求确认的写操作也要先经用户确认,例如 MCP 降级时重新调用 inject_mcp。这与服务器说明一致,是有意收紧;没有逐个工具梳理哪些算写操作。
  • 没跑 pnpm typecheck,本次没有前端改动。

🤖 Generated with Claude Code

## 目标 P7 实测发现,Codex 不会把 MCP 服务器说明带入模型上下文。服务器说明里有两条三端都须遵守的通用规则:「其他写操作仅在用户明确确认目标与影响后调用」和「状态 unavailable/unknown 不得当作成功」。这两条在 lian-jing skill 与 AGENTS.md 托管块里只有分场景的写法,Codex 会话因此读不到通用版本。本 PR 把这两条补进 skill,让三端共用同一来源。 ## 改动 - `src-tauri/resources/onboarding/.agents/skills/lian-jing/SKILL.md`:在「已发现 lian-jing MCP」之后新增两条通用边界,措辞与服务器说明一致。 - 例外:只读查询、登记不含秘密的开发需求元数据(`register_project_test_account`)、回传炼境(`report_envoy_return`)可以直接调用。这与服务器说明里「其他写操作」的范围一致,也与 skill「回传不必逐条征得同意」相容。 - 安装工具链、合并 PR、生成 CI workflow 标为这条规则的具体场景。 - 原编号列表内容不变。onboarding.rs 会把同一模板双投影到 `.agents/skills` 和 `.claude/skills`。 - 接入包 base-onboarding 从 1.7.0 升到 1.8.0:`BASE_ONBOARDING_PACK_VERSION`、模板 `capability-packs.json`、`TEMPLATE_FINGERPRINTS` 的指纹同步更新。 - `src-tauri/src/mcp_server.rs`:新增测试 `server_instruction_universal_rules_are_in_skill`。服务器说明或 skill 任一侧缺这两条,测试就失败,防止以后只改服务器说明而 Codex 看不到。为此 `TMPL_LIANJING_SKILL` 改为 `pub(crate)`。 - 蓝图 `agent-client-parity.md` 的 P7 卡在 known_limits 里记录已补齐。 - `docs/templates/agents-meta-rules.md`:检查过,不需要同步。它描述的是 AGENTS.md 托管块的元规则,本次没有改 AGENTS.md.tmpl;skill 与 AGENTS 的分工(AGENTS 只留指路)也没变。 ## 自验 - `cargo test`(src-tauri 全量):273 passed,0 failed,5 ignored。5 个 ignored 都是原有用例,需要真实客户端或构建产物才能跑。`managed_template_fingerprints_track_versions`、`skill_is_projected_to_codex_and_claude_from_one_source`、`skill_check_requires_canonical_context` 和新增的 `server_instruction_universal_rules_are_in_skill` 都通过。 - 指纹测试先在只升版本、没更新摘要时按预期失败,给出新摘要;回填后通过。 - `cargo fmt --check`:本次改动的行没有格式差异。crate 里其他文件有原本就存在的格式差异,这次没动。 ## 没验什么 - 没有重建安装炼境,也没有对任何子项目跑 `apply_onboarding_pack`。存量项目要等重建安装、重跑接入包后才会拿到 1.8.0 的 skill;在此之前 verify_onboarding 会一直报版本不符。 - 没有用三端无头探针验证模型是否真的遵守新条目,只验证了文本存在、两端投影一致。 - AGENTS.md 托管块没改,仍然只有分场景的写法;Codex 只有在加载 lian-jing skill 时才读到通用版本。 - 新的通用确认规则会让 skill 里原本没要求确认的写操作也要先经用户确认,例如 MCP 降级时重新调用 `inject_mcp`。这与服务器说明一致,是有意收紧;没有逐个工具梳理哪些算写操作。 - 没跑 `pnpm typecheck`,本次没有前端改动。 🤖 Generated with [Claude Code](https://claude.com/claude-code)
lanrtop added 1 commit 2026-10-03 04:26:52 +08:00
feat(onboarding/parity): lian-jing skill 补写操作确认与 unavailable/unknown 两条通用边界,接入包升至 1.8.0
All checks were successful
Push & PR Check / check (push) Successful in 59s
Push & PR Check / check (pull_request) Successful in 1m0s
e13599fbbd
P7 实测 Codex 不把 MCP 服务器说明带入模型上下文,服务器说明里的「其他写操作
须用户明确确认」「unavailable/unknown 不得当作成功」在 skill 中只有分场景表述。
现把两条作为通用边界写进 lian-jing skill 模板开头(同一模板双投影到 .agents
与 .claude),措辞与服务器说明一致;只读查询、登记开发需求元数据、回传炼境
列为无需确认的例外,与 skill「回传不必逐条征得同意」相容。

- base-onboarding 1.7.0→1.8.0(BASE_ONBOARDING_PACK_VERSION、模板
  capability-packs.json、TEMPLATE_FINGERPRINTS 指纹)
- mcp_server 新增 server_instruction_universal_rules_are_in_skill:服务器说明与
  skill 任一侧缺这两条即失败
- 蓝图 agent-client-parity P7 known_limits 记录已补齐

Feature-Confirmed: true
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
lanrtop added 1 commit 2026-10-03 04:43:52 +08:00
fix(onboarding/parity): lian-jing skill 免确认例外补列 register_project_dev_variable,第 8 条开发变量改用对应登记工具(P7 审查修复)
All checks were successful
Push & PR Check / check (push) Successful in 1m2s
Push & PR Check / check (pull_request) Successful in 59s
32e947b622
服务器说明 MCP_SERVER_INSTRUCTIONS 的免确认例外是泛称「不含秘密的开发需求元数据」,
register_project_test_account 与 register_project_dev_variable 都属于;skill 新增的
通用边界括注只列了前者,开发变量登记会被误读为须用户确认的「其他写操作」。同源旧
问题:skill 第 8 条把「开发变量(沙箱 key 等)」也只指向 register_project_test_account。

- skill 例外括注同时列出两个登记工具
- 第 8 条拆分:测试账号用 register_project_test_account 登记名称、目标系统、非生产
  环境与用途;开发变量用 register_project_dev_variable 登记名称与用途
- base-onboarding 1.8.0 尚未发布,不再升版本,仅更新 TEMPLATE_FINGERPRINTS 摘要
- server_instruction_universal_rules_are_in_skill 加断言:服务器说明含「开发需求元
  数据」,skill 写操作确认规则所在行同时含该泛称与两个登记工具名
- 蓝图 P7 known_limits 把「措辞与服务器说明一致」精确为「两条规则核心句逐字一致」,
  并记录本次例外与第 8 条的修正

测试:cargo test --locked 全量通过(lib 273 passed / 5 ignored,0 failed)。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
lanrtop merged commit 19b9388ccf into master 2026-10-03 04:49:05 +08:00
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: lanrtop/dev-manager-tauri#31
No description provided.