用途:UBS 用于代码审查,覆盖 bug、安全问题、AI 生成代码质量和提交前检查。核心定位是捕获“能编译但会崩溃”的问题,例如空指针、缺失 await、资源泄漏和安全漏洞。官方强调其误报较多,分诊是必要环节。
主要能力与用法:核心工作流为提交前运行 ubs --staged(仅扫描已暂存文件,速度小于一秒),也可用 ubs --diff 扫描工作区相对 HEAD 的改动,或直接指定文件名。退出码含义:0 表示可继续提交;1 表示需要分诊发现项;2 表示需运行 ubs doctor --fix。分诊时,真实 bug 应修复根因而非症状;误报则用 // ubs:ignore — [说明为何安全] 抑制,且每次抑制必须说明理由。
其他选项包括:--only=go,rust 按语言限定(js 与 ts 需分别指定);--skip=11,12 跳过 TODO/调试类;--profile=loose 跳过轻微问题;--format=jsonl 输出逐项详情,--format=sarif 生成 IDE/GitHub 集成格式;--comparison=baseline.json --fail-on-warning 用于仅显示 PR 新增问题;--category=security 做安全专项扫描;--html-report=out.html 生成报告。
适用场景:提交前快速检查、PR 审查、安全审计、AI 生成代码验证。限制:误报较多需人工分诊;JS/TS 依赖 AST 引擎,缺失时建议运行 ubs doctor --fix;环境异常可通过 ubs doctor 与 ubs doctor --fix 排查。