paper-scaffold — 论文目录标准化
职责
- audit:体检现有论文目录,报告违反标准结构的问题
- init:从零创建标准目录骨架 + 必要文件
- fix:对现有目录执行整理(移动文件、创建 .gitignore、归档产物)
触发方式
- 子命令省略 → 自动 audit 当前目录或指定路径
--type:cit(默认,常州工学院毕业设计)|icml|ieee|generic
标准目录结构
所有类型共享同一骨架,差异仅在模板文件内容:CIT 类型额外文件
ICML/IEEE 类型额外文件
子命令详细行为
audit(体检)
扫描目标目录,检查以下问题并输出报告:
输出格式:
init(初始化)
在指定路径创建标准骨架。步骤:- 检查目标路径是否已存在,若非空则询问是否继续
- 创建标准目录树(含 .gitkeep)
- 根据
--type写入 main.tex 模板(见下方模板内容) - 写入空 refs.bib
- 写入 .gitignore
fix(自动修复)
对现有目录执行以下操作(每步执行前输出将做什么,完成后确认):- 创建缺失目录:scripts/fix scripts/plot scripts/tmp drafts scratch build archive
- 移动脚本:
fix_*.py→scripts/fix/tmp_*.py→scripts/tmp/plot_*.py/draw_*.py/heatmap_*.py/optimize_*.py/replicate_*.py/extract_*.py→scripts/plot/- 其余
.py(insert, draft, analyze, check, apply, verify, restore)→scripts/insert/(或scripts/fix/)
- 合并图片目录:将 figures/ figures_*/ figs/ 中的图片复制到 images/,原目录移入 archive/,更新 main.tex 中对应的路径引用(
sed替换) - 移动编译产物:
.aux .log .out .toc .fls .fdb_latexmk .xdv .synctex.gz→build/ - 移动测试 tex:
test_*.tex→scratch/ - 移动草稿文本:
draft_*.txtsec_*.txtchapter*.txttmp_*.txtpage_*.txt*_bak*.bak→drafts/或archive/ - 写入 .gitignore(若不存在或补全缺失条目)
biblatex(迁移参考文献)
将\begin{thebibliography} 手写参考文献迁移到 BibTeX。步骤:
- 从 main.tex 中提取所有
\bibitem条目 - 按格式解析,转换为 BibTeX 条目写入
refs.bib- 无法自动解析的条目保留为
@misc{key, note={原始文本}}并标注% TODO: verify
- 无法自动解析的条目保留为
- 在 main.tex 导言区添加:
- 将正文
\cite{key}保持不变(biblatex 兼容) - 替换
\begin{thebibliography}...\end{thebibliography}为: - 输出迁移报告:条目总数、自动解析成功数、需人工检查数
.gitignore 标准内容
main.tex 模板
CIT 毕业设计模板(—type cit)
国际会议模板(—type icml)
通用学术模板(—type generic)
执行规则
- 只读操作(audit)不修改任何文件
- fix 操作在执行前打印操作清单,等待用户确认后再执行
- 移动文件前检查目标路径是否已存在同名文件,有冲突则跳过并报告
- 更新 tex 文件中的图片路径时,使用
sed -i替换,替换后用 grep 验证无残留旧路径 sections/目录的使用是建议而非强制——若正文已在 main.tex 内内联,不强制拆分- Windows 路径:shell 中统一使用正斜杠;Write/Edit 工具用原始路径
与其他 Skill 的协作
- 编译问题 → 交给
latex-win - 生成/编辑 .docx → 交给
docx - 生成 PDF 报告 → 交给
pdf - 搜索参考文献信息 → 交给
baidu-search或deep-research