{
  "schemaVersion": "1.0",
  "item": {
    "slug": "conventional-commits",
    "name": "Conventional Commits",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/bastos/conventional-commits",
    "canonicalUrl": "https://clawhub.ai/bastos/conventional-commits",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/conventional-commits",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=conventional-commits",
    "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-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/conventional-commits"
    },
    "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/conventional-commits",
    "agentPageUrl": "https://openagent3.xyz/skills/conventional-commits/agent",
    "manifestUrl": "https://openagent3.xyz/skills/conventional-commits/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/conventional-commits/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": "Conventional Commits",
        "body": "Format all commit messages according to the Conventional Commits specification. This enables automated changelog generation, semantic versioning, and better commit history."
      },
      {
        "title": "Format Structure",
        "body": "<type>[optional scope]: <description>\n\n[optional body]\n\n[optional footer(s)]"
      },
      {
        "title": "Required Types",
        "body": "feat: - A new feature (correlates with MINOR in Semantic Versioning)\nfix: - A bug fix (correlates with PATCH in Semantic Versioning)"
      },
      {
        "title": "Common Additional Types",
        "body": "docs: - Documentation only changes\nstyle: - Code style changes (formatting, missing semicolons, etc.)\nrefactor: - Code refactoring without bug fixes or new features\nperf: - Performance improvements\ntest: - Adding or updating tests\nbuild: - Build system or external dependencies changes\nci: - CI/CD configuration changes\nchore: - Other changes that don't modify src or test files\nrevert: - Reverts a previous commit"
      },
      {
        "title": "Scope",
        "body": "An optional scope provides additional contextual information about the section of the codebase:\n\nfeat(parser): add ability to parse arrays\nfix(auth): resolve token expiration issue\ndocs(readme): update installation instructions"
      },
      {
        "title": "Description",
        "body": "Must immediately follow the colon and space after the type/scope\nUse imperative mood (\"add feature\" not \"added feature\" or \"adds feature\")\nDon't capitalize the first letter\nNo period at the end\nKeep it concise (typically 50-72 characters)"
      },
      {
        "title": "Body",
        "body": "Optional longer description providing additional context\nMust begin one blank line after the description\nCan consist of multiple paragraphs\nExplain the \"what\" and \"why\" of the change, not the \"how\""
      },
      {
        "title": "Breaking Changes",
        "body": "Breaking changes can be indicated in two ways:"
      },
      {
        "title": "1. Using ! in the type/scope",
        "body": "feat!: send an email to the customer when a product is shipped\nfeat(api)!: send an email to the customer when a product is shipped"
      },
      {
        "title": "2. Using BREAKING CHANGE footer",
        "body": "feat: allow provided config object to extend other configs\n\nBREAKING CHANGE: `extends` key in config file is now used for extending other config files"
      },
      {
        "title": "3. Both methods",
        "body": "chore!: drop support for Node 6\n\nBREAKING CHANGE: use JavaScript features not available in Node 6."
      },
      {
        "title": "Simple feature",
        "body": "feat: add user authentication"
      },
      {
        "title": "Feature with scope",
        "body": "feat(auth): add OAuth2 support"
      },
      {
        "title": "Bug fix with body",
        "body": "fix: prevent racing of requests\n\nIntroduce a request id and a reference to latest request. Dismiss\nincoming responses other than from latest request.\n\nRemove timeouts which were used to mitigate the racing issue but are\nobsolete now."
      },
      {
        "title": "Breaking change",
        "body": "feat!: migrate to new API client\n\nBREAKING CHANGE: The API client interface has changed. All methods now\nreturn Promises instead of using callbacks."
      },
      {
        "title": "Documentation update",
        "body": "docs: correct spelling of CHANGELOG"
      },
      {
        "title": "Multi-paragraph body with footers",
        "body": "fix: prevent racing of requests\n\nIntroduce a request id and a reference to latest request. Dismiss\nincoming responses other than from latest request.\n\nRemove timeouts which were used to mitigate the racing issue but are\nobsolete now.\n\nReviewed-by: Z\nRefs: #123"
      },
      {
        "title": "Guidelines",
        "body": "Always use a type - Every commit must start with a type followed by a colon and space\nUse imperative mood - Write as if completing the sentence \"If applied, this commit will...\"\nBe specific - The description should clearly communicate what changed\nKeep it focused - One logical change per commit\nUse scopes when helpful - Scopes help categorize changes within a codebase\nDocument breaking changes - Always indicate breaking changes clearly"
      },
      {
        "title": "Semantic Versioning Correlation",
        "body": "fix: → PATCH version bump (1.0.0 → 1.0.1)\nfeat: → MINOR version bump (1.0.0 → 1.1.0)\nBREAKING CHANGE → MAJOR version bump (1.0.0 → 2.0.0)"
      },
      {
        "title": "When to Use",
        "body": "Use this format for:\n\nAll git commits\nCommit message generation\nPull request merge commits\nWhen the user asks about commit messages or git commits"
      },
      {
        "title": "Common Mistakes to Avoid",
        "body": "❌ Added new feature (past tense, capitalized)\n✅ feat: add new feature (imperative, lowercase)\n\n❌ fix: bug (too vague)\n✅ fix: resolve null pointer exception in user service\n\n❌ feat: add feature (redundant)\n✅ feat: add user profile page\n\n❌ feat: Added OAuth support. (past tense, period)\n✅ feat: add OAuth support"
      }
    ],
    "body": "Conventional Commits\n\nFormat all commit messages according to the Conventional Commits specification. This enables automated changelog generation, semantic versioning, and better commit history.\n\nFormat Structure\n<type>[optional scope]: <description>\n\n[optional body]\n\n[optional footer(s)]\n\nCommit Types\nRequired Types\nfeat: - A new feature (correlates with MINOR in Semantic Versioning)\nfix: - A bug fix (correlates with PATCH in Semantic Versioning)\nCommon Additional Types\ndocs: - Documentation only changes\nstyle: - Code style changes (formatting, missing semicolons, etc.)\nrefactor: - Code refactoring without bug fixes or new features\nperf: - Performance improvements\ntest: - Adding or updating tests\nbuild: - Build system or external dependencies changes\nci: - CI/CD configuration changes\nchore: - Other changes that don't modify src or test files\nrevert: - Reverts a previous commit\nScope\n\nAn optional scope provides additional contextual information about the section of the codebase:\n\nfeat(parser): add ability to parse arrays\nfix(auth): resolve token expiration issue\ndocs(readme): update installation instructions\n\nDescription\nMust immediately follow the colon and space after the type/scope\nUse imperative mood (\"add feature\" not \"added feature\" or \"adds feature\")\nDon't capitalize the first letter\nNo period at the end\nKeep it concise (typically 50-72 characters)\nBody\nOptional longer description providing additional context\nMust begin one blank line after the description\nCan consist of multiple paragraphs\nExplain the \"what\" and \"why\" of the change, not the \"how\"\nBreaking Changes\n\nBreaking changes can be indicated in two ways:\n\n1. Using ! in the type/scope\nfeat!: send an email to the customer when a product is shipped\nfeat(api)!: send an email to the customer when a product is shipped\n\n2. Using BREAKING CHANGE footer\nfeat: allow provided config object to extend other configs\n\nBREAKING CHANGE: `extends` key in config file is now used for extending other config files\n\n3. Both methods\nchore!: drop support for Node 6\n\nBREAKING CHANGE: use JavaScript features not available in Node 6.\n\nExamples\nSimple feature\nfeat: add user authentication\n\nFeature with scope\nfeat(auth): add OAuth2 support\n\nBug fix with body\nfix: prevent racing of requests\n\nIntroduce a request id and a reference to latest request. Dismiss\nincoming responses other than from latest request.\n\nRemove timeouts which were used to mitigate the racing issue but are\nobsolete now.\n\nBreaking change\nfeat!: migrate to new API client\n\nBREAKING CHANGE: The API client interface has changed. All methods now\nreturn Promises instead of using callbacks.\n\nDocumentation update\ndocs: correct spelling of CHANGELOG\n\nMulti-paragraph body with footers\nfix: prevent racing of requests\n\nIntroduce a request id and a reference to latest request. Dismiss\nincoming responses other than from latest request.\n\nRemove timeouts which were used to mitigate the racing issue but are\nobsolete now.\n\nReviewed-by: Z\nRefs: #123\n\nGuidelines\nAlways use a type - Every commit must start with a type followed by a colon and space\nUse imperative mood - Write as if completing the sentence \"If applied, this commit will...\"\nBe specific - The description should clearly communicate what changed\nKeep it focused - One logical change per commit\nUse scopes when helpful - Scopes help categorize changes within a codebase\nDocument breaking changes - Always indicate breaking changes clearly\nSemantic Versioning Correlation\nfix: → PATCH version bump (1.0.0 → 1.0.1)\nfeat: → MINOR version bump (1.0.0 → 1.1.0)\nBREAKING CHANGE → MAJOR version bump (1.0.0 → 2.0.0)\nWhen to Use\n\nUse this format for:\n\nAll git commits\nCommit message generation\nPull request merge commits\nWhen the user asks about commit messages or git commits\nCommon Mistakes to Avoid\n\n❌ Added new feature (past tense, capitalized) ✅ feat: add new feature (imperative, lowercase)\n\n❌ fix: bug (too vague) ✅ fix: resolve null pointer exception in user service\n\n❌ feat: add feature (redundant) ✅ feat: add user profile page\n\n❌ feat: Added OAuth support. (past tense, period) ✅ feat: add OAuth support"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/bastos/conventional-commits",
    "publisherUrl": "https://clawhub.ai/bastos/conventional-commits",
    "owner": "bastos",
    "version": "1.0.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/conventional-commits",
    "downloadUrl": "https://openagent3.xyz/downloads/conventional-commits",
    "agentUrl": "https://openagent3.xyz/skills/conventional-commits/agent",
    "manifestUrl": "https://openagent3.xyz/skills/conventional-commits/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/conventional-commits/agent.md"
  }
}