一键导入
ota
manage the Cowork UI update system. use when asked to check UI publish status, switch dev mode (live/bundled/production), or trigger a UI publish.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
manage the Cowork UI update system. use when asked to check UI publish status, switch dev mode (live/bundled/production), or trigger a UI publish.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
implement an idempotent code scanning remediation plan, apply source code fixes for CodeQL/SAST alerts, verify the fix, commit, push, and create or update a pull request. use after planning code scanning remediation or when asked to fix CodeQL alerts, path injection, XSS, stack trace exposure, workflow permissions, or other SAST findings.
implement an idempotent dependency vulnerability remediation plan, update dependencies, verify the fix, commit, push, and create or update a pull request. use after planning CVE/GHSA/dependency alert remediation or when asked to automatically fix one dependency vulnerability group. for CodeQL or code scanning fixes, use remediate-code-scanning instead.
plan safe, idempotent remediation work for GitHub code scanning alerts (CodeQL, SAST). use when asked to triage CodeQL alerts, code scanning findings, fix SAST issues, or group code scanning vulnerabilities into remediation PR plans before changing code. for dependency vulnerabilities (CVEs, Dependabot, npm audit), use plan-vulnerability-remediation instead.
plan safe, idempotent remediation work for known dependency vulnerabilities. use when asked to triage CVEs, dependency alerts, security advisories, Dependabot alerts, or npm/yarn/pnpm/pip/bundler/cargo/go audit findings, and to group them into remediation PR plans before changing code. for CodeQL or code scanning alerts, use plan-code-scanning-remediation instead.
| name | ota |
| description | manage the Cowork UI update system. use when asked to check UI publish status, switch dev mode (live/bundled/production), or trigger a UI publish. |
Cowork's renderer UI can be updated independently from the Electron app itself. When code under src/renderer/** is pushed to main, a CI workflow automatically builds the renderer and publishes it as a downloadable bundle. Users' apps pick up new bundles on launch.
This skill helps you answer: "Are users seeing what's in our code?" and manage how your local app loads the renderer.
| What | Path |
|---|---|
| Config file | ~/.anton/.env |
| OTA cache | ~/Library/Application Support/Anton/ui-cache/ |
| Published manifest | https://mindsdb.github.io/antontron-releases/latest.json |
| Publish workflow | .github/workflows/publish-ui.yml (repo: mindsdb/cowork) |
| Releases repo | mindsdb/antontron-releases |
When the user invokes /ota, determine which action they want. If unclear, default to Status.
Default action. Answers: "Is the published UI in sync with what's in main?"
Steps:
~/.anton/.env and report the current DEV_MODE value. Explain what it means using the friendly names from the dev mode table below.https://mindsdb.github.io/antontron-releases/latest.json — extract the published version (which includes a git short SHA, e.g. 2.0.4-e94e713).git log --oneline -1 origin/main -- src/renderer/ src/shared/ package.json to get the latest commit on main that would trigger a publish.gh run list --workflow=publish-ui.yml --repo mindsdb/cowork --limit 3 and report its status.git diff --stat HEAD -- src/renderer/ and git log --oneline origin/main..HEAD -- src/renderer/. If there are local changes, note that these won't be published until pushed to main.Present the output as a markdown table with two columns. Use bold for the labels. Example:
## UI Update Status
| | |
|---|---|
| **Dev mode** | Bundled (default) -- app uses the renderer shipped in the .app |
| **Published version** | `2.0.4-e94e713` |
| **Latest on main** | `e94e713` -- "fix sidebar toggle" |
| **In sync?** | Yes |
| **Local changes** | 2 uncommitted files in `src/renderer/` *(won't reach users until pushed to main)* |
If there are CI failures, add a row:
| **Publish CI** | Last 3 runs failed -- run `/ota publish` to retry or investigate |
Rules for the status table:
/ota publish.Switch how the local app loads the renderer. There are three modes:
| Friendly name | DEV_MODE value | What it does |
|---|---|---|
| Live | DEV_MODE=live | Loads renderer from Vite dev server at localhost:5173. Use when actively editing renderer code -- gives you hot reload. You must have npm run dev running. |
| Bundled | DEV_MODE=full | Uses the renderer built into the .app package. Ignores any OTA updates. This is the current default when DEV_MODE is not set. |
| Production | DEV_MODE=ota | Uses the OTA update system -- downloads published bundles on launch, just like a real user would see. Use to verify that a publish worked correctly. |
Steps:
~/.anton/.env) and present the three options with their descriptions. Ask which they'd like.~/.anton/.env.DEV_MODE=... line exists, replace it with the new value. If switching to Bundled and no DEV_MODE line exists, no change is needed (it's the default).DEV_MODE line exists, append the new value.npm run dev first.rm -rf ~/Library/Application\ Support/Anton/ui-cache/) so the app downloads a fresh bundle on next launch.Manually trigger a UI publish. This is rarely needed since publishing happens automatically on push to main, but useful when:
Steps:
gh run list --workflow=publish-ui.yml --repo mindsdb/cowork --limit 3 and show the results.gh workflow run publish-ui.yml --repo mindsdb/coworkgh run list --workflow=publish-ui.yml --repo mindsdb/cowork --limit 1src/main/ui-updater.ts, etc.) through this skill -- operational management only.~/.anton/.env before writing to avoid clobbering other settings.ui-cache/) only contains downloaded bundles that will be re-fetched -- safe to delete.