Skill · #373 trending skills repo
Official Document Drafting
zhaohui-yang/official-document-drafting
A Codex skill for drafting, standardizing, and exporting Chinese official documents and formal reports to Markdown and Word (.docx).
- Stars
- 148
- This week
- +0
- Forks
- 19
- Open issues
- 1
- Skills inside
- 9
Get started
Install the skills
npx skills add zhaohui-yang/official-document-draftingInstalls into Claude Code, Codex, Cursor, OpenCode and the other agents it finds on your machine.
git clone --depth 1 https://github.com/zhaohui-yang/official-document-drafting.git /tmp/official-document-drafting
cp -r /tmp/official-document-drafting ~/.claude/skills/official-document-draftingClaude Code reads ~/.claude/skills/ (or .claude/skills/ in a project). Other agents read the same SKILL.md format from their own skills folder.
Inside this repo
9 skills
/official-document-drafting起草、改写、润色、扩写、压缩、规范并导出中文公文与行政正式文本。Use when the user asks to write, revise, summarize, standardize, or convert 公文、决议、决定、命令、公告、公报、通告、意见、通知、通报、报告、请示、批复、议案、函、纪要,以及总结、简报、新闻简报、信息专报、舆情专报、汇报材料、讲话稿、工作方案、实施方案、回复函等正式机关或单位文稿,尤其适用于需要固定文种结构、正式机关语气、统一口径、规范标题、层级编号、落款日期、模板套用、Word docx 导出,或将当前新闻材料整理为正式公文和正式汇报材料的场景。dist/skilldoc-type-routing在起草前判定「该用哪个文种、什么行文方向」。Use when 不确定该写通知/报告/请示/函/通报/意见/决定…,或需要判断上行/下行/平行/公开、要不要对方回复。按「行文方向+目的+是否需回应」三维收敛到正确文种,再交给「公文写作」起草。是流程第一步的判定脚手架,不生成正文。skills/doc-type-routingdocument-qa对已成稿的中文公文做结构与质量校验。Use when the user wants to check/review/lint a 公文 draft——校验章节是否齐全、标题层级是否跳级或混编、篇幅与标题深度是否匹配、一是/二是 是否被误用为正式标题、文种是否用对、结尾用语是否匹配、有无未经提供的事实。是「检查」而非「起草」。skills/document-qadocx-export把中文公文 Markdown 成稿导出为符合机关版式的 .docx。Use when the user wants to export/convert a 公文 Markdown draft to Word/.docx, adjust 字体、字号、页边距、行距、页码、标题断行, embed local images as 附件/附图, or inspect the resolved 字体与版式方案. 不负责起草内容,只负责渲染版式。skills/docx-exportministry-news-daily浏览中央国家部委官网的最新动态,汇总成一份每日《报告》,用于快速了解国家大事与各部委政策要求。Use when the user wants 部委/政府每日动态、政务新闻日报、了解国家大事、各部委最新政策与要求的汇总报告。采集→核实→按「报告」文种成稿,可导出 Word。文体固定为报告。skills/ministry-news-dailyoffline-prompt-packager把基于 prompts/ 主源的 skill 打包成断网单机可用的离线提示词包。Use when the user wants to export/package offline prompts for disconnected hosts (WebUI、Qwen、AnythingLLM、Claude.ai), generate self-contained system_prompt / user_prompt bundles, or build a per-文种 prompt.skills/offline-prompt-packagerpolicy-keyword-tracker围绕一个关键词/主题(如「创新药」「低空经济」「数据要素」)检索各中央国家部委的相关政策、措施与动态,汇总成一份《情况专报》。Use when 用户想跟踪某一主题在各部委的政策口径、做专题政策梳理与研判。采集→核实→按「情况专报」文种成稿,可导出 Word。文体固定为情况专报。skills/policy-keyword-trackerskill-build从 prompts/ 单一主源生成并校验本项目的 skill 产物。Use when working on 构建/重新生成 SKILL.md、agent 接口、dist 副本、assets/templates/ 模板或离线提示词,校验产物是否与 prompts/ 主源同步(--check / 防漂移),或维护 prompts/ → 产物 的单一信息源构建范式。skills/skill-buildDocumentation
README
公文写作 Skill
一句话:把你的素材和要求交给 AI,让它按国家《党政机关公文格式》(GB/T 9704-2012)的规范,帮你起草报告、通知、请示、纪要等 22 种公文与正式材料,并可导出 Word。
零、快速上手:先对号入座
不确定从哪开始?先看你手上是什么工具,对号入座走一条路就行。三条路最终遵循的是同一套公文规范,区别只在「怎么把规则喂给 AI」。
先看你手上是什么工具,对号入座走对应一条路。三条路遵循同一套公文规范,区别只在「怎么把规则喂给 AI」。完整操作步骤见 二、使用。
| 你的工具 | 怎么用(一句话) | 详细步骤 |
|---|---|---|
| 能装 skill(Codex / Claude Code) | 装一次,之后对话里触发 /official-document-drafting 直接说要写什么,无需复制提示词 |
一、安装 → 二 ·(一) |
| 网页版 AI(DeepSeek 网页版 / 文心 / Kimi,能联网) | 不用安装,复制对应文种现成 prompt.md 粘进对话框,让它联网搜资料 |
二 ·(二) |
| 内网离线(本地 WebUI / Qwen / AnythingLLM) | 同一批 prompt.md,但素材要你自己准备好一起喂;有 Python 还能用 build.py 按素材现拼 |
二 ·(三) |
现成提示词直达:报告 / 通知 / 请示 / 纪要(全部文种);想先看完整效果就翻 样例/。成稿要 Word 时见 五、Word 导出与版式。
这个仓库里,哪些文件夹是给你用的?
| 文件夹 / 文件 | 是什么 | 你要不要管 |
|---|---|---|
dist/offline/default/doc-types/<文种>/prompt.md |
现成提示词,复制即用 | ✅ 模式二/三 从这里复制 |
样例/ |
完整样例走一遍(任务 → 素材 → 提示词 → 成稿 → Word);分 online/ 联网(模式一、二)和 offline/ 离线(模式三) |
✅ 想看效果就翻这里 |
assets/templates/ |
各文种空白模板(骨架) | ✅ 可选参考 |
SKILL.md、dist/skill/ |
给「能装 skill 的工具」用的入口 | ✅ 模式一 |
docs/ |
详细规则说明(版式、文种辨析等) | 📖 想深入再看 |
skills/ |
各项能力的路由说明(进阶) | 📖 进阶 |
prompts/ |
规则主源(维护者在这里改规则) | ⚙️ 内部,日常不用动 |
src/ |
构建与 Word 导出的代码 | ⚙️ 内部(只在导出 Word 时会用到) |
dist/ |
由主源自动生成的产物(prompt.md 就在它下面) |
⚙️ 自动生成,别手改 |
tests/ |
自动化测试 | ⚙️ 内部,不用管 |
名字怎么区分:
样例/= 完整跑通的成品(任务 → 素材 → 提示词 → 成稿 → Word,给你看效果);范文 =prompts/.../examples.md里喂给 AI 的片段;skills/= 各项能力的路由说明。三者不是一回事,别混。
一、安装
(一)在线工具中的 Skill 安装
适用于 Codex、agents 或其他兼容 ~/.codex/skills/ 目录的宿主环境。
从 GitHub 安装:
CODEX_HOME="${CODEX_HOME:-$HOME/.codex}"
python3 "$CODEX_HOME/skills/.system/skill-installer/scripts/install-skill-from-github.py" \
--repo zhaohui-yang/official-document-drafting \
--path . \
--name official-document-drafting
如果你的宿主把 Codex 安装在其他目录,优先改 CODEX_HOME,不要把路径写死成某一台机器上的绝对路径。
从本地复制安装:
mkdir -p ~/.codex/skills
cp -R ./official-document-drafting ~/.codex/skills/
安装后,目标目录通常是:
- Linux / macOS / UOS / 麒麟等类 Unix 系统:
~/.codex/skills/official-document-drafting - Windows:
%USERPROFILE%\\.codex\\skills\\official-document-drafting
(二)Claude Code 安装
如果你的宿主是 Claude Code,更接近的安装目录通常是 Claude 自己的 skills 目录,而不是 ~/.codex/skills/。
个人级安装:
mkdir -p ~/.claude/skills
cp -R ./official-document-drafting ~/.claude/skills/
项目级安装:
mkdir -p ./.claude/skills
cp -R ./official-document-drafting ./.claude/skills/
安装完成后,目标目录通常是:
- Linux / macOS / UOS / 麒麟等类 Unix 系统:
~/.claude/skills/official-document-drafting - Windows:
%USERPROFILE%\\.claude\\skills\\official-document-drafting
也可以只安装自包含的精简包:
dist/skill/(SKILL.md+references/+agents/openai.yaml,references 模式、不含src/、tests/、样例/)。把这一个文件夹复制成~/.codex/skills/official-document-drafting或~/.claude/skills/official-document-drafting即可——SKILL.md 是短入口,详细规则按需读取references/下「共享规则」和「各文种」文件。导出 Word 仍需仓库内的src/scripts/generate_docx.py。
(三)不同操作系统说明
Linux、UOS、麒麟等类 Linux 系统可直接使用上面的 bash 命令。
Windows 如使用 PowerShell,可按同样目录结构复制:
New-Item -ItemType Directory -Force "$env:USERPROFILE\.codex\skills" | Out-Null
Copy-Item -Recurse -Force .\official-document-drafting "$env:USERPROFILE\.codex\skills\official-document-drafting"
如在 Windows 上通过 WSL 运行 Codex 或 Python,优先沿用 Linux 方式安装和执行脚本。
Windows 如需通过 skill-installer 从 GitHub 安装,可使用:
$codexHome = if ($env:CODEX_HOME) { $env:CODEX_HOME } else { Join-Path $env:USERPROFILE ".codex" }
python "$codexHome\skills\.system\skill-installer\scripts\install-skill-from-github.py" `
--repo zhaohui-yang/official-document-drafting `
--path . `
--name official-document-drafting
(四)单机离线模式
这一节只对应 src/adapters/offline/ 这一类离线提示词适配器,不代表整个 src/adapters/ 目录都只服务离线场景。
进一步查看:
- src/adapters/offline/README.md:离线适配器的单独使用说明。
- src/adapters/offline/build.py:离线提示词构建入口脚本。
- dist/offline/default/system_prompt.md:默认 profile 生成的正式离线全量
system_prompt产物。 - dist/offline/default/doc-types/:每个文种单独可用的离线 prompt 产物目录。
如果你的环境是 WebUI、AnythingLLM、Qwen 本地前端或其他单机模型前端,通常不需要先安装为 skill;保留仓库目录即可,直接使用离线提示词构建器:
python3 src/adapters/offline/build.py
如果你想先看看离线模式下正式使用的 system_prompt 大致长什么样、包含哪些规则,可以直接参考:
- 全量规则产物:dist/offline/default/system_prompt.md
- 单文种 prompt 目录:dist/offline/default/doc-types/
需要直接用某个文种时,打开该文种目录下的 prompt.md 粘贴即可。例如:
如果模型容易跑偏,可先用 python3 src/adapters/offline/build.py --task outline --doc-type <文种> 生成提纲,确认结构后再扩写全文。
直接运行 python3 src/adapters/offline/build.py 时,默认会重建:
- dist/offline/default/system_prompt.md:全量离线
system_prompt - dist/offline/default/doc-types/:各文种单独可用的离线 prompt
只有在你想“只生成某一部分”或“按当前任务即时拼装提示词”时,才需要再传特殊参数。
更准确地说:
Codex / agents / 兼容 skill 宿主:按上面的方式安装到~/.codex/skills/Claude Code:按上面的方式安装到~/.claude/skills/或项目内./.claude/skills/WebUI / AnythingLLM / 本地问答前端:一般不走 skill 安装,直接使用src/adapters/offline/build.py生成提示词
如果你想按仓库内置样例完整走一遍“长原始素材 -> 提炼材料 -> 生成提示词 -> 本地宿主 -> Word 导出”的流程,可以直接看:
- 样例/offline/raw-materials/:断网场景下已下载到本地的长原始素材汇编。
- 样例/offline/report-报告/:离线报告样例目录。
- 样例/offline/notice-通知/:离线通知样例目录。
- 样例/offline/request-请示/:离线请示样例目录。
- 样例/offline/minutes-纪要/:离线纪要样例目录。
- 样例/offline/briefing-简报/:离线简报样例目录。
- 样例/offline/special-report-情况专报/:离线情况专报样例目录。
- 样例/offline/presentation-汇报材料/:离线汇报材料样例目录。
- 样例/offline/summary-工作总结/:离线工作总结样例目录。
- 样例/offline/work-plan-工作方案/:离线工作方案样例目录。
- 样例/offline/speech-讲话稿/:离线讲话稿样例目录。
- 样例/offline/reply-回复函/:离线回复函样例目录。
二、使用
下面按 快速上手 的三种模式展开。先确认你属于哪种,只看对应小节即可;最后两节(最小示例、输出约定)三种模式通用。
(一)模式一 · 能装 skill 的工具(Codex / Claude Code)
装好后(见 一、安装)直接对话,无需复制提示词。
Codex / agents:显式触发 skill——
$official-document-drafting
请根据材料起草一份情况专报
常见示例:
搜索网络,生成一份关于“我的刀盾”网络传播情况的正式报告,并导出 Word。搜索网络,生成一份关于“我的刀盾”网络动态简报,并导出 Word。根据公开网络材料,起草一份关于开展“我的刀盾”传播素材整理工作的通知。根据公开网络材料和内部安排,起草一份关于申请开展“我的刀盾”传播案例梳理工作的请示。根据会议材料整理一份关于研究“我的刀盾”网络传播情况的专题会议纪要。
Claude Code:已安装到 ~/.claude/skills/ 或项目内 ./.claude/skills/ 后——
/official-document-drafting
请根据材料起草一份正式报告
如果你的 Claude Code 项目依赖 CLAUDE.md,也可把本仓库的规则和模板作为项目说明引入,但这不等同于 skill 安装。
使用建议:
- 这一模式最适合处理新闻、政策动态、公开网页材料整理;
- 涉及“当前”“最新”“今日”等时效词时,应先核验来源和日期;
- 如需保存文件但未指定路径,默认写入
~/official-document-drafting-output/(见 (五)默认输出约定)。
对应的在线示例目录:
- 样例/online/report-报告/:围绕“我的刀盾”网络传播情况的报告样例。
- 样例/online/briefing-简报/:网络动态简报样例。
- 样例/online/notice-通知/:传播素材整理工作的通知样例。
- 样例/online/request-请示/:传播案例梳理工作的请示样例。
- 样例/online/minutes-纪要/:传播情况研究的会议纪要样例。
- 样例/online/ministry-news-daily-部委动态日报/:
ministry-news-dailyskill 样例——汇总部委官网动态成每日《报告》(占位示例)。 - 样例/online/policy-keyword-tracker-创新药政策跟踪/:
policy-keyword-trackerskill 样例——围绕「创新药」跨部委检索政策成《情况专报》(占位示例)。
(二)模式二 · 网页版 AI 助手(联网:DeepSeek 网页版 / Claude.ai 等)
不用安装。核心就一步:复制对应文种的现成提示词,粘进对话框,再让它联网搜资料。
- 打开目标文种的
prompt.md全选复制。常用入口: - 粘进 DeepSeek 网页版 / Claude.ai 等对话框,补一句你的具体任务,例如:「请联网搜索『XX』的最新情况,据此起草,未核实处保留占位符。」
- 如果前端有单独的「系统提示词」输入框,就把文件里的
# System Prompt和# User Prompt分开放;只有一个输入框时整份一起粘贴。 - 拿到 Markdown 成稿后,如需 Word,见 五、Word 导出与版式。
想按自己的素材定制提示词(而不是用现成的),可借用模式三的
build.py(需要本机有 Python)。
(三)模式三 · 内网离线(WebUI / Qwen / AnythingLLM,不能联网)
和模式二用的是同一批 prompt.md,区别是不能联网,素材得你自己准备。本机有 Python 时,还能用 build.py 按你的素材现拼提示词。
列出支持的文种:
python3 src/adapters/offline/build.py --list-doc-types
按你的素材生成可直接粘贴的提示词:
python3 src/adapters/offline/build.py \
--doc-type 通知 \
--instruction "起草一份关于开展2026年春季安全检查工作的通知,语气正式、结构清晰。" \
--material-file ./素材.md \
-o /tmp/20260404-春季安全检查通知-v01-提示词.md
如需附带当前文种范文示例,加 --include-examples:
python3 src/adapters/offline/build.py \
--doc-type 专报 \
--instruction "根据材料整理一份领导看的情况专报,先事实后研判。" \
--material-file ./news.md \
--include-examples \
-o /tmp/20260404-热点舆情情况专报-v01-提示词.md
把生成结果粘进本地前端:前端支持单独 system prompt 就把 # System Prompt/# User Prompt 分开,否则整份一起粘。
建议标准路径:
- 优先用对应文种现成的
prompt.md; - 素材很长时,先提炼成
materials.md; - 模型仍易跑偏时,先用
--task outline出提纲、确认结构再扩写:
python3 src/adapters/offline/build.py \
--task outline \
--doc-type 报告 \
--instruction "先根据材料输出报告提纲,不展开全文。" \
--material-file 样例/offline/report-报告/materials.md \
-o /tmp/20260405-报告提纲-提示词.md
AnythingLLM:把 System Prompt 放进 workspace instructions,把 User Prompt 作为当前输入,素材可直接上传到 workspace 或用 --material-file 拼入。
完整离线样例(照着走一遍「原始素材 → 提炼 → 提示词 → 成稿 → Word」):
- (可选,仅供人工提炼参考)翻一下 样例/offline/raw-materials/…原始素材汇编,了解素材出处;
- 进入目标文种目录,看它自己的
task.md、materials.md(已从原始素材提炼好),如 样例/offline/report-报告/; - 只喂该文种目录内的素材生成提示词(生成阶段不读
raw-materials/共享目录,运行时只需对这一个目录授读权):
python3 src/adapters/offline/build.py \
--doc-type 报告 \
--instruction-file 样例/offline/report-报告/task.md \
--material-file 样例/offline/report-报告/materials.md \
-o 样例/offline/report-报告/20260404-关于“我的刀盾”网络传播情况的报告-v01-提示词.md
- 把
…-提示词.md粘进本地前端; - 拿到成稿后导出 Word:
python3 src/renderers/docx.py \
样例/offline/report-报告/20260404-关于“我的刀盾”网络传播情况的报告-v01.md \
-o 样例/offline/report-报告/20260404-关于“我的刀盾”网络传播情况的报告-v01.docx \
--doc-type 报告
更多离线产物索引见 样例/offline/README.md 与 dist/offline/default/。
(四)不同文体的最小示例
进一步查看:
- docs/references/document-types.md:各文种适用场景与边界说明。
- prompts/doc-types/:全部单文种规则目录。
- assets/templates/:各文种兼容模板和骨架示例。
- 样例/README.md:按在线/离线和文种组织的示例索引。
报告:
根据以下材料整理一份情况报告,重点写清基本情况、主要问题和下一步打算。
通知:
起草一份关于开展节前安全检查的通知,写明总体要求、重点任务和有关要求。
请示:
根据项目推进情况,起草一份关于申请专项经费支持的请示,写明背景、依据和请示事项。
纪要:
根据会议材料整理一份专题会议纪要,写清会议认为、会议决定、责任分工和后续要求。
(五)默认输出约定
输出路径的唯一权威主源是 prompts/core/workflow.md;本节是面向读者的摘要,冲突时以主源为准。
- 输出根目录:默认
~/official-document-drafting-output/;设置环境变量OFFICIAL_DOC_OUTPUT_DIR后以其为根目录(便于导向项目盘或共享盘)。用户已指定路径时以用户为准,默认不写入仓库目录内。 - 子目录(按任务类型):一般公文草稿
drafts/;部委动态日报news-reports/(高频时可按news-reports/YYYYMMDD/分日);关键词政策跟踪policy-tracking/<关键词>/(按主题归档)。 - 同名
Markdown与Word文件默认放在同一目录;最终成稿命名YYYYMMDD-标题-vNN,辅助文件加后缀-提示词/-说明/-materials;同名不覆盖,递增-vNN。
命名示例:
- Markdown:
~/official-document-drafting-output/news-reports/20260404-当前热点新闻报告-v01.md - Word:
~/official-document-drafting-output/news-reports/20260404-当前热点新闻报告-v01.docx - 离线提示词:
~/official-document-drafting-output/drafts/20260404-专项检查通知-v01-提示词.md
三、项目概览
这是一个面向 agents、Codex、Claude Code 以及 WebUI / AnythingLLM / Qwen / Claude.ai 等提示词宿主的中文公文与正式材料仓库。它以 prompts/ 为单一主源,统一生成:
- 在线 skill 入口 SKILL.md
- agents 元数据 dist/skill/agents/openai.yaml
- 默认离线系统提示词 dist/offline/default/system_prompt.md
- 默认单文种离线 prompt 目录 dist/offline/default/doc-types/
- 各文种兼容模板 assets/templates/
- 在线与离线完整样例 样例/
其中,src/adapters/ 不是“离线目录”,而是“面向不同消费端的适配层”:
src/adapters/skill/:把prompts/主源适配成 Codex、agents、Claude Code 等在线 skill / agent 宿主可直接使用的产物src/adapters/offline/:把prompts/主源适配成 WebUI、AnythingLLM、Qwen、Claude.ai 等提示词宿主可直接使用的离线或半离线提示词产物
完整的带注释目录结构见 九 ·(三)目录结构。
(一)文种覆盖范围
法定公文 15 种:决议、决定、命令(令)、公报、公告、通告、意见、通知、通报、报告、请示、批复、议案、函、纪要。
常见正式材料 7 种:工作总结、工作方案 / 实施方案、讲话稿 / 发言稿、汇报材料、回复函、简报 / 信息简报 / 新闻简报、情况专报 / 信息专报 / 舆情专报。
所有文种的适用场景和差异边界见 docs/references/document-types.md。
四、当前能力
可以处理:
- 文种判断与路由:根据事项性质、行文方向、主送对象判断通知、报告、请示、函、纪要等文种
- 共享规则 + 单文种规则:共享规则在 prompts/core/,每个文种在 prompts/doc-types/ 下有独立
spec.md - 要素分层:每类文体的结构元素按
必备 / 常见 / 条件项 / 地方或系统样式 / 项目自定义分层,而不是无脑堆砌 - 占位符补齐:用户未提供主送单位、落款、日期、联系人等信息时,默认保留占位符,不擅自虚构
- Markdown 结构校验:检查必备章节、标题层级、常见漏项
.docx导出:支持按文种自动套用字体方案和版式方案,导出结构化 Word 文件- 真实图片嵌入:当前已支持在 Markdown 中用独立图片块把本地
png / jpg / jpeg嵌入.docx - 附件 / 附图 / 附录图片说明:可为图片补充
图号 / 标题 / 说明 / 注 / 来源 / 截至时间 - 版记下沉:如当前文种设置版记,导出时会尽量把版记整体压到最后一页底部
- 文种与行文方向判定:起草前先用 skills/doc-type-routing/ 按「行文方向+目的+是否需回应」三维收敛到正确文种
- 部委动态日报:用 skills/ministry-news-daily/ 浏览各部委官网最新动态,汇总成一份每日《报告》,了解国家大事(文体为报告,样例见 样例/online/ministry-news-daily-部委动态日报/)
- 关键词政策跟踪:用 skills/policy-keyword-tracker/ 围绕一个关键词(如「创新药」)跨部委检索政策,汇总成一份《情况专报》(文体为情况专报,样例见 样例/online/policy-keyword-tracker-创新药政策跟踪/)
当前不保证:
- 未经核验的“最新新闻”真实性和完整性
- 最终对外正式红头件版式完全符合某一单位内部模板
- 未提供依据情况下的真实政策条款、文件号、会议结论和统计数据
- 远程图片 URL、正文行内图片、复杂图文混排
进一步查看:
- prompts/core/:共享规则主源目录。
- prompts/doc-types/:单文种规则主源目录。
- dist/offline/default/doc-types/:默认 profile 下各文种独立离线 prompt。
- src/renderers/docx.py:Word 导出语义化入口。
- src/renderers/validate.py:结构校验语义化入口。
五、Word 导出与版式
(一)导出入口
- 语义化入口:src/renderers/docx.py
- 核心实现:src/scripts/generate_docx.py
- 薄路由 skill:skills/docx-export/(导出、字体/页边距/页码调整与已知坑)
最小导出:
python3 src/renderers/docx.py \
~/official-document-drafting-output/drafts/20260404-专项检查通知-v01.md \
-o ~/official-document-drafting-output/drafts/20260404-专项检查通知-v01.docx
按文种自动套用字体和版式:
python3 src/renderers/docx.py \
~/official-document-drafting-output/drafts/20260404-专项检查通知-v01.md \
-o ~/official-document-drafting-output/drafts/20260404-专项检查通知-v01.docx \
--doc-type 通知
查看当前解析后的字体与版式方案:
python3 src/scripts/generate_docx.py --doc-type 通知 --show-font-plan
python3 src/scripts/generate_docx.py --doc-type 通知 --show-layout-plan
列出当前可用方案:
python3 src/scripts/generate_docx.py --list-font-profiles
python3 src/scripts/generate_docx.py --list-layout-profiles
(二)当前排版行为
当前 .docx 导出已支持:
- A4 页面
- 页边距默认按 GB/T 9704-2012:上 37mm、下 35mm、左 28mm、右 26mm(版心 156mm×225mm,执行常数
MARGIN_*_TWIPS位于src/docgen/constants.py,经src/scripts/generate_docx.py再导出) - 按文种套用字体与版式方案
- 标题、一级标题、二级标题、正文分字体字号
- 正文首行缩进 2 字符
- 标题自动均衡断行
- 页脚页码默认自第二页起显示,首页不显示页脚,且页脚本身不写入显式底纹或高亮
- 主送单位后不额外加段后距、落款前距、成文日期右空 4 字
- 正文与落款之间默认空 3 行
- 附注默认位于成文日期下一行左空 2 字
- 如存在版记,版记整体压到最后一页底部,空间不足时整块移页
当前基线版式和边界说明见 docs/references/layout-rules.md。
如需关闭页码,可在导出时增加:
python3 src/renderers/docx.py \
~/official-document-drafting-output/drafts/20260404-专项检查通知-v01.md \
-o ~/official-document-drafting-output/drafts/20260404-专项检查通知-v01.docx \
--hide-page-number
(三)版头、发文字号、版记
导出器支持以下结构块:
## 版头(可选)## 发文字号(可选)## 版记(可选)
示例:
## 版头(可选)
XX市教育局文件
## 发文字号(可选)
X教发〔2026〕3号 签发人:张三
## 标题
关于开展2026年春季校园安全联合检查工作的通知
注意:
- 版记不是所有文种的默认结构
- 是否保留版记,取决于文种
spec.md、用户模板或系统样式 - 标准公文常见版记要素通常是
抄送机关、印发机关、印发日期 主送移入版记、分送、报/送/发属地方或系统样式审核属本项目内部模板字段
进一步查看:
- docs/references/layout-rules.md:当前基线版式与边界说明。
- prompts/layout-profiles/:各版式方案配置目录。
- prompts/font-profiles/:各字体方案配置目录。
- src/scripts/generate_docx.py:Word 导出底层实现。
六、图片、附件与附录
(一)当前支持的图片方式
当前版本已经支持在 Markdown 中用独立图片块把本地图片真实嵌入 .docx:

支持范围:
本地文件、png / jpg / jpeg、独立图片块、路径相对当前 Markdown 文件解析。
当前限制:
不支持远程 URL、不支持正文行内图片、不支持 webp、不支持复杂环绕排版。
(二)推荐放置位置
普通公文和内部材料中,图片默认更适合放在:
附件、附图、附表。
只有技术指南、操作手册、标准性说明、规范附表等更偏技术资料的文本,才默认允许使用:
附录A、附录B。
(三)图片说明建议
图片不要裸放,至少应包含:
图片编号、图片标题、说明文字。
按需要再补:
注、来源、截至时间、仅供示意,以正式图件为准。
示例:
## 附件1(可选)
图1:现场宣传海报

说明:活动现场设置的主题宣传海报。
来源:项目组现场拍摄。
截至时间:2026年4月。
进一步查看:
- prompts/core/style.md:图片说明和文字风格相关规则。
- prompts/core/workflow.md:附件、附图、附录等处理流程规则。
- 样例/README.md:带图片或附件结构的示例文稿索引。
七、结构校验
校验入口:
最小校验:
python3 src/renderers/validate.py notice ~/official-document-drafting-output/drafts/20260404-专项检查通知-v01.md
当前校验器会检查:
- 必备章节是否缺失
- 标题层级是否混乱
- 一级 / 二级 / 三级标题写法是否明显异常
- 是否存在常见结构漏项
进一步查看:
- src/renderers/validate.py:结构校验入口脚本。
- src/scripts/check_sections.py:章节校验底层实现。
- skills/document-qa/:把结构校验与质量清单封装成的「公文质检」薄路由 skill。
八、规则体系
(一)共享规则
共享规则位于 prompts/core/,主要负责:
- 文种判断流程
- 防编造与防幻觉约束
- 通用语言风格
- 标题与层级编号
- 通用版式与导出边界
- 附件、附注、版记、图片等共性要求
关键文件:
- workflow.md:文种判断、结构补齐和处理流程总规则。
- drafting-thinking.md:撰写思路与语域——起笔四式、谋篇与行文方向的对应、省部级(中央·部委)语域、易混文种辨析、结尾用语强绑定。
- style.md:通用语言风格和表达约束。
- layout.md:通用版式、导出和排版边界。
- doc-type-guardrails.md:防编造与事实核验总约束。
联系人与附注规则:
- 当前项目默认将
请示、报告、通知、函、回复函、公告、通告设为保留附注联系人信息的文种。 - 默认格式为:
(联系人:[联系人] 联系电话:[固定电话],[手机号]) - 这是本项目的默认起草口径,不等于所有公开样例都统一默认带联系人。
- 如用户明确要求删除,可在生成后手动删减。
- 是否最终保留,仍以具体文种规则、用户模板和单位制度为准。
进一步查看:
- prompts/core/workflow.md:联系人、附注和结构保留的共享流程规则。
- prompts/core/layout.md:附注位置与版式的共享规则。
- prompts/doc-types/request-请示/spec.md:请示文种中的附注与联系人规则。
- prompts/doc-types/notice-通知/spec.md:通知文种中的联系人和附注规则。
(二)单文种规则
每个文种目录都包含:
meta.toml:绑定font_profile与layout_profilespec.md:写作规则、版式要求、模板;可选## 撰写思路段,在该文种自己的文件里统一配置起笔、谋篇、语域与误区指引(留空则不输出,改完跑build_all.py即生效)examples.md:按需提供示例
例如:
- prompts/doc-types/notice-通知/:通知文种规则目录。
- prompts/doc-types/report-报告/:报告文种规则目录。
- prompts/doc-types/request-请示/:请示文种规则目录。
- prompts/doc-types/minutes-纪要/:纪要文种规则目录。
(三)要素分层
当前版本不再把所有“可能出现的元素”都视为默认项,而是按文种分层解释:
必备:相对稳定、默认保留常见:公开样例中高频出现,默认优先保留条件项:只在特定场景出现,例如会议通知里的联系人、技术资料里的附录地方或系统样式:属于地方、系统或单位模板习惯,不上升为全国通行必备项项目自定义:本项目为了目标模板定制的口径,不冒充通用规范
例如 纪要 中的 主送 / 抄送 / 审核,当前被明确标注为项目自定义内部模板字段,而不是所有纪要的通用国标版记。
九、构建与目录说明
(一)单一主源维护顺序
推荐维护顺序:
- 共享总规则:修改 prompts/core
- 共享防编造约束:修改 prompts/core/doc-type-guardrails.md
- 字体族和文件映射:修改 assets/fonts/catalog.toml
- 复用型字体方案:修改 prompts/font-profiles
- 复用型版式方案:修改 prompts/layout-profiles
- 单个文种规则:修改 prompts/doc-types 下对应目录
- profile 元数据和系统前言:修改 prompts/profiles/
- 补充说明:按需修改 docs/references/(面向读者的同步参考文档,非主源;内容应回链上述主源,不在此处新增规则,一致性由
tests/test_reference_consistency.py守护)
(二)构建命令
一键构建:
python3 src/scripts/build_all.py
只构建在线 skill:
python3 src/adapters/skill/build.py
重建离线产物:
python3 src/adapters/offline/build.py
校验产物是否与 prompts/ 主源同步(改了主源忘了重新构建时会失败,覆盖 SKILL.md、agent 接口、dist 副本和 assets/templates/ 共 54 个文件):
python3 src/adapters/skill/build.py --check
python3 -m pytest -q # 含 test_build_sync 同步守卫、references 一致性守卫、skills 路由防腐
上述 --check 与测试已接入 CI(.github/workflows/ci.yml),push 和 PR 时强制运行,任一漂移或测试失败即红。
进一步查看:
- src/scripts/build_all.py:一键构建全部正式产物。
- src/adapters/skill/build.py:在线 skill 产物构建入口,
--check校验同步。 - src/adapters/offline/build.py:离线提示词产物构建入口。
- dist/:构建完成后的正式产物目录。
(三)目录结构(tree 视图)
第一层级精简为 8 个目录(prompts/ src/ assets/ dist/ 样例/ docs/ skills/ tests/)加少量根文件:
…