Skip to main content

paper-scaffold — 论文目录标准化

职责

  1. audit:体检现有论文目录,报告违反标准结构的问题
  2. init:从零创建标准目录骨架 + 必要文件
  3. fix:对现有目录执行整理(移动文件、创建 .gitignore、归档产物)

触发方式

  • 子命令省略 → 自动 audit 当前目录或指定路径
  • --typecit(默认,常州工学院毕业设计)| icml | ieee | generic

标准目录结构

所有类型共享同一骨架,差异仅在模板文件内容:

CIT 类型额外文件

ICML/IEEE 类型额外文件


子命令详细行为

audit(体检)

扫描目标目录,检查以下问题并输出报告: 输出格式:

init(初始化)

在指定路径创建标准骨架。步骤:
  1. 检查目标路径是否已存在,若非空则询问是否继续
  2. 创建标准目录树(含 .gitkeep)
  3. 根据 --type 写入 main.tex 模板(见下方模板内容)
  4. 写入空 refs.bib
  5. 写入 .gitignore
执行后输出创建的文件列表和下一步提示。

fix(自动修复)

对现有目录执行以下操作(每步执行前输出将做什么,完成后确认):
  1. 创建缺失目录:scripts/fix scripts/plot scripts/tmp drafts scratch build archive
  2. 移动脚本
    • fix_*.pyscripts/fix/
    • tmp_*.pyscripts/tmp/
    • plot_*.py / draw_*.py / heatmap_*.py / optimize_*.py / replicate_*.py / extract_*.pyscripts/plot/
    • 其余 .py(insert, draft, analyze, check, apply, verify, restore)→ scripts/insert/(或 scripts/fix/
  3. 合并图片目录:将 figures/ figures_*/ figs/ 中的图片复制到 images/,原目录移入 archive/,更新 main.tex 中对应的路径引用(sed 替换)
  4. 移动编译产物.aux .log .out .toc .fls .fdb_latexmk .xdv .synctex.gzbuild/
  5. 移动测试 textest_*.texscratch/
  6. 移动草稿文本draft_*.txt sec_*.txt chapter*.txt tmp_*.txt page_*.txt *_bak *.bakdrafts/archive/
  7. 写入 .gitignore(若不存在或补全缺失条目)

biblatex(迁移参考文献)

\begin{thebibliography} 手写参考文献迁移到 BibTeX。步骤:
  1. 从 main.tex 中提取所有 \bibitem 条目
  2. 按格式解析,转换为 BibTeX 条目写入 refs.bib
    • 无法自动解析的条目保留为 @misc{key, note={原始文本}} 并标注 % TODO: verify
  3. 在 main.tex 导言区添加:
  4. 将正文 \cite{key} 保持不变(biblatex 兼容)
  5. 替换 \begin{thebibliography}...\end{thebibliography} 为:
  6. 输出迁移报告:条目总数、自动解析成功数、需人工检查数

.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-searchdeep-research