{
  "schemaVersion": "1.0",
  "item": {
    "slug": "upgrade-openclaw",
    "name": "Upgrade Openclaw - Stay on the edge when updating openclaw. Update, audit, discover, propose. Latest features, always.",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/decentraliser/upgrade-openclaw",
    "canonicalUrl": "https://clawhub.ai/decentraliser/upgrade-openclaw",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/upgrade-openclaw",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=upgrade-openclaw",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "_meta.json",
      "settings.json",
      "state.json"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/upgrade-openclaw"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/upgrade-openclaw",
    "agentPageUrl": "https://openagent3.xyz/skills/upgrade-openclaw/agent",
    "manifestUrl": "https://openagent3.xyz/skills/upgrade-openclaw/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/upgrade-openclaw/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Upgrade OpenClaw",
        "body": "Update, diff, audit, propose. Every new feature surfaced. Nothing missed."
      },
      {
        "title": "Settings",
        "body": "On first run, check settings.json in this skill's directory. If subagentModel not set, ask:\n\n\"Which model for upgrade sub-agents? (e.g., claude-sonnet-4-6, deepseek-chat). Note: external providers will receive config data.\"\n\nSave to settings.json:\n\n{ \"subagentModel\": \"anthropic/claude-sonnet-4-6\" }"
      },
      {
        "title": "1. Record Pre-Update State",
        "body": "Before touching anything:\n\nPRE_VERSION=$(openclaw --version | grep -oP '\\d{4}\\.\\d+\\.\\d+')\necho \"$PRE_VERSION\"\n\nSave PRE_VERSION — needed for changelog diffing in Step 3."
      },
      {
        "title": "2. Run Update",
        "body": "openclaw update\n\nIf dirty working tree, stash first:\n\ncd \"$(openclaw --version 2>&1 | grep -oP '(?<=\\().*?(?=\\))' || echo ~/openclaw)\" \ngit stash --include-untracked -m \"pre-update stash\" && openclaw update\n\nRecord new version:\n\nPOST_VERSION=$(openclaw --version | grep -oP '\\d{4}\\.\\d+\\.\\d+')\n\nIf PRE_VERSION == POST_VERSION, report \"Already up to date\" and skip to Step 5 (audit only)."
      },
      {
        "title": "3. Extract Delta Changelog",
        "body": "The changelog lives locally at ~/openclaw/CHANGELOG.md after update. Versions delimited by ## YYYY.x.x headers.\n\nExtract only entries between old and new version:\n\nawk \"/^## $POST_VERSION/,/^## $PRE_VERSION/\" ~/openclaw/CHANGELOG.md\n\nThen filter by relevance to this setup:\n\nRead current config via gateway config.get to identify enabled channels/plugins\nFrom the changelog delta, keep entries matching:\n\nEnabled channels (e.g., Telegram — skip LINE/Discord/Feishu/etc. unless enabled)\nCore agent/gateway/cron/tools/memory/security changes (always relevant)\nACP/sessions/subagent changes (if ACP enabled)\nBreaking changes (always relevant)\n\n\nDiscard entries for disabled channels, iOS/macOS app changes, and platforms not in use\nCategorize kept entries into: Features | Fixes | Security | Breaking Changes"
      },
      {
        "title": "4. Config Schema Gap Analysis",
        "body": "Fetch the live schema and current config:\n\nSchema: gateway config.schema\nCurrent: gateway config.get\n\nCompare systematically:\n\nWalk schema properties tree recursively\nFor each schema key path, check if it exists in current config\nNew/unset options = schema keys not present in current config (excluding keys with sensible defaults)\nFocus on actionable fields — ones where setting a non-default value provides clear benefit\nFlag fields from the changelog delta (new in this version) separately as \"New in this release\"\n\nPresent as a table:\n\n| Config Path | Type | Default | Description | New? |"
      },
      {
        "title": "5. Audit Current Setup",
        "body": "openclaw hooks list --json\nopenclaw doctor --non-interactive\nclawhub update --all --dry-run 2>&1\n\nCollect:\n\nHooks: any hooks available but not enabled\nDoctor: all warnings and recommendations\nSkills: any ClawHub updates available"
      },
      {
        "title": "6. Present Comprehensive Report",
        "body": "Structure the report exactly like this:\n\n## 🔍 Post-Upgrade Report: {PRE_VERSION} → {POST_VERSION}\n\n### 🆕 New Features (Relevant to Your Setup)\n- [Feature]: What it does, why it matters for you\n  - Config: `path.to.setting` (if applicable)\n\n### 🔧 Notable Fixes\n- [Fix]: What was broken, now fixed\n\n### 🔐 Security Updates\n- [Security]: What was patched\n\n### ⚠️ Breaking Changes\n- [Breaking]: What changed, migration needed\n\n### 📋 New Config Options Available\n| Config Path | Type | Default | Why Enable |\n|-------------|------|---------|------------|\n\n### 🪝 Hooks Status\n- [hook]: enabled/available/new\n\n### 🏥 Doctor Recommendations\n- [Item]: severity + action\n\n### 📦 Skill Updates Available\n- [skill]: current → available version\n\n---\n**Apply these improvements?** Reply with:\n- \"yes\" / \"all\" — apply everything\n- \"select\" — I'll list numbered items to pick from\n- specific items by name\n\nCritical: Do NOT present a thin report. Every changelog entry that survived the relevance filter in Step 3 MUST appear. Every new config option from Step 4 MUST appear. Every doctor finding from Step 5 MUST appear. The user triggered this skill to see EVERYTHING."
      },
      {
        "title": "7. Apply with Approval",
        "body": "Never apply without explicit user approval.\n\nOn approval, apply changes via:\n\nConfig changes: gateway config.patch\nHook enablement: openclaw hooks enable <hook>\nSkill installs: clawhub install <skill>\n\nAfter applying, pop any git stash:\n\ncd ~/openclaw && git stash list | grep -q \"pre-update stash\" && git stash pop"
      },
      {
        "title": "8. Persist State",
        "body": "Write upgrade state to state.json in this skill's directory:\n\n{\n  \"lastUpgrade\": {\n    \"from\": \"2026.3.2\",\n    \"to\": \"2026.3.3\",\n    \"timestamp\": \"2026-03-05T06:50:00Z\",\n    \"featuresProposed\": [\"telegram-streaming\", \"pdf-tool\", ...],\n    \"featuresApplied\": [\"telegram-streaming\", ...],\n    \"doctorApplied\": [\"entrypoint-fix\", ...]\n  }\n}\n\nThis prevents re-proposing on repeated runs and enables \"what changed since last upgrade\" queries."
      }
    ],
    "body": "Upgrade OpenClaw\n\nUpdate, diff, audit, propose. Every new feature surfaced. Nothing missed.\n\nSettings\n\nOn first run, check settings.json in this skill's directory. If subagentModel not set, ask:\n\n\"Which model for upgrade sub-agents? (e.g., claude-sonnet-4-6, deepseek-chat). Note: external providers will receive config data.\"\n\nSave to settings.json:\n\n{ \"subagentModel\": \"anthropic/claude-sonnet-4-6\" }\n\nProcedure\n1. Record Pre-Update State\n\nBefore touching anything:\n\nPRE_VERSION=$(openclaw --version | grep -oP '\\d{4}\\.\\d+\\.\\d+')\necho \"$PRE_VERSION\"\n\n\nSave PRE_VERSION — needed for changelog diffing in Step 3.\n\n2. Run Update\nopenclaw update\n\n\nIf dirty working tree, stash first:\n\ncd \"$(openclaw --version 2>&1 | grep -oP '(?<=\\().*?(?=\\))' || echo ~/openclaw)\" \ngit stash --include-untracked -m \"pre-update stash\" && openclaw update\n\n\nRecord new version:\n\nPOST_VERSION=$(openclaw --version | grep -oP '\\d{4}\\.\\d+\\.\\d+')\n\n\nIf PRE_VERSION == POST_VERSION, report \"Already up to date\" and skip to Step 5 (audit only).\n\n3. Extract Delta Changelog\n\nThe changelog lives locally at ~/openclaw/CHANGELOG.md after update. Versions delimited by ## YYYY.x.x headers.\n\nExtract only entries between old and new version:\n\nawk \"/^## $POST_VERSION/,/^## $PRE_VERSION/\" ~/openclaw/CHANGELOG.md\n\n\nThen filter by relevance to this setup:\n\nRead current config via gateway config.get to identify enabled channels/plugins\nFrom the changelog delta, keep entries matching:\nEnabled channels (e.g., Telegram — skip LINE/Discord/Feishu/etc. unless enabled)\nCore agent/gateway/cron/tools/memory/security changes (always relevant)\nACP/sessions/subagent changes (if ACP enabled)\nBreaking changes (always relevant)\nDiscard entries for disabled channels, iOS/macOS app changes, and platforms not in use\nCategorize kept entries into: Features | Fixes | Security | Breaking Changes\n4. Config Schema Gap Analysis\n\nFetch the live schema and current config:\n\nSchema: gateway config.schema\nCurrent: gateway config.get\n\nCompare systematically:\n\nWalk schema properties tree recursively\nFor each schema key path, check if it exists in current config\nNew/unset options = schema keys not present in current config (excluding keys with sensible defaults)\nFocus on actionable fields — ones where setting a non-default value provides clear benefit\nFlag fields from the changelog delta (new in this version) separately as \"New in this release\"\n\nPresent as a table:\n\n| Config Path | Type | Default | Description | New? |\n\n5. Audit Current Setup\nopenclaw hooks list --json\nopenclaw doctor --non-interactive\nclawhub update --all --dry-run 2>&1\n\n\nCollect:\n\nHooks: any hooks available but not enabled\nDoctor: all warnings and recommendations\nSkills: any ClawHub updates available\n6. Present Comprehensive Report\n\nStructure the report exactly like this:\n\n## 🔍 Post-Upgrade Report: {PRE_VERSION} → {POST_VERSION}\n\n### 🆕 New Features (Relevant to Your Setup)\n- [Feature]: What it does, why it matters for you\n  - Config: `path.to.setting` (if applicable)\n\n### 🔧 Notable Fixes\n- [Fix]: What was broken, now fixed\n\n### 🔐 Security Updates\n- [Security]: What was patched\n\n### ⚠️ Breaking Changes\n- [Breaking]: What changed, migration needed\n\n### 📋 New Config Options Available\n| Config Path | Type | Default | Why Enable |\n|-------------|------|---------|------------|\n\n### 🪝 Hooks Status\n- [hook]: enabled/available/new\n\n### 🏥 Doctor Recommendations\n- [Item]: severity + action\n\n### 📦 Skill Updates Available\n- [skill]: current → available version\n\n---\n**Apply these improvements?** Reply with:\n- \"yes\" / \"all\" — apply everything\n- \"select\" — I'll list numbered items to pick from\n- specific items by name\n\n\nCritical: Do NOT present a thin report. Every changelog entry that survived the relevance filter in Step 3 MUST appear. Every new config option from Step 4 MUST appear. Every doctor finding from Step 5 MUST appear. The user triggered this skill to see EVERYTHING.\n\n7. Apply with Approval\n\nNever apply without explicit user approval.\n\nOn approval, apply changes via:\n\nConfig changes: gateway config.patch\nHook enablement: openclaw hooks enable <hook>\nSkill installs: clawhub install <skill>\n\nAfter applying, pop any git stash:\n\ncd ~/openclaw && git stash list | grep -q \"pre-update stash\" && git stash pop\n\n8. Persist State\n\nWrite upgrade state to state.json in this skill's directory:\n\n{\n  \"lastUpgrade\": {\n    \"from\": \"2026.3.2\",\n    \"to\": \"2026.3.3\",\n    \"timestamp\": \"2026-03-05T06:50:00Z\",\n    \"featuresProposed\": [\"telegram-streaming\", \"pdf-tool\", ...],\n    \"featuresApplied\": [\"telegram-streaming\", ...],\n    \"doctorApplied\": [\"entrypoint-fix\", ...]\n  }\n}\n\n\nThis prevents re-proposing on repeated runs and enables \"what changed since last upgrade\" queries."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/decentraliser/upgrade-openclaw",
    "publisherUrl": "https://clawhub.ai/decentraliser/upgrade-openclaw",
    "owner": "decentraliser",
    "version": "2.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/upgrade-openclaw",
    "downloadUrl": "https://openagent3.xyz/downloads/upgrade-openclaw",
    "agentUrl": "https://openagent3.xyz/skills/upgrade-openclaw/agent",
    "manifestUrl": "https://openagent3.xyz/skills/upgrade-openclaw/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/upgrade-openclaw/agent.md"
  }
}