openwork-notary
Store Apple notarization IDs in Keychain and notarize/staple OpenWork DMGs locally.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Store Apple notarization IDs in Keychain and notarize/staple OpenWork DMGs locally.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Create and manage isolated git worktrees safely.
Opinionated workflow for submodule development + PRs + control-center pointer bumps.
Sync control-center master and update submodule pointers safely.
Require every OpenCode plugin to expose get_skills and get_version tools.
Use client.app.log() instead of console.log in OpenCode plugins
Guide for creating effective skills. Use when users want to create or update a skill that extends Claude with specialized knowledge, workflows, or tool integrations.
| name | openwork-notary |
| description | Store Apple notarization IDs in Keychain and notarize/staple OpenWork DMGs locally. |
A small helper skill for the OpenWork macOS release flow.
It stores the App Store Connect Issuer ID, API Key ID, and .p8 path in the macOS Keychain so you don’t have to keep hunting them.
Keychain locations used by OpenWork release skills:
com.differentai.openwork.notaryissuer-idkey-idkey-pathThese are used to sign updater artifacts (required for in-app updates).
com.differentai.openwork.updaterupdater-private-keyupdater-public-keysecurity add-generic-password -a issuer-id -s com.differentai.openwork.notary -w "<ISSUER_UUID>" -U
security add-generic-password -a key-id -s com.differentai.openwork.notary -w "<KEY_ID>" -U
security add-generic-password -a key-path -s com.differentai.openwork.notary -w "/path/to/AuthKey_<KEY_ID>.p8" -U
security find-generic-password -a issuer-id -s com.differentai.openwork.notary -w
security find-generic-password -a key-id -s com.differentai.openwork.notary -w
security find-generic-password -a key-path -s com.differentai.openwork.notary -w
APPLE_SIGNING_IDENTITY='Developer ID Application: Different AI inc. (F5DJWB4CCV)' \
pnpm -C vendor/openwork exec tauri build --bundles dmg
bun .opencode/skill/openwork-notary/first-call.ts
DMG_PATH="vendor/openwork/src-tauri/target/release/bundle/dmg/OpenWork_0.1.2_aarch64.dmg"
xcrun stapler staple "$DMG_PATH"
spctl --assess --type open --verbose=4 "$DMG_PATH"
The OpenWork release workflow expects a GitHub Actions secret:
TAURI_SIGNING_PRIVATE_KEYTo populate it from Keychain:
security find-generic-password -a updater-private-key -s com.differentai.openwork.updater -w
Then paste that value into the repo secret TAURI_SIGNING_PRIVATE_KEY.
Notes:
pubkey in vendor/openwork/src-tauri/tauri.conf.json to match.spctl saying Unnotarized Developer ID means signing is fine but notarization is missing.codesign ... code has no resources but signature indicates they must be present usually means the .app bundle got signed incorrectly (or was modified after signing).