mcpField
T
thesis-creator

thesis-creator

github.com/stars-oc文档处理23636 次安装21 周前更新
代码仓库

关于 thesis-creator

这是面向中国本科生的毕业论文全流程写作辅助 Skill,按阶段管理从工作区初始化、文献搜索到写作、审校、制图和 Word 导出。它通过状态记录、质量门禁和引用校验约束流程,并将产出保存在用户项目目录的 thesis-workspace/ 中。

主要功能

  1. 01分阶段管理论文写作流程
  2. 02多源文献搜索与 DOI 验证
  3. 03工作区状态与质量门禁
  4. 04图表生成、渲染与校验
  5. 05Markdown 合并及 Word 导出

适用场景

  1. 01从论文大纲推进至分章节写作
  2. 02建立并校验论文参考文献池
  3. 03生成论文图表并渲染为 PNG
  4. 04合并草稿并导出 Word 文档

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/stars-oc/thesis-creator --skill thesis-creator

安装后在 Claude Code 中输入/thesis-creator确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

.openskills.json
.gitignore
LICENSE
CONTRIBUTING.md
README.md
config/
.thesis-config.yaml
docs/
ROADMAP.md
CHANGELOG.md
usage_guide.md
docs/plans/
2026-06-01-docx-toc-design.md
2026-06-01-docx-toc.md
prompts/
humanizer_guidelines.md
reducer_guidelines.md
discussion_guide.md
reference_citation_prompt.md
er_textbook_single_entity_dot.md
post_replace_optimization.md
image_generation.md
aigc_reducer_prompt.md
idiom_replacement_dict.md
writer_guidelines.md
reference_format_gbt7714.md
thesis_structure.md
writing_standards.md
references/
README.md
references/examples/
README.md
references/guidelines/
README.md
references/prompt/
background_template.md
template.md
README.md

详细介绍

来自项目 README

论文创作 Agent 系统

面向中国本科生的毕业论文全流程写作辅助系统。


核心原则

重要

工作区隔离原则:AI 始终在用户项目目录下的 thesis-workspace/ 工作。所有产出文件都在用户工作区内。


触发条件

触发语执行动作
「帮我写论文,主题是…」全流程(Step 0-9)
「帮我降重这段文字:…」仅 Step 5
「降低这段的 AIGC 率:…」仅 Step 6:必须输出“处理前计划 → 改写文本 → 清单自检”,并按场景化重写、自然承接、轻冗余控制和高密度句拆解处理,不得只给改写结果
「检测这段文字的 AIGC 率」AIGC 检测
「帮我生成论文大纲」Step 0-3
「初始化工作区」Step 0(工作区不存在直接初始化)
「继续」仅在当前步骤的强制交互点、前置校验和质量门禁均已满足后继续流程
「生成摘要」Step 4(仅摘要部分)
「生成图片」「生成图表」Step 8
「导出 Word」「导出文档」Step 9
「一键导出」Step 8+9

工作流程概览

flowchart LR
    A[Step 0: 初始化] --> B[Step 1-2: 准备]
    B --> C[Step 3: 大纲]
    C --> D[Step 3→4: 文献搜索与建池]
    D --> E[Step 4: 撰写]
    E --> F[Step 5-6: 降重]
    F --> G[Step 7: 合并检测]
    G --> H[Step 8: 图片生成]
    H --> I[Step 9: 导出Word]

⚠️ 流程顺序:大纲确认 → 文献搜索与建池 → 正文写作 → 合并 → 图片生成 → 导出 Word 状态文件路径:thesis-workspace/.thesis-status.json 若文件不存在,status_manager.py 会自动创建。

推荐统一入口:scripts/core/lifecycle.py(整合日志 + 状态管理)


继续与暂停点规则

重要

「继续」不是跳过按钮。 若当前流程仍存在强制交互点、前置校验或质量门禁未完成,则必须先完成对应动作,再允许进入下一步。

不可跳过的暂停点
  1. Step 0 初始化后:必须先运行 python scripts/core/lifecycle.py --workspace thesis-workspace/ --check-workspace,并检查 thesis-workspace/references/prompt/background.md 是否已补全;工作区必须通过脚本初始化并从 config/.thesis-config.yaml 复制生成 thesis-workspace/.thesis-config.yaml,同时生成 thesis-workspace/.thesis-status.json、thesis-workspace/logs/、thesis-workspace/scripts/charts/render.py、thesis-workspace/workspace/final/images/sources 与 thesis-workspace/workspace/references/images.yaml;未完成时只能提示用户编辑,禁止直接推进到 Step 1/3。
  2. Step 3 大纲确认后:必须先询问用户文献数量(20-30 / 30-50 / 15-20),并展示搜索耗时预估后,进入 Step 3→4 之间的“文献搜索与建池”阶段;该阶段不是独立 Step,但后续在 Step 4/6/7 中如发现文献不足、语种比例失衡或文献失效,必须允许回流补池后再继续写作或检测。
  3. Step 4 每章写作时:必须先完成 Stage 1 要点规划,待用户确认后才能进入 Stage 2 扩写;如果当前仍停留在 Stage 1,用户回复「继续」只能视为确认本章要点,不能跳过更早的未完成门禁。
  4. Step 7 合并检测后:若同一 ref_id 在终稿中重复出现,必须硬阻断并回退修正,禁止带重复引用进入 AIGC 检测;若 AIGC 检测未通过,必须回退到 Step 5/6 继续改写与审校,禁止进入 Step 8 图片生成或 Step 9 导出。
  5. Step 8 图片生成前:必须按“抽取图片需求 → 准备源码文件 → 大模型填写 .dot/.mmd/.puml → 渲染 PNG → 回填 [image_N] → 完整性验证”执行;使用 scripts/charts/manifest_builder.py、source_writer.py、render.py、markdown_updater.py、validate.py,最终已渲染 AI 图片不得残留 [image_N]。

详细步骤(按需加载)

步骤说明详细文档
Step 0工作区初始化workflows/step_0_init.md
Step 3生成论文大纲workflows/step_3_outline.md
Step 4分章节撰写workflows/step_4_writing.md
Step 6审校润色workflows/step_6_review_polish.md
Step 7合并与检测workflows/step_7_merge_detect.md
Step 8图片生成与渲染(ER图默认读取 background.md,优先输出教科书风格 DOT,信息不足时尽量生成并 warning)workflows/step_8_image.md
Step 9文档导出workflows/step_9_export.md
参考文献文献池管理workflows/reference_workflow.md

参考文献(独立存放)

核心改进:文献池独立存放在 workspace/references/verified_references.yaml 文献校验状态:verified_doi / verified_metadata_only / broken_doi_metadata_ok / missing_doi_unverified / invalid_reference 规则说明:无 DOI 不等于假文献;允许通过元数据验证的真实文献继续进入文献池。

图片需求清单
  • 正文图片占位符统一使用 [image_1]、[image_2] 等格式
  • 图片需求清单统一记录到 workspace/references/images.yaml
  • workspace/references/images.yaml 必须采用结构化字段,至少包含 id、title、chapter、section、source、diagram_type、engine、purpose、fact_source、placement、status、description、source_file、output_file、render_status;可选 prompt_hint 用于指导大模型生成源码,dot_mode 可用于单图覆盖 ER 的 DOT 子模式
  • Step 4 只负责记录 [image_N] 与 image-requirement 图片需求块,Step 8 再生成 images.yaml、准备源码文件、由大模型填写 .dot/.mmd/.puml、渲染 PNG 并回填 Markdown 图片引用
  • 架构图、模块图、流程图、ER 图等 AI 图片必须先有 manifest 记录;用户提供图片必须在清单中标明 source=user 和待补状态
  • 图表引擎按图类型明确映射,不自由摇摆:流程图/活动图/用例图/时序图/类图 → PlantUML (.puml);ER 图由 .thesis-config.yaml 的 er_modeling.graph_type 决定,默认 Graphviz DOT (.dot) 教科书 Chen 风格,erd 时输出 Mermaid erDiagram;diagram_type=overall_er 必须第一个展示,且仅展示实体、联系与 1:1 / 1:N 基数,关系菱形节点必须结合外键字段或实体语义命名,如“拥有”“包含”,不得统一写成“关联”,且不展示字段;diagram_type=entity_er 可通过 .thesis-config.yaml 的 er_modeling.dot_mode=textbook-single-entity-ring 或 images.yaml 单图 dot_mode 启用单实体字段环绕 DOT,优先级为单图覆盖全局;架构图 → 用户自行生成/GPT image 后补入 (source=user);模块图 → Mermaid (.mmd);用户截图 → user
  • 仅当流程图使用 PlantUML 生成时,必须附加固定提示词模板,并将其中主题替换为当前图表标题或用途描述:
请生成一个用于毕业论文的PlantUML流程图,主题为“{{图表主题}}”。要求:

- 使用activity diagram
- 所有节点使用中文
- 起止节点使用“开始”“结束”
- 逻辑严谨,体现完整业务流或上下文流转机制
- 包含必要循环(如存在用户持续操作、重试或追问)
- 避免语法歧义(防止被解析为class diagram)
- 图结构简洁,不超过3层嵌套
- 判断分支连线必须明确标注 Y/N
- 全图只保留一个最终结束节点,所有分支和普通路径最终汇入该结束节点
- 适合论文插图展示

只输出PlantUML代码。
  • 不再默认使用 Mermaid 流程图;普通流程图同样优先走 PlantUML。
  • 生成测试图或单独响应“生成流程图”类指令时,默认行为是将源码写入 thesis-workspace/workspace/final/images/sources/ 对应 .puml/.dot/.mmd 文件,而不是在控制台直接输出完整图表源码;仅在用户明确要求“只输出代码”时,才直接返回源码文本。
流程
  1. Step 3 大纲确认后询问文献数量(默认 20-30 篇)
  2. 多源搜索:Semantic Scholar + CrossRef + OpenAlex
  3. DOI 验证:判断 4xx 错误状态码
  4. 合并去重:多源结果合并,按相关度选出最相关 x 篇(scripts/references/reference_merger.py)
  5. 写作时从文献池选取未占用引用
  6. 文献搜索与建池阶段可回流复用:在 Step 4/6/7 任一阶段,如果当前章节缺少可用未占用文献、文献验证失败、语种比例不达标或引用密度不足,必须回到该阶段补充搜索,并增量更新 workspace/references/verified_references.yaml
  7. 单篇文献整篇仅允许引用一次:一旦某个 ref_id 被正文使用一次,就必须标记为已占用,后续章节不得重复使用;Step 7 发现重复 ref_id 必须硬阻断
  8. 中文文献质量不足时提示人工补充:若自动源无法满足中文文献占比 >65%,必须提示用户从 CNKI、万方、学校图书馆等外部高质量来源人工补充真实中文文献,禁止伪造
  9. 文献 YAML 输出必须安全可解析:标题含英文冒号、中文冒号、括号等特殊字符时,仍必须能被 yaml.safe_load() 读取

详见 workflows/reference_workflow.md


用户工作区目录结构

thesis-workspace/
├── README.md                  # 工作区使用说明
├── .thesis-config.yaml        # 配置文件
├── references/                # 参考资料(用户放入)
│   ├── templates/             # 学校模板
│   ├── examples/              # 范文
│   ├── guidelines/            # 规范
│   └── prompt/background.md   # 论文背景(必填)
├── workspace/                 # 论文产出
│   ├── outline.md             # 大纲
│   ├── references/                # 参考文献池(独立)⭐
│   │   ├── verified_references.yaml  # 已验证文献池
│   ├── cited_references.json  # 引用记录(每章引用的ref_id)⭐
│   ├── drafts/                # 初稿(仅含临时引用编号,无参考文献列表)⭐
│   │   ├── 参考文献.md         # 合并阶段生成的参考文献(独立MD文件,GB/T 7714格式)⭐
│   ├── final/                 # 终稿
│   │   ├── 论文终稿.md         # 终稿(引用编号已重排)
│   │   ├── 论文终稿.docx
│   │   └── images/            # 图片
│   └── reports/               # 报告
├── logs/                      # 日志
└── .thesis-status.json        # 状态

⭐ 标记为本次更新新增或变更的文件


Markdown 标题输出硬约束(Markdown→Word 映射)

重要

生成的 Markdown 必须能被 Pandoc / python-docx / markdown-it / Typora / VSCode Markdown 正确识别,并映射为 Word Heading 1~4,支持自动目录、导航窗格、标题折叠和大纲视图。

标题生成规则
Markdown 语法Word 映射说明
# 标题名称Heading 1章级标题(摘要、第N章、结论等)
## 标题名称Heading 2节级标题(1.1、4.2 等)
### 标题名称Heading 3小节级标题(1.2.1、4.4.1 等)
#### 标题名称Heading 4段级标题(5.2.1 等)

格式硬约束:标题符号 # 后必须保留一个空格。正确:## 研究背景;错误:##研究背景。

禁止行为(标题模拟禁令)

以下方式视为格式错误,禁止用于模拟标题层级:

禁止方式说明
加粗文本**第一章 绪论** 不是标题
序号+普通段落1.1 研究背景 无 ## 不是标题
列表项- 第一章 绪论 不是标题
表格标题表格内文字不是标题
单纯放大字体HTML <font size> 不是标题
中文符号模拟层级===系统设计=== 不是标题
HTML 标签<h1> 等不是标题
层级约束

标题必须满足严格层级结构,禁止跨级跳跃:

正确:# → ## → ### → ####
错误:# → ###(跳过 ##)
论文结构标题示例
# 摘要

# Abstract

# 第一章 绪论

## 1.1 研究背景

## 1.2 国内外研究现状

# 第二章 系统分析

# 第三章 系统设计

# 第四章 系统实现

# 第五章 测试与分析

# 结论

# 参考文献
输出约束
  1. 输出必须是纯 Markdown 正文
  2. 禁止用 markdown 代码块包裹正文内容
  3. 不要输出解释性文字(如"以下是论文内容")
  4. 不要输出提示语
兼容性要求

生成结果必须兼容 Markdown → docx 转换流程,确保通过 pypandoc.convert_file() 或 python-docx 转换后能自动生成 Word 目录。

最终目标

导出的 docx 文档必须满足:

  • Word「引用 → 目录」可自动生成目录
  • Word「导航窗格」可显示章节树
  • 标题可折叠
  • 标题具备大纲级别
  • Heading 1~4 自动识别

防错机制

问题影响处理
缺少规定动作章节致命自动补充
设计实现未分离致命强制拆分
章节顺序错误致命强制调整为:系统分析→系统设计→系统实现→系统测试→总结与展望
使用 LLM 上下文合并文档致命必须使用 merge_drafts.py 脚本
图表不足严重提示补充
数据库表数量不足严重检查 background.md 表定义,确保 ≥11 张表
未执行状态管理脚本致命每个 Step 必须通过 lifecycle.py 或 status_manager.py 记录状态,禁止大模型自行维护状态
日志未通过脚本记录严重所有流程日志必须通过 logger.py 输出,禁止大模型自行生成日志内容
文献链接 404严重合并前执行 reference_validator.py --check-404,404文献必须替换
图片文件缺失严重Step 8 完成后检查 images/ 目录,所有占位符必须有对应 PNG 文件
参考文献虚构严重DOI验证+重生成
参考文献数量超标严重按相关度截取
参考文献缺少中英文严重中文和英文文献都必须包含,缺少则触发补充搜索
参考文献 YAML 解析失败严重reference_merger.py 必须使用安全 YAML 输出,特殊字符标题保存后仍可 yaml.safe_load()
中文文献比例不足严重自动源不足时提示从 CNKI、万方、学校图书馆人工补充真实中文文献,禁止伪造
引用复用同一 ref_id严重同一篇文献整篇仅允许引用一次,发现重复占用必须硬阻断并回流补池改写引用
AI模板词超标中等按 Step 6 的 AIGC 标准流程处理:先做处理前计划,再按”场景化重写 → 结构重组 → 细节注入 → 自然承接与轻冗余 → 高密度句拆句解释 → 语言去模板化”改写,最后输出清单自检;禁止只做同义替换、删词式压缩或只给改写结果
标题未使用 Markdown # 语法致命所有标题必须用 # / ## / ### / ####,禁止加粗文本/序号段落/中文符号模拟标题
标题层级跳跃严重禁止跨级(如 #→###),必须逐级(#→##→###→####)
标题符号后无空格严重#标题 必须修正为 # 标题,符号后必须保留一个空格
AIGC 降低缺少自检清单严重必须补齐处理前计划、改写文本、自检表;自检项出现“未通过”时继续局部修正,不得交付为最终版
章节内自建参考文献列表中等删除,合并阶段统一生成
background.md 为空或未完善致命提示用户编辑 thesis-workspace/references/prompt/background.md,禁止控制台交互式输入
ER 图事实源不一致严重Step 8 的 ER 图默认读取 background.md,仅 ER 图受 thesis-workspace/.thesis-config.yaml 的 er_modeling 配置影响;默认输出教科书 Chen 风格 DOT(实体矩形、属性椭圆、联系菱形),总体 ER 图必须第一个展示,且只展示实体、联系与 1:1 / 1:N 基数;关系菱形节点必须结合外键字段或实体语义命名,如“拥有”“包含”,不得统一写成“关联”;DOT 输出不要显式使用 label=

Prompt 文件(写作时加载)

文件说明加载时机
prompts/writer_guidelines.md写作规范Step 4
prompts/aigc_reducer_prompt.mdAIGC 表达质量优化与深度人工化流程,按场景化重写、自然承接、轻冗余控制和高密度句拆句解释执行Step 6
prompts/humanizer_guidelines.md人工化改写细则与风险边界,约束自然过渡、轻冗余和拆句解释不得破坏学术语体Step 6
prompts/reference_citation_prompt.md引用铁律Step 4
workspace/references/verified_references.yaml文献池必须加载

Script 文件

文件说明
scripts/references/reference_engine.py多源搜索 + DOI验证
scripts/references/reference_merger.py文献合并去重 + 选出最相关 x 篇
scripts/document_exporter/Word导出 + 图片插入
scripts/content/merge_drafts.py章节合并
scripts/aigc/detect.pyAIGC检测
scripts/aigc/technical_detect.py技术论文 AIGC 检测
scripts/charts/manifest_builder.py从正文 [image_N] 与 image-requirement 生成或更新 images.yaml
scripts/charts/source_writer.py根据 images.yaml 准备并校验 .mmd/.dot/.puml 源码文件
scripts/charts/render.py按 Mermaid、Graphviz、PlantUML 渲染 PNG
scripts/charts/markdown_updater.py将已渲染图片回填为 Markdown 图片引用
scripts/charts/validate.py校验源码、PNG、占位符和用户待补截图状态

致谢

致谢生成位于 Step 4(与摘要同阶段),输出文件为 workspace/drafts/致谢.md,由 merge_drafts.py 在合并阶段自动纳入终稿。

注意:致谢不计入七章正文结构,但属于论文交付的必备内容之一。

评论

支持 Markdown