/ouroboros:update
Check for updates and upgrade Ouroboros without changing the installation's
manager, environment, or optional-dependency profile.
Usage
ooo update
/ouroboros:update
Trigger keywords: "ooo update", "update ouroboros", "upgrade ouroboros"
Instructions
When the user invokes this skill:
Use the native command as the single source of truth:
ouroboros update --check
If it reports up to date, report that result and stop.
If it reports an update available, ask the user to choose Update
now or Skip.
If the user chooses Update now, run:
ouroboros update --yes
When the user actively uses both Claude Code and Codex, refresh both host
integrations without changing the configured execution backend:
ouroboros update --yes --runtime all
Show the command's result. The native updater binds the package upgrade and
post-update setup to one receipt-backed installation identity: manager,
environment, recorded profile, and environment-local console script.
If the check exits unsuccessfully but ouroboros update --help works,
report the native error and stop. Do not replace it with a manual
updater. In particular, do not infer ownership from global uv tool list,
pipx list, PATH order, directory names, or the active agent runtime.
If ouroboros update --help does not work, this is a legacy installation
that predates the receipt-bound updater. Fail closed:
- A read-only
ouroboros --version check is allowed.
- Explain that the old skill cannot prove the original manager,
environment, and extras/profile, so it will not mutate the installation.
- Ask the user to rerun the exact original install command (including its
ouroboros-ai[...] extras and custom manager root) to reach a version
with the native updater.
- If the user does not know that identity, recommend a fresh isolated
install rather than guessing.
- Do not run package upgrades, plugin refreshes, or setup commands from this
legacy path.
After a successful update, relay the runtime-specific restart guidance from
the native command. If project instruction content also needs regeneration,
suggest ooo setup; do not edit project instruction files as part of the
package update.
Safety contract
- PyPI is the version source of truth; fully yanked releases are excluded.
uv and pipx upgrades replay the running environment's local receipt,
preserving base, [tui], [mcp,tui], [claude,tui], [all], and
other recorded profiles.
- The Claude SDK and MCP 2 profiles are never combined or substituted.
- Missing or ambiguous installation identity is a non-mutating error.
- Automatic runtime refresh preserves the configured backend and the existing
OpenCode
plugin/subprocess topology instead of inferring a replacement
from PATH.
- Runtime executable identity follows the supported environment override,
then the persisted
orchestrator.*_cli_path, then PATH. The chosen exact
executable is validated and reused for plugin/setup refresh so a stale PATH
binary cannot replace an operator-selected runtime.
--runtime all refreshes the Claude and Codex plugin integrations plus
installed runtime artifacts without changing the configured execution
backend. Active Codex sessions still need a restart because Codex does not
currently retain an in-use plugin generation; Claude may use
/reload-plugins or restart.
ouroboros update supports --check, --yes, --dry-run,
--prerelease, and --runtime; see ouroboros update --help.
RFC #1392 State Breadcrumb Footer
Your final response MUST end with exactly one breadcrumb footer line:
◆ <current state> → next: <recommended action>
Derive <current state> from live session state via ouroboros_session_status
when that MCP projection is available; otherwise
derive it from this skill's actual outcome. Never use a linear Step N of M footer
because Ouroboros is an evolutionary loop. When the next action is
genuinely a choice, list 2-3 honest options in the next: clause. The
breadcrumb line must be the last line of the response.
1---2name: update3description: Check for updates and upgrade Ouroboros to the latest version4---56# /ouroboros:update78Check for updates and upgrade Ouroboros without changing the installation's9manager, environment, or optional-dependency profile.1011## Usage1213```14ooo update15/ouroboros:update16```1718**Trigger keywords:** "ooo update", "update ouroboros", "upgrade ouroboros"1920## Instructions2122When the user invokes this skill:23241. Use the native command as the single source of truth:2526 ```bash27 ouroboros update --check28 ```2930 - If it reports **up to date**, report that result and stop.31 - If it reports an **update available**, ask the user to choose **Update32 now** or **Skip**.33 - If the user chooses **Update now**, run:3435 ```bash36 ouroboros update --yes37 ```3839 When the user actively uses both Claude Code and Codex, refresh both host40 integrations without changing the configured execution backend:4142 ```bash43 ouroboros update --yes --runtime all44 ```4546 Show the command's result. The native updater binds the package upgrade and47 post-update setup to one receipt-backed installation identity: manager,48 environment, recorded profile, and environment-local console script.49502. If the check exits unsuccessfully but `ouroboros update --help` works,51 report the native error and stop. **Do not** replace it with a manual52 updater. In particular, do not infer ownership from global `uv tool list`,53 `pipx list`, PATH order, directory names, or the active agent runtime.54553. If `ouroboros update --help` does not work, this is a legacy installation56 that predates the receipt-bound updater. Fail closed:5758 - A read-only `ouroboros --version` check is allowed.59 - Explain that the old skill cannot prove the original manager,60 environment, and extras/profile, so it will not mutate the installation.61 - Ask the user to rerun the exact original install command (including its62 `ouroboros-ai[...]` extras and custom manager root) to reach a version63 with the native updater.64 - If the user does not know that identity, recommend a fresh isolated65 install rather than guessing.66 - Do not run package upgrades, plugin refreshes, or setup commands from this67 legacy path.68694. After a successful update, relay the runtime-specific restart guidance from70 the native command. If project instruction content also needs regeneration,71 suggest `ooo setup`; do not edit project instruction files as part of the72 package update.7374## Safety contract7576- PyPI is the version source of truth; fully yanked releases are excluded.77- `uv` and `pipx` upgrades replay the running environment's local receipt,78 preserving base, `[tui]`, `[mcp,tui]`, `[claude,tui]`, `[all]`, and79 other recorded profiles.80- The Claude SDK and MCP 2 profiles are never combined or substituted.81- Missing or ambiguous installation identity is a non-mutating error.82- Automatic runtime refresh preserves the configured backend and the existing83 OpenCode `plugin`/`subprocess` topology instead of inferring a replacement84 from PATH.85- Runtime executable identity follows the supported environment override,86 then the persisted `orchestrator.*_cli_path`, then PATH. The chosen exact87 executable is validated and reused for plugin/setup refresh so a stale PATH88 binary cannot replace an operator-selected runtime.89- `--runtime all` refreshes the Claude and Codex plugin integrations plus90 installed runtime artifacts without changing the configured execution91 backend. Active Codex sessions still need a restart because Codex does not92 currently retain an in-use plugin generation; Claude may use93 `/reload-plugins` or restart.94- `ouroboros update` supports `--check`, `--yes`, `--dry-run`,95 `--prerelease`, and `--runtime`; see `ouroboros update --help`.9697## RFC #1392 State Breadcrumb Footer9899Your final response MUST end with exactly one breadcrumb footer line:100101```102◆ <current state> → next: <recommended action>103```104105Derive `<current state>` from live session state via `ouroboros_session_status`106when that MCP projection is available; otherwise107derive it from this skill's actual outcome. Never use a linear `Step N of M` footer108because Ouroboros is an evolutionary loop. When the next action is109genuinely a choice, list 2-3 honest options in the `next:` clause. The110breadcrumb line must be the last line of the response.