修复AGC内置Skill内容指纹
Project CI / Repository checks (pull_request) Failing after 12s
Project CI / Backend tests (pull_request) Failing after 12s
Project CI / Frontend tests (pull_request) Successful in 4m10s
Project CI / Native shell tests (pull_request) Successful in 16m44s

重算并修正三项内置AGC Skill的内容指纹

提升审核Skill Pack版本并补充指纹回归防范记录
This commit is contained in:
2026-08-22 15:24:31 +08:00
parent 00b78c9701
commit b4233bc97b
2 changed files with 5 additions and 4 deletions
@@ -1,6 +1,6 @@
{
"schemaVersion": "agc-skill-pack.v1",
"version": "2026-08-22.1",
"version": "2026-08-22.2",
"skills": [
{
"name": "agc-project-structure",
@@ -16,7 +16,7 @@
"agents/openai.yaml",
"references/structure-contract.md"
],
"sha256": "69b46a2a7180a227dba587dc5eb4ce5b13fb70ab6de55420ee08133d07083225"
"sha256": "348e5e9fc7b2c628223caeb7fe9c0f15477cf97967b90777d3e0462589e13688"
},
{
"name": "taonier-art-assets",
@@ -52,7 +52,7 @@
"agents/openai.yaml",
"references/game-quality-checklist.md"
],
"sha256": "f897a38e89bfc576be9e91ed9bf89c25f54f700aa258039168ae2f7607f147df"
"sha256": "4ecff75e30701d78d65522dd3218d2465b3114a3937c82d538bda1103efd58e4"
},
{
"name": "agc-browser-playtest",
@@ -87,7 +87,7 @@
"agents/openai.yaml",
"references/projection-contract.md"
],
"sha256": "b7b4623032a3eafe55a74f8931c15b380392938985bce4126f16451a1b61de2a"
"sha256": "e9da95c2f371620e045a3ab9f4721078c805e108263f479b4e01b1af96d462d3"
}
]
}
@@ -4235,6 +4235,7 @@
- 现象:内置 Skill 文件集合没有缺失,原生测试却统一报内容指纹不匹配;另一个测试在 Linux 上把 `C:\\temp\\SKILL.md` 判为安全相对路径,受控资源工具可能继续处理 Windows 盘符或反斜杠遍历形式。
- 原因:审核文件定稿后未按最终字节重新生成 manifest SHA-256;同时 `std::path::Path` 只按当前宿主语义解析路径,Linux 不会把 Windows 盘符和反斜杠视为绝对路径或分隔符。
- 处理:Skill 文件变化与 manifest 指纹更新必须同次提交,并提升审核包版本;资源引用只接受使用 `/` 的普通相对段,显式拒绝反斜杠、冒号盘符、UNC、绝对路径和父目录段,再查询审核清单。不要先把反斜杠替换成 `/` 后再做安全检查。
- 回归补充:即使 Skill 文件本轮没有变化,也不能从旧提交或旧构建结果复制清单指纹;必须对当前工作树最终字节现场重算,并在提交前运行原生 Skill Pack 校验。运行时只报告排序后的首个不匹配项,不能据此假定其余 Skill 已通过。
- 验证:逐项按排序后的 `relativePath + NUL + file bytes + NUL` 重算并核对 manifestRust 单测同时覆盖 POSIX 绝对路径、`..``C:\\...``C:/...`、UNC 和反斜杠相对路径,受控 MCP 工具也必须把 Windows 绝对路径投影为 `isError=true`
## Gitea CI 预构建镜像不能只靠 tag 判断内容