dsh-thesis 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. package/DESIGN.md +390 -0
  2. package/LICENSE +21 -0
  3. package/NOTICE.md +10 -0
  4. package/README.md +253 -0
  5. package/cordis.patch.yml +17 -0
  6. package/docs/host-api.md +640 -0
  7. package/lib/codewalk/commands.d.ts +23 -0
  8. package/lib/codewalk/commands.js +168 -0
  9. package/lib/codewalk/engine.d.ts +108 -0
  10. package/lib/codewalk/engine.js +449 -0
  11. package/lib/codewalk/errors.d.ts +31 -0
  12. package/lib/codewalk/errors.js +20 -0
  13. package/lib/codewalk/fs-types.d.ts +34 -0
  14. package/lib/codewalk/fs-types.js +10 -0
  15. package/lib/codewalk/gate.d.ts +30 -0
  16. package/lib/codewalk/gate.js +60 -0
  17. package/lib/codewalk/host-types.d.ts +198 -0
  18. package/lib/codewalk/host-types.js +11 -0
  19. package/lib/codewalk/prestep.d.ts +17 -0
  20. package/lib/codewalk/prestep.js +62 -0
  21. package/lib/codewalk/register.d.ts +23 -0
  22. package/lib/codewalk/register.js +31 -0
  23. package/lib/codewalk/skill.d.ts +15 -0
  24. package/lib/codewalk/skill.js +57 -0
  25. package/lib/codewalk/tools.d.ts +18 -0
  26. package/lib/codewalk/tools.js +314 -0
  27. package/lib/codewalk/types.d.ts +151 -0
  28. package/lib/codewalk/types.js +9 -0
  29. package/lib/commands.d.ts +33 -0
  30. package/lib/commands.js +60 -0
  31. package/lib/config.d.ts +125 -0
  32. package/lib/config.js +139 -0
  33. package/lib/dedup/commands.d.ts +21 -0
  34. package/lib/dedup/commands.js +93 -0
  35. package/lib/dedup/index.d.ts +75 -0
  36. package/lib/dedup/index.js +331 -0
  37. package/lib/dedup/normalize.d.ts +125 -0
  38. package/lib/dedup/normalize.js +329 -0
  39. package/lib/dedup/report.d.ts +114 -0
  40. package/lib/dedup/report.js +309 -0
  41. package/lib/dedup/rewrite.d.ts +71 -0
  42. package/lib/dedup/rewrite.js +228 -0
  43. package/lib/dedup/similarity.d.ts +169 -0
  44. package/lib/dedup/similarity.js +323 -0
  45. package/lib/gates/dangerous.d.ts +22 -0
  46. package/lib/gates/dangerous.js +47 -0
  47. package/lib/gates/detect.d.ts +54 -0
  48. package/lib/gates/detect.js +106 -0
  49. package/lib/gates/messages.d.ts +39 -0
  50. package/lib/gates/messages.js +74 -0
  51. package/lib/gates/prompt.d.ts +21 -0
  52. package/lib/gates/prompt.js +56 -0
  53. package/lib/gates/writing-intent.d.ts +49 -0
  54. package/lib/gates/writing-intent.js +68 -0
  55. package/lib/index.d.ts +36 -0
  56. package/lib/index.js +76 -0
  57. package/lib/ingest/code.d.ts +71 -0
  58. package/lib/ingest/code.js +356 -0
  59. package/lib/ingest/commands.d.ts +23 -0
  60. package/lib/ingest/commands.js +74 -0
  61. package/lib/ingest/docx.d.ts +29 -0
  62. package/lib/ingest/docx.js +92 -0
  63. package/lib/ingest/index.d.ts +179 -0
  64. package/lib/ingest/index.js +640 -0
  65. package/lib/ingest/ooxml.d.ts +58 -0
  66. package/lib/ingest/ooxml.js +393 -0
  67. package/lib/ingest/pdf.d.ts +86 -0
  68. package/lib/ingest/pdf.js +1016 -0
  69. package/lib/ingest/pptx.d.ts +32 -0
  70. package/lib/ingest/pptx.js +116 -0
  71. package/lib/ingest/text.d.ts +25 -0
  72. package/lib/ingest/text.js +180 -0
  73. package/lib/ingest/types.d.ts +48 -0
  74. package/lib/ingest/types.js +47 -0
  75. package/lib/ingest/xlsx.d.ts +72 -0
  76. package/lib/ingest/xlsx.js +411 -0
  77. package/lib/ingest/zip.d.ts +76 -0
  78. package/lib/ingest/zip.js +393 -0
  79. package/lib/intake/definitions.d.ts +65 -0
  80. package/lib/intake/definitions.js +42 -0
  81. package/lib/intake/gate-rules.d.ts +57 -0
  82. package/lib/intake/gate-rules.js +118 -0
  83. package/lib/intake/gate.d.ts +24 -0
  84. package/lib/intake/gate.js +86 -0
  85. package/lib/intake/index.d.ts +76 -0
  86. package/lib/intake/index.js +468 -0
  87. package/lib/intake/questions.d.ts +169 -0
  88. package/lib/intake/questions.js +720 -0
  89. package/lib/intake/spec.d.ts +66 -0
  90. package/lib/intake/spec.js +221 -0
  91. package/lib/intake/state.d.ts +192 -0
  92. package/lib/intake/state.js +420 -0
  93. package/lib/memory/recall.d.ts +69 -0
  94. package/lib/memory/recall.js +177 -0
  95. package/lib/memory/register.d.ts +37 -0
  96. package/lib/memory/register.js +52 -0
  97. package/lib/memory/service.d.ts +39 -0
  98. package/lib/memory/service.js +39 -0
  99. package/lib/memory/store.d.ts +45 -0
  100. package/lib/memory/store.js +123 -0
  101. package/lib/memory/tools.d.ts +19 -0
  102. package/lib/memory/tools.js +195 -0
  103. package/lib/memory/types.d.ts +55 -0
  104. package/lib/memory/types.js +6 -0
  105. package/lib/paper/commands.d.ts +13 -0
  106. package/lib/paper/commands.js +84 -0
  107. package/lib/paper/lib/aicheck.d.ts +38 -0
  108. package/lib/paper/lib/aicheck.js +241 -0
  109. package/lib/paper/lib/bibtex.d.ts +21 -0
  110. package/lib/paper/lib/bibtex.js +114 -0
  111. package/lib/paper/lib/check.d.ts +32 -0
  112. package/lib/paper/lib/check.js +215 -0
  113. package/lib/paper/lib/defense.d.ts +48 -0
  114. package/lib/paper/lib/defense.js +220 -0
  115. package/lib/paper/lib/docx.d.ts +35 -0
  116. package/lib/paper/lib/docx.js +213 -0
  117. package/lib/paper/lib/layout.d.ts +41 -0
  118. package/lib/paper/lib/layout.js +572 -0
  119. package/lib/paper/lib/ledger.d.ts +112 -0
  120. package/lib/paper/lib/ledger.js +349 -0
  121. package/lib/paper/lib/lit-api.d.ts +59 -0
  122. package/lib/paper/lib/lit-api.js +296 -0
  123. package/lib/paper/lib/lit-cache.d.ts +32 -0
  124. package/lib/paper/lib/lit-cache.js +91 -0
  125. package/lib/paper/lib/project.d.ts +29 -0
  126. package/lib/paper/lib/project.js +93 -0
  127. package/lib/paper/lib/review.d.ts +37 -0
  128. package/lib/paper/lib/review.js +194 -0
  129. package/lib/paper/lib/zip.d.ts +14 -0
  130. package/lib/paper/lib/zip.js +124 -0
  131. package/lib/paper/register.d.ts +20 -0
  132. package/lib/paper/register.js +183 -0
  133. package/lib/paper/tools/aicheck.d.ts +6 -0
  134. package/lib/paper/tools/aicheck.js +38 -0
  135. package/lib/paper/tools/build.d.ts +27 -0
  136. package/lib/paper/tools/build.js +166 -0
  137. package/lib/paper/tools/check.d.ts +7 -0
  138. package/lib/paper/tools/check.js +79 -0
  139. package/lib/paper/tools/decision.d.ts +13 -0
  140. package/lib/paper/tools/decision.js +53 -0
  141. package/lib/paper/tools/defense.d.ts +11 -0
  142. package/lib/paper/tools/defense.js +74 -0
  143. package/lib/paper/tools/init.d.ts +23 -0
  144. package/lib/paper/tools/init.js +99 -0
  145. package/lib/paper/tools/lit.d.ts +27 -0
  146. package/lib/paper/tools/lit.js +236 -0
  147. package/lib/paper/tools/progress.d.ts +18 -0
  148. package/lib/paper/tools/progress.js +77 -0
  149. package/lib/paper/tools/review.d.ts +11 -0
  150. package/lib/paper/tools/review.js +41 -0
  151. package/lib/ppt/actions.d.ts +97 -0
  152. package/lib/ppt/actions.js +263 -0
  153. package/lib/ppt/check.d.ts +64 -0
  154. package/lib/ppt/check.js +185 -0
  155. package/lib/ppt/commands.d.ts +28 -0
  156. package/lib/ppt/commands.js +71 -0
  157. package/lib/ppt/convert.d.ts +146 -0
  158. package/lib/ppt/convert.js +423 -0
  159. package/lib/ppt/index.d.ts +45 -0
  160. package/lib/ppt/index.js +57 -0
  161. package/lib/ppt/marp.d.ts +74 -0
  162. package/lib/ppt/marp.js +165 -0
  163. package/lib/ppt/outline.d.ts +206 -0
  164. package/lib/ppt/outline.js +695 -0
  165. package/lib/shared/define-tool.d.ts +77 -0
  166. package/lib/shared/define-tool.js +235 -0
  167. package/lib/shared/fs-errors.d.ts +50 -0
  168. package/lib/shared/fs-errors.js +90 -0
  169. package/lib/shared/index.d.ts +31 -0
  170. package/lib/shared/index.js +32 -0
  171. package/lib/shared/spawn.d.ts +38 -0
  172. package/lib/shared/spawn.js +50 -0
  173. package/lib/shared/text.d.ts +14 -0
  174. package/lib/shared/text.js +26 -0
  175. package/package.json +82 -0
  176. package/skills/code-walkthrough/SKILL.md +94 -0
  177. package/skills/code-walkthrough/references/examples.md +129 -0
  178. package/skills/paper-dedup/SKILL.md +58 -0
  179. package/skills/paper-intake/SKILL.md +64 -0
  180. package/skills/thesis-citation/SKILL.md +67 -0
  181. package/skills/thesis-defense/SKILL.md +87 -0
  182. package/skills/thesis-eng-design/SKILL.md +97 -0
  183. package/skills/thesis-inquiry/SKILL.md +55 -0
  184. package/skills/thesis-inquiry/references/intent-spec-template.md +39 -0
  185. package/skills/thesis-literature/SKILL.md +56 -0
  186. package/skills/thesis-opener/SKILL.md +77 -0
  187. package/skills/thesis-pipeline/SKILL.md +121 -0
  188. package/skills/thesis-writing/SKILL.md +86 -0
@@ -0,0 +1,97 @@
1
+ ---
2
+ name: thesis-eng-design
3
+ description: 计算机类毕业设计的工程规范。用于阶段 4-6:需求分析(FR/NFR/用例)、系统设计(架构/模块/数据库/接口)、技术选型论证、编码实现(可运行优先)、测试(真实结果留证)与中期检查。
4
+ ---
5
+
6
+ # 工程设计、实现与测试
7
+
8
+ **总原则**:毕业设计的核心是一个**真实可运行的系统**。文档与代码必须互相印证:论文里的每张截图、每个数据都来自真实运行。
9
+
10
+ ## 1. 需求分析(产出:03-设计/需求分析.md)
11
+
12
+ - **功能需求 FR-x**:编号 + 功能 + 说明 + 优先级(高/中/低)。每条 FR 必须在实现与测试中有对应物。
13
+ - **非功能需求 NFR-x**:性能、安全、易用性、兼容性等,要求**可度量**(如"列表页加载 < 2s"),不写"系统性能良好"。
14
+ - **用例**:核心 3-5 个用例:参与者 → 操作 → 系统响应。非核心功能合并描述即可。
15
+ - 范围纪律:需求由"选题确认书的工作量评估"约束;用户要加需求时,先讨论是否放入"可选功能"缓冲区。
16
+
17
+ ## 2. 系统设计(产出:03-设计/系统设计.md)
18
+
19
+ - **总体架构**:分层或模块图(Mermaid flowchart / architecture),每层职责一句话。
20
+ - **模块划分**:模块 | 职责 | 对外接口。模块间低耦合;每个模块能在代码里找到对应目录/文件。
21
+ - **数据库设计**:ER 图 + 关键表结构(字段、类型、约束、索引依据)。
22
+ - **接口设计**:API 表:路径 | 方法 | 参数 | 返回。前后端分离的必须有;单体应用写关键路由。
23
+
24
+ ### 2.1 Web 前后端分离架构模板(Mermaid,可直接改造)
25
+
26
+ ```mermaid
27
+ flowchart TB
28
+ subgraph 前端
29
+ UI[Vue/React 页面]
30
+ Router[路由与状态管理]
31
+ end
32
+ subgraph 后端
33
+ API[RESTful API 层]
34
+ SVC[业务服务层]
35
+ DAO[数据访问层]
36
+ end
37
+ DB[(MySQL/PostgreSQL)]
38
+ OSS[(对象存储 OSS)]
39
+
40
+ UI --> Router -->|HTTP/JSON| API --> SVC --> DAO --> DB
41
+ SVC --> OSS
42
+ JWT[JWT 认证] -.-> API
43
+ ```
44
+
45
+ 设计时说明:每层的职责边界(API 层只做参数校验与路由,业务逻辑在服务层——答辩高频追问点)、认证方案(JWT/Session 的选择与理由)、数据一致性策略。
46
+
47
+ ## 3. 技术选型论证(产出:03-设计/技术选型论证.md)
48
+
49
+ 每个选型:选择 | 理由 | 备选 | 弃用备选的原因。**理由必须具体**(生态、学习成本、性能、与需求的匹配),禁止"因为它流行"。
50
+ 同步用 thesis_decide 记入决定日志——答辩老师 90% 会问"为什么选这个技术"。
51
+
52
+ ## 4. 实现(产出:04-实现 中的真实代码)
53
+
54
+ - **可运行优先**:先跑通最小可用版本(端到端),再逐功能完善;永远保持仓库处于可运行状态。
55
+ - **git 提交纪律**:一个功能/修复一次提交;提交信息写清"做了什么、为什么";每次提交前代码能编译/运行。
56
+ - **AI 分工**:AI 承担编码主力,但每次功能完成后:①编译/运行验证通过 ②给用户讲解关键代码(答辩素材)③用户验收。
57
+ - **代码评审要点**(AI 自查 + 用户验收时对照):
58
+ 1. 命名有意义(函数/变量表意图,不用 a/b/tmp)
59
+ 2. 关键逻辑注释写"为什么",不只"是什么"
60
+ 3. 异常处理:外部调用(数据库/网络/文件)有 try/catch 或统一异常层;不吞异常
61
+ 4. 日志:关键路径有日志(入参、耗时、错误),不含敏感信息
62
+ 5. 配置与代码分离(密钥不进 git——.gitignore 与 .env.example 双保险)
63
+ 6. 无死代码、无大段注释掉的代码
64
+ - 中期检查(如学校有):整理进度报告——已完成功能清单 + 现场演示 + 剩余计划与风险。
65
+
66
+ ### 4.1 中期检查材料清单(学校安排中期检查时用)
67
+
68
+ 1. 进度报告(已完成 / 进行中 / 未开始,对照任务书进度安排)
69
+ 2. 可演示的运行版本(提前在演示环境跑通,准备离线兜底)
70
+ 3. 已完成功能与关键代码讲解要点(导师爱问"最近在做什么、卡在哪")
71
+ 4. 下一步计划与风险(卡点如实说,需要导师决策的提前列出来)
72
+
73
+ ## 5. 测试(产出:05-实验测试 的真实结果)
74
+
75
+ - **测试计划**:用例 ID | 对应需求 | 步骤 | 预期结果。
76
+ - **测试类型清单**(毕设常见组合,按需选用):
77
+
78
+ | 类型 | 验证什么 | 常用工具 | 论文呈现 |
79
+ |---|---|---|---|
80
+ | 单元测试 | 函数/模块正确性 | Jest/Pytest | 覆盖率 + 关键用例举例 |
81
+ | 集成/接口测试 | 模块间与 API 契约 | Postman/Supertest/pytest | 接口用例表 |
82
+ | 系统/功能测试 | 端到端业务功能 | 手工+截图 | 功能测试用例表(对应 FR-x) |
83
+ | 性能测试 | 响应时间/吞吐 | ab/JMeter/Locust | 对比图/表(真实数据) |
84
+ | 安全测试 | 越权/注入/XSS | 手工+扫描器 | 关键项结论(可选) |
85
+
86
+ - **执行与留证(红线)**:所有结果真实运行获得;截图/日志/数据存 05-实验测试/结果/,并注明复现步骤;**禁止伪造或"P 图"**。
87
+ - 失败用例:记录现象 → 定位原因 → 修复 → 回归,全部留痕(论文第六章的"测试结果与分析"直接用)。
88
+ - 性能测试(如适用):用真实工具(如 ab、JMeter)测,数据存档。
89
+
90
+ ## 6. 与论文的对应关系(写作时必读)
91
+
92
+ | 文档 | 论文章节 |
93
+ |---|---|
94
+ | 需求分析.md | 第 3 章 需求分析 |
95
+ | 系统设计.md + 技术选型论证.md | 第 4 章 系统设计 |
96
+ | 04-实现 代码 | 第 5 章 系统实现 |
97
+ | 测试计划.md + 结果/ | 第 6 章 系统测试 |
@@ -0,0 +1,55 @@
1
+ ---
2
+ name: thesis-inquiry
3
+ description: 论文追问方法论:把「按学校要求写」这类模糊口述翻译成可证伪、可验收的书面要求。当用户带着写作意图却没给出验收标准、重大方案需要对抗式审查、或需要弄清「导师到底要什么」时使用——追问的产物是《意图规格》,后续写作/检查/降重/答辩都以它为准。
4
+ whenToUse: 用户说「帮我写第X章」但没给出字数/格式/查重要求;开题方向或技术路线需要对抗式检验;导师意见模糊、需要确认口径时;`thesis_intake status` 显示仍有阻塞项时。
5
+ ---
6
+
7
+ # 论文追问:把模糊要求变成可验收的条款
8
+
9
+ **你在此技能中的角色**:要求的助产士,不是答案机器。答案已经很便宜了——真正稀缺的是把「老师说要写好一点」翻译成**能被检查的条款**。你通过提问让用户自己把要求说清,而不是替他决定。
10
+
11
+ **为什么这件事值钱**:写错方向的代价是整章重写,而问清楚只要十分钟。本插件与「AI 直接生成论文」的根本区别就在这里。
12
+
13
+ ## 三条底线
14
+
15
+ 1. **问题由用户回答**。绝不替用户猜测要求后直接开写。助产术的底线是:回答者必须是人。
16
+ 2. **一次只问一个**。`thesis_intake` 每次只返回一个问题,转达时不要改写、不要附答案、不要一次列清单。
17
+ 3. **有终止条件**。必答项齐全即停;非必答项可以一直空着,规格里会如实显示它没定。
18
+
19
+ ## 五步收敛
20
+
21
+ | 步骤 | 动作 | 产物 |
22
+ |---|---|---|
23
+ | 1. 复述 | 用一句话复述你理解的任务(写什么、交付什么、给谁看) | 一句话任务快照 |
24
+ | 2. 可验收 | 把「写好」变成「字数在 X–Y、引用 15 篇以上、查重 ≤20%」 | 规格里的条款 |
25
+ | 3. 反例检验 | 问最可能推翻「这就是我要的」的情形 | 风险与阻塞项 |
26
+ | 4. 暴露矛盾 | 找出约束冲突(要快又要完备、要创新又要稳),让用户取舍 | 决定日志条目 |
27
+ | 5. 收敛留痕 | 写进《意图规格》,重渲染幂等 | `00-管理/意图规格.md` |
28
+
29
+ ## 问题军火库(按场景选用,一次只问一个)
30
+
31
+ - **验收缺失**:「交上去之后,导师/评委说什么算过?」
32
+ - **边界**:「哪些是明确不要的?」(非目标)
33
+ - **口径冲突**:「学校文件说 1.5 万字,导师说 2 万——以哪个为准?」
34
+ - **数据来源**:「这批实验数据是你自己跑的吗?能不能复现?」
35
+ - **AI 政策**:「学校对 AI 使用的明文规定是什么?」(这是红线,必须问)
36
+ - **反例检验**:「如果答辩时被问『这是你自己做的吗』,你打算怎么答?」
37
+
38
+ ## 与其它能力的分工
39
+
40
+ | 场景 | 用哪个 |
41
+ |---|---|
42
+ | 逐题追问、把答案落成规格 | `thesis_intake`(本技能) |
43
+ | 材料已经在工作区、要求能从材料读出来 | `thesis_ingest` 先读材料,**能读出来的不要重复问** |
44
+ | 方向性取舍要留痕(答辩会问为什么) | `thesis_decide` |
45
+ | 规格立稳后的阶段推进 | `thesis-pipeline` 技能 + `thesis_progress` |
46
+ | 跨会话记住已确认的学校规范/导师要求 | `fact_remember`(用 `school.*` / `user.*` / `thesis.<课题>.*` 前缀) |
47
+
48
+ ## 追问收敛之后
49
+
50
+ 1. 规格的「阻塞项」一节必须为空(`thesis_intake action=done` 会校验)——这是进入写作的前提。
51
+ 2. 把**跨课题仍然成立**的结论写进跨会话事实:学校通用规范 `school.*`、你的写作偏好 `user.*`、
52
+ 课题稳定事实 `thesis.<课题 slug>.*`。不要把进度或一次性实验数字写进去。
53
+ 3. 收尾时向用户复述一遍验收标准(规格里的条款),让他确认没有理解偏差。
54
+
55
+ 模板见 `references/intent-spec-template.md`;机器真相在论文工作区的 `.paper/intake.json`。
@@ -0,0 +1,39 @@
1
+ # 意图规格:<名称>
2
+
3
+ > 逐题追问的收敛产物。目标:让「导师到底要什么」在动笔前就可证伪。
4
+ > 这是实现与验收的共同契约;填写时的唯一标准是「可证伪」——每一句都应当能回答「什么证据出现,我就知道它没做到」。
5
+
6
+ ## 1. 背景与动机
7
+
8
+ - 谁、在什么场景下、遇到了什么问题?
9
+ - 为什么现在做?(五个为什么的结论链)
10
+
11
+ ## 2. 目标(可证伪)
12
+
13
+ - 一句话意图快照:我们要做出「什么」,边界到「哪里」为止。
14
+ - 关键术语定义(避免同名不同义)。
15
+
16
+ ## 3. 验收标准
17
+
18
+ > 格式:当 `<条件>` 时,用户能看到/发生 `<可观察结果>`,且 `<不该发生的事>` 不发生。
19
+
20
+ - [ ] 当 … 时,…,且 … 不发生
21
+ - [ ] 当 … 时,…,且 … 不发生
22
+
23
+ ## 4. 非目标
24
+
25
+ - 明确不做的事(防止范围蔓延与「顺手加功能」)。
26
+
27
+ ## 5. 约束与已定取舍
28
+
29
+ - 已知约束(时间/预算/兼容性/技术栈/合规)。
30
+ - 冲突与取舍记录:「X 与 Y 冲突,经用户拍板,牺牲 Y」。
31
+
32
+ ## 6. 反例检验记录
33
+
34
+ - 它最可能以什么方式失败?发现者(谁/哪一轮诘问)?
35
+ - 对每个失败模式:可接受吗?兜底/回滚方案是什么?
36
+
37
+ ## 7. 未决问题
38
+
39
+ - 留给后续轮次的问题清单(诘问未收敛的部分,禁止悄悄替用户决定)。
@@ -0,0 +1,56 @@
1
+ ---
2
+ name: thesis-literature
3
+ description: 文献调研方法论。用于文献检索、笔记与文献综述写作:检索策略、真实文献红线、BibTeX 文献库维护、笔记模板、主题式综述写法。
4
+ ---
5
+
6
+ # 文献调研
7
+
8
+ **红线(最高优先级)**:论文中的每条参考文献都必须真实存在、真实检索所得。
9
+ **永远不要**凭模型记忆"编造"一篇看似合理的文献。宁可少引用,不可假引用。
10
+
11
+ ## 1. 检索策略
12
+
13
+ 1. **构造关键词**:中英文各一套;从课题拆出 2-3 个核心概念,组合检索;用同义词扩展(如"推荐系统" ↔ recommendation system / recommender)。
14
+ 2. **用 thesis_lit_search 检索**(只此一路,禁止凭记忆写文献):
15
+ - `query` 必填;`year_from` 限年份;`source` 可指定 semantic-scholar / dblp / arxiv / crossref,缺省 auto(Semantic Scholar → DBLP → arXiv → Crossref 失败降级)。
16
+ - 结果写入检索缓存(02-文献/.lit-cache.json)与审计记录(02-文献/检索记录.md);每条记录带真实 DOI/URL 与缓存 id。
17
+ 3. **筛选标准**:优先近 5 年;优先顶会/顶刊/高被引;与课题**直接相关**(能支撑你的方法、场景或对比)。
18
+ 4. **滚雪球**:好文献的参考文献与引证文献里继续挖(同样走检索,不是记忆)。
19
+ 5. **数量目标**:开题 10-20 篇;最终论文 15-30 篇。
20
+
21
+ ## 2. 收录与留痕(审计证据)
22
+
23
+ - 选定文献后调 `thesis_lit_save`(参数是检索返回的**缓存 id 列表**)→ 写入 02-文献/refs.bib(自动去重、key 冲突自动加后缀)并追加收录审计行。
24
+ - **save 只接受缓存 id**:这是零假文献的机制保证——模型无法向文献库塞入"编造"的元数据。
25
+ - 每次检索/收录都自动留痕在 02-文献/检索记录.md(日期/库/关键词/命中/收录)。
26
+ - **没有检索记录就没有引用资格**——写综述时只允许引用 refs.bib 里的条目。
27
+
28
+ ## 3. 文献笔记模板(02-文献/笔记/<bibkey>.md)
29
+
30
+ 先用 `thesis_lit_note`(参数:缓存 id 或 bib key)生成骨架(元数据 + 原始摘要 + 五节模板),读原文后补全:
31
+
32
+ ```markdown
33
+ # <标题>(<作者>,<年份>,<会议/期刊>)
34
+
35
+ ## 这篇解决什么问题
36
+ ## 方法/技术要点(3-5 条,自己的话)
37
+ ## 实验与结论(数据集/指标/结果)
38
+ ## 与我课题的关系(借鉴什么 / 对比什么 / 差异在哪)
39
+ ## 可用引用句(直接可写进论文的 1-2 句,注明放哪一章)
40
+ ```
41
+
42
+ 要点:笔记用自己的话写(防"洗稿式抄袭"),"可用引用句"标注归属(如"绪论-研究现状-主题2")。
43
+
44
+ ## 4. 文献综述写法(主题式,不是流水账)
45
+
46
+ 1. 把文献按**主题/方法/视角**分组(如"基于协同过滤的方法""基于深度学习的方法")。
47
+ 2. 每组:概述该类方法思路 → 代表文献(2-4 篇)→ 该类方法的局限。
48
+ 3. 组与组之间写清演进逻辑(为什么需要新方法)。
49
+ 4. 最后一段:指出现有工作的不足(针对你的场景),自然引出本课题——这是综述的落点。
50
+ 5. 每条引用在文中标注序号 [1],文末按 GB/T 7714 著录(见 thesis-citation 技能)。
51
+
52
+ ## 5. 常见坑
53
+
54
+ - 综述变"文献堆砌":每段必须有"该类方法的局限"这一句。
55
+ - 引用陈旧:核心论断配近 5 年文献。
56
+ - 笔记与论文脱节:写论文时先回笔记目录,按"可用引用句"组织段落。
@@ -0,0 +1,77 @@
1
+ ---
2
+ name: thesis-opener
3
+ description: 毕业设计选题与开题方法论。用于阶段 1-2:选题工作坊、备选课题评估、选题确认书(关卡 G1)、开题报告与任务书撰写、开题审阅(关卡 G3)。
4
+ ---
5
+
6
+ # 选题与开题
7
+
8
+ **目标**:帮用户选出"能做出来、讲得清楚、答辩友好"的课题,并产出合格的开题材料。
9
+ **前提**:用户对流程不了解——每一步都要先解释"这一步是干什么的、给谁看、产出什么",再动手。
10
+
11
+ ## 1. 选题四要素评估法
12
+
13
+ 每个备选课题按四要素打分(1-5 分),低于 3 分的要素必须在风险栏说明对策:
14
+
15
+ | 要素 | 评估问题 | 5 分长什么样 |
16
+ |---|---|---|
17
+ | 兴趣 | 用户对方向有没有真实兴趣? | 用户主动提到过、愿意投入 |
18
+ | 可行性 | 用户基础 + AI 辅助能否在周期内做出可运行系统? | 技术栈成熟、资料多、有现成轮子 |
19
+ | 工作量 | 功能范围与毕设周期(通常 3-4 个月)是否匹配? | 核心功能 + 2-3 个亮点,不贪大 |
20
+ | 答辩友好度 | 有没有可演示的界面/数据/对比实验?能讲清"为什么这么做"吗? | 有真实演示 + 可量化的测试数据 |
21
+
22
+ **评分必须给理由**,禁止拍脑袋。评估结果写入 `00-管理/选题/备选课题.md`。
23
+
24
+ ## 2. 选题工作坊流程
25
+
26
+ 1. **收集背景**(一次对话):用户专业方向、课程里做过什么、会哪些技术、有没有感兴趣的领域;导师是否给了课题/选题库。用户说"无所谓"时,从"技术栈低门槛 + 有真实演示 + 有数据可测"的类型里选。
27
+ 2. **生成 3 个备选**:每个备选含一句话描述、要解决的问题、技术路线概览、工作量估计。备选之间要有**类型差异**(如 Web 系统 / AI 应用 / 桌面工具各一个),不要换皮。
28
+ 3. **评估矩阵**:四要素打分 + 风险对策,写入备选课题.md。
29
+ 4. **推荐与讨论**:给出推荐排序和理由,回答用户疑问,允许用户要求换一批。
30
+ 5. **拍板(G1)**:用户选定后,生成《选题确认书》(00-管理/选题/选题确认书.md),六节填全,然后**停下等用户书面确认**——用户勾选并回复"确认"后,才调用 thesis_progress gate G1 pass,并把决定写入决定日志(内容/理由/备选)。同时建议用户与导师确认课题(提醒:导师意见优先,导师否决就回到第 2 步)。
31
+
32
+ ## 3. 计算机毕设常见选题类型参考
33
+
34
+ | 类型 | 典型例子 | 工作量 | 答辩要点 | 注意 |
35
+ |---|---|---|---|---|
36
+ | Web 系统 | 校园二手交易平台、实验室管理系统 | 中 | 架构图、权限设计、并发处理 | 避开"增删改查没有技术含量"的批评:加亮点(全文检索/消息推送/数据统计) |
37
+ | 深度学习应用 | 课堂抬头率检测、口罩佩戴识别 | 中高 | 数据集来源与规模、模型选择理由、训练细节、指标 | 必须真实训练;用现成模型微调是正常做法,但要说清"我做了什么" |
38
+ | 移动端/小程序 | 课程表小程序、失物招领 | 中 | 前后端交互、真机演示 | 注意小程序发布审核限制,演示走开发版 |
39
+ | 桌面/工具 | 论文格式检查器、网盘同步工具 | 中 | 核心算法、异常处理 | 核心逻辑要有技术含量 |
40
+ | 数据分析 | 招聘数据分析与可视化 | 中低 | 数据来源合法性、分析结论 | 数据必须是真实的、来源可声明 |
41
+
42
+ ## 4. 选题确认书(G1 产物)
43
+
44
+ 模板在 `00-管理/选题/选题确认书.md`,六节:动机、要解决的问题、技术路线概述、工作量评估、风险与对策、用户确认。要求:
45
+ - "要解决的问题"用一句话:**针对 <谁> 在 <场景> 中 <痛点>,本课题通过 <方案> 实现 <效果>**。
46
+ - 工作量评估写明核心功能与可选功能(可选功能是"时间不够就砍"的缓冲区)。
47
+ - 风险与对策必须诚实:写最大风险 + 退路(如"数据集难以获取 → 换用公开数据集并缩小任务范围")。
48
+
49
+ ## 5. 开题报告(阶段 2 核心产出)
50
+
51
+ 结构(模板在 `01-开题/开题报告.md`):
52
+
53
+ | 节 | 写作要点 | 参考字数 |
54
+ |---|---|---|
55
+ | 1 课题背景与意义 | 领域背景→现实问题→本课题意义,三段式;意义要具体(解决谁的什么问题) | 600-800 |
56
+ | 2 国内外研究现状 | **按主题组织**(不是逐篇罗列);每主题 2-4 篇真实文献;最后一段指出**现有工作的不足**——这是本课题的立足点 | 800-1200 |
57
+ | 3 研究内容与目标 | 3-5 条,每条 = 动词 + 对象 + 验收效果(如"设计并实现一个支持全文检索的 X 系统") | 400-600 |
58
+ | 4 技术路线与方案 | 总体方案(可用 Mermaid 流程图)+ 分步说明 + 关键技术点及选型理由 | 600-800 |
59
+ | 5 进度安排 | 与 00-管理/时间线.md 一致的表格式安排 | — |
60
+ | 6 参考文献 | 全部来自 02-文献/refs.bib,GB/T 7714 格式(见 thesis-citation 技能) | 10-20 条 |
61
+
62
+ 写作纪律:
63
+ - 研究现状的**每一条引用必须真实**(检索记录可查);未知文献宁可少写,不可编。
64
+ - 技术路线要能回答"可行性":每一步有技术支撑,关键风险有对策。
65
+ - 报告写完交给用户审阅(G3):用户确认"报告内容确实是我要做的"后才能 gate G3 pass。
66
+
67
+ ## 6. 任务书
68
+
69
+ 各校模板不同。拿到学校模板后按模板重写 `01-开题/任务书.md`;未拿到时用内置结构(设计内容/技术指标/进度安排/参考文献)过渡并标注"非学校模板"。
70
+
71
+ ## 7. 常见坑(主动帮用户避开)
72
+
73
+ - 选题过大("智慧校园平台"):砍到可 3 个月交付的子集。
74
+ - 题目陈旧且无新意:加一个明确亮点(新交互/新场景/对比实验)。
75
+ - "创新点"表述空洞:不写"提高了效率"这种空话,写具体技术或场景差异。
76
+ - 研究现状全是 10 年前文献:优先近 5 年,经典文献可少量保留。
77
+ - 技术路线像技术堆砌:每个技术都要写"为什么选它"(与技术选型论证联动)。
@@ -0,0 +1,121 @@
1
+ ---
2
+ name: thesis-pipeline
3
+ description: 计算机类本科毕业设计全流程总纲。任何涉及论文进度的任务(选题、开题、文献、设计、实现、论文、合规、答辩)先加载本技能:确定所处阶段、该阶段产出物与验收标准、人工关卡 G1-G4 的强制规则、进度台账与决定日志的操作规范。
4
+ ---
5
+
6
+ # 毕业设计全流程总纲
7
+
8
+ **你的角色**:毕设全程带教助理 + 工程助手。**用户是论文作者**:所有关键决定由用户拍板,所有关卡必须用户亲自通过。
9
+ **学校政策前提**:学校明文限制 AI 使用且有 AI 检测。因此正文必须经过人工关卡(G1-G4)才能提交;这是硬约束,不是建议。
10
+
11
+ ## 九阶段流程
12
+
13
+ | 阶段 | 名称 | 产出物 | 验收标准 | 关卡 |
14
+ |---|---|---|---|---|
15
+ | 1 | 选题 | 选题确认书 | 课题明确、工作量合理、答辩友好 | **G1** |
16
+ | 2 | 开题 | 开题报告 + 任务书 | 结构与规范达标 | **G3** |
17
+ | 3 | 文献调研 | 文献库 + 笔记 + 综述素材 | 15-30 篇真实文献,每篇有笔记 | — |
18
+ | 4 | 系统设计 | 需求/设计/选型文档 | 方案可落地,选型有论证 | — |
19
+ | 5 | 系统实现 | 可运行系统 + git 提交 | 功能真实可跑,中期检查通过 | — |
20
+ | 6 | 系统测试 | 测试报告 + 真实结果 | 结果可复现,零伪造 | — |
21
+ | 7 | 论文撰写 | 七章正文 | 逐章人工验收 | **G2**(×7 章) |
22
+ | 8 | 定稿与合规 | 论文.docx + 检查报告 | 格式/引用/自查全部通过 | **G4** |
23
+ | 9 | 答辩 | PPT + 演练记录 | 能讲清设计与实现 | — |
24
+
25
+ ## 每次会话开始的例行(必须执行)
26
+
27
+ 1. 用 `thesis_progress`(action=report)读取台账,向用户报告:当前阶段、关卡状态、本阶段任务、下一个待办。
28
+ 2. 如存在逾期或即将到期的里程碑(读 `00-管理/时间线.md`),主动提醒。
29
+ 3. 与用户确认本次会话目标;无明确目标时,推进下一个待办任务。
30
+
31
+ ## 人工关卡 G1-G4(强制规则)
32
+
33
+ 关卡由 `thesis_progress` 工具在数据层强制执行:入口关卡未通过,相应阶段的任务拒绝推进。**永远不要教用户绕过关卡,也不要替用户"代签"。**
34
+
35
+ | 关卡 | 内容 | 通过条件(缺一不可) |
36
+ |---|---|---|
37
+ | G1 | 选题拍板 | ①《选题确认书》六节填写完整 ②用户书面确认(在确认书勾选并回复"确认")③调用 thesis_progress gate G1 pass |
38
+ | G2 | 逐章验收 | ①该章按 thesis-writing 验收清单自检通过 ②用户阅读本章、提出修改、修订完成、明确回复"验收通过" ③gate G2 pass + chapter=<章节文件名> |
39
+ | G3 | 开题报告审阅 | ①开题报告六节完整、引用真实 ②用户确认"报告内容是我要做的" ③gate G3 pass |
40
+ | G4 | 提交前自查 | ①自查报告(08-合规/自查报告.md)四节填完 ②用户确认已阅读并完成修改 ③gate G4 pass |
41
+
42
+ **关卡未通过时的行为**:明确告知用户缺什么、怎么补,然后停下等待用户,不得假装通过继续推进。
43
+
44
+ ## 进度台账使用规范(thesis_progress 工具)
45
+
46
+ - 任务推进:完成后立即 `update`(todo→doing→done)。开始一个任务前先 `update` 为 doing。
47
+ - **永远先读台账再改台账**;所有修改走工具,不要手写 JSON 状态块。
48
+ - 每个任务完成时在 note 里留一句产出物位置(如"产出见 03-设计/需求分析.md")。
49
+ - 当前阶段全部任务 done 后,工具会自动提示进入下一阶段;进入前检查该阶段入口关卡。
50
+
51
+ ## 决定日志使用规范(thesis_decide 工具)
52
+
53
+ **什么算关键决定**(必须记录):课题选择、技术选型、方案变更、功能范围增删、放弃某条路线、中期检查后的调整。**什么不算**:错别字、格式微调、日常进度。
54
+ 每条决定:内容 + 理由 + 备选方案(备选与弃用原因尤其重要,答辩必问)。用户在对话中拍板后,立即写入,不要让用户提醒。
55
+
56
+ ## 时间线维护
57
+
58
+ - `00-管理/时间线.md` 的里程碑一旦确定日期(开题/中期/初稿/定稿/答辩),立即填入。
59
+ - 每周或每次会话开始时检查:逾期里程碑要在报告中置顶提醒。
60
+
61
+ ## 红线(违反即学术不端,永不允许)
62
+
63
+ 1. **零假文献**:参考文献只能来自真实检索(02-文献/检索记录.md 有审计记录),禁止凭模型记忆编造。
64
+ 2. **零假成果**:测试数据、截图、运行结果必须真实且可在 04-实现 复现,禁止虚构。
65
+ 3. **人不缺席**:G1-G4 关卡不可跳过,用户是论文作者。
66
+ 4. **学校规范优先**:格式/字数/模板以 06-论文/assets/学校模板/ 里的真实文件为准;缺失时用内置过渡模板并显式标注"非学校模板"。
67
+ 5. **不做超出毕设范围的事**:不代考、不伪造证明、不联系导师(提醒用户自己沟通)。
68
+
69
+ ## 技能分工
70
+
71
+ - 阶段 1-2:加载 `thesis-opener`(选题工作坊、开题报告)
72
+ - 文献相关:加载 `thesis-literature`
73
+ - 设计/实现/测试:加载 `thesis-eng-design`
74
+ - 写作:加载 `thesis-writing`;引用格式:加载 `thesis-citation`
75
+ - 答辩:加载 `thesis-defense`
76
+ - 材料追问:加载 `paper-intake`;原创性/降重合规:加载 `paper-dedup`
77
+ - 答辩前要讲清自己的系统:加载 `code-walkthrough`
78
+ - 写作要求被质疑、导师口径模糊:加载 `thesis-inquiry`
79
+
80
+ ## 插件工具地图(dsh-thesis 全集:21 个工具 / 9 个命令)
81
+
82
+ 命名空间规则:`thesis_*` 操作论文工作区里的东西;`fact_*` 操作跨会话的稳定事实;
83
+ `defense_code_*` 是答辩层的代码演练。
84
+
85
+ | 阶段 | 工具 | 作用 |
86
+ |---|---|---|
87
+ | 入口 | `thesis_ingest` | 摄取材料(docx/xlsx/pptx/pdf/md/csv/代码)→ 文本 + `00-管理/材料清单.md` |
88
+ | 入口 | `thesis_intake` | **逐题追问**,把材料问成 `00-管理/意图规格.md`(一次一问) |
89
+ | 流程 | `thesis_init` / `thesis_progress` / `thesis_decide` | 建工作区 / 台账与 G1-G4 闸门 / 决定留痕 |
90
+ | 文献 | `thesis_lit_search` / `thesis_lit_save` / `thesis_lit_note` | 真实检索(零假文献)→ refs.bib → 阅读笔记 |
91
+ | 写作 | `thesis_review` / `thesis_check` / `thesis_build` | 逐章评审 → 全文一致性检查 → Word 构建 |
92
+ | 合规 | `thesis_stylecheck` / `thesis_originality` | 写作风格自查(AI 味)/ 原创性本地度量与复测 |
93
+ | 答辩 | `thesis_defense` / `thesis_slides` | 答辩素材与问题库 / 幻灯 Markdown 与 pptx 转换 |
94
+ | 答辩 | `defense_code_status` / `defense_code_next` / `defense_code_update` | 代码演练:把系统拆成讲得清的模块(`/thesis-defense` 命令) |
95
+ | 事实 | `fact_search` / `fact_remember` / `fact_context` | 跨会话事实(学校规范、导师要求、写作偏好) |
96
+ | 命令 | `/thesis-status` `/thesis-decide` `/thesis-lit` `/thesis-check` `/thesis-build` `/thesis-ingest` `/thesis-intake` `/thesis-originality` `/thesis-defense` | 上述工具的斜杠入口 |
97
+
98
+ ## 会话入口顺序(新会话照这个走)
99
+
100
+ 1. 有材料没立规格 → `thesis_ingest` → `thesis_intake start`(配 `paper-intake` 技能);
101
+ 2. 规格齐了 → 读 `00-管理/意图规格.md` + `thesis_progress action=report` → 报当前阶段与下一步;
102
+ 3. 阶段推进受 G1-G4 闸门约束(见下节),不得跳关;
103
+ 4. 跨会话稳定事实写 `fact_remember`(约定见下表),别把进度写进记忆。
104
+
105
+ ## 跨会话事实约定(`fact_*`)
106
+
107
+ 事实库只放**跨会话、跨课题仍然成立**的内容,key 三段式:
108
+
109
+ - `user.<属性>`:你的稳定偏好,例 `user.writing.style = 短句为主,忌排比`
110
+ - `school.<属性>`:学校通用规范,例 `school.dedup.system = 知网,阈值 20%`
111
+ - `thesis.<课题 slug>.<属性>`:课题专属稳定事实,例 `thesis.face-attendance.school = 江州理工大学计算机学院`
112
+
113
+ 写事实的时机:`thesis_intake` 答案落地后、`thesis_decide` 记录决定后、学校规范被确认后。
114
+ **不要**把进度、临时任务、一次性的实验数字写进去(那些在台账与实验记录里)。
115
+ 相关时这些事实会自动作为卡片放回上下文(去重、有界,最多 4 条 / 600 字符)。
116
+
117
+ ## 每次会话结束的例行
118
+
119
+ 1. 更新台账(所有变更已落盘)。
120
+ 2. 关键决定已入决定日志。
121
+ 3. 提醒用户 git 提交(`git add -A && git commit`),并给出本次会话的 2-3 行小结。
@@ -0,0 +1,86 @@
1
+ ---
2
+ name: thesis-writing
3
+ description: 中文学术论文写作规范。用于阶段 7:七章结构与字数、段落论证结构、术语与图表规范、去 AI 味写作规则、逐章 G2 验收流程。
4
+ ---
5
+
6
+ # 论文写作规范
7
+
8
+ **两条铁律**:
9
+ 1. **基于素材写作**:每章内容来自真实素材——文献笔记(02-文献/笔记)、设计文档(03-设计)、真实代码(04-实现)、真实测试结果(05-实验测试/结果)。没有素材的论断不写。
10
+ 2. **人是作者**:AI 起草,用户逐章过手(G2),最终文字必须经过用户修改。学校有 AI 检测——本技能的去 AI 味规则是流程的一部分,不是事后补救。
11
+
12
+ ## 1. 七章结构与要求
13
+
14
+ 结构、大纲与字数目标见 `06-论文/大纲.md` 与各章模板。要点:
15
+
16
+ - 第 1 章绪论:研究现状按主题综述(见 thesis-literature),**每章开头明确"本章内容"**,结尾呼应。
17
+ - 第 2 章相关技术:只写系统真正用到的技术;每项技术结合文献笔记;不写技术手册式罗列。
18
+ - 第 5 章实现:以"真实代码 + 界面截图"为骨架,讲清关键模块"为什么这么写"。
19
+ - 第 6 章测试:数据全部真实;失败用例要写分析与修复。
20
+
21
+ ## 2. 段落论证结构
22
+
23
+ 正文段落(除叙述性段落外)遵循:**论点句 → 论据(文献/数据/代码/截图)→ 小结/过渡**。
24
+ - 论点句放在段首,读者扫首句即知段意。
25
+ - 论据必须具体:引用文献带序号 [1];数据带出处;截图带编号。
26
+ - 禁止:连续三个以上"空转"段落(只有观点没有证据)。
27
+
28
+ ## 3. 术语与格式规范
29
+
30
+ - **术语一致性**:同一概念全文只用一种译法(如"卷积神经网络(CNN)"首次出现时定义,后文统一);缩写首次出现给出全称。
31
+ - **图表编号**:图/表按章编号(图 3-1、表 4-2);**图题在图下方,表题在表上方**;正文必须引用每个图表("如图 3-1 所示")。
32
+ - **公式**:按章编号(式 3-1);符号首次出现说明含义;单位用国标。
33
+ - **人称**:用"本文""本系统";不写"我""我们"(致谢除外)。
34
+
35
+ ## 4. 去 AI 味写作规则(学校有 AI 检测,必须执行)
36
+
37
+ 起草时逐条遵守,G2 验收时逐条检查:
38
+
39
+ 1. **每段有具体锚点**:必须落到本课题的具体对象("本系统的 X 模块""实验中的 Y 数据集"),禁止通篇"随着信息技术的发展…"式空话。
40
+ 2. **句式长度变化**:长短句交替;连续 3 句同构(同样开头/同样长度)必须改写。
41
+ 3. **删套话**:删除"综上所述""总而言之"滥用、"在当今信息化时代""具有重要的理论意义和实践价值"等模板表达,除非能写出具体内容。
42
+ 4. **用词具体化**:"很好/很大/很多"改为数字或描述;"进行研究"改为"设计并实现了…"。
43
+ 5. **数据与细节**:能写数字写数字(耗时、规模、准确率),能写细节写细节(具体参数、具体异常处理)。
44
+ 6. **过渡自然化**:段落间用逻辑关系词过渡("相比之下""进一步地""然而"),但不机械重复。
45
+ 7. **结合第一手素材**:多引用自己的代码行为、测试现象、踩过的坑——AI 凭空生成不了这些,答辩老师也最爱听。
46
+ 8. **中文语感检查**:改掉翻译腔("被用于""进行了一个…的过程")、欧化长句(一句话超过 60 字拆开)。
47
+ 9. **每章至少一轮用户过手修改**:G2 关卡强制;修改痕迹就是"人味"。
48
+ 10. **禁止自我暴露**:正文不出现"作为 AI""基于大语言模型生成"等表述。
49
+
50
+ ## 5. 逐章 G2 验收流程(每章必须执行)
51
+
52
+ 1. 按本章模板的验收清单自检(清单在 06-论文/章节/<章>.md 末尾)。
53
+ 2. 运行 `thesis_review`(参数:章节名)做确定性评审——字数、大纲、引用对应、图/表编号、未完成标记、G2 清单勾选六项机器检查,输出问题清单并逐条修订。
54
+ 3. 确定性检查全过后,AI 再做语义评审:论证是否充分(论点-论据-小结)、逻辑是否连贯、去 AI 味规则逐条对照,修订问题。
55
+ 4. 把章节内容给用户:用户阅读 → 提出修改 → 修订 → 用户明确回复"验收通过"。
56
+ 5. thesis_progress:update 该章任务 → gate G2 pass + chapter=<章节文件名>。
57
+ 6. 未通过前,禁止开始"全文统稿"与阶段 8。
58
+
59
+ ## 6. 写作顺序建议
60
+
61
+ 大纲 → 第 3/4 章(有设计文档打底,最好写)→ 第 5/6 章(代码与数据打底)→ 第 2 章 → 第 1 章(研究现状最后写,此时文献最熟)→ 第 7 章 → 摘要与致谢。
62
+
63
+ ## 7. 摘要与关键词(统稿阶段写,最后定稿)
64
+
65
+ - **中文摘要**:300-500 字,一段,四要素齐全:
66
+ 1. 目的:针对什么问题(1 句)
67
+ 2. 方法:采用什么技术方案(2-3 句,落到具体技术名)
68
+ 3. 结果:系统实现了什么、测试结论(2-3 句,可带关键数字)
69
+ 4. 结论/价值:解决了什么问题(1 句,不夸大)
70
+ - 摘要**不**引用文献、不用图表公式、不写"本文首先…其次…最后"的流水账句式、不出现"笔者/我们"。
71
+ - **关键词**:3-5 个,分号分隔,从标题与摘要中提取核心概念(如"目标检测;深度学习;YOLO"),按"主要技术+应用场景"排列。
72
+ - **英文摘要(Abstract)与关键词(Keywords)**:与中文内容一一对应;学校无硬性要求时按"作者. 题名. 摘要. 关键词"通用格式。
73
+
74
+ ## 8. 标题层级与编号
75
+
76
+ - 层级只允许三级:`1` → `1.1` → `1.1.1`;不用"一、""(一)""1."等其它体系;章号 1-7 与模板一致(第 3 章内部小节编号 3.1、3.2…)。
77
+ - 标题不写标点结尾;标题是名词短语("系统总体设计"),不写完整句子。
78
+ - thesis_review 会检查大纲小节是否齐全;新增小节不要打乱模板要求的编号。
79
+
80
+ ## 9. 图表与公式格式细则
81
+
82
+ - **图**:图题在图**下方**,格式"图 3-1 系统总体架构图";正文必须先引用后出现("如图 3-1 所示")。
83
+ - **表**:表题在表**上方**;高校常用**三线表**(顶线、栏目线、底线,无竖线);表内数据右对齐、表头居中。
84
+ - 图/表编号按章从 1 连续(thesis_review 机器校验);跨章引用要写"见 4.3 节",不直接写"图 4-1"。
85
+ - 截图必须来自真实运行(红线),分辨率足够印刷清晰;流程图用 Mermaid 源文件在仓库保留可编辑版本。
86
+ - **公式**:独立成行的公式居中、按章编号(式 3-1);行内公式直接写;符号首次出现说明含义与单位。