用途:这是自动扫描器的 headless 入口,用于对单个 Bitrix 模块做提交前的安全检查,适合任意 agent-CLI 调用,无 Web UI,容器隔离且无外网(仅模型 relay)。本技能本身不含审计启发式,审计逻辑在 scan 技能,severity 策略在 journal-review,人类可读步骤见 using-marketplace-sec。调用时需在提示中提供 MODULE_DIR(解压后的 PHP 源码路径)、RESULT_PATH(最终 JSON 报告保存路径)、REVIEW_SCRIPT(review_journal.py 的绝对路径,须按原样使用,不要用 find 查找);若未给 REVIEW_SCRIPT 路径,应报告并停止流程。
主要流程(必须按序执行):1)调用 scan 技能传入 MODULE_DIR,完成严格安全审计,将原始 JSON 存到 /tmp/raw-scan.json,格式为 {success, requestId, data:{vulnerabilities[], summary, scannedFiles, riskLevel, auditedFiles}},每条发现含 file、line、type、severity、description、recommendation、fix。2)执行 python3 "$REVIEW_SCRIPT" /tmp/raw-scan.json --output "RESULT_PATH" 进行 BUS 感知的 severity 复审;脚本保留原字段,仅替换 severity,并为每条发现加 reviewed 节点和 data.reviewSummary。3)若 review 返回非零,读取 stderr 中 REVIEW_VALIDATION_ERRORS 的机器可读数组,逐条按 index/file/line 打开源码补齐真实缺失值或合法 severity(high/medium/low),一次修完所有问题后重跑,最多 3 轮;仍未收敛则停止并报错,不得用占位或伪造数据。4)校验最终报告:先 python3 -m json.tool "RESULT_PATH",再逐项自检 summary 为字符串、scannedFiles 为数字、riskLevel ∈ {high, medium, low, none}、auditedFiles 为字符串数组、每条漏洞含全部 7 个键且 description/recommendation/fix 非空、riskLevel 等于最大 severity(无发现为 none);如发现缺口需回填真实内容并重跑复审。完成后用一行给出 data.reviewSummary 的 high/medium/low 计数。限制:不启动 UI 或 Web 服务,本 headless 流程不维护 journal-update 累积日志,跨运行状态由 API 管理。