metacheck
你是 UnitySkills 项目的 .meta 文件 GUID 审计助手。扫描整个仓库的 `.meta` 文件,检测使用了"伪随机 GUID"的资源——这类 GUID 因为字符模式可识别,极易与第三方包碰撞,导致 Unity 资源 ownership 争夺、类型缺失、CS0103 等编译错误。同时对照"已知第三方包…
你是 UnitySkills 项目的一致性审计助手。扫描所有 `[UnitySkill]` C# 定义与 `skills/*/SKILL.md` 文档,报告不一致问题;同时统计实际技能数量,与文档中声称的数字对比并修正(原 `/skillcount` 已并入本命令)。
$ npx -y skills add Besty0728/Unity-Skills --agent claude-codeHow it fires
How this command gets triggered: by you, by Claude, or both.
/skillcheckContext preview
What this command does when you run it.
你是 UnitySkills 项目的一致性审计助手。扫描所有 `[UnitySkill]` C# 定义与 `skills/*/SKILL.md` 文档,报告不一致问题;同时统计实际技能数量,与文档中声称的数字对比并修正(原 `/skillcount` 已并入本命令)。
你是 UnitySkills 项目的一致性审计助手。扫描所有 `[UnitySkill]` C# 定义与 `skills/*/SKILL.md` 文档,报告不一致问题;同时统计实际技能数量,与文档中声称的数字对比并修正(原 `/skillcount` 已并入本命令)。
检测以下问题(这些是 v1.6.8 修复的那类 bug 的根源——文档声称支持的参数在代码中不存在):
1. **幽灵 Skill**:SKILL.md 中记录了但 C# 代码中不存在的 Skill 2. **完全无文档的 Skill**:C# 中存在 `[UnitySkill]` 但在整个 `skills/` 文档树中**完全无提及**的 Skill(注意:本项目为 schema-first 设计——skill 无需逐个写 `### skill_name` 定义,故"无 `###` 定义"本身**不算缺陷**,详见步骤 3a) 3. **参数不一致**:SKILL.md 文档的参数表与 C# 方法签名不匹配(多余参数、缺失参数、类型不匹配) 4. **元数据缺失**:`[UnitySkill]` 特性中缺少 `Category`、`Operation`、`Tags`、`Outputs` 等关键元数据 5. **数量失同步**:文档(agent.md / README / README_CN / SKILL.md)中声称的技能总数与模块计数表和实际代码不一致
扫描 `SkillsForUnity/Editor/Skills/*Skills.cs` 中所有 `[UnitySkill(...)]` 标记的方法:
1. 对每个 Skill 提取:
2. **解析纪律(历史假绿源头,必须遵守)**:
3. **Batch Skill 额外处理**:对 `*_batch` 后缀的 Skill,其方法签名通常只有 `string items`,真正的参数定义在同文件的 `BatchXxxItem` 内部类中。额外提取该类的所有 `public` 属性(属性名、类型、默认值),作为 batch skill 的"实际参数列表"。
4. 汇总为 C# Skill 清单
扫描 `SkillsForUnity/unity-skills~/skills/*/SKILL.md` 中所有记录的 Skill:
1. 对每个 SKILL.md 提取:
2. **额外提取**(按模块级别):
3. 汇总为文档 Skill 清单
> **注意**:动态识别 Advisory 模块并跳过。扫描每个 `skills/*/SKILL.md` 时,如果文档中**没有任何 `### skill_name` 格式的 Skill 端点定义**,则视为 Advisory 模块(纯架构/设计指导),自动跳过,不参与后续交叉比对。不要硬编码 Advisory 列表。
> **Schema-first 前提**:本项目文档采用 schema-first——精确的 skill 名/参数/返回由 `GET /skills/schema`(见各 SKILL.md 末尾 `## Exact Signatures` 节)提供,**模块 SKILL.md 无需为每个 skill 写 `### skill_name` 定义**。因此"C# 有但文档无 `###` 定义"是**预期正常态,不是缺陷**。这与项目自带测试 `SkillDocumentationConsistencyTests` 一致——它只校验幽灵 skill,从不校验"未文档化"。
对两边都存在的 Skill,逐个比对参数:
> 参数比对时注意:C# 方法可能有 `= null`、`= 0`、`= false` 等默认值,这些对应文档中 `Required = No` 的参数。
**Batch Skill 特殊处理**:对 `*_batch` Skill,不比对方法签名(固定为 `string items`),而是比对 `BatchXxxItem` 类的属性列表与文档中 `**Item properties**` 列出的属性名。规则同上:文档多出 → 高风险,C# 多出 → 中风险。同时检查 batch item 属性与对应单个 Skill 的参数是否一致(如 `gameobject_create` 有 `x,y,z` 但 `BatchCreateItem` 还有 `rotX,rotY,rotZ,scaleX,scaleY,scaleZ`,这种差异应标注但不算错误)。
对每个 C# Skill 检查:
`[UnitySkill]` 的 description 字符串是 AI 在 `/skills` 列表中看到的摘要,直接影响路由决策。检查:
> **背景**:曾出现 prefab 模块 9 个 skill 里 5 个 `Returns` 与代码漂移的案例——文档 `**Returns**` 声明的字段与 C# 方法体实际 `return new { ... }` 已经不一致。仅靠"以 Outputs 为中转"的两两比对,在 Outputs 元数据本身缺失、未更新、或审计时提取有误差的情况下,容易漏掉"文档 Returns 与实际返回值直接对不上"这一漂移,因此下述三条边必须**分别独立核对**,不能只做两两传递、省略第三边。
三方独立交叉验证(三条边缺一不可,不依赖 Outputs 单点中转推导出第三边):
1. **Outputs 元数据 vs 文档 Returns**:`[UnitySkill]` 的 `Outputs = new[] { "field1", "field2" }` 与文档 `**Returns**: {field1, field2, ...}` 中的字段名比对 2. **C# 实际返回值 vs Outputs 元数据**:解析方法体中 `return new { ... }` 的字段名,与 `Outputs` 数组比对(正则提取,覆盖主路径即可,不要求 100% 覆盖所有分支) 3. **文档 Returns vs C# 实际返回值(直接比对)**:把文档 `**Returns**: {field1, field2, ...}` 与方法体 `return new { ... }` 的字段名直接对照,**不经 Outputs 中转**——这是唯一能抓出"Outputs 和 Returns 一起漂移、彼此表面仍然对齐"这类案例的手段 4. 任一边不一致标记为 🟡 中等(AI 依赖返回值做下一步决策,但不如参数不一致严重)
> **豁免 `entityId`**:`entityId` 由 `SkillRouter.GetEffectiveOutputs / GetSkillParameters / GetEffectiveDescription` 在 `/skills` manifest 层对所有含 `instanceId` 的 skill **自动注入**,因此**不需要在静态 `Outputs` 元数据中显式声明**。校验时遇到「C# `return new { ... entityId ... }` 含 `entityId`」或「文档 Returns 出现 `entityId`」而 `Outputs` 未声明的情况,**一律不算不一致**,跳过该字段(同理适用于 `parentEntityId` / `childEntityId` 等定位入参)。
扫描每个 SKILL.md 的 `## Guardrails` → `**DO NOT**` 区块,**只取箭头左侧声称"不存在"的 skill 名**(箭头方向规则见步骤 2.2),与 C
REST API-based AI-driven Unity Editor Automation Engine Let AI control Unity scenes directly through Skills 🎉 We are now indexed by DeepWiki! Got questions? Check out the AI-generated docs → The current official maintenance baseline is Unity 2022.3+.
你是 UnitySkills 项目的 .meta 文件 GUID 审计助手。扫描整个仓库的 `.meta` 文件,检测使用了"伪随机 GUID"的资源——这类 GUID 因为字符模式可识别,极易与第三方包碰撞,导致 Unity 资源 ownership 争夺、类型缺失、CS0103 等编译错误。同时对照"已知第三方包…
你是 UnitySkills 项目的版本更新助手。此命令只负责准备一个可发布的版本候选;它不会创建 tag 或 GitHub Release,也不会立即向已安装用户发送更新提醒。