wps-thesis

wps-thesis is a skill for Claude Code from Bwkyd/wps-skills. It costs 73 tokens per session (3,242 once invoked), scanned A, original, MIT.

A thesis and academic-paper formatter for Word documents. It creates or applies structures such as covers, Chinese and English abstracts, tables of contents, chapters, references, and acknowledgements using specified academic formatting rules.

In plain words
What is it for?
Use it to format undergraduate, master’s, or doctoral theses and academic papers, create a thesis template, or reformat existing content with the required school or publication structure.
Why use it?
It reduces the tedious manual work of making a long paper’s headings, margins, fonts, spacing, page numbers, and references consistent.

Skill for Claude Code

Written for Claude Code: allowed-tools in frontmatter.

Good fit Use it to format undergraduate, master’s, or doctoral theses and academic papers, create a thesis template, or reformat existing content with the required school or publication structure.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/bwkyd/wps-skills/wps-thesis
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add Bwkyd/wps-skills --skill wps-thesis
Clone the repo
git clone --depth 1 https://github.com/Bwkyd/wps-skills

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for wps-thesis

README.md
[![agentmods](https://agentmods.dev/badge/skills/bwkyd/wps-skills/wps-thesis/github.svg)](https://agentmods.dev/skills/bwkyd/wps-skills/wps-thesis)
Your own site
<a href="https://agentmods.dev/skills/bwkyd/wps-skills/wps-thesis"><img src="https://agentmods.dev/badge/skills/bwkyd/wps-skills/wps-thesis/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for wps-thesis

Your own site · 80×15
<a href="https://agentmods.dev/skills/bwkyd/wps-skills/wps-thesis"><img src="https://agentmods.dev/badge/skills/bwkyd/wps-skills/wps-thesis.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 73 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,242 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00073 $0.03242
Opus 5 $0.00036 $0.01621
Sonnet 5 $0.00015 $0.00648
Haiku 4.5 $0.00007 $0.00324

Measured 11d ago against content hash 3ee767b51a6e, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-10, from the pricing page.

Security

Grade A, and why

wps-thesis scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/wps-thesis/SKILL.md · 362 lines

How it starts

The opening of the file, as written. The whole thing — 362 lines — stays where its author put it; the contents beside it link to each section on GitHub.

论文排版工具

按高校标准自动排版毕业论文 / 学术论文(.docx)。

每个大学生的论文排版噩梦,到此为止。

When to Use

  • 毕业论文排版(本科/硕士/博士)
  • 学术论文/期刊论文格式化
  • 论文模板生成
  • 已有论文内容需要重新排版

When NOT to Use

  • 一般工作报告 → 使用 wps-report-writer
  • 公文排版 → 使用 wps-gongwen
  • 只需要校对内容 → 使用 wps-proofread

论文通用格式标准

页面设置

纸张:A4 (210mm × 297mm)
上边距:30mm
下边距:25mm
左边距:30mm(装订侧加宽)
右边距:20mm
页眉:15mm,含学校名/论文标题
页脚:页码居中,小五号

字体字号规范

元素 字体 字号 说明
论文题目 黑体 小二号(18pt) 居中,加粗
章标题(第X章) 黑体 三号(16pt) 居中,加粗
节标题(X.X) 黑体 四号(14pt) 左对齐,加粗
小节标题(X.X.X) 黑体 小四号(12pt) 左对齐,加粗
正文 宋体 小四号(12pt) 首行缩进2字符
摘要标题 黑体 三号(16pt) 居中
摘要内容 宋体 小四号(12pt)
关键词 黑体+宋体 小四号(12pt) "关键词:"黑体,内容宋体
参考文献 宋体 五号(10.5pt)
页眉 宋体 小五号(9pt)
页码 Times New Roman 小五号(9pt)

行距

正文:1.5倍行距
摘要:1.5倍行距
参考文献:单倍行距
图表标题:单倍行距

工作流程

Step 1: 确认论文信息

必填信息:

  • 论文题目(中文 + 英文)
  • 作者姓名
  • 学校/院系
  • 专业
  • 指导教师
  • 日期
  • 学位类型:本科/硕士/博士

可选信息:

  • 学号
  • 分类号
  • 密级
  • UDC

Step 2: 论文结构

标准毕业论文结构:

[封面]
[独创性声明]
[中文摘要 + 关键词]
[英文摘要 + Keywords]
[目录]
──────────────────
第一章  绪论
  1.1 研究背景
  1.2 研究现状
  1.3 研究内容与方法
  1.4 论文结构
第二章  相关理论与技术
  2.1 ...
第三章  系统设计 / 方法论
  3.1 ...
第四章  实验与分析
  4.1 ...
第五章  总结与展望
  5.1 主要工作总结
  5.2 不足与展望
──────────────────
[参考文献]
[致谢]
[附录](可选)
[个人简历/发表论文](硕博)

Step 3: 生成 .docx 文件

pip install python-docx 2>/dev/null || pip3 install python-docx 2>/dev/null

核心生成逻辑:

from docx import Document
from docx.shared import Pt, Mm, Cm, RGBColor
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.enum.section import WD_ORIENT
from docx.oxml.ns import qn, nsdecls
from docx.oxml import parse_xml, OxmlElement
import os

def create_thesis(info, content=None, output_path=None):
    """
    info = {
        'title_cn': '基于深度学习的图像识别系统研究',
        'title_en': 'Research on Image Recognition System Based on Deep Learning',
        'author': '张三',
        'school': 'XX大学',
        'department': '计算机科学与技术学院',
        'major': '计算机科学与技术',
        'advisor': '李四 教授',
        'degree': '硕士',  # 本科/硕士/博士
        'student_id': '2023XXXX',
        'date': '2026年6月',
    }
    """
    doc = Document()

    # 页面设置
    section = doc.sections[0]
    section.page_width = Mm(210)
    section.page_height = Mm(297)
    section.top_margin = Mm(30)
    section.bottom_margin = Mm(25)
    section.left_margin = Mm(30)
    section.right_margin = Mm(20)

    def set_font(run, name='宋体', size=12, bold=False, color=None):
        run.font.size = Pt(size)
        run.font.name = name
        run._element.rPr.rFonts.set(qn('w:eastAsia'), name)
        run.bold = bold
        if color:
            run.font.color.rgb = color

    def add_heading_cn(text, font_name='黑体', size=16, bold=True,
                       align=WD_ALIGN_PARAGRAPH.CENTER):
        p = doc.add_paragraph()
        p.alignment = align
        p.paragraph_format.space_before = Pt(24)
        p.paragraph_format.space_after = Pt(18)
        p.paragraph_format.line_spacing = Pt(28)
        run = p.add_run(text)
        set_font(run, font_name, size, bold)
        return p

    def add_body(text, indent=True):
        p = doc.add_paragraph()
        p.paragraph_format.line_spacing = Pt(22)
        if indent:
            p.paragraph_format.first_line_indent = Pt(24)
        run = p.add_run(text)
        set_font(run, '宋体', 12)
        return p

    # === 封面 ===
    for _ in range(3):
        doc.add_paragraph()

    # 学校名
    p = doc.add_paragraph()
    p.alignment = WD_ALIGN_PARAGRAPH.CENTER
    run = p.add_run(info['school'])
    set_font(run, '华文中宋', 26, True)

    # 学位类型
    p = doc.add_paragraph()
    p.alignment = WD_ALIGN_PARAGRAPH.CENTER
    p.paragraph_format.space_before = Pt(10)
    degree_text = {'本科': '本科毕业论文', '硕士': '硕士学位论文',
                   '博士': '博士学位论文'}.get(info['degree'], '学位论文')
    run = p.add_run(degree_text)
    set_font(run, '华文中宋', 22)

    doc.add_paragraph()

    # 论文题目
    p = doc.add_paragraph()
    p.alignment = WD_ALIGN_PARAGRAPH.CENTER
    p.paragraph_format.space_before = Pt(30)
    run = p.add_run(info['title_cn'])
    set_font(run, '黑体', 18, True)

    doc.add_paragraph()

    # 信息表
    fields = [
        ('作    者', info['author']),
        ('学    号', info.get('student_id', '')),
        ('院    系', info.get('department', '')),
        ('专    业', info['major']),
        ('指导教师', info['advisor']),
        ('完成日期', info['date']),
    ]
    for label, value in fields:
        if value:
            p = doc.add_paragraph()
            p.alignment = WD_ALIGN_PARAGRAPH.CENTER
            run1 = p.add_run(f'{label}:')
            set_font(run1, '宋体', 14)
            run2 = p.add_run(value)
            set_font(run2, '宋体', 14)

    doc.add_page_break()

    # === 中文摘要 ===
    add_heading_cn('摘  要', '黑体', 16)
    add_body('(在此输入中文摘要内容,一般300-500字)')
    doc.add_paragraph()
    p = doc.add_paragraph()
    run = p.add_run('关键词:')
    set_font(run, '黑体', 12, True)
    run2 = p.add_run('关键词1;关键词2;关键词3')
    set_font(run2, '宋体', 12)
    doc.add_page_break()

    # === 英文摘要 ===
    add_heading_cn('Abstract', 'Times New Roman', 16)
    add_body('(Type your English abstract here, typically 200-300 words)')
    doc.add_paragraph()
    p = doc.add_paragraph()
    run = p.add_run('Keywords: ')
    run.font.size = Pt(12)
    run.font.name = 'Times New Roman'
    run.bold = True
    run2 = p.add_run('keyword1; keyword2; keyword3')
    run2.font.size = Pt(12)
    run2.font.name = 'Times New Roman'
    doc.add_page_break()

    # === 目录占位 ===
    add_heading_cn('目  录', '黑体', 16)
    add_body('(请在WPS中插入 → 引用 → 目录 → 自动目录)', False)
    doc.add_page_break()

    # === 正文章节框架 ===
    chapters = [
        ('第一章  绪论', ['1.1 研究背景', '1.2 国内外研究现状',
         '1.3 研究内容与方法', '1.4 论文结构安排']),
        ('第二章  相关理论与技术', ['2.1 (根据论文主题填写)']),
        ('第三章  (核心内容章节)', ['3.1 (根据论文主题填写)']),
        ('第四章  实验与结果分析', ['4.1 实验环境', '4.2 实验设计',
         '4.3 结果与分析']),
        ('第五章  总结与展望', ['5.1 主要工作总结', '5.2 不足与展望']),
    ]

    for chapter_title, sections in chapters:
        add_heading_cn(chapter_title, '黑体', 16)
        for sec in sections:
            p = doc.add_paragraph()
            p.paragraph_format.space_before = Pt(12)
            run = p.add_run(sec)
            set_font(run, '黑体', 14, True)
            add_body('(在此输入内容)')
        doc.add_page_break()

    # === 参考文献 ===
    add_heading_cn('参考文献', '黑体', 16)
    refs = [
        '[1] 作者. 论文题目[J]. 期刊名, 年, 卷(期): 起止页.',
        '[2] 作者. 书名[M]. 出版地: 出版社, 年.',
        '[3] Author. Title[J]. Journal, Year, Vol(No): Pages.',
    ]
    for ref in refs:
        p = doc.add_paragraph()
        run = p.add_run(ref)
        set_font(run, '宋体', 10.5)
    doc.add_page_break()

    # === 致谢 ===
    add_heading_cn('致  谢', '黑体', 16)
    add_body('(在此输入致谢内容)')

    # 保存
    if not output_path:
        output_path = f"{info['title_cn'][:20]}_论文.docx"
    doc.save(output_path)
    return os.path.abspath(output_path)

Read the full file on GitHub · 362 lines

Files

What ships with it

1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 11d ago First seen · 362 lines · 73 tokens per session scan A 3ee767b51a6e

Subscribe to this mod's changes

wps-thesis is a skill published in the GitHub repository Bwkyd/wps-skills (7 stars, last pushed 4mo ago), licensed MIT. It adds 73 tokens to every session and 3,242 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

docx-template-translator

Adaptive conversion of LaTeX, PDF, or Markdown sources into a complete Word .docx that follows a user-supplied .docx template. Use when pandoc --reference-doc alone is not enough — for thesis, dissertation, report, or institutional Word formatting that needs cover pages, declarations, TOC, heading numbering, captions…

zouchenzhen/docx-template-translator-skill · 87 tokens

法律文件脱敏处理

A browser-based and Python tool for removing sensitive details from legal Word documents and restoring them later. It can replace information such as names, dates, prices, bank accounts and case numbers while preserving document formatting.

moyupeng0422/legal-doc-redactor · 128 tokens

note-organizer

Use this skill whenever the user wants to organize course materials, lecture notes, PPT/PDF/DOCX files, textbooks, personal notes, senior-student notes, historical exams, review questions, standards, manuals, or scattered study resources into a structured Markdown note library. Use it even when the user only says…

Renakoni/note-organizer · 228 tokens

exhibition-outline

A template for turning an exhibition plan into a three-page presentation outline. The pages cover the theme, its explanation and visitor story, and a detailed area-by-area display plan.

Amalia6767/curator-skills · 60 tokens

tender-analysis

A workflow for reviewing tender documents, which are formal project requests that describe requirements and bidding rules. It extracts project details, technical and business conditions, deadlines, scoring rules, risks, and questions for clarification.

Amalia6767/curator-skills · 85 tokens

docx

Use this skill whenever the user wants to create, read, edit, or manipulate Word documents (.docx files). Triggers include: any mention of 'Word doc', 'word document', '.docx', or requests to produce professional documents with formatting like tables of contents, headings, page numbers, or letterheads. Also use when…

lingxling/awesome-skills-cn · 168 tokens