用途:把面向行的 CSV 迁移问题清单转换为规范的 report.json,写入版本化报告目录后,可被评估 UI 和解决方案解析逻辑像原生 AppCAT 报告一样识别。这是 LLM 驱动的转换,不依赖固定列名映射。
主要能力:读取 CSV 并按含义解释列(项目/模块、应用名、问题标题与描述、严重级别、类别、CVE/CWE、受影响组件与版本、文件路径与行号、工作量、参考链接);按项目分组行;将每行归入三类分支之一:CVE/CWE 生成 security 发现(按 id 去重、合并证据文件、取最强严重级别);涉及 JDK、Spring Boot、Spring Framework、Jakarta EE 大版本升级的生成升级事件;其他问题通过解决方案映射到规范 ruleId 并生成事件。
使用方式:输入参数 csv-path(必填)、workspace-path(可选,默认当前目录)、producer(可选,默认 "CSV import")。输出到 {workspace-path}/.github/modernize/assessment/reports/report-{reportId}/report.json。辅助脚本 scripts/report_tools.sh(bash + jq)或 scripts/report_tools.ps1(PowerShell 7+)提供确定性查询与校验,需在 scripts/ 目录运行: ./report_tools.sh list-solutions [--query KW] [--type Formula|Chat] [--ids-only] ./report_tools.sh rules-for-solution <solutionId> ./report_tools.sh upgrade-solutions ./report_tools.sh validate <path/to/report.json> PowerShell 版本命令相同,前缀为 pwsh ./report_tools.ps1。
适用场景:已有 CSV 而非 AppCAT report.json,希望其行为等同真实评估报告时使用;不适用于从源代码运行分析(那是 assessment 技能)。
限制:schema 中 additionalProperties 几乎处处为 false,不得添加 summary 等未定义字段;严重级别枚举为 mandatory|potential|optional|information,安全发现不含 information;缺失概念应留空或默认,不得编造;rules-for-solution 返回空列表时不得虚构 ruleId;validate 退出码 0 有效、1 无效、2 无法读取解析。