用途 该技能用于 macOS 上 DSH Computer Use 的源码开发场景,帮助开发者管理代码签名选择,减少因 ad-hoc 签名随代码哈希变化而反复申请系统权限的麻烦。
主要能力
- 识别适用信号:从源码启动 DSH、重建辅助程序、准备其他工作树、排查重复权限提示等。
- 在签名未配置或使用 ad-hoc 时,建议创建一个本地固定签名身份,并说明代码哈希变化可能需要重新授权。
- 提供 signing_identity.py setup,在 ~/.cua-macos-keys/dev/ 下创建或复用专用钥匙串与证书,保存密码和证书指纹到 identity.json(权限 0600)。
- 输出证书指纹和绝对钥匙串路径,供配置 sourceSigning 使用。
- 说明如何把 identity 和 keychain 合并进 DSH home 的 cordis.patch.yml 中加载 @deepseek-ai/dsh-experimental-cua-macos 的条目。
- 提供 signing_e2e.py,用于临时、免权限的签名机制检查。
- 提供 remove 流程,在授权后删除标记身份及其钥匙串搜索列表条目。
使用方式 在 macOS 仓库检出中执行: python3 .agents/skills/dsh-cua-macos-signing/scripts/signing_identity.py setup 自定义身份目录时加 --directory <绝对路径>。配置时将打印的指纹与绝对路径写入对应条目的 sourceSigning。重启或钥匙串锁定后重新运行 setup 以解锁复用。
适用场景 从源码使用 Computer Use、跨工作树测试权限保留、需要减少重复授权的 macOS DSH 开发者。
限制 首次 macOS 授权仍须手动在系统设置中完成;签名匹配不能证明权限已被保留,需实际调用 getCapabilities 并测试。技能不会创建或解锁证书之外的密钥材料,DSH home 只保存选择配置。仅建议在相关开发场景使用,安装版应用或无关仓库不应触发建议。密码记录不得进入聊天、日志或提交。