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
Star trend · last 9 days+1 ★
Oct 29, 2026: 147 starsOct 30, 2026: 148 starsOct 31, 2026: 148 starsNov 1, 2026: 148 starsNov 2, 2026: 148 starsNov 3, 2026: 148 starsNov 4, 2026: 148 starsNov 5, 2026: 148 starsNov 6, 2026: 148 starsNov 7, 2026: 148 stars

Get started

Install the skills

npx skills add zhaohui-yang/official-document-drafting

Installs into Claude Code, Codex, Cursor, OpenCode and the other agents it finds on your machine.

Inside this repo

9 skills

official-document-drafting起草、改写、润色、扩写、压缩、规范并导出中文公文与行政正式文本。Use when the user asks to write, revise, summarize, standardize, or convert 公文、决议、决定、命令、公告、公报、通告、意见、通知、通报、报告、请示、批复、议案、函、纪要,以及总结、简报、新闻简报、信息专报、舆情专报、汇报材料、讲话稿、工作方案、实施方案、回复函等正式机关或单位文稿,尤其适用于需要固定文种结构、正式机关语气、统一口径、规范标题、层级编号、落款日期、模板套用、Word docx 导出,或将当前新闻材料整理为正式公文和正式汇报材料的场景。/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-build

Documentation

README

View on GitHub ↗

公文写作 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/ 目录都只服务离线场景。

进一步查看:

如果你的环境是 WebUI、AnythingLLM、Qwen 本地前端或其他单机模型前端,通常不需要先安装为 skill;保留仓库目录即可,直接使用离线提示词构建器:

python3 src/adapters/offline/build.py

如果你想先看看离线模式下正式使用的 system_prompt 大致长什么样、包含哪些规则,可以直接参考:

需要直接用某个文种时,打开该文种目录下的 prompt.md 粘贴即可。例如:

如果模型容易跑偏,可先用 python3 src/adapters/offline/build.py --task outline --doc-type <文种> 生成提纲,确认结构后再扩写全文。

直接运行 python3 src/adapters/offline/build.py 时,默认会重建:

只有在你想“只生成某一部分”或“按当前任务即时拼装提示词”时,才需要再传特殊参数。

更准确地说:

  • Codex / agents / 兼容 skill 宿主:按上面的方式安装到 ~/.codex/skills/
  • Claude Code:按上面的方式安装到 ~/.claude/skills/ 或项目内 ./.claude/skills/
  • WebUI / AnythingLLM / 本地问答前端:一般不走 skill 安装,直接使用 src/adapters/offline/build.py 生成提示词

如果你想按仓库内置样例完整走一遍“长原始素材 -> 提炼材料 -> 生成提示词 -> 本地宿主 -> Word 导出”的流程,可以直接看:

二、使用

下面按 快速上手 的三种模式展开。先确认你属于哪种,只看对应小节即可;最后两节(最小示例、输出约定)三种模式通用。

(一)模式一 · 能装 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/(见 (五)默认输出约定)。

对应的在线示例目录:

(二)模式二 · 网页版 AI 助手(联网:DeepSeek 网页版 / Claude.ai 等)

不用安装。核心就一步:复制对应文种的现成提示词,粘进对话框,再让它联网搜资料。

  1. 打开目标文种的 prompt.md 全选复制。常用入口:
  2. 粘进 DeepSeek 网页版 / Claude.ai 等对话框,补一句你的具体任务,例如:「请联网搜索『XX』的最新情况,据此起草,未核实处保留占位符。」
  3. 如果前端有单独的「系统提示词」输入框,就把文件里的 # System Prompt 和 # User Prompt 分开放;只有一个输入框时整份一起粘贴。
  4. 拿到 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 分开,否则整份一起粘。

建议标准路径:

  1. 优先用对应文种现成的 prompt.md;
  2. 素材很长时,先提炼成 materials.md;
  3. 模型仍易跑偏时,先用 --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」):

  1. (可选,仅供人工提炼参考)翻一下 样例/offline/raw-materials/…原始素材汇编,了解素材出处;
  2. 进入目标文种目录,看它自己的 task.md、materials.md(已从原始素材提炼好),如 样例/offline/report-报告/;
  3. 只喂该文种目录内的素材生成提示词(生成阶段不读 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
  1. 把 …-提示词.md 粘进本地前端;
  2. 拿到成稿后导出 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/。

(四)不同文体的最小示例

进一步查看:

报告:

根据以下材料整理一份情况报告,重点写清基本情况、主要问题和下一步打算。

通知:

起草一份关于开展节前安全检查的通知,写明总体要求、重点任务和有关要求。

请示:

根据项目推进情况,起草一份关于申请专项经费支持的请示,写明背景、依据和请示事项。

纪要:

根据会议材料整理一份专题会议纪要,写清会议认为、会议决定、责任分工和后续要求。

(五)默认输出约定

输出路径的唯一权威主源是 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/ 为单一主源,统一生成:

其中,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、正文行内图片、复杂图文混排

进一步查看:

五、Word 导出与版式

(一)导出入口

最小导出:

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、用户模板或系统样式
  • 标准公文常见版记要素通常是 抄送机关、印发机关、印发日期
  • 主送移入版记、分送、报/送/发 属地方或系统样式
  • 审核 属本项目内部模板字段

进一步查看:

六、图片、附件与附录

(一)当前支持的图片方式

当前版本已经支持在 Markdown 中用独立图片块把本地图片真实嵌入 .docx:

![图1 现场照片](./样例/sample.png)

支持范围:

本地文件、png / jpg / jpeg、独立图片块、路径相对当前 Markdown 文件解析。

当前限制:

不支持远程 URL、不支持正文行内图片、不支持 webp、不支持复杂环绕排版。

(二)推荐放置位置

普通公文和内部材料中,图片默认更适合放在:

附件、附图、附表。

只有技术指南、操作手册、标准性说明、规范附表等更偏技术资料的文本,才默认允许使用:

附录A、附录B。

(三)图片说明建议

图片不要裸放,至少应包含:

图片编号、图片标题、说明文字。

按需要再补:

注、来源、截至时间、仅供示意,以正式图件为准。

示例:

## 附件1(可选)

图1:现场宣传海报

![图1 现场宣传海报](./样例/poster.png)

说明:活动现场设置的主题宣传海报。
来源:项目组现场拍摄。
截至时间:2026年4月。

进一步查看:

七、结构校验

校验入口:

最小校验:

python3 src/renderers/validate.py notice ~/official-document-drafting-output/drafts/20260404-专项检查通知-v01.md

当前校验器会检查:

  • 必备章节是否缺失
  • 标题层级是否混乱
  • 一级 / 二级 / 三级标题写法是否明显异常
  • 是否存在常见结构漏项

进一步查看:

八、规则体系

(一)共享规则

共享规则位于 prompts/core/,主要负责:

  • 文种判断流程
  • 防编造与防幻觉约束
  • 通用语言风格
  • 标题与层级编号
  • 通用版式与导出边界
  • 附件、附注、版记、图片等共性要求

关键文件:

  • workflow.md:文种判断、结构补齐和处理流程总规则。
  • drafting-thinking.md:撰写思路与语域——起笔四式、谋篇与行文方向的对应、省部级(中央·部委)语域、易混文种辨析、结尾用语强绑定。
  • style.md:通用语言风格和表达约束。
  • layout.md:通用版式、导出和排版边界。
  • doc-type-guardrails.md:防编造与事实核验总约束。

联系人与附注规则:

  • 当前项目默认将 请示、报告、通知、函、回复函、公告、通告 设为保留附注联系人信息的文种。
  • 默认格式为:(联系人:[联系人] 联系电话:[固定电话],[手机号])
  • 这是本项目的默认起草口径,不等于所有公开样例都统一默认带联系人。
  • 如用户明确要求删除,可在生成后手动删减。
  • 是否最终保留,仍以具体文种规则、用户模板和单位制度为准。

进一步查看:

(二)单文种规则

每个文种目录都包含:

  • meta.toml:绑定 font_profile 与 layout_profile
  • spec.md:写作规则、版式要求、模板;可选 ## 撰写思路 段,在该文种自己的文件里统一配置起笔、谋篇、语域与误区指引(留空则不输出,改完跑 build_all.py 即生效)
  • examples.md:按需提供示例

例如:

(三)要素分层

当前版本不再把所有“可能出现的元素”都视为默认项,而是按文种分层解释:

  • 必备:相对稳定、默认保留
  • 常见:公开样例中高频出现,默认优先保留
  • 条件项:只在特定场景出现,例如会议通知里的联系人、技术资料里的附录
  • 地方或系统样式:属于地方、系统或单位模板习惯,不上升为全国通行必备项
  • 项目自定义:本项目为了目标模板定制的口径,不冒充通用规范

例如 纪要 中的 主送 / 抄送 / 审核,当前被明确标注为项目自定义内部模板字段,而不是所有纪要的通用国标版记。

九、构建与目录说明

(一)单一主源维护顺序

推荐维护顺序:

  1. 共享总规则:修改 prompts/core
  2. 共享防编造约束:修改 prompts/core/doc-type-guardrails.md
  3. 字体族和文件映射:修改 assets/fonts/catalog.toml
  4. 复用型字体方案:修改 prompts/font-profiles
  5. 复用型版式方案:修改 prompts/layout-profiles
  6. 单个文种规则:修改 prompts/doc-types 下对应目录
  7. profile 元数据和系统前言:修改 prompts/profiles/
  8. 补充说明:按需修改 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 时强制运行,任一漂移或测试失败即红。

进一步查看:

(三)目录结构(tree 视图)

第一层级精简为 8 个目录(prompts/ src/ assets/ dist/ 样例/ docs/ skills/ tests/)加少量根文件:

…