Not in the top 1,000 by GitHub stars
zxyasfas/paper_format_agent
DOCX formatter for academic papers with a content-fingerprint guard: proves your text is never altered, only the formatting. Also installable as an agent skill. 毕业论文、学位论文的 Word 自动排版:按格式要求改字体字号、行距、缩进、标题和题注;指纹校验保证只改格式、不动正文,也可做格式检查评分。
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → f17a9e4e7e01
No earlier version was observed for comparison.
Verified commit f17a9e4e7e01eb90085ac24c841e52a25a93ab06
git clone --filter=blob:none --no-checkout https://github.com/zxyasfas/paper_format_agent.git .hotskills/zxyasfas-paper_format_agent && git -C .hotskills/zxyasfas-paper_format_agent checkout --detach f17a9e4e7e01eb90085ac24c841e52a25a93ab06
# Copy each selected skill directory from .hotskills/zxyasfas-paper_format_agent into .agents/skills/<skill-name>/Heat
2.5- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
How it works
paper-format-agent
When your agent uses it
Use this skill when a user needs to inspect, score, repair, or regression-test academic paper formatting in DOCX files, especially thesis, journal, or conference documents with a separate format specification. The skill guides Codex through local-first document handling, rule extraction, formatting repair, report review, and contribution-safe validation.
What it loads into context
Frontmatter
72 tokensAlways available to the agent
SKILL.md
747 tokensWhen the skill is activated
Reference documents
10,209 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Safety Defaults
- Standard Workflow
- Validation
- When Adding Template Support
- When Reviewing Output
- Contribution-Friendly Tasks
Scripts executed separately
paper_format_agent/__init__.pypaper_format_agent/__main__.pypaper_format_agent/batch.pypaper_format_agent/calibration.pypaper_format_agent/cli.pypaper_format_agent/engines.pypaper_format_agent/gui.pypaper_format_agent/llm.pypaper_format_agent/mcp_server.pypaper_format_agent/ooxml.pypaper_format_agent/pipeline.pypaper_format_agent/quality.pypaper_format_agent/release_audit.pypaper_format_agent/rules.pypaper_format_agent/scorer.pypaper_format_agent/service.pyrun_gui.pytests/test_abstract_variants.pytests/test_batch.pytests/test_benchmark_text_survival.pytests/test_ieee_synthetic.pytests/test_pipeline_guard.pytests/test_quality.pytests/test_release_audit.pytests/test_rules.pytests/test_scorer_diagnostics.pytests/test_service.pytests/test_skill_metadata.pytests/test_templates.pytools/benchmark_text_survival.pytools/compile_check.pytools/demo_content_guard.pytools/regression_runner.pytools/release_audit.pytools/validate_skill.py
Files
.github/ISSUE_TEMPLATE/bug_report.mddoc321 bytes.github/ISSUE_TEMPLATE/config.ymlasset394 bytes.github/ISSUE_TEMPLATE/feature_request.mddoc266 bytes.github/ISSUE_TEMPLATE/format_rule_request.mddoc883 bytes.github/ISSUE_TEMPLATE/good_first_issue.mddoc867 bytes.github/ISSUE_TEMPLATE/reporting_improvement.mddoc876 bytes.github/ISSUE_TEMPLATE/skill_workflow_request.mddoc581 bytes.github/PULL_REQUEST_TEMPLATE.mddoc869 bytes.github/workflows/ci.ymlasset821 bytes.gitignoreasset415 bytesAGENTS.mddoc1,023 bytesCODE_OF_CONDUCT.mddoc929 bytesCONTRIBUTING.mddoc4,009 bytesLICENSEasset1,091 bytesREADME.mddoc3,926 bytesREADME.zh-CN.mddoc3,857 bytesROADMAP.mddoc2,982 bytesSDD.mddoc2,716 bytesSECURITY.mddoc468 bytesSKILL.mdcore3,572 bytesSKILL.mdcore3,572 bytesSKILL.mdcore3,572 bytesSKILL.mdcore3,572 bytesagents/openai.yamlasset276 bytesdocs/ARCHITECTURE.mddoc830 bytesdocs/BENCHMARK.mddoc2,702 bytesdocs/CONTRIBUTOR_TASKS.mddoc3,310 bytesdocs/MCP.mddoc1,956 bytesdocs/TEMPLATE_PACKS.mddoc2,231 bytesdocs/USAGE.mddoc2,502 bytesdocs/regression_manifest.sample.jsonasset412 bytesexamples/README.mddoc1,115 bytesexamples/sample_format_report.jsonasset1,253 bytesexamples/sample_format_report.mddoc817 bytesexamples/synthetic_format_guide.mddoc1,066 bytespaper_format_agent/__init__.pyruns83 bytespaper_format_agent/__main__.pyruns96 bytespaper_format_agent/batch.pyruns3,344 bytespaper_format_agent/calibration.pyruns2,086 bytespaper_format_agent/cli.pyruns6,245 bytespaper_format_agent/engines.pyruns4,528 bytespaper_format_agent/gui.pyruns25,397 bytespaper_format_agent/llm.pyruns1,192 bytespaper_format_agent/mcp_server.pyruns4,561 bytespaper_format_agent/ooxml.pyruns786 bytespaper_format_agent/pipeline.pyruns38,031 bytespaper_format_agent/quality.pyruns919 bytespaper_format_agent/release_audit.pyruns2,279 bytespaper_format_agent/rules.pyruns7,628 bytespaper_format_agent/scorer.pyruns24,818 bytespaper_format_agent/service.pyruns8,133 bytespyproject.tomlasset1,772 bytesrequirements.txtdoc48 bytesrun_gui.pyruns175 bytesserver.jsonasset616 bytestemplates/README.mddoc1,696 bytestemplates/chinese-thesis-basic.jsonasset1,728 bytestemplates/ieee-conference-basic.jsonasset1,894 bytestemplates/journal-article-basic.jsonasset1,767 bytestests/test_abstract_variants.pyruns4,905 bytestests/test_batch.pyruns2,497 bytestests/test_benchmark_text_survival.pyruns1,545 bytestests/test_ieee_synthetic.pyruns4,672 bytestests/test_pipeline_guard.pyruns5,499 bytestests/test_quality.pyruns1,173 bytestests/test_release_audit.pyruns2,028 bytestests/test_rules.pyruns1,827 bytestests/test_scorer_diagnostics.pyruns3,019 bytestests/test_service.pyruns2,879 bytestests/test_skill_metadata.pyruns280 bytestests/test_templates.pyruns1,887 bytestools/benchmark_text_survival.pyruns9,114 bytestools/compile_check.pyruns1,002 bytestools/demo_content_guard.pyruns3,309 bytestools/regression_runner.pyruns3,721 bytestools/release_audit.pyruns2,378 bytestools/validate_skill.pyruns2,227 bytes
Read SKILL.md
# Paper Format Agent
Use this skill for local-first academic document formatting work. It is designed for `.docx` papers and a separate format specification in `.docx`, `.doc`, or `.txt`.
## Safety Defaults
- Never upload private papers or format guides to external services unless the user explicitly asks for it.
- Treat student papers, manuscripts, reviewer comments, and school templates as sensitive data.
- Do not change academic content unless the user explicitly opts in. Default to formatting-only changes.
- Keep reports and generated documents in a user-provided output directory.
## Standard Workflow
1. Confirm the input files:View the complete source on GitHubSkills included
- paper-format-agent
Repository facts
- License
- MIT
- Created
- May 5, 2026
- Last pushed
- Jul 29, 2026
- Forks
- 9
- Open issues
- 7
- Project activity
- Slowing
Before you install
Local scriptsAutomated signals, not a guarantee
Checked Nov 5, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 3 notes
SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- No dangerous shell commands
- 49 network referencesin 13 files: server.json:1 .github/ISSUE_TEMPLATE/config.yml:2 README.md:7 and 10 more
- No hidden or obfuscated text
- No instruction overrides
- 35 executable scriptsin 35 files: paper_format_agent/__init__.py:1 paper_format_agent/__main__.py:1 paper_format_agent/batch.py:1 and 32 more
- 8 references to secretsin 6 files: paper_format_agent/llm.py:12 paper_format_agent/service.py:106 .gitignore:26 and 3 more
- No requests to vote in Hot
Show all 92 signals by file
.github/ISSUE_TEMPLATE/config.yml
- Network accessline 2
contact_links: - name: Contribution guide url: https://github.com/zxyasfas/paper_format_agent/blob/main/CONTRIBUTING.md - Network accessline 3
- name: Contribution guide url: https://github.com/zxyasfas/paper_format_agent/blob/main/CONTRIBUTING.md about: Read this before opening a PR. - Network accessline 4
url: https://github.com/zxyasfas/paper_format_agent/blob/main/CONTRIBUTING.md - Network accessline 5
about: Read this before opening a PR. - name: Contributor task board url: https://github.com/zxyasfas/paper_format_agent/blob/main/docs/CONTRIBUTOR_TASKS.md - Network accessline 6
- name: Contributor task board url: https://github.com/zxyasfas/paper_format_agent/blob/main/docs/CONTRIBUTOR_TASKS.md about: Pick a small, reviewable task with clear acceptance criteria. - Network accessline 7
url: https://github.com/zxyasfas/paper_format_agent/blob/main/docs/CONTRIBUTOR_TASKS.md
.gitignore
- Access to secretsline 26
[Credential-related source omitted]
README.md
- Network accessline 7
 - Network accessline 8
 - Network accessline 9
 - Network accessline 73
Reference-list formatting is out of scope here: that part is mechanical rules, so it lives in a separate tool, [gbt7714_check](https://github.com/zxyasfas/gbt7714_check), which lints - Network accessline 74
rules, so it lives in a separate tool, [gbt7714_check](https://github.com/zxyasfas/gbt7714_check), which lints reference entries against GB/T 7714. - Network accessline 75
[gbt7714_check](https://github.com/zxyasfas/gbt7714_check), which lints
README.zh-CN.md
- Network accessline 7
 - Network accessline 8
 - Network accessline 9
 - Network accessline 67
参考文献的格式不归它管:那部分是机械规则,单独做了个工具 [gbt7714_check](https://github.com/zxyasfas/gbt7714_check),按 GB/T 7714 - Network accessline 68
[gbt7714_check](https://github.com/zxyasfas/gbt7714_check),按 GB/T 7714
ROADMAP.md
- Network accessline 21
- [ ] `reporting`: clearer failed-check wording in HTML reports. - [ ] `ci`: optional GitHub Actions example for local format checks. - [ ] `pipeline`: disambiguate decimal-leading body text from section headings ([#22](https://github.com/z - Network accessline 23
- [ ] `pipeline`: disambiguate decimal-leading body text from section headings ([#22](https://github.com/zxyasfas/paper_format_agent/issues/22)).
docs/CONTRIBUTOR_TASKS.md
- Network accessline 91
- APA reference spacing regression coverage ([#16](https://github.com/zxyasfas/paper_format_agent/pull/16)). - Network accessline 92
- IEEE-style heading and Roman-numeral table caption support with synthetic tests ([#9](https://github.com/zxyasfas/paper_format_agent/pull/9), [#20](https://github.com/zxyasfas/paper_format_agent/pull/20)). - Network accessline 93
- Chinese thesis abstract and keyword label variants ([#19](https://github.com/zxyasfas/paper_format_agent/pull/19)).
docs/MCP.md
- Network accessline 3
Paper Format Agent ships an optional [Model Context Protocol](https://modelcontextprotocol.io)
paper_format_agent/__init__.py
- Executable scriptline 1
Executable file
paper_format_agent/__main__.py
- Executable scriptline 1
Executable file
paper_format_agent/batch.py
- Executable scriptline 1
Executable file
paper_format_agent/calibration.py
- Executable scriptline 1
Executable file
paper_format_agent/cli.py
- Executable scriptline 1
Executable file - Network accessline 40
parser.add_argument("--use-llm", action="store_true", help="enable LLM suggestions (advisory only)") parser.add_argument("--llm-api-key", default=None) parser.add_argument("--llm-base-url", default="https://api.deepseek.com") - Network accessline 41
parser.add_argument("--llm-api-key", default=None) parser.add_argument("--llm-base-url", default="https://api.deepseek.com") parser.add_argument("--llm-model", default="deepseek-v4-pro") - Network accessline 42
parser.add_argument("--llm-base-url", default="https://api.deepseek.com") - Access to secretsline 63
[Credential-related source omitted]
paper_format_agent/engines.py
- Executable scriptline 1
Executable file
paper_format_agent/gui.py
- Executable scriptline 1
Executable file
paper_format_agent/llm.py
- Executable scriptline 1
Executable file - Network accessline 11
[Credential-related source omitted] - Network accessline 12
[Credential-related source omitted] - Access to secretsline 12
[Credential-related source omitted] - Network accessline 13
base_url: str = "https://api.deepseek.com" - Access to secretsline 25
[Credential-related source omitted]
paper_format_agent/mcp_server.py
- Executable scriptline 1
Executable file
paper_format_agent/ooxml.py
- Executable scriptline 1
Executable file - Network accessline 19
from docx.oxml import OxmlElement rFonts = rPr.find('{http://schemas.openxmlformats.org/wordprocessingml/2006/main}rFonts') - Network accessline 20
rFonts = rPr.find('{http://schemas.openxmlformats.org/wordprocessingml/2006/main}rFonts') - Network accessline 26
rFonts.set('{http://schemas.openxmlformats.org/wordprocessingml/2006/main}eastAsia', font_name)
paper_format_agent/pipeline.py
paper_format_agent/quality.py
- Executable scriptline 1
Executable file
paper_format_agent/release_audit.py
paper_format_agent/rules.py
- Executable scriptline 1
Executable file
paper_format_agent/scorer.py
- Executable scriptline 1
Executable file
paper_format_agent/service.py
- Executable scriptline 1
Executable file - Network accessline 105
[Credential-related source omitted] - Network accessline 106
[Credential-related source omitted] - Access to secretsline 106
[Credential-related source omitted] - Network accessline 107
llm_base_url: str = "https://api.deepseek.com", - Access to secretsline 139
[Credential-related source omitted]
pyproject.toml
- Network accessline 39
[project.urls] Homepage = "https://github.com/zxyasfas/paper_format_agent" - Network accessline 40
Homepage = "https://github.com/zxyasfas/paper_format_agent" - Network accessline 41
Repository = "https://github.com/zxyasfas/paper_format_agent" - Network accessline 42
Issues = "https://github.com/zxyasfas/paper_format_agent/issues"
run_gui.py
- Executable scriptline 1
Executable file
server.json
- Network accessline 1
{ "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json", - Network accessline 2
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json", - Network accessline 4
"description": "Local-first DOCX formatter for academic papers with a content-fingerprint integrity guard.", "repository": { "url": "https://github.com/zxyasfas/paper_format_agent", - Network accessline 5
"repository": { "url": "https://github.com/zxyasfas/paper_format_agent", "source": "github" - Network accessline 6
"url": "https://github.com/zxyasfas/paper_format_agent", - Network accessline 11
{ "registryType": "pypi", "registryBaseUrl": "https://pypi.org", - Network accessline 12
"registryType": "pypi", "registryBaseUrl": "https://pypi.org", "identifier": "paper-format-agent", - Network accessline 13
"registryBaseUrl": "https://pypi.org",
tests/test_abstract_variants.py
- Executable scriptline 1
Executable file
tests/test_batch.py
- Executable scriptline 1
Executable file
tests/test_benchmark_text_survival.py
- Executable scriptline 1
Executable file
tests/test_ieee_synthetic.py
- Executable scriptline 1
Executable file
tests/test_pipeline_guard.py
- Executable scriptline 1
Executable file
tests/test_quality.py
- Executable scriptline 1
Executable file
tests/test_release_audit.py
tests/test_rules.py
- Executable scriptline 1
Executable file
tests/test_scorer_diagnostics.py
- Executable scriptline 1
Executable file
tests/test_service.py
- Executable scriptline 1
Executable file
tests/test_skill_metadata.py
- Executable scriptline 1
Executable file
tests/test_templates.py
- Executable scriptline 1
Executable file
tools/benchmark_text_survival.py
- Executable scriptline 1
Executable file
tools/compile_check.py
- Executable scriptline 1
Executable file
tools/demo_content_guard.py
- Executable scriptline 1
Executable file
tools/regression_runner.py
- Executable scriptline 1
Executable file
tools/release_audit.py
- Executable scriptline 1
Executable file
tools/validate_skill.py
- Executable scriptline 1
Executable file
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Declared and executed: 5 facts
- Contacts api.deepseek.com, which SKILL.md, the README and the plugin manifest do not mentionpaper_format_agent/cli.py:42High confidence
- Contacts api.deepseek.com, which SKILL.md, the README and the plugin manifest do not mentionpaper_format_agent/llm.py:13High confidence
- Contacts schemas.openxmlformats.org, which SKILL.md, the README and the plugin manifest do not mentionpaper_format_agent/ooxml.py:20High confidence
- Contacts www.w3.org, which SKILL.md, the README and the plugin manifest do not mentionpaper_format_agent/pipeline.py:371High confidence
- Contacts api.deepseek.com, which SKILL.md, the README and the plugin manifest do not mentionpaper_format_agent/service.py:107High confidence
Signal confidence: 73 facts
- Network access in prose of documentationREADME.md:7Low confidence
- Network access in prose of documentationREADME.md:8Low confidence
- Network access in prose of documentationREADME.md:9Low confidence
- Network access in prose of documentationREADME.md:73Low confidence
- Network access in prose of documentationREADME.md:74Low confidence
- Network access in prose of documentationREADME.md:75Low confidence
- Network access in prose of documentationREADME.zh-CN.md:7Low confidence
- Network access in prose of documentationREADME.zh-CN.md:8Low confidence
- Network access in prose of documentationREADME.zh-CN.md:9Low confidence
- Network access in prose of documentationREADME.zh-CN.md:67Low confidence
- Network access in prose of documentationREADME.zh-CN.md:68Low confidence
- Network access in prose of documentationROADMAP.md:21Low confidence
- Network access in prose of documentationROADMAP.md:23Low confidence
- Network access in prose of documentationdocs/CONTRIBUTOR_TASKS.md:91Low confidence
- Network access in prose of documentationdocs/CONTRIBUTOR_TASKS.md:92Low confidence
- Network access in prose of documentationdocs/CONTRIBUTOR_TASKS.md:93Low confidence
- Network access in prose of documentationdocs/MCP.md:3Low confidence
- Executable script in prose of a file that runspaper_format_agent/__init__.py:1Low confidence
- Executable script in prose of a file that runspaper_format_agent/__main__.py:1Low confidence
- Executable script in code of a file that runspaper_format_agent/batch.py:1High confidence
- Executable script in code of a file that runspaper_format_agent/calibration.py:1High confidence
- Executable script in code of a file that runspaper_format_agent/cli.py:1High confidence
- Network access in code of a file that runspaper_format_agent/cli.py:40High confidence
- Network access in code of a file that runspaper_format_agent/cli.py:41High confidence
- Network access in code of a file that runspaper_format_agent/cli.py:42High confidence
- Access to secrets in code of a file that runspaper_format_agent/cli.py:63High confidence
- Executable script in code of a file that runspaper_format_agent/engines.py:1High confidence
- Executable script in prose of a file that runspaper_format_agent/gui.py:1Low confidence
- Executable script in prose of a file that runspaper_format_agent/llm.py:1Low confidence
- Network access in code of a file that runspaper_format_agent/llm.py:11High confidence
- Network access in code of a file that runspaper_format_agent/llm.py:12High confidence
- Access to secrets in code of a file that runspaper_format_agent/llm.py:12High confidence
- Network access in code of a file that runspaper_format_agent/llm.py:13High confidence
- Access to secrets in code of a file that runspaper_format_agent/llm.py:25High confidence
- Executable script in prose of a file that runspaper_format_agent/mcp_server.py:1Low confidence
- Executable script in prose of a file that runspaper_format_agent/ooxml.py:1Low confidence
- Network access in code of a file that runspaper_format_agent/ooxml.py:19High confidence
- Network access in code of a file that runspaper_format_agent/ooxml.py:20High confidence
- Network access in code of a file that runspaper_format_agent/ooxml.py:26High confidence
- Executable script in code of a file that runspaper_format_agent/pipeline.py:1High confidence
- Network access in code of a file that runspaper_format_agent/pipeline.py:370High confidence
- Network access in code of a file that runspaper_format_agent/pipeline.py:371High confidence
- Executable script in code of a file that runspaper_format_agent/quality.py:1High confidence
- Executable script in code of a file that runspaper_format_agent/release_audit.py:1High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuepaper_format_agent/release_audit.py:43Low confidence
- Executable script in code of a file that runspaper_format_agent/rules.py:1High confidence
- Executable script in code of a file that runspaper_format_agent/scorer.py:1High confidence
- Executable script in prose of a file that runspaper_format_agent/service.py:1Low confidence
- Network access in code of a file that runspaper_format_agent/service.py:105High confidence
- Network access in code of a file that runspaper_format_agent/service.py:106High confidence
and 23 more
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Compatible | Standard SKILL.md SKILL.md | .claude/skills/<skill-name>/ |
| Codex | Native | Manifest AGENTS.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.