BNJBR(Blinded Near-Journal Benchmarking Review / 盲法近刊基准评审法)是一个用于论文投稿前参考评估的 Skill 包。它适合在 Codex、Claude Code、ChatGPT Agent、命令行 runner 等 agent 工具中运行,用来把目标稿匿名混入目标期刊或相邻期刊近期相近论文中,得到一个相对位置、期刊/画像适配度、风险提示和修改优先级。
BNJBR 不预测真实接收概率,也不替代同行评审。它的主要用途是降低直接询问 LLM 时出现的无锚点评价、讨好式高估、低估和身份/措辞偏差。
本包的检索部分允许 agent-led retrieval:Agent 可以根据目标期刊、主题、文章类型和年份窗口自行检索候选对照。BNJBR 不强制系统综述式可复现检索协议;它要求的是:
- 每一步输入/输出透明;
- 每篇对照有纳入理由;
- 检索 Agent 必须标记是否存在高度雷同、近重复、同数据/同队列或同方法管线论文;
- 证据层级明确标注;
- admin metadata 与 reviewer packet 分离;
- 脱敏、评分完整性、reviewer 数量、一致性和 full-text 覆盖有门控;
- 人类使用者可以检查每一步是否可靠。
换句话说,BNJBR 是一个可审计的参考评估流程,不是一个严格文献计量检索系统。
BNJBR 的脱敏检查重点是 no-tool text-only attack:攻击 Agent 只阅读脱敏后的评审用文本,不使用任何外部工具、搜索引擎、文献数据库、代码仓库、URL、DOI 查询或原始文件。
它要判断的是:
在不依赖外部检索的前提下,脱敏文本本身会不会暴露我们的评审用论文?
因此:
- 如果匿名文本里仍有作者、机构、DOI、注册号、代码仓库、数据 accession、独特项目名等直接线索,或攻击 Agent 能在无工具条件下识别出评审用论文,应判为失败并打回重新脱敏。
- 如果只有“这个主题可以通过搜索找到类似论文”的可能性,不单独构成本门控失败。
- 搜索辅助重识别可以作为额外敏感性分析,但不是主流程脱敏 gate。
SKILL.md 主 Skill 说明
README.md 安装与使用说明
manifest.txt 文件清单
skill.json 机器可读元信息
templates/config.json 默认配置
templates/admin_comparator_pool.csv 主控者使用的对照池模板,不给 reviewer
templates/reviewer_packet_index.csv reviewer 可见 packet 索引模板
templates/comparator_pool.csv 兼容旧脚本的 admin 对照池模板
templates/retrieval_decision_log.csv 可选检索/筛选透明度记录,含高度雷同论文标记
templates/score_sheet.csv 评分表模板
templates/novelty_assessment.csv Reviewer 创新性判断模板
templates/anonymized_dossier_template.md 匿名评审文本模板
templates/journal_profile_template.md 匿名期刊画像模板
templates/deid_attack_report_template.json 脱敏攻击报告 JSON 模板
prompts/*.md 子 Agent 提示词
rubrics/dimensions.md 评分维度细则
docs/formulas.md 公式说明
docs/flowchart.md Mermaid 流程图
docs/output_schema.md 输入/输出 schema
docs/model_rationale.md 评分模型与权重解释
docs/visualization.md HTML 可视化说明
scripts/bnjbr_score.py 标准库评分聚合脚本
scripts/bnjbr_render_portal.py 简洁 HTML 检查面板生成脚本
examples/* 最小可运行示例
cd bnjbr
python scripts/bnjbr_score.py \
--config examples/example_config.json \
--comparators examples/example_comparator_pool.csv \
--scores examples/example_score_sheet.csv \
--deid-report examples/example_deid_attack_report.json \
--out examples/reports输出:
examples/reports/bnjbr_report.md
examples/reports/bnjbr_metrics.json
生成 HTML 检查面板:
python scripts/bnjbr_render_portal.py \
--run-dir examples \
--bilingual输出:
examples/results_portal.html
examples/results_portal.zh.html
不要把 admin_comparator_pool.csv 或兼容脚本用的 comparator_pool.csv 直接发给 reviewer Agent,因为里面可能包含:
is_targetsource_urljournal_relationnotes- 目标稿本地路径
Reviewer Agent 只能看到:
reviewer_packet_index.csv
匿名 dossier
匿名期刊画像 J0(如果要评分 journal/profile fit)
评分维度说明
当前聚合脚本会检查:
- 脱敏攻击报告是否通过;
- target 是否唯一;
- 评分表是否含必需列;
- reviewer agent 数量是否达到
minimum_reviewer_agents; - paper × dimension × reviewer 覆盖是否完整;
- 有效对照数量是否达到
minimum_comparators; - full-text 对照数量是否达到
minimum_comparators; - Agent 一致性是否达到
minimum_formal_agreement。
任一正式门控不通过时,报告仍可输出数值,但会标记为 formal_evaluation=false,只可作为探索性参考。
BNJBR 输出的是“在本次近邻对照池中的相对位置”。它不应被解释为:
- 真实接收概率;
- 编辑部判断;
- 审稿人意见预测;
- 期刊一定接收或一定拒稿。
建议使用者把结果理解为:
这篇稿件在当前 Agent 构建并经人工可检查的近邻对照池中,大致处于什么水平;哪些维度拖后腿;应该先补哪些证据;目标期刊/匿名期刊画像是否匹配。