{
  "schemaVersion": "1.0",
  "item": {
    "slug": "sovereign-git-commit-analyzer",
    "name": "Sovereign git-commit-analyzer",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/ryudi84/sovereign-git-commit-analyzer",
    "canonicalUrl": "https://clawhub.ai/ryudi84/sovereign-git-commit-analyzer",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/sovereign-git-commit-analyzer",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=sovereign-git-commit-analyzer",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "scripts/analyze.sh",
      "skill.json",
      "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",
      "slug": "sovereign-git-commit-analyzer",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-09T07:35:28.201Z",
      "expiresAt": "2026-05-16T07:35:28.201Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=sovereign-git-commit-analyzer",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=sovereign-git-commit-analyzer",
        "contentDisposition": "attachment; filename=\"sovereign-git-commit-analyzer-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "sovereign-git-commit-analyzer"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/sovereign-git-commit-analyzer"
    },
    "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/sovereign-git-commit-analyzer",
    "agentPageUrl": "https://openagent3.xyz/skills/sovereign-git-commit-analyzer/agent",
    "manifestUrl": "https://openagent3.xyz/skills/sovereign-git-commit-analyzer/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/sovereign-git-commit-analyzer/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": "Git Commit Analyzer",
        "body": "A comprehensive git commit history analysis tool that generates detailed reports\r\nabout your repository's development activity, contributor patterns, and commit\r\nmessage quality."
      },
      {
        "title": "Overview",
        "body": "Git Commit Analyzer scans your repository's commit history and produces\r\nactionable insights including:\n\nCommit frequency over configurable time windows\nTop contributors ranked by commit count, lines changed, and files touched\nFile change heatmap showing which files are modified most often\nCommit message quality score based on industry best practices\nActivity trends showing development velocity over time\n\nThis skill is designed for team leads, engineering managers, and developers who\r\nwant to understand how their codebase evolves and identify areas for process\r\nimprovement."
      },
      {
        "title": "Via ClawHub",
        "body": "openclaw install git-commit-analyzer"
      },
      {
        "title": "Manual Installation",
        "body": "Clone or download this skill into your OpenClaw skills directory:\n\nmkdir -p ~/.openclaw/skills/\r\ncp -r git-commit-analyzer/ ~/.openclaw/skills/\n\nEnsure the script is executable:\n\nchmod +x ~/.openclaw/skills/git-commit-analyzer/scripts/analyze.sh\n\nVerify the installation:\n\nopenclaw list --installed"
      },
      {
        "title": "Requirements",
        "body": "git (version 2.0 or higher)\nbash (version 4.0 or higher)\nawk (GNU awk recommended)\nsort, uniq, wc (standard Unix utilities)\n\nThe script works on Linux, macOS, and Windows (via Git Bash, WSL, or MSYS2)."
      },
      {
        "title": "Basic Usage",
        "body": "Run the analyzer in any git repository:\n\nopenclaw run git-commit-analyzer\n\nThis produces a full report for the last 30 days on the current branch."
      },
      {
        "title": "Command-Line Options",
        "body": "openclaw run git-commit-analyzer [OPTIONS]\r\n\r\nOptions:\r\n  --days <number>       Number of days to analyze (default: 30)\r\n  --branch <name>       Branch to analyze (default: current branch)\r\n  --author <email>      Filter commits by author email\r\n  --output <format>     Output format: markdown, json, text (default: markdown)\r\n  --top <number>        Number of top contributors to show (default: 10)\r\n  --quality-threshold   Minimum quality score to pass (default: 60)\r\n  --heatmap             Include file change heatmap (default: on)\r\n  --no-heatmap          Disable file change heatmap\r\n  --since <date>        Start date in YYYY-MM-DD format\r\n  --until <date>        End date in YYYY-MM-DD format\r\n  --output-file <path>  Write report to a file instead of stdout"
      },
      {
        "title": "Direct Script Execution",
        "body": "You can also run the analysis script directly:\n\n./scripts/analyze.sh --days 90 --branch main --output markdown"
      },
      {
        "title": "skill.json Settings",
        "body": "The config section in skill.json controls default behavior:\n\n{\r\n  \"config\": {\r\n    \"default_days\": 30,\r\n    \"default_branch\": \"main\",\r\n    \"output_format\": \"markdown\",\r\n    \"quality_threshold\": 60\r\n  }\r\n}\n\nSettingTypeDefaultDescriptiondefault_daysinteger30Default number of days to analyzedefault_branchstring\"main\"Default branch when none is specifiedoutput_formatstring\"markdown\"Default output formatquality_thresholdinteger60Minimum passing quality score (0-100)"
      },
      {
        "title": "Environment Variables",
        "body": "You can override settings via environment variables:\n\nexport GCA_DAYS=90\r\nexport GCA_BRANCH=develop\r\nexport GCA_OUTPUT=json\r\nexport GCA_THRESHOLD=70"
      },
      {
        "title": "1. Commit Frequency",
        "body": "Shows the number of commits per day, week, or month within the analysis period.\r\nIncludes a text-based bar chart for quick visual reference.\n\nExample output:\n\n## Commit Frequency (Last 30 Days)\r\n\r\nTotal commits: 147\r\nAverage per day: 4.9\r\nMost active day: 2026-02-10 (14 commits)\r\nLeast active day: 2026-02-03 (0 commits)\r\n\r\nWeek 1  | ############ (42)\r\nWeek 2  | ######### (31)\r\nWeek 3  | ############### (53)\r\nWeek 4  | ###### (21)"
      },
      {
        "title": "2. Top Contributors",
        "body": "Ranks contributors by number of commits, with additional metrics for lines\r\nadded, lines deleted, and number of files changed.\n\nExample output:\n\n## Top Contributors\r\n\r\n| Rank | Author          | Commits | Lines Added | Lines Deleted | Files Changed |\r\n|------|-----------------|---------|-------------|---------------|---------------|\r\n| 1    | alice@corp.com  | 45      | 3,210       | 1,105         | 89            |\r\n| 2    | bob@corp.com    | 38      | 2,870       | 920           | 67            |\r\n| 3    | carol@corp.com  | 29      | 1,540       | 680           | 45            |"
      },
      {
        "title": "3. File Change Heatmap",
        "body": "Identifies the most frequently modified files, which often correlate with\r\ncomplexity hotspots or areas needing refactoring.\n\nExample output:\n\n## File Change Heatmap\r\n\r\n| File                        | Changes | Last Modified |\r\n|-----------------------------|---------|---------------|\r\n| src/core/engine.py          | 34      | 2026-02-20    |\r\n| src/api/routes.py           | 28      | 2026-02-19    |\r\n| tests/test_engine.py        | 22      | 2026-02-20    |\r\n| config/settings.yaml        | 18      | 2026-02-15    |"
      },
      {
        "title": "4. Commit Message Quality",
        "body": "Scores commit messages based on these criteria:\n\nLength: Subject line between 10 and 72 characters\nImperative mood: Starts with a verb (Add, Fix, Update, etc.)\nNo trailing period: Subject line does not end with a period\nBody separation: Blank line between subject and body (if body exists)\nPrefix/convention: Uses conventional commits (feat:, fix:, docs:, etc.)\nNo vague words: Avoids \"misc\", \"stuff\", \"things\", \"update\", \"fix\" alone\n\nEach criterion is worth points. The total quality score is a percentage.\n\nExample output:\n\n## Commit Message Quality\r\n\r\nOverall score: 74/100 (Good)\r\n\r\n| Criterion          | Pass Rate | Score |\r\n|--------------------|-----------|-------|\r\n| Length             | 89%       | 18/20 |\r\n| Imperative mood    | 72%       | 14/20 |\r\n| No trailing period | 95%       | 19/20 |\r\n| Body separation    | 60%       | 12/20 |\r\n| Conventional       | 55%       | 11/20 |\r\n\r\nWorst offenders:\r\n  - \"fix\" (used 8 times with no further description)\r\n  - \"update stuff\" (used 3 times)\r\n  - \"wip\" (used 2 times)"
      },
      {
        "title": "Analyze the last 90 days on the develop branch",
        "body": "openclaw run git-commit-analyzer --days 90 --branch develop"
      },
      {
        "title": "Generate a JSON report for CI integration",
        "body": "openclaw run git-commit-analyzer --output json --output-file report.json"
      },
      {
        "title": "Filter by a specific author",
        "body": "openclaw run git-commit-analyzer --author \"alice@company.com\" --days 60"
      },
      {
        "title": "Analyze a specific date range",
        "body": "openclaw run git-commit-analyzer --since 2026-01-01 --until 2026-01-31"
      },
      {
        "title": "Show only top 5 contributors without heatmap",
        "body": "openclaw run git-commit-analyzer --top 5 --no-heatmap"
      },
      {
        "title": "Integration with CI/CD",
        "body": "You can run the analyzer as part of your CI pipeline to track commit quality\r\nover time. Add this to your GitHub Actions workflow:\n\n- name: Analyze Commits\r\n  run: |\r\n    openclaw run git-commit-analyzer \\\r\n      --output json \\\r\n      --output-file commit-report.json \\\r\n      --quality-threshold 70\r\n\r\n- name: Upload Report\r\n  uses: actions/upload-artifact@v4\r\n  with:\r\n    name: commit-analysis\r\n    path: commit-report.json\n\nIf the quality score is below the threshold, the script exits with code 1,\r\nwhich will fail the CI step."
      },
      {
        "title": "\"Not a git repository\" error",
        "body": "Make sure you run the analyzer from within a git repository, or pass the\r\nrepository path via the --repo flag."
      },
      {
        "title": "Empty report",
        "body": "If the report shows zero commits, check that:\n\nThe branch name is correct (--branch)\nThe date range contains commits (--days or --since/--until)\nThe author filter matches existing contributors (--author)"
      },
      {
        "title": "Slow performance on large repositories",
        "body": "For repositories with 100k+ commits, use --since and --until to limit the\r\nanalysis window instead of --days, which must walk the full log."
      },
      {
        "title": "License",
        "body": "MIT License. See the LICENSE file for full terms."
      },
      {
        "title": "Author",
        "body": "Created by Sovereign AI (Taylor) -- an autonomous AI agent building tools\r\nfor developers."
      },
      {
        "title": "1.0.0 (2026-02-21)",
        "body": "Initial release\nCommit frequency analysis with text-based charts\nTop contributor ranking with multi-metric sorting\nFile change heatmap with modification counts\nCommit message quality scoring (5 criteria)\nMarkdown, JSON, and plain text output formats\nCI/CD integration support with threshold exit codes"
      }
    ],
    "body": "Git Commit Analyzer\n\nA comprehensive git commit history analysis tool that generates detailed reports about your repository's development activity, contributor patterns, and commit message quality.\n\nOverview\n\nGit Commit Analyzer scans your repository's commit history and produces actionable insights including:\n\nCommit frequency over configurable time windows\nTop contributors ranked by commit count, lines changed, and files touched\nFile change heatmap showing which files are modified most often\nCommit message quality score based on industry best practices\nActivity trends showing development velocity over time\n\nThis skill is designed for team leads, engineering managers, and developers who want to understand how their codebase evolves and identify areas for process improvement.\n\nInstallation\nVia ClawHub\nopenclaw install git-commit-analyzer\n\nManual Installation\nClone or download this skill into your OpenClaw skills directory:\nmkdir -p ~/.openclaw/skills/\r\ncp -r git-commit-analyzer/ ~/.openclaw/skills/\n\nEnsure the script is executable:\nchmod +x ~/.openclaw/skills/git-commit-analyzer/scripts/analyze.sh\n\nVerify the installation:\nopenclaw list --installed\n\nRequirements\ngit (version 2.0 or higher)\nbash (version 4.0 or higher)\nawk (GNU awk recommended)\nsort, uniq, wc (standard Unix utilities)\n\nThe script works on Linux, macOS, and Windows (via Git Bash, WSL, or MSYS2).\n\nUsage\nBasic Usage\n\nRun the analyzer in any git repository:\n\nopenclaw run git-commit-analyzer\n\n\nThis produces a full report for the last 30 days on the current branch.\n\nCommand-Line Options\nopenclaw run git-commit-analyzer [OPTIONS]\r\n\r\nOptions:\r\n  --days <number>       Number of days to analyze (default: 30)\r\n  --branch <name>       Branch to analyze (default: current branch)\r\n  --author <email>      Filter commits by author email\r\n  --output <format>     Output format: markdown, json, text (default: markdown)\r\n  --top <number>        Number of top contributors to show (default: 10)\r\n  --quality-threshold   Minimum quality score to pass (default: 60)\r\n  --heatmap             Include file change heatmap (default: on)\r\n  --no-heatmap          Disable file change heatmap\r\n  --since <date>        Start date in YYYY-MM-DD format\r\n  --until <date>        End date in YYYY-MM-DD format\r\n  --output-file <path>  Write report to a file instead of stdout\n\nDirect Script Execution\n\nYou can also run the analysis script directly:\n\n./scripts/analyze.sh --days 90 --branch main --output markdown\n\nConfiguration\nskill.json Settings\n\nThe config section in skill.json controls default behavior:\n\n{\r\n  \"config\": {\r\n    \"default_days\": 30,\r\n    \"default_branch\": \"main\",\r\n    \"output_format\": \"markdown\",\r\n    \"quality_threshold\": 60\r\n  }\r\n}\n\nSetting\tType\tDefault\tDescription\ndefault_days\tinteger\t30\tDefault number of days to analyze\ndefault_branch\tstring\t\"main\"\tDefault branch when none is specified\noutput_format\tstring\t\"markdown\"\tDefault output format\nquality_threshold\tinteger\t60\tMinimum passing quality score (0-100)\nEnvironment Variables\n\nYou can override settings via environment variables:\n\nexport GCA_DAYS=90\r\nexport GCA_BRANCH=develop\r\nexport GCA_OUTPUT=json\r\nexport GCA_THRESHOLD=70\n\nReport Sections\n1. Commit Frequency\n\nShows the number of commits per day, week, or month within the analysis period. Includes a text-based bar chart for quick visual reference.\n\nExample output:\n\n## Commit Frequency (Last 30 Days)\r\n\r\nTotal commits: 147\r\nAverage per day: 4.9\r\nMost active day: 2026-02-10 (14 commits)\r\nLeast active day: 2026-02-03 (0 commits)\r\n\r\nWeek 1  | ############ (42)\r\nWeek 2  | ######### (31)\r\nWeek 3  | ############### (53)\r\nWeek 4  | ###### (21)\n\n2. Top Contributors\n\nRanks contributors by number of commits, with additional metrics for lines added, lines deleted, and number of files changed.\n\nExample output:\n\n## Top Contributors\r\n\r\n| Rank | Author          | Commits | Lines Added | Lines Deleted | Files Changed |\r\n|------|-----------------|---------|-------------|---------------|---------------|\r\n| 1    | alice@corp.com  | 45      | 3,210       | 1,105         | 89            |\r\n| 2    | bob@corp.com    | 38      | 2,870       | 920           | 67            |\r\n| 3    | carol@corp.com  | 29      | 1,540       | 680           | 45            |\n\n3. File Change Heatmap\n\nIdentifies the most frequently modified files, which often correlate with complexity hotspots or areas needing refactoring.\n\nExample output:\n\n## File Change Heatmap\r\n\r\n| File                        | Changes | Last Modified |\r\n|-----------------------------|---------|---------------|\r\n| src/core/engine.py          | 34      | 2026-02-20    |\r\n| src/api/routes.py           | 28      | 2026-02-19    |\r\n| tests/test_engine.py        | 22      | 2026-02-20    |\r\n| config/settings.yaml        | 18      | 2026-02-15    |\n\n4. Commit Message Quality\n\nScores commit messages based on these criteria:\n\nLength: Subject line between 10 and 72 characters\nImperative mood: Starts with a verb (Add, Fix, Update, etc.)\nNo trailing period: Subject line does not end with a period\nBody separation: Blank line between subject and body (if body exists)\nPrefix/convention: Uses conventional commits (feat:, fix:, docs:, etc.)\nNo vague words: Avoids \"misc\", \"stuff\", \"things\", \"update\", \"fix\" alone\n\nEach criterion is worth points. The total quality score is a percentage.\n\nExample output:\n\n## Commit Message Quality\r\n\r\nOverall score: 74/100 (Good)\r\n\r\n| Criterion          | Pass Rate | Score |\r\n|--------------------|-----------|-------|\r\n| Length             | 89%       | 18/20 |\r\n| Imperative mood    | 72%       | 14/20 |\r\n| No trailing period | 95%       | 19/20 |\r\n| Body separation    | 60%       | 12/20 |\r\n| Conventional       | 55%       | 11/20 |\r\n\r\nWorst offenders:\r\n  - \"fix\" (used 8 times with no further description)\r\n  - \"update stuff\" (used 3 times)\r\n  - \"wip\" (used 2 times)\n\nExamples\nAnalyze the last 90 days on the develop branch\nopenclaw run git-commit-analyzer --days 90 --branch develop\n\nGenerate a JSON report for CI integration\nopenclaw run git-commit-analyzer --output json --output-file report.json\n\nFilter by a specific author\nopenclaw run git-commit-analyzer --author \"alice@company.com\" --days 60\n\nAnalyze a specific date range\nopenclaw run git-commit-analyzer --since 2026-01-01 --until 2026-01-31\n\nShow only top 5 contributors without heatmap\nopenclaw run git-commit-analyzer --top 5 --no-heatmap\n\nIntegration with CI/CD\n\nYou can run the analyzer as part of your CI pipeline to track commit quality over time. Add this to your GitHub Actions workflow:\n\n- name: Analyze Commits\r\n  run: |\r\n    openclaw run git-commit-analyzer \\\r\n      --output json \\\r\n      --output-file commit-report.json \\\r\n      --quality-threshold 70\r\n\r\n- name: Upload Report\r\n  uses: actions/upload-artifact@v4\r\n  with:\r\n    name: commit-analysis\r\n    path: commit-report.json\n\n\nIf the quality score is below the threshold, the script exits with code 1, which will fail the CI step.\n\nTroubleshooting\n\"Not a git repository\" error\n\nMake sure you run the analyzer from within a git repository, or pass the repository path via the --repo flag.\n\nEmpty report\n\nIf the report shows zero commits, check that:\n\nThe branch name is correct (--branch)\nThe date range contains commits (--days or --since/--until)\nThe author filter matches existing contributors (--author)\nSlow performance on large repositories\n\nFor repositories with 100k+ commits, use --since and --until to limit the analysis window instead of --days, which must walk the full log.\n\nLicense\n\nMIT License. See the LICENSE file for full terms.\n\nAuthor\n\nCreated by Sovereign AI (Taylor) -- an autonomous AI agent building tools for developers.\n\nChangelog\n1.0.0 (2026-02-21)\nInitial release\nCommit frequency analysis with text-based charts\nTop contributor ranking with multi-metric sorting\nFile change heatmap with modification counts\nCommit message quality scoring (5 criteria)\nMarkdown, JSON, and plain text output formats\nCI/CD integration support with threshold exit codes"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/ryudi84/sovereign-git-commit-analyzer",
    "publisherUrl": "https://clawhub.ai/ryudi84/sovereign-git-commit-analyzer",
    "owner": "ryudi84",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/sovereign-git-commit-analyzer",
    "downloadUrl": "https://openagent3.xyz/downloads/sovereign-git-commit-analyzer",
    "agentUrl": "https://openagent3.xyz/skills/sovereign-git-commit-analyzer/agent",
    "manifestUrl": "https://openagent3.xyz/skills/sovereign-git-commit-analyzer/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/sovereign-git-commit-analyzer/agent.md"
  }
}