[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6XEPTPB0W3CCVBQGSQW43XJ":3,"skill-same:01M6XEPTPB0W3CCVBQGSQW43XJ":64},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":43,"commitSha":44,"skillDirectory":45,"forksCount":13,"repositoryHtmlUrl":46,"repositoryHomepageUrl":6,"ownerHtmlUrl":47,"ownerBlogUrl":6,"ownerDescription":48,"updatedAt":49,"install":50,"resources":63},"01M6XEPTPB0W3CCVBQGSQW43XJ","cvss-score-extraction",null,"Extract CVSS (Common Vulnerability Scoring System) scores from vulnerability data sources with proper fallback handling. This skill covers understanding CVSS v3, handling multiple score sources (NVD, GHSA, RedHat), implementing source priority logic, and dealing with missing scores in security reporting.","Waaaalnut\u002Fskillsbench","Waaaalnut","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F103995656?v=4","01M6XCS9K1V51EY3JMB7DGMX24","01M6XCS9Q4WPW88W62C55G1H44",0,"Apache-2.0","https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench\u002Fblob\u002Fmain\u002Ftasks\u002Fsoftware-dependency-audit\u002Fenvironment\u002Fskills\u002Fcvss-score-extraction\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"extraction","cvss score extraction","cvss","data sources","security","source","implementing","with","sources","missing","v3","logic","scoring","extract","common","system","vulnerability","NVD","data","reporting","2026-11-10 10:12:30",false,"---\nname: cvss-score-extraction\ndescription: Extract CVSS (Common Vulnerability Scoring System) scores from vulnerability data sources with proper fallback handling. This skill covers understanding CVSS v3, handling multiple score sources (NVD, GHSA, RedHat), implementing source priority logic, and dealing with missing scores in security reporting.\n---\n\n# CVSS Score Extraction from Vulnerability Data\n\nThis skill provides guidance on extracting CVSS scores from vulnerability data—a critical component of security report generation.\n\n## Overview\n\nCVSS (Common Vulnerability Scoring System) provides a standardized way to assess the severity of security vulnerabilities. When generating security reports, extracting the correct CVSS score from multiple data sources is essential for accurate risk assessment.\n\n## What is CVSS?\n\n### CVSS Scoring System\n\nCVSS assigns a numerical score (0.0-10.0) representing vulnerability severity:\n\n| Score Range | Severity Level | Description |\n|-------------|----------------|-------------|\n| 0.0 | None | No impact |\n| 0.1-3.9 | **Low** | Minimal impact |\n| 4.0-6.9 | **Medium** | Moderate impact |\n| 7.0-8.9 | **High** | Significant impact |\n| 9.0-10.0 | **Critical** | Severe impact |\n\n### CVSS Versions\n\n- **CVSS v2**: Legacy scoring system (0-10 scale)\n- **CVSS v3**: Current standard with refined metrics\n- **CVSS v3.1**: Minor refinement of v3\n\n**Best Practice**: Prefer CVSS v3\u002Fv3.1 scores when available.\n\n## Multiple Vulnerability Data Sources\n\nVulnerability scanners often aggregate data from multiple sources, each providing their own CVSS assessment:\n\n### Common Sources\n\n1. **NVD (National Vulnerability Database)**\n   - Maintained by NIST (U.S. government)\n   - Most authoritative source\n   - **Priority: Highest**\n\n2. **GHSA (GitHub Security Advisory)**\n   - Community-driven vulnerability database\n   - Strong for open-source packages\n   - **Priority: Medium**\n\n3. **RedHat Security Data**\n   - RedHat's security team assessments\n   - Focused on enterprise Linux ecosystem\n   - **Priority: Lower**\n\n### Why Multiple Sources?\n\n- Not all sources have scores for every CVE\n- Scores may differ based on interpretation\n- Need fallback logic when primary source unavailable\n\n## Source Priority Strategy\n\nWhen multiple sources provide scores, use a **priority cascade**:\n\n```\nNVD → GHSA → RedHat → N\u002FA\n```\n\n**Rationale**: NVD is the most comprehensive and authoritative, followed by community sources, then vendor-specific databases.\n\n## Data Structure\n\nTrivy (and similar tools) return CVSS data in nested format:\n\n```json\n{\n  \"VulnerabilityID\": \"CVE-2021-44906\",\n  \"PkgName\": \"minimist\",\n  \"Severity\": \"CRITICAL\",\n  \"CVSS\": {\n    \"nvd\": {\n      \"V2Vector\": \"AV:N\u002FAC:L\u002FAu:N\u002FC:P\u002FI:P\u002FA:P\",\n      \"V3Vector\": \"CVSS:3.1\u002FAV:N\u002FAC:L\u002FPR:N\u002FUI:N\u002FS:U\u002FC:H\u002FI:H\u002FA:H\",\n      \"V2Score\": 7.5,\n      \"V3Score\": 9.8\n    },\n    \"ghsa\": {\n      \"V3Vector\": \"CVSS:3.1\u002FAV:N\u002FAC:L\u002FPR:N\u002FUI:N\u002FS:U\u002FC:H\u002FI:H\u002FA:H\",\n      \"V3Score\": 9.8\n    }\n  }\n}\n```\n\n## Python Implementation\n\n### Basic Score Extraction\n\n```python\ndef get_cvss_score(vuln_data):\n    \"\"\"\n    Extract CVSS v3 score from vulnerability data.\n    Uses priority: NVD > GHSA > RedHat\n    \n    Args:\n        vuln_data: Dictionary containing vulnerability information\n        \n    Returns:\n        CVSS v3 score as float, or 'N\u002FA' if not available\n    \"\"\"\n    cvss = vuln_data.get('CVSS', {})\n    \n    # Priority 1: NVD (National Vulnerability Database)\n    if 'nvd' in cvss:\n        score = cvss['nvd'].get('V3Score')\n        if score is not None:\n            return score\n    \n    # Priority 2: GHSA (GitHub Security Advisory)\n    if 'ghsa' in cvss:\n        score = cvss['ghsa'].get('V3Score')\n        if score is not None:\n            return score\n    \n    # Priority 3: RedHat\n    if 'redhat' in cvss:\n        score = cvss['redhat'].get('V3Score')\n        if score is not None:\n            return score\n    \n    # No score available\n    return 'N\u002FA'\n```\n\n### Enhanced Version with V2 Fallback\n\n```python\ndef get_cvss_score_with_fallback(vuln_data):\n    \"\"\"\n    Extract CVSS score with v2 fallback.\n    Priority: NVD v3 > GHSA v3 > RedHat v3 > NVD v2 > N\u002FA\n    \"\"\"\n    cvss = vuln_data.get('CVSS', {})\n    \n    # Try v3 scores first\n    for source in ['nvd', 'ghsa', 'redhat']:\n        if source in cvss:\n            v3_score = cvss[source].get('V3Score')\n            if v3_score is not None:\n                return {'score': v3_score, 'version': 'v3', 'source': source}\n    \n    # Fallback to v2 if v3 not available\n    if 'nvd' in cvss:\n        v2_score = cvss['nvd'].get('V2Score')\n        if v2_score is not None:\n            return {'score': v2_score, 'version': 'v2', 'source': 'nvd'}\n    \n    return {'score': 'N\u002FA', 'version': None, 'source': None}\n```\n\n## Usage in Report Generation\n\n### Integrating CVSS Extraction\n\n```python\nimport json\n\ndef parse_vulnerabilities(json_file):\n    \"\"\"Parse Trivy JSON and extract vulnerabilities with CVSS scores.\"\"\"\n    with open(json_file, 'r') as f:\n        data = json.load(f)\n    \n    vulnerabilities = []\n    \n    if 'Results' in data:\n        for result in data['Results']:\n            for vuln in result.get('Vulnerabilities', []):\n                # Extract basic fields\n                record = {\n                    'Package': vuln.get('PkgName'),\n                    'Version': vuln.get('InstalledVersion'),\n                    'CVE_ID': vuln.get('VulnerabilityID'),\n                    'Severity': vuln.get('Severity'),\n                    'CVSS_Score': get_cvss_score(vuln),  # Use extraction function\n                    'Fixed_Version': vuln.get('FixedVersion', 'N\u002FA'),\n                    'Title': vuln.get('Title', 'No description')\n                }\n                vulnerabilities.append(record)\n    \n    return vulnerabilities\n```\n\n## Common Patterns\n\n### Pattern 1: Numeric Score or 'N\u002FA'\n\n```python\ncvss_score = get_cvss_score(vuln)\n# Returns: 9.8 or 'N\u002FA'\n```\n\n**Use case**: Simple reports where missing scores are acceptable\n\n### Pattern 2: Score with Metadata\n\n```python\ncvss_info = get_cvss_score_with_fallback(vuln)\n# Returns: {'score': 9.8, 'version': 'v3', 'source': 'nvd'}\n```\n\n**Use case**: Detailed reports showing data provenance\n\n### Pattern 3: Filtering by Score Threshold\n\n```python\ndef is_high_severity(vuln_data, threshold=7.0):\n    \"\"\"Check if vulnerability meets severity threshold.\"\"\"\n    score = get_cvss_score(vuln_data)\n    if score == 'N\u002FA':\n        # If no score, use severity label\n        return vuln_data.get('Severity') in ['HIGH', 'CRITICAL']\n    return score >= threshold\n```\n\n## Error Handling\n\n### Handling Missing Data\n\n```python\ndef safe_get_cvss_score(vuln_data):\n    \"\"\"Safely extract CVSS score with comprehensive error handling.\"\"\"\n    try:\n        cvss = vuln_data.get('CVSS', {})\n        \n        # Validate cvss is a dictionary\n        if not isinstance(cvss, dict):\n            return 'N\u002FA'\n        \n        for source in ['nvd', 'ghsa', 'redhat']:\n            if source in cvss and isinstance(cvss[source], dict):\n                score = cvss[source].get('V3Score')\n                # Validate score is numeric\n                if score is not None and isinstance(score, (int, float)):\n                    return score\n        \n        return 'N\u002FA'\n    except (AttributeError, TypeError):\n        return 'N\u002FA'\n```\n\n## Best Practices\n\n1. **Always provide fallback**: Use 'N\u002FA' when scores unavailable\n2. **Prefer newer versions**: V3 > V2\n3. **Respect source hierarchy**: NVD is most authoritative\n4. **Validate data types**: Ensure scores are numeric before using\n5. **Document source**: In detailed reports, note which source provided the score\n\n## Complete Example\n\n```python\nimport json\n\ndef get_cvss_score(vuln_data):\n    \"\"\"Extract CVSS v3 score with source priority.\"\"\"\n    cvss = vuln_data.get('CVSS', {})\n    \n    for source in ['nvd', 'ghsa', 'redhat']:\n        if source in cvss:\n            score = cvss[source].get('V3Score')\n            if score is not None:\n                return score\n    \n    return 'N\u002FA'\n\ndef generate_report_with_cvss(json_file):\n    \"\"\"Generate vulnerability report with CVSS scores.\"\"\"\n    with open(json_file, 'r') as f:\n        data = json.load(f)\n    \n    print(f\"{'Package':\u003C20} {'CVE ID':\u003C20} {'CVSS':\u003C8} {'Severity':\u003C10}\")\n    print(\"-\" * 60)\n    \n    if 'Results' in data:\n        for result in data['Results']:\n            for vuln in result.get('Vulnerabilities', []):\n                pkg = vuln.get('PkgName', 'Unknown')\n                cve = vuln.get('VulnerabilityID', 'N\u002FA')\n                cvss = get_cvss_score(vuln)\n                severity = vuln.get('Severity', 'UNKNOWN')\n                \n                print(f\"{pkg:\u003C20} {cve:\u003C20} {cvss:\u003C8} {severity:\u003C10}\")\n\n# Usage\ngenerate_report_with_cvss('trivy_report.json')\n```\n\n## Dependencies\n\n### Python Modules\n- `json` (standard library)\n\n### Data Format\n- Expects Trivy JSON format or similar structured vulnerability data\n\n## References\n\n- [CVSS v3.1 Specification](https:\u002F\u002Fwww.first.org\u002Fcvss\u002Fv3.1\u002Fspecification-document)\n- [NVD CVSS Calculator](https:\u002F\u002Fnvd.nist.gov\u002Fvuln-metrics\u002Fcvss\u002Fv3-calculator)\n- [GitHub Security Advisories](https:\u002F\u002Fgithub.com\u002Fadvisories)\n","# CVSS Score Extraction from Vulnerability Data\n\nThis skill provides guidance on extracting CVSS scores from vulnerability data—a critical component of security report generation.\n\n## Overview\n\nCVSS (Common Vulnerability Scoring System) provides a standardized way to assess the severity of security vulnerabilities. When generating security reports, extracting the correct CVSS score from multiple data sources is essential for accurate risk assessment.\n\n## What is CVSS?\n\n### CVSS Scoring System\n\nCVSS assigns a numerical score (0.0-10.0) representing vulnerability severity:\n\n| Score Range | Severity Level | Description |\n|-------------|----------------|-------------|\n| 0.0 | None | No impact |\n| 0.1-3.9 | **Low** | Minimal impact |\n| 4.0-6.9 | **Medium** | Moderate impact |\n| 7.0-8.9 | **High** | Significant impact |\n| 9.0-10.0 | **Critical** | Severe impact |\n\n### CVSS Versions\n\n- **CVSS v2**: Legacy scoring system (0-10 scale)\n- **CVSS v3**: Current standard with refined metrics\n- **CVSS v3.1**: Minor refinement of v3\n\n**Best Practice**: Prefer CVSS v3\u002Fv3.1 scores when available.\n\n## Multiple Vulnerability Data Sources\n\nVulnerability scanners often aggregate data from multiple sources, each providing their own CVSS assessment:\n\n### Common Sources\n\n1. **NVD (National Vulnerability Database)**\n   - Maintained by NIST (U.S. government)\n   - Most authoritative source\n   - **Priority: Highest**\n\n2. **GHSA (GitHub Security Advisory)**\n   - Community-driven vulnerability database\n   - Strong for open-source packages\n   - **Priority: Medium**\n\n3. **RedHat Security Data**\n   - RedHat's security team assessments\n   - Focused on enterprise Linux ecosystem\n   - **Priority: Lower**\n\n### Why Multiple Sources?\n\n- Not all sources have scores for every CVE\n- Scores may differ based on interpretation\n- Need fallback logic when primary source unavailable\n\n## Source Priority Strategy\n\nWhen multiple sources provide scores, use a **priority cascade**:\n\n```\nNVD → GHSA → RedHat → N\u002FA\n```\n\n**Rationale**: NVD is the most comprehensive and authoritative, followed by community sources, then vendor-specific databases.\n\n## Data Structure\n\nTrivy (and similar tools) return CVSS data in nested format:\n\n```json\n{\n  \"VulnerabilityID\": \"CVE-2021-44906\",\n  \"PkgName\": \"minimist\",\n  \"Severity\": \"CRITICAL\",\n  \"CVSS\": {\n    \"nvd\": {\n      \"V2Vector\": \"AV:N\u002FAC:L\u002FAu:N\u002FC:P\u002FI:P\u002FA:P\",\n      \"V3Vector\": \"CVSS:3.1\u002FAV:N\u002FAC:L\u002FPR:N\u002FUI:N\u002FS:U\u002FC:H\u002FI:H\u002FA:H\",\n      \"V2Score\": 7.5,\n      \"V3Score\": 9.8\n    },\n    \"ghsa\": {\n      \"V3Vector\": \"CVSS:3.1\u002FAV:N\u002FAC:L\u002FPR:N\u002FUI:N\u002FS:U\u002FC:H\u002FI:H\u002FA:H\",\n      \"V3Score\": 9.8\n    }\n  }\n}\n```\n\n## Python Implementation\n\n### Basic Score Extraction\n\n```python\ndef get_cvss_score(vuln_data):\n    \"\"\"\n    Extract CVSS v3 score from vulnerability data.\n    Uses priority: NVD > GHSA > RedHat\n    \n    Args:\n        vuln_data: Dictionary containing vulnerability information\n        \n    Returns:\n        CVSS v3 score as float, or 'N\u002FA' if not available\n    \"\"\"\n    cvss = vuln_data.get('CVSS', {})\n    \n    # Priority 1: NVD (National Vulnerability Database)\n    if 'nvd' in cvss:\n        score = cvss['nvd'].get('V3Score')\n        if score is not None:\n            return score\n    \n    # Priority 2: GHSA (GitHub Security Advisory)\n    if 'ghsa' in cvss:\n        score = cvss['ghsa'].get('V3Score')\n        if score is not None:\n            return score\n    \n    # Priority 3: RedHat\n    if 'redhat' in cvss:\n        score = cvss['redhat'].get('V3Score')\n        if score is not None:\n            return score\n    \n    # No score available\n    return 'N\u002FA'\n```\n\n### Enhanced Version with V2 Fallback\n\n```python\ndef get_cvss_score_with_fallback(vuln_data):\n    \"\"\"\n    Extract CVSS score with v2 fallback.\n    Priority: NVD v3 > GHSA v3 > RedHat v3 > NVD v2 > N\u002FA\n    \"\"\"\n    cvss = vuln_data.get('CVSS', {})\n    \n    # Try v3 scores first\n    for source in ['nvd', 'ghsa', 'redhat']:\n        if source in cvss:\n            v3_score = cvss[source].get('V3Score')\n            if v3_score is not None:\n                return {'score': v3_score, 'version': 'v3', 'source': source}\n    \n    # Fallback to v2 if v3 not available\n    if 'nvd' in cvss:\n        v2_score = cvss['nvd'].get('V2Score')\n        if v2_score is not None:\n            return {'score': v2_score, 'version': 'v2', 'source': 'nvd'}\n    \n    return {'score': 'N\u002FA', 'version': None, 'source': None}\n```\n\n## Usage in Report Generation\n\n### Integrating CVSS Extraction\n\n```python\nimport json\n\ndef parse_vulnerabilities(json_file):\n    \"\"\"Parse Trivy JSON and extract vulnerabilities with CVSS scores.\"\"\"\n    with open(json_file, 'r') as f:\n        data = json.load(f)\n    \n    vulnerabilities = []\n    \n    if 'Results' in data:\n        for result in data['Results']:\n            for vuln in result.get('Vulnerabilities', []):\n                # Extract basic fields\n                record = {\n                    'Package': vuln.get('PkgName'),\n                    'Version': vuln.get('InstalledVersion'),\n                    'CVE_ID': vuln.get('VulnerabilityID'),\n                    'Severity': vuln.get('Severity'),\n                    'CVSS_Score': get_cvss_score(vuln),  # Use extraction function\n                    'Fixed_Version': vuln.get('FixedVersion', 'N\u002FA'),\n                    'Title': vuln.get('Title', 'No description')\n                }\n                vulnerabilities.append(record)\n    \n    return vulnerabilities\n```\n\n## Common Patterns\n\n### Pattern 1: Numeric Score or 'N\u002FA'\n\n```python\ncvss_score = get_cvss_score(vuln)\n# Returns: 9.8 or 'N\u002FA'\n```\n\n**Use case**: Simple reports where missing scores are acceptable\n\n### Pattern 2: Score with Metadata\n\n```python\ncvss_info = get_cvss_score_with_fallback(vuln)\n# Returns: {'score': 9.8, 'version': 'v3', 'source': 'nvd'}\n```\n\n**Use case**: Detailed reports showing data provenance\n\n### Pattern 3: Filtering by Score Threshold\n\n```python\ndef is_high_severity(vuln_data, threshold=7.0):\n    \"\"\"Check if vulnerability meets severity threshold.\"\"\"\n    score = get_cvss_score(vuln_data)\n    if score == 'N\u002FA':\n        # If no score, use severity label\n        return vuln_data.get('Severity') in ['HIGH', 'CRITICAL']\n    return score >= threshold\n```\n\n## Error Handling\n\n### Handling Missing Data\n\n```python\ndef safe_get_cvss_score(vuln_data):\n    \"\"\"Safely extract CVSS score with comprehensive error handling.\"\"\"\n    try:\n        cvss = vuln_data.get('CVSS', {})\n        \n        # Validate cvss is a dictionary\n        if not isinstance(cvss, dict):\n            return 'N\u002FA'\n        \n        for source in ['nvd', 'ghsa', 'redhat']:\n            if source in cvss and isinstance(cvss[source], dict):\n                score = cvss[source].get('V3Score')\n                # Validate score is numeric\n                if score is not None and isinstance(score, (int, float)):\n                    return score\n        \n        return 'N\u002FA'\n    except (AttributeError, TypeError):\n        return 'N\u002FA'\n```\n\n## Best Practices\n\n1. **Always provide fallback**: Use 'N\u002FA' when scores unavailable\n2. **Prefer newer versions**: V3 > V2\n3. **Respect source hierarchy**: NVD is most authoritative\n4. **Validate data types**: Ensure scores are numeric before using\n5. **Document source**: In detailed reports, note which source provided the score\n\n## Complete Example\n\n```python\nimport json\n\ndef get_cvss_score(vuln_data):\n    \"\"\"Extract CVSS v3 score with source priority.\"\"\"\n    cvss = vuln_data.get('CVSS', {})\n    \n    for source in ['nvd', 'ghsa', 'redhat']:\n        if source in cvss:\n            score = cvss[source].get('V3Score')\n            if score is not None:\n                return score\n    \n    return 'N\u002FA'\n\ndef generate_report_with_cvss(json_file):\n    \"\"\"Generate vulnerability report with CVSS scores.\"\"\"\n    with open(json_file, 'r') as f:\n        data = json.load(f)\n    \n    print(f\"{'Package':\u003C20} {'CVE ID':\u003C20} {'CVSS':\u003C8} {'Severity':\u003C10}\")\n    print(\"-\" * 60)\n    \n    if 'Results' in data:\n        for result in data['Results']:\n            for vuln in result.get('Vulnerabilities', []):\n                pkg = vuln.get('PkgName', 'Unknown')\n                cve = vuln.get('VulnerabilityID', 'N\u002FA')\n                cvss = get_cvss_score(vuln)\n                severity = vuln.get('Severity', 'UNKNOWN')\n                \n                print(f\"{pkg:\u003C20} {cve:\u003C20} {cvss:\u003C8} {severity:\u003C10}\")\n\n# Usage\ngenerate_report_with_cvss('trivy_report.json')\n```\n\n## Dependencies\n\n### Python Modules\n- `json` (standard library)\n\n### Data Format\n- Expects Trivy JSON format or similar structured vulnerability data\n\n## References\n\n- [CVSS v3.1 Specification](https:\u002F\u002Fwww.first.org\u002Fcvss\u002Fv3.1\u002Fspecification-document)\n- [NVD CVSS Calculator](https:\u002F\u002Fnvd.nist.gov\u002Fvuln-metrics\u002Fcvss\u002Fv3-calculator)\n- [GitHub Security Advisories](https:\u002F\u002Fgithub.com\u002Fadvisories)\n",{"name":5,"description":7},"main","7eeb258ada72b7f58119b0e7a2c00ea89d9beedd","tasks\u002Fsoftware-dependency-audit\u002Fenvironment\u002Fskills\u002Fcvss-score-extraction","https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench","https:\u002F\u002Fgithub.com\u002FWaaaalnut","student of Zhejiang University","2026-04-21 23:16:23",{"source":8,"skillName":5,"commands":51,"prompt":61,"zipAvailable":62},[52,55,58],{"tool":53,"command":54},"npx","npx skills add Waaaalnut\u002Fskillsbench --skill cvss-score-extraction",{"tool":56,"command":57},"bunx","bunx skills add Waaaalnut\u002Fskillsbench --skill cvss-score-extraction",{"tool":59,"command":60},"pnpm","pnpm dlx skills add Waaaalnut\u002Fskillsbench --skill cvss-score-extraction","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench\u002Fblob\u002Fmain\u002Ftasks\u002Fsoftware-dependency-audit\u002Fenvironment\u002Fskills\u002Fcvss-score-extraction\u002FSKILL.md",true,[],[65,78,93,121,143,162],{"skillNo":66,"name":67,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":68,"categories":69,"keywords":75,"publishedAt":38},"01M6XEWMJ6VY3ZC53MPDCPG3GH","data-reconciliation","https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench\u002Fblob\u002Fmain\u002Ftasks\u002Fxlsx-recover-data\u002Fenvironment\u002Fskills\u002Fdata-reconciliation\u002FSKILL.md",[70],{"categoryNo":71,"categoryName":72,"taxonomyType":73,"taxonomyTypeDesc":74},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[76,77,36],"data reconciliation","reconciliation",{"skillNo":79,"name":80,"nameZh":6,"description":81,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":82,"categories":83,"keywords":84,"publishedAt":38},"01M6XEW8MNPMF1KRXV6ATGFRQF","speech-to-text","Transcribe video to timestamped text using Whisper tiny model (pre-installed).","https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench\u002Fblob\u002Fmain\u002Ftasks\u002Fvideo-tutorial-indexer\u002Fenvironment\u002Fskills\u002Fspeech-to-text\u002FSKILL.md",[],[85,86,87,88,89,90,91,92],"speech","text","speech to text","transcribe video","whisper","model","Video","transcribe",{"skillNo":94,"name":95,"nameZh":6,"description":96,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":97,"categories":98,"keywords":104,"publishedAt":38},"01M6XEW3FQZP0T1RKQQJFXVY9T","video-processor","Process videos by removing segments and concatenating remaining parts. Use when you need to remove detected pauses\u002Fopenings from videos, create highlight reels, or batch process segment removals using ffmpeg filter_complex.","https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench\u002Fblob\u002Fmain\u002Ftasks\u002Fvideo-silence-remover\u002Fenvironment\u002Fskills\u002Fvideo-processor\u002FSKILL.md",[99],{"categoryNo":100,"categoryName":101,"taxonomyType":102,"taxonomyTypeDesc":103},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",[91,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120],"processor","video processor","batch","create","reels","when","parts","segments","process","videos","you","segment","filter","ffmpeg","use","remove",{"skillNo":122,"name":123,"nameZh":6,"description":124,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":125,"categories":126,"keywords":128,"publishedAt":38},"01M6XEVXJ5KZ0NTY3XZKRY4AS1","silence-detector","Detect initial silence segments in audio\u002Fvideo using energy-based analysis. Use when you need to find low-energy periods at the start of recordings (title slides, setup time, pre-roll silence).","https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench\u002Fblob\u002Fmain\u002Ftasks\u002Fvideo-silence-remover\u002Fenvironment\u002Fskills\u002Fsilence-detector\u002FSKILL.md",[127],{"categoryNo":100,"categoryName":101,"taxonomyType":102,"taxonomyTypeDesc":103},[129,130,131,132,110,115,133,134,135,136,137,112,138,139,91,140,141,142,119],"detector","silence detector","title","slides","time","energy","at","recordings","detect","find","Audio","analysis","start","setup",{"skillNo":144,"name":145,"nameZh":6,"description":146,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":147,"categories":148,"keywords":149,"publishedAt":38},"01M6XEVT3NGRN1FT7JPMAPXS6M","segment-combiner","Combine multiple segment detection results into a unified list. Use when you need to merge segments from different detectors, prepare removal lists for video processing, or consolidate detection outputs.","https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench\u002Fblob\u002Fmain\u002Ftasks\u002Fvideo-silence-remover\u002Fenvironment\u002Fskills\u002Fsegment-combiner\u002FSKILL.md",[],[116,150,91,151,152,153,154,155,110,156,157,112,115,158,159,119,160,161],"segment combiner","detection","prepare","merge","video processing","for","outputs","combine","processing","consolidate","results","list",{"skillNo":163,"name":164,"nameZh":6,"description":165,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":166,"categories":167,"keywords":171,"publishedAt":38},"01M6XEVMPVASGS2KX86QK4FMT7","report-generator","Generate compression reports for video processing. Use when you need to create structured JSON reports with duration statistics, compression ratios, and segment details after video processing.","https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench\u002Fblob\u002Fmain\u002Ftasks\u002Fvideo-silence-remover\u002Fenvironment\u002Fskills\u002Freport-generator\u002FSKILL.md",[168],{"categoryNo":169,"categoryName":170,"taxonomyType":73,"taxonomyTypeDesc":74},"01JBSEEDCAT000000000000034","行政与办公人员",[172,173,174,116,110,155,115,25,158,175,176,177,119,154,178,91,179,180,108],"generator","report generator","report","statistics","structured","reports","json","compression","generate"]