SuperAPI AI 工具集

risk-assess

编程与开发

查看项目

更新于 10-16 04:36

技能介绍

用途

risk-assess 用于对未提交代码进行风险评估,主要面向评估 PR 风险、提交前风险检查等场景。它通过确定性评分与定性解读相结合的方式,帮助判断当前变更是否安全推进。

主要能力

该技能运行脚本收集确定性评分,并解析 JSON 输出,包含以下字段:overall_score、risk_level、dimensions、flags、gate、next_actions。

脚本分析 3 个维度与 2 个条件标志:

维度:

  • breaking_surface(权重 45%):衡量被移除的导出、重命名的 API、变更的签名、删除的模块。
  • blast_radius(权重 35%):衡量导入被变更模块的文件数量(基于 grep)。
  • change_scope(权重 20%):衡量文件数量、LOC 变化量、目录跨度、重命名比例。

标志:

  • migration_safety:当 diff 中存在迁移/schema 文件时触发,检查是否存在回滚/down 文件。
  • regression_hint:(v2 存根)未来将进行 git 历史分析。

评分模型:

  • 总分 = breaking_surface * 0.45 + blast_radius * 0.35 + change_scope * 0.20
  • 每个维度为 0-100 分制
  • 总分为 0-100 分制

风险等级与门禁:

  • 0-29:Low,门禁 PASS,退出码 0
  • 30-49:Medium,门禁 PASS,退出码 0
  • 50-74:High,门禁 REVIEW,退出码 1
  • 75-100:Critical,门禁 BLOCK,退出码 2

使用方式

运行以下命令收集确定性评分:

bash scripts/run-skill.sh risk-assess risk-analyze.js --json

随后解析 JSON 输出,并根据风险等级采取相应处理:

  • 若 risk_level = Critical(75-100 分):突出所有破坏性信号,建议拆分 PR。
  • 若 risk_level = High(50-74 分):自动升级到 --mode deep,详细说明影响范围。
  • 若 risk_level = Medium(30-49 分):总结各维度,标注关注区域。
  • 若 risk_level = Low(0-29 分):简要总结,确认可安全推进。

在原始分数之外,还需补充定性解读,例如“影响范围大,但所有依赖方都是测试文件”。

若脚本失败,应报告错误并建议手动运行:

bash scripts/run-skill.sh risk-assess risk-analyze.js --json

输出格式包含:风险评分、风险等级、门禁状态、各维度得分与权重表、破坏性变更信号列表(仅在存在时)、按优先级排列的后续行动项,以及门禁哨兵标记。

适用场景

  • 评估 PR 风险
  • 提交前风险检查

限制

以下场景不应使用本技能:

  • 安全漏洞检测(应使用 /codex-security)
  • 代码正确性 / lint / 测试审查(应使用 /codex-review-fast)
  • 项目级健康审计(应使用 /project-audit)

参考资料

  • references/risk-dimensions.md:信号目录、导入模式、评分区间(调查特定维度时阅读)
  • references/output-template.md:JSON schema、各风险等级的报告模板(自定义输出时阅读)

验证清单

  • 脚本成功运行
  • 3 个维度均已评分
  • 在原始分数之外补充了定性解读
  • 后续行动可执行(在适用处包含命令)
  • 输出中存在门禁哨兵标记