ChineseResearchLaTeX 模板落地与高保真对齐器
与 bensz-collect-bugs 的协作约定
- 当用户环境中出现因本 skill 设计缺陷导致的 bug 时,优先使用
bensz-collect-bugs按规范记录到~/.bensz-skills/bugs/,严禁直接修改用户本地 Claude Code / Codex 中已安装的 skill 源码。 - 若 AI 仍可通过 workaround 继续完成用户任务,应先记录 bug,再继续完成当前任务。
- 当用户明确要求“report bensz skills bugs”等公开上报动作时,调用本地
gh与bensz-collect-bugs,仅上传新增 bug 到huangwb8/bensz-bugs;不要 pull / clone 整个 bug 仓库。
先读什么
- 当前仓库分层与产品线标准:
docs/for-developers/nsfc-template-standard.mddocs/for-developers/paper-template-standard.mddocs/for-developers/thesis-template-standard.mddocs/for-developers/cv-template-standard.md
- 本 skill 的执行口径:
skills/make-latex-model/docs/WORKFLOW.md - 产品线判定与初始化规则:
skills/make-latex-model/references/PRODUCT_LINE_RULES.md - 脚本职责矩阵:
skills/make-latex-model/references/SCRIPT_SCOPE.md - 本 skill 的辅助脚本说明:
skills/make-latex-model/scripts/README.md - 如需从 Word 导出 PDF 基准:
skills/make-latex-model/docs/BASELINE_GUIDE.md
核心定位
这个 skill 的目标是:
- 让 ChineseResearchLaTeX 里的目标项目按当前真实架构做成高质量模板
- 在
projects/与packages/之间选对修改层级 - 若必须改
packages/,先识别所有直接受影响的现有模板并完成回归 - 在需要时做 PDF / Word / baseline 对齐
- 始终通过各产品线的官方构建入口验收
默认假设:
projects/现在更多是“薄封装示例项目”,不是旧时代那种把所有样式都堆在项目里的模板目录- 共享能力优先沉淀到
packages/bensz-* - 视觉基线可以来自官方 PDF、Word 导出 PDF、既有 baseline PDF、学校样例 PDF,或用户提供的验收 PDF
适用任务
- 把某个
projects/*项目对齐到新的官方模板、Word 稿件或 baseline PDF - 发现当前问题其实属于共享样式、profile、构建脚本,改到
packages/bensz-* - 新增或重构 thesis / paper / cv / nsfc 模板时,帮助确定“项目层 vs 公共包层”边界
- 在需要时做像素级 PDF 比对、标题对齐、参数抽取、回归验收
- 把“按要求做出好模板”作为第一目标,而不是被某一种单一路径绑住
产品线判定
- 具体的产品线识别、初始化标记与官方命令矩阵见
references/PRODUCT_LINE_RULES.md - 如果一个问题会影响多个项目共享的版式、字体接入、profile、统一构建逻辑或对齐策略,优先改
packages/bensz-*,不要把同一份逻辑复制回各个projects/*
工作流
1. 先判断验收口径
优先问自己:
- 用户要的是“像某份 PDF/Word 一样”
- 还是“把现有项目做成符合当前仓库标准的好模板”
- 还是“新增一套学校 / 期刊 / 简历模板能力”
能拿来当基线的输入包括:
- 官方 PDF
- Word 导出 PDF
- 现有 baseline PDF
- 公开学校模板 PDF
- 已通过验收的旧版 PDF
2. 再判断修改层级
优先使用当前仓库的真实分层规则:
projects/*:示例内容、薄封装入口、项目资源、局部项目差异packages/bensz-*:共享样式、共享字体、profile、统一构建逻辑
不要再默认认为“模板优化 = 只改 main.tex 标题 + @config.tex 参数”。
3. 最小范围实现
只改与当前任务直接相关的文件:
- NSFC:可改项目级参数、共享 impl/profile、必要的标题结构
- Paper:可改
packages/bensz-paper/共享样式,也可改projects/paper-*/extraTex/**/*.tex的装配与版式相关内容;不要重新引入持久化 Markdown 正文副本 - Thesis:可改
packages/bensz-thesis/styles/、profiles/、项目级main.tex/baseline.tex/editable.tex/template.json/extraTex/ - CV:可改
packages/bensz-cv/共享样式,或项目级main-zh.tex/main-en.tex/ 公开演示资源
除非用户明确要求改正文语义内容,否则默认聚焦模板、版式、结构入口、构建链路和验收资产。
3.5 包层安全门禁
当你判断“这次必须改 packages/”时,额外执行以下动作:
- 默认先证明项目层方案为什么不够;只有共享问题才升级到包层
- 先运行
python3 skills/make-latex-model/scripts/plan_package_regression.py <packages/bensz-*> - 优先把改动收敛到最窄的模板专属
profile / style / template文件 - 只有在前述路径都不够时,才修改共享核心宏、公共入口或字体 API
- 改完先验证当前目标项目,再回归该公共包直接覆盖的全部现有项目
- 若某个受影响项目已有 baseline,优先补跑官方 compare;没有 compare 入口时至少完成官方 build
不要做这些事:
- 没有回归计划就直接改共享包
- 为了省事把共享逻辑复制回单个项目
- 在未验证其它现有模板前宣称“不会影响别的模板”
4. 官方入口验证
验证时,始终以当前官方构建链路为准:
- NSFC:
nsfc_project_tool.py - Paper:
paper_project_tool.py - Thesis:
thesis_project_tool.py - CV:
cv_project_tool.py
如涉及共享包改动,再补跑对应公共包校验或 compare 流程。
5. 需要对比时再用辅助脚本
本 skill 自带的脚本现在是“辅助工具箱”,不是唯一工作流:
analyze_pdf.py:提取 PDF 基线参数compare_headings.py:对比标题文本或格式compare_pdf_pixels.py:像素级 PDF 比对optimize_heading_linebreaks.py:按 PDF 基线优化标题换行plan_package_regression.py:为包层修改生成“受影响模板 + 官方回归命令”计划
这些工具对“单入口 + PDF 基线”场景尤其有用;其中部分脚本属于 NSFC 专项参数对齐工具,不应被拿来替代 paper / thesis / cv 的官方工作流。
修改边界
允许做的事
- 调整项目层版式参数、标题体系、入口装配
- 提升共享样式到
packages/bensz-* - 增补或修正 profile / style / 构建 wrapper
- 在需要时修改
main.tex、baseline.tex、editable.tex、main-zh.tex、main-en.tex - 使用 baseline PDF / Word 导出 PDF 做验收
不该做的事
- 把共享实现重新复制回单个项目
- 把 thesis / paper / cv 强行解释成“只有
@config.tex才能改” - 绕过官方构建入口,只做裸
xelatex - 为了追求像素对齐而牺牲当前仓库的真实分层与长期可维护性
- 默认改写用户正文语义内容
脚本职责约定
- 具体哪些脚本是跨产品线辅助工具,哪些属于 NSFC 专项工具,请直接看
references/SCRIPT_SCOPE.md - 如果目标是
paper/thesis/cv,默认不要切到 NSFC 专项工具链;只有它们能补充 PDF 参数分析或标题比对时才按需单独调用通用脚本 - 当前仓库的权威来源永远是:真实目录结构、真实源码、真实官方构建脚本
验收标准
至少满足以下几点:
- 改动落在正确层级,没有把共享逻辑散落回项目层
- 通过对应产品线的官方构建入口
- 若有 warning,需要说明是已有 warning 还是新增 warning
- 若发生包层改动,必须说明回归了哪些现有模板;若没法全量回归,要明确剩余风险
- 若用户提供 baseline,则完成必要的 compare / 像素比对 / 结构比对
paper场景默认同时关注 PDF 与 DOCX;cv默认关注中英文双入口;thesis默认关注 profile/style 与项目入口的一致性
输出要求
- 明确说明本次改动属于哪条产品线
- 明确说明为什么改项目层或包层
- 明确说明使用了哪条官方验证命令
- 如未执行某个比对或导出步骤,要说明原因
文档入口
- 工作流:
skills/make-latex-model/docs/WORKFLOW.md - FAQ:
skills/make-latex-model/docs/FAQ.md - 基线制作:
skills/make-latex-model/docs/BASELINE_GUIDE.md - 辅助脚本:
skills/make-latex-model/scripts/README.md