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.

Compare on GitHub

View on GitHubAdd to my skills

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>/
89GitHub stars
2stars in 7 days
1skill in this repository
0commits in 30 days

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

Oct 25, 2026Nov 3, 202689

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 tokens

Always available to the agent

SKILL.md

747 tokens

When the skill is activated

Reference documents

10,209 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. Safety Defaults
  2. Standard Workflow
  3. Validation
  4. When Adding Template Support
  5. When Reviewing Output
  6. Contribution-Friendly Tasks

Scripts executed separately

  • paper_format_agent/__init__.py
  • paper_format_agent/__main__.py
  • paper_format_agent/batch.py
  • paper_format_agent/calibration.py
  • paper_format_agent/cli.py
  • paper_format_agent/engines.py
  • paper_format_agent/gui.py
  • paper_format_agent/llm.py
  • paper_format_agent/mcp_server.py
  • paper_format_agent/ooxml.py
  • paper_format_agent/pipeline.py
  • paper_format_agent/quality.py
  • paper_format_agent/release_audit.py
  • paper_format_agent/rules.py
  • paper_format_agent/scorer.py
  • paper_format_agent/service.py
  • run_gui.py
  • tests/test_abstract_variants.py
  • tests/test_batch.py
  • tests/test_benchmark_text_survival.py
  • tests/test_ieee_synthetic.py
  • tests/test_pipeline_guard.py
  • tests/test_quality.py
  • tests/test_release_audit.py
  • tests/test_rules.py
  • tests/test_scorer_diagnostics.py
  • tests/test_service.py
  • tests/test_skill_metadata.py
  • tests/test_templates.py
  • tools/benchmark_text_survival.py
  • tools/compile_check.py
  • tools/demo_content_guard.py
  • tools/regression_runner.py
  • tools/release_audit.py
  • tools/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 bytes
  • AGENTS.mddoc1,023 bytes
  • CODE_OF_CONDUCT.mddoc929 bytes
  • CONTRIBUTING.mddoc4,009 bytes
  • LICENSEasset1,091 bytes
  • README.mddoc3,926 bytes
  • README.zh-CN.mddoc3,857 bytes
  • ROADMAP.mddoc2,982 bytes
  • SDD.mddoc2,716 bytes
  • SECURITY.mddoc468 bytes
  • SKILL.mdcore3,572 bytes
  • SKILL.mdcore3,572 bytes
  • SKILL.mdcore3,572 bytes
  • SKILL.mdcore3,572 bytes
  • agents/openai.yamlasset276 bytes
  • docs/ARCHITECTURE.mddoc830 bytes
  • docs/BENCHMARK.mddoc2,702 bytes
  • docs/CONTRIBUTOR_TASKS.mddoc3,310 bytes
  • docs/MCP.mddoc1,956 bytes
  • docs/TEMPLATE_PACKS.mddoc2,231 bytes
  • docs/USAGE.mddoc2,502 bytes
  • docs/regression_manifest.sample.jsonasset412 bytes
  • examples/README.mddoc1,115 bytes
  • examples/sample_format_report.jsonasset1,253 bytes
  • examples/sample_format_report.mddoc817 bytes
  • examples/synthetic_format_guide.mddoc1,066 bytes
  • paper_format_agent/__init__.pyruns83 bytes
  • paper_format_agent/__main__.pyruns96 bytes
  • paper_format_agent/batch.pyruns3,344 bytes
  • paper_format_agent/calibration.pyruns2,086 bytes
  • paper_format_agent/cli.pyruns6,245 bytes
  • paper_format_agent/engines.pyruns4,528 bytes
  • paper_format_agent/gui.pyruns25,397 bytes
  • paper_format_agent/llm.pyruns1,192 bytes
  • paper_format_agent/mcp_server.pyruns4,561 bytes
  • paper_format_agent/ooxml.pyruns786 bytes
  • paper_format_agent/pipeline.pyruns38,031 bytes
  • paper_format_agent/quality.pyruns919 bytes
  • paper_format_agent/release_audit.pyruns2,279 bytes
  • paper_format_agent/rules.pyruns7,628 bytes
  • paper_format_agent/scorer.pyruns24,818 bytes
  • paper_format_agent/service.pyruns8,133 bytes
  • pyproject.tomlasset1,772 bytes
  • requirements.txtdoc48 bytes
  • run_gui.pyruns175 bytes
  • server.jsonasset616 bytes
  • templates/README.mddoc1,696 bytes
  • templates/chinese-thesis-basic.jsonasset1,728 bytes
  • templates/ieee-conference-basic.jsonasset1,894 bytes
  • templates/journal-article-basic.jsonasset1,767 bytes
  • tests/test_abstract_variants.pyruns4,905 bytes
  • tests/test_batch.pyruns2,497 bytes
  • tests/test_benchmark_text_survival.pyruns1,545 bytes
  • tests/test_ieee_synthetic.pyruns4,672 bytes
  • tests/test_pipeline_guard.pyruns5,499 bytes
  • tests/test_quality.pyruns1,173 bytes
  • tests/test_release_audit.pyruns2,028 bytes
  • tests/test_rules.pyruns1,827 bytes
  • tests/test_scorer_diagnostics.pyruns3,019 bytes
  • tests/test_service.pyruns2,879 bytes
  • tests/test_skill_metadata.pyruns280 bytes
  • tests/test_templates.pyruns1,887 bytes
  • tools/benchmark_text_survival.pyruns9,114 bytes
  • tools/compile_check.pyruns1,002 bytes
  • tools/demo_content_guard.pyruns3,309 bytes
  • tools/regression_runner.pyruns3,721 bytes
  • tools/release_audit.pyruns2,378 bytes
  • tools/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 GitHub

Skills 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 scripts

Automated 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:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
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
    ![CI](https://github.com/zxyasfas/paper_format_agent/actions/workflows/ci.yml/badge.svg)
  • Network accessline 8
    ![Python](https://img.shields.io/badge/python-3.9%2B-3776AB)
  • Network accessline 9
    ![License](https://img.shields.io/badge/license-MIT-lightgrey)
  • 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
    ![CI](https://github.com/zxyasfas/paper_format_agent/actions/workflows/ci.yml/badge.svg)
  • Network accessline 8
    ![Python](https://img.shields.io/badge/python-3.9%2B-3776AB)
  • Network accessline 9
    ![License](https://img.shields.io/badge/license-MIT-lightgrey)
  • 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

  • Executable scriptline 1
    Executable file
  • Network accessline 370
    instr = OxmlElement("w:instrText")     instr.set("{http://www.w3.org/XML/1998/namespace}space", "preserve")
  • Network accessline 371
    instr.set("{http://www.w3.org/XML/1998/namespace}space", "preserve")

paper_format_agent/quality.py

  • Executable scriptline 1
    Executable file

paper_format_agent/release_audit.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 43
    [Credential-related source omitted]

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

  • Executable scriptline 1
    Executable file
  • Access to secretsline 18
    [Credential-related source omitted]

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
Signal confidence: 73 facts

and 23 more

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeCompatibleStandard SKILL.md SKILL.md.claude/skills/<skill-name>/
CodexNativeManifest AGENTS.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard 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.