mcpField
T
thesis-creator

thesis-creator

github.com/stars-ocドキュメント23636 回インストール21 週間前に更新
リポジトリ

thesis-creator について

中国の大学生向けに、作業環境の初期化から文献検索、執筆、校閲、図表作成、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

詳細

论文创作 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 は LLM によるソースコード生成のガイドに使用でき、dot_mode は ER 図の DOT サブモードを単一画像に適用する場合に使用できます
  • Step 4 では [image_N] と image-requirement 画像要件ブロックの記録のみを行い、Step 8 で images.yaml を生成し、ソースファイルを準備し、LLM に .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. 各文献は文書全体で 1 回のみ引用できます:ある 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.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 在合并阶段自动纳入终稿。

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

コメント