{
  "schemaVersion": "1.0",
  "item": {
    "slug": "semver-helper",
    "name": "Semver Helper",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/avegancafe/semver-helper",
    "canonicalUrl": "https://clawhub.ai/avegancafe/semver-helper",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/semver-helper",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=semver-helper",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "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-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-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/semver-helper"
    },
    "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/semver-helper",
    "agentPageUrl": "https://openagent3.xyz/skills/semver-helper/agent",
    "manifestUrl": "https://openagent3.xyz/skills/semver-helper/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/semver-helper/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": "Semver Helper",
        "body": "Quick reference for Semantic Versioning 2.0.0 decisions."
      },
      {
        "title": "The Golden Rule",
        "body": "Given version MAJOR.MINOR.PATCH, increment:\n\nLevelBump WhenReset Lower?MAJOR (X.0.0)Breaking changes (incompatible API changes)Yes, MINOR and PATCH → 0MINOR (0.X.0)New features (backwards compatible)Yes, PATCH → 0PATCH (0.0.X)Bug fixes (backwards compatible)No"
      },
      {
        "title": "Quick Decision Tree",
        "body": "Did you change anything users depend on?\n├─ No (internal only) → PATCH\n└─ Yes\n   └─ Did you remove/change existing behavior?\n      ├─ Yes → MAJOR\n      └─ No (only added new stuff)\n         └─ Is the new stuff visible to users?\n            ├─ Yes → MINOR\n            └─ No → PATCH"
      },
      {
        "title": "🔴 MAJOR (Breaking)",
        "body": "Remove a function, endpoint, or CLI flag\nChange the return type of a function\nRequire a new mandatory parameter\nChange default behavior significantly\nRename something users depend on\nUpgrade a dependency that forces downstream changes\n\nExamples:\n\nremoveUser() → deleteUser() rename\nAPI response format changed from {id: 1} to {data: {id: 1}}\nDropping support for Node 16 (if users must upgrade)"
      },
      {
        "title": "🟡 MINOR (Feature)",
        "body": "Add new functionality\nAdd optional parameters\nAdd new exports/exports\nDeprecate old features (warn, don't remove)\nPerformance improvements (no API change)\n\nExamples:\n\nAdd createUser() alongside existing user functions\nAdd --format json flag to CLI\nAdd new event listeners/hooks\nMark old method as deprecated (still works)"
      },
      {
        "title": "🟢 PATCH (Fix)",
        "body": "Fix bugs without changing intended behavior\nDocumentation updates\nInternal refactoring (no visible change)\nDependency updates (no API change)\nTest additions\n\nExamples:\n\nFix null pointer exception\nCorrect typo in error message\nFix race condition\nUpdate README"
      },
      {
        "title": "Version Progression Examples",
        "body": "ChangesVersion Bumpfix: null pointer1.2.3 → 1.2.4feat: add auth1.2.3 → 1.3.0breaking: remove old API1.2.3 → 2.0.0fix: bug + feat: new thing1.2.3 → 1.3.0 (MINOR wins)fix: bug + breaking: remove API1.2.3 → 2.0.0 (MAJOR wins)"
      },
      {
        "title": "Pre-releases",
        "body": "Use suffixes for testing before stable:\n\n2.0.0-alpha.1 — Very early, unstable\n2.0.0-beta.2 — Feature complete, testing\n2.0.0-rc.1 — Release candidate, final testing\n\nPre-releases sort before their stable version:\n1.0.0-alpha < 1.0.0-beta < 1.0.0-rc < 1.0.0"
      },
      {
        "title": "Common Edge Cases",
        "body": "SituationBumpWhyFix a bug that was introduced this versionPATCHStill a fixDeprecate a feature (but keep it working)MINORNew \"deprecated\" state is infoChange undocumented/internal behaviorPATCHUsers shouldn't depend on itSecurity fix that requires API changeMAJORBreaking for securityRewriting internals, same behaviorPATCHInvisible to usersAdding tests/docs onlyPATCHNo code change"
      },
      {
        "title": "Anti-Patterns",
        "body": "❌ Don't bump MAJOR for big new features (unless breaking)\n❌ Don't bump MINOR for bug fixes\n❌ Don't bump PATCH for new functionality\n❌ Don't keep old numbers when bumping: 1.2.3 → 2.2.3 is wrong"
      },
      {
        "title": "Cheat Sheet",
        "body": "Users' code breaks? → MAJOR\nUsers get new toys? → MINOR\nUsers get fixes? → PATCH"
      }
    ],
    "body": "Semver Helper\n\nQuick reference for Semantic Versioning 2.0.0 decisions.\n\nThe Golden Rule\n\nGiven version MAJOR.MINOR.PATCH, increment:\n\nLevel\tBump When\tReset Lower?\nMAJOR (X.0.0)\tBreaking changes (incompatible API changes)\tYes, MINOR and PATCH → 0\nMINOR (0.X.0)\tNew features (backwards compatible)\tYes, PATCH → 0\nPATCH (0.0.X)\tBug fixes (backwards compatible)\tNo\nQuick Decision Tree\nDid you change anything users depend on?\n├─ No (internal only) → PATCH\n└─ Yes\n   └─ Did you remove/change existing behavior?\n      ├─ Yes → MAJOR\n      └─ No (only added new stuff)\n         └─ Is the new stuff visible to users?\n            ├─ Yes → MINOR\n            └─ No → PATCH\n\nReal Examples\n🔴 MAJOR (Breaking)\nRemove a function, endpoint, or CLI flag\nChange the return type of a function\nRequire a new mandatory parameter\nChange default behavior significantly\nRename something users depend on\nUpgrade a dependency that forces downstream changes\n\nExamples:\n\nremoveUser() → deleteUser() rename\nAPI response format changed from {id: 1} to {data: {id: 1}}\nDropping support for Node 16 (if users must upgrade)\n🟡 MINOR (Feature)\nAdd new functionality\nAdd optional parameters\nAdd new exports/exports\nDeprecate old features (warn, don't remove)\nPerformance improvements (no API change)\n\nExamples:\n\nAdd createUser() alongside existing user functions\nAdd --format json flag to CLI\nAdd new event listeners/hooks\nMark old method as deprecated (still works)\n🟢 PATCH (Fix)\nFix bugs without changing intended behavior\nDocumentation updates\nInternal refactoring (no visible change)\nDependency updates (no API change)\nTest additions\n\nExamples:\n\nFix null pointer exception\nCorrect typo in error message\nFix race condition\nUpdate README\nVersion Progression Examples\nChanges\tVersion Bump\nfix: null pointer\t1.2.3 → 1.2.4\nfeat: add auth\t1.2.3 → 1.3.0\nbreaking: remove old API\t1.2.3 → 2.0.0\nfix: bug + feat: new thing\t1.2.3 → 1.3.0 (MINOR wins)\nfix: bug + breaking: remove API\t1.2.3 → 2.0.0 (MAJOR wins)\nPre-releases\n\nUse suffixes for testing before stable:\n\n2.0.0-alpha.1 — Very early, unstable\n2.0.0-beta.2 — Feature complete, testing\n2.0.0-rc.1 — Release candidate, final testing\n\nPre-releases sort before their stable version: 1.0.0-alpha < 1.0.0-beta < 1.0.0-rc < 1.0.0\n\nCommon Edge Cases\nSituation\tBump\tWhy\nFix a bug that was introduced this version\tPATCH\tStill a fix\nDeprecate a feature (but keep it working)\tMINOR\tNew \"deprecated\" state is info\nChange undocumented/internal behavior\tPATCH\tUsers shouldn't depend on it\nSecurity fix that requires API change\tMAJOR\tBreaking for security\nRewriting internals, same behavior\tPATCH\tInvisible to users\nAdding tests/docs only\tPATCH\tNo code change\nAnti-Patterns\n\n❌ Don't bump MAJOR for big new features (unless breaking) ❌ Don't bump MINOR for bug fixes ❌ Don't bump PATCH for new functionality ❌ Don't keep old numbers when bumping: 1.2.3 → 2.2.3 is wrong\n\nCheat Sheet\nUsers' code breaks? → MAJOR\nUsers get new toys? → MINOR\nUsers get fixes? → PATCH"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/avegancafe/semver-helper",
    "publisherUrl": "https://clawhub.ai/avegancafe/semver-helper",
    "owner": "avegancafe",
    "version": "1.0.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/semver-helper",
    "downloadUrl": "https://openagent3.xyz/downloads/semver-helper",
    "agentUrl": "https://openagent3.xyz/skills/semver-helper/agent",
    "manifestUrl": "https://openagent3.xyz/skills/semver-helper/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/semver-helper/agent.md"
  }
}