agentsclimarketplace

Csv reporting

Skill cxcscmu/SkillLearnBench/skills/b1-one-shot-gemini-3.1-pro-preview/dependency-vulnerability-check/csv-reporting

Output vulnerability reports as a formatted CSV file.From its SKILL.md

Install
npx -y skills add cxcscmu/SkillLearnBench --skill csv-reporting

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

SKILL.md

2.0 KB, 444 tokens by cl100k_base, as published. Nobody here has run it

Vulnerability CSV Reporting

After parsing a vulnerability JSON report from a tool like Trivy, it is common to output the extracted findings to a CSV file for security audits or compliance checks.

Usage

This Python code snippet demonstrates how to export vulnerabilities to a CSV file according to a defined schema, such as: Package,Version,CVE_ID,Severity,CVSS_Score,Fixed_Version,Title,Url.

import csv
import json

def generate_csv(json_path, csv_path):
    with open(json_path, 'r', encoding='utf-8') as f:
        trivy_report = json.load(f)

    # Required CSV fields
    fieldnames = ['Package', 'Version', 'CVE_ID', 'Severity', 'CVSS_Score', 'Fixed_Version', 'Title', 'Url']

    with open(csv_path, 'w', newline='', encoding='utf-8') as f:
        writer = csv.DictWriter(f, fieldnames=fieldnames)
        writer.writeheader()

        for result in trivy_report.get('Results', []):
            for vuln in result.get('Vulnerabilities', []):
                # Only include HIGH and CRITICAL severities
                severity = vuln.get('Severity', '')
                if severity not in ['HIGH', 'CRITICAL']:
                    continue

                # Prepare the row
                row = {
                    'Package': vuln.get('PkgName', ''),
                    'Version': vuln.get('InstalledVersion', ''),
                    'CVE_ID': vuln.get('VulnerabilityID', ''),
                    'Severity': severity,
                    'CVSS_Score': extract_cvss(vuln),
                    'Fixed_Version': vuln.get('FixedVersion', 'N/A'),
                    'Title': vuln.get('Title', vuln.get('Description', '')).replace('\n', ' ').strip()[:100],
                    'Url': vuln.get('PrimaryURL', '')
                }
                writer.writerow(row)

# The extract_cvss function would be defined elsewhere or imported

This ensures properly-formatted tabular reports. Note how it limits the output strictly to HIGH and CRITICAL vulnerabilities.

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 326,871. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.