---
name: Update Ouroboros
slug: update-ouroboros
category: DevOps
description: "Update Ouroboros checks for available updates and upgrades Ouroboros without changing the installation's manager, environment, or optional-dependency profile."
github: "https://github.com/Q00/ouroboros/tree/main/skills/update"
language: Python
stars: 5431
forks: 550
install: "npx degit https://github.com/Q00/ouroboros/tree/main/skills/update ~/.claude/skills/update"
installs_to: ~/.claude/skills/update
source_path: skills/update/SKILL.md
collection_size: 25
category_size: 798
collection_url: "https://dirskills.com/collections/Q00/ouroboros"
added: 2026-08-16T07:00:04.929Z
last_synced: 2026-08-16T07:00:04.929Z
canonical_url: "https://dirskills.com/skills/update-ouroboros"
---

# Update Ouroboros

Update Ouroboros checks for available updates and upgrades Ouroboros without changing the installation's manager, environment, or optional-dependency profile.

**Install:**

```bash
npx degit https://github.com/Q00/ouroboros/tree/main/skills/update ~/.claude/skills/update
```

## README

# /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:

1. Use the native command as the single source of truth:

   ```bash
   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:

     ```bash
     ouroboros update --yes
     ```

   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.

2. 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.

3. 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.

4. 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.
- `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.
