---
name: duyunzhoudyz-gongwen-data
description: "为公文整理数据、出图表，包括报表体检（空值、合并单元格、合计校验、单位和时段口径冲突），汇总下级报表，计算同比、环比、增速、百分点、占比、拉动、完成率、平均值并附算式，把数据写成能直接进公文的句子，在本机生成黑白灰 Excel 图表，数据不出本机，缺的数标【待补】。用户说合并科室月报、汇总下面报的表、查查合计对不对、算同比环比、百分点怎么写、这组数写成一段话、做个柱状图折线图时使用。整篇总结和分析报告交 gongwen-report，装有行业包时，本行业专用文书交对应行业包；成稿核数字交 gongwen-review，整改台账转 Excel 交 gongwen-rectify。"
license: "NOASSERTION"
metadata:
  decimalai-skill-id: "0fa43215-2fbd-4abe-ad98-74235b39f84b"
  decimalai-version-id: "d7211bd1-ff02-4eda-866d-ed8ec53c8769"
  decimalai-version: "1"
  decimalai-body-sha256: "d5b7c11f39a81285020212d6f33c1de8c3831eb861fd7a19df0627a2a92f265a"
  decimalai-name: "duyunzhoudyz/gongwen-data"
  decimalai-format: "1"
  decimalai-invocation: "model"
  decimalai-category: "data"
  decimalai-source: "https://app.decimal.ai/s/duyunzhoudyz-gongwen-data@1/SKILL.md"
---
# 数据整理与图表（gongwen-data）

本 skill 为写材料理数据、出图。每个结果附算式，正文每个数都能在计算底稿里找到原样写法；缺的数标【待补】，口径对不上的不悄悄合并。

## 适用范围

- 适用：
  1. 报表体检：空值占位符、文本型数字、合并单元格、合计小计校验、单位时段口径不一致、重复行、个人信息。
  2. 多表合并：汇总科室、下级单位、子公司报来的同类报表。
  3. 指标计算：增减量、同比、环比、增速、百分点、占比、拉动、贡献率、完成率和时间进度、倍数、年均增速、平均值。
  4. 数据转文字：写成能直接放进总结、汇报、分析报告的句段。
  5. 公文图表：柱状、条形、折线、饼图、堆积图，黑白灰。
- 不适用（转交）：

| 用户要的 | 转给 |
|---|---|
| 写整篇总结、汇报材料、调研报告；汇总文字材料 | gongwen-report |
| 行业专用文书全文，如医疗质量分析报告、经营分析报告 | 装有行业包时交对应行业包（gongwen-hospital、gongwen-soe 等）；未安装的交 gongwen-report |
| 政务信息、简报全文 | gongwen-brief |
| 已成稿件里的数字、百分点、前后一致核查 | gongwen-review |
| 整改台账、任务分解表、督办清单转 Excel | gongwen-rectify、gongwen-implement、gongwen-minutes |
| 把表格和图排进国标 Word | gongwen-format |

用户要整篇稿子的，先交数据段落、计算底稿和图表，再转交。统计表要写进调研报告等整篇材料的，除逐行数据外，给出汇总数、平均值等派生数，分母口径写清（如“有数据的6个村平均2.4万元”）。能调用其他 skill 的环境直接调用；未安装或在网页环境的，按 `references/_shared/style/output-format.md` 第四部分转交：给交接卡、“新开对话粘贴 `dist/prompts/<skill 名>.md` 继续”的说明和安装命令。其余回复不写 skill 名，用描述性说法。

## 开工检查

1. 保密（`references/_shared/guardrails.md` 第一条）：
   - 有 Python 时，先运行 `python scripts/secret_check.py <文件>` 查保密标识（含页眉页脚），命中即停。
   - 表格有敏感信号时才在起草说明末提示一句，同一会话只说一次。
   - 文件、工作表、表头前、表注或单元格带密级标识或“内部资料”“工作秘密”“不得外传”等内部标注的，立即停止，不读数、不复述，告知涉密信息不得输入联网 AI 工具，列出可继续的三种情形，等用户说明。表中只是出现“保密工作经费”之类项目名称的照常处理。
   - 明细中有姓名、身份证号、手机号、病案号、住院号、学号、银行卡号、家庭住址的，提醒脱敏；只用汇总数，输出写“张某”“138****0000”（脚本输出已脱敏），“保密提示”写明。未公开的经营数据、统计数据、考核排名，提醒不进对外材料。
2. 数据不出本机：只用 `scripts/` 下脚本和本机 Excel、WPS，不用在线图表网站、在线表格转换工具和远程渲染的图表插件。
3. 单位画像：先读 `.gongwen/单位画像.md`，没有再找 `~/.gongwen/单位画像.md`，用户粘贴的按粘贴内容；再读 `references/units.md` 对应小节。角色模式按 `references/_shared/profiles/roles.md` 第一节确定，差异见“角色适配”；无画像时按该文件第九节降级，单位类型能从表格判断的不问。
4. 交接卡：用户贴了交接卡的（网页和 Agent 环境一样），按卡上的画像、模式、任务、本站和已确认事项开工，已有的不再问（`references/_shared/style/output-format.md` 第四部分）。
5. 定任务：完整链条是“体检→合并→计算→转文字→出图”，用户只要一段的只做那段；凡引用表中的数，先体检，至少核合计和单位。
6. 首轮交付（`references/_shared/profiles/roles.md` 第十节）：有数据就一次交付体检结果、底稿、正文和图表，口径冲突处正文用最可靠的写法（如明细相加数）并注明口径，不等确认；用户说“直接做”“别问了”或高效模式的，不提问，疑点只进待补、待核实；其余模式提问不超过 3 个，放回复末尾。
7. 用户要“把数调得好看点”、补表里没有的数、改原始数据凑考核目标的，说明不能这样做（`references/_shared/guardrails.md` 第二条、第六条），其余照常。

## 工作流程

### 第一步　登记数据

1. 给每张表编号（表A、表B……），登记文件或工作表、报送单位、统计时段、计量单位、口径说明、数据来源系统，作为计算底稿的材料清单。
2. 提问只问业务口径，取舍顺序：统计时段 → 对比基期（同比还是环比、和哪年比）→ 计量单位或统计范围。表头、表注、文件名能看出的不问，“直接做”的不问。没问清的先取默认值做完并写进“假设”。
3. 用户没给任何数（如“帮我写一段今年的数据”）的不编数，交数据收集清单（指标、时段、基期、取数处）和带【待补】的句式，如“1—9月，全院出院【待补：人次】人次，同比增长【待补：增速】%”。

### 第二步　报表体检

有 Python 时运行 `python scripts/data_tool.py inspect <表格> --json`（多个工作表加 `--all-sheets`），逐条复核，表头前说明（`pre_texts`）和表注（`notes`）登记为口径说明；不能运行时按 `references/inspect-checklist.md` 第二部分人工检查。重点：

| 查什么 | 发现后怎么办 |
|---|---|
| 带密级、内部标注（DT-SEC-01，P0，脚本已停止） | 回到开工检查第1条；经保密管理部门确认或已解密、已删除后才可加 `--marking-ok` 重跑，不自行添加 |
| 合计、小计与明细相加不符（P0），或超出修约容差（P1） | 不直接引用表中合计；正文用明细相加数，“待核实”一行写明表中合计 |
| 同列单位不一致（P0） | 换算统一后再算，换算写进底稿 |
| 空值、“—”“/”等占位符 | 空不等于 0。表注或用户说明了含义的（如“不开展此项”）照说明处理并写进起草说明；没说明的，正文涉及的写【待补：说明】 |
| 约数（“约20”“30多”） | 不做精确计算，正文照写约数，起草说明请用户核实准确数 |
| 比率、平均数列的合计 | 分子合计除以分母合计重算，不简单平均 |

表中自带的合计、小计行就是校验和，逐项相加去对，不凭目测。例：18 个街道（乡镇）相加为 4356，表中合计 4382，差 26，列为 P0；正文写“新登记经营主体4356户”，待核实写明表中合计4382户。

体检结果写成体检报告：一行结论加问题清单，格式见 `references/inspect-checklist.md` 第四部分。

### 第三步　合并汇总（多张表时）

运行 `python scripts/data_tool.py merge <表A> <表B> ... --expect <应报单位名单> --out <汇总表.xlsx> --json`；不能运行时按 `references/inspect-checklist.md` 第三部分人工合并。规则：
1. 同量纲单位按多数表换算（元换万元÷10000），每次记一条；人与人次、户与人、件与次不换算、不相加。
2. 时段与多数表不同的表（如1—5月混进1—6月）不计入合计，单列出来请对方重报。
3. 比率和平均数不相加；缺分子分母的写【待补：分子和分母数据】。
4. 同一单位报了两次的，确认前不重复相加：正文用只计一次（或不含该单位）的合计并注明口径，待核实一行请确认。应报未报的列入待补，正文写全口径合计时注明“不含……”。
5. 比不齐的不加总、不取平均、不挑大的，全部进“附：口径冲突表”请用户确认。

### 第四步　指标计算

按要说明的事选指标，公式和 Excel 写法见 `references/calc-sheet.md` 第一部分：

| 要说明的 | 用 |
|---|---|
| 比去年同期多了还是少了 | 增减量＋同比增速 |
| 比上个月 | 环比（只用于相邻两期） |
| 率、占比、增速本身的变化 | 百分点 |
| 某部分在总体中的分量；对总体增长的作用 | 占比；拉动（百分点）、贡献率 |
| 任务进度 | 完成率＋时间进度 |
| 多年变化 | 倍数、年均增速（水平法） |
| 全院、全系统的率或平均数 | 分子合计÷分母合计 |
| 台账、明细按类别统计件数 | 分类计数和占比 |

同期对比的数量类指标（含时长、天数、平均数）增减量与增速并写；一句超 3 组数据的拆句，不删增减量。

1. 有 Python 时用 `python scripts/data_tool.py phrase --type <类型> ... --md`，按类别计数用 `count` 子命令，详见 `references/scripts.md`。脚本提示逐条处理：句子里的【待核实】进正文前删去，写进“待核实”一行；合计不符的，脚本已改用明细相加数，不要改回表中合计；两期口径不同的，改用同口径结果并注明“不含××”。
2. 不能运行脚本时按 `references/calc-sheet.md` 第三部分人工演算并反算验证；基期为 0、亏损、两期口径不同等特殊情形按其第二部分。
3. 所有结果记入计算底稿（`references/calc-sheet.md` 第四部分）；算不了的记入“未计算的项目”并写明原因。

### 第五步　数据转文字

按 `references/_shared/rules/data-expression.md` 写。示例的数字和单位均为虚构，不得带入正文。最常错的几条：
1. 两个百分数相减用“个百分点”；数量变化用百分数。
   - 误：占比由28.6%升至31.0%，提高2.4%。正：提高2.4个百分点。
2. 先写本期数，再写变化并写基期：“新登记经营主体4356户，同比增长8.3%”。“同比”不与“比上年同期”叠用。
3. 下降写“下降X%”，不写“负增长”；倍数不用于减少。
4. 原因只写用户给的，没有就不写“主要得益于……”。
5. 程度靠数字说明，少用“大幅”“显著”；一句不超过 3 组数据；一段只写一类指标，先总后分；正文不写算式和“据测算”之类过程话。
6. 数据段落开门见山，不为凑篇幅罗列数据。用户指定字数的，按 `references/_shared/guardrails.md` 第四条第2款：数据撑不起的，不新增数、不凑数，起草说明一句话说明；缺数标【待补】，不计入字数。

### 第六步　公文图表

有 Python 时用 `python scripts/chart_tool.py <表格> --type <类型> --y <列名> --title <图题> --source <数据来源> --out <文件>` 生成 Excel 原生图表（参数见 `references/scripts.md` 第五部分）；同期对比两列都写（如 `--y 2026年,2025年`），脚本自拼的图题要核对。选图见 `references/chart-guide.md`：
1. 比大小用柱状图、条形图（类别多时用条形图并排序）；看变化用折线图；看构成用饼图（不超过 6 类）。
2. 黑白灰，纵轴从 0 开始，不用双坐标轴，不同单位分开出图（`references/chart-guide.md` 第三部分）。
3. 图题写时段和指标，纵轴写“单位：……”，图下写“数据来源：……”（没有的写【待补：数据来源】）；合计、小计行不入图，空值不画成 0。

不能运行脚本时，起草说明后给“附：图表规格卡”和 Excel、WPS 操作步骤（`references/chart-guide.md` 第四部分）。

### 第七步　自检

1. 底稿对账（必做）：正文每个数都要在计算底稿“文字表述”列找到原样写法。有 Python 时运行 `python scripts/fact_diff.py 计算底稿.md 正文.txt --ledger`，“正文中有、台账中没有”的逐条补进底稿或改为【待补】。
2. 机检：运行 `python scripts/gongwen_lint.py 正文.txt --doc-type <文书类型> --json`，文书类型取数据段落要放进的材料（总结、汇报材料、信息等），不清的用“其他”。P0 必改，P1 逐条判断；【待补】报的 P2 保留。
3. 不能运行脚本时按“自检清单”人工检查，并在“假设”写“未运行脚本，计算和核对为人工完成，请复核”。

### 第八步　交付

按 `references/_shared/style/output-format.md` 和本文“输出规范”交付。
1. 能写文件的：建 `公文/<YYYYMMDD>-<简短标题>/`，按需写入 `正文.txt`（数据段落，只含正文）、`计算底稿.md`、`体检报告.md`、汇总表和图表。对话中报文件位置、体检结论一句、主要数据一两句，再给【起草说明】，不复述全文；交接卡写入文件，对话里只报位置。
2. 网页环境：依次输出正文（数据段落）、`【起草说明】`，正文前不加引导语。起草说明按 `references/_shared/style/output-format.md` 第二部分，不超过 5 行、每行一句，另有计算说明一行（用了哪些公式，是否运行脚本，表述判断依据）；教学模式的写作要点另列“附：写作要点”。之后按需附“附：体检问题清单”“附：口径冲突表”“附：计算底稿”“附：图表规格卡”，不计入 5 行；有计算的，各模式都附计算底稿。
3. 用户只要体检或合并的，交体检报告（和汇总表），不硬写正文。
4. 还有下一站的（如交 gongwen-report 成稿），在起草说明之后输出更新后的交接卡，本站产出写“数据段落、计算底稿”（注明已算出的汇总数、平均值及分母口径），不抄原始数据和个人信息；告知用户新开对话，先粘贴下一站的提示词文件，再粘贴交接卡和本站产出。

## 单位差异

| 单位类型 | 口径要点 | 特别注意 |
|---|---|---|
| 党政机关 | 对外引用的统计数以统计部门公布的为准；快报数、年报数、预计数分开 | 未公开统计数、考核排名不进对外材料 |
| 基层、社区 | 人与人次、户与人分清；多部门台账同一件事只计一次 | 不虚报，不补记台账；居民信息脱敏 |
| 公立医院 | 国家监测指标不自行改变计算方法；全院比率用分子分母合计 | 患者姓名、病案号、住院号脱敏 |
| 高校 | 学年与自然年分清；与高基报表、状态数据库口径一致 | 学生个人信息不进明细 |
| 中小学 | 学期与学年分清；达标率、优秀率、平均分用人数重算 | 义务教育阶段不对学生、班级排名，成绩图不排序 |
| 国有企业 | 金额单位全文统一；与财务快报一致；完成率配时间进度；合并口径与单体口径分开 | 未披露经营数据属商业秘密 |

## 输出规范

- 正文（数据段落）纯文本，不用 Markdown；数字写法按 `references/_shared/rules/gbt15835.md`。正文只允许【待补：说明】一种提示，在起草说明汇总，不写【待核实】。
- 体检报告、口径冲突表、计算底稿、图表规格卡是工作底稿，可用 Markdown 表格。

## 自检清单

- [ ] 引用表中数据前做了体检，合计逐项相加核过；合计不符的未直接引用。
- [ ] 正文每个数都能在计算底稿找到原样写法；没有材料以外的数和推测的原因。
- [ ] 比率、平均数没相加或简单平均；时段、单位、口径不同的数没合并或比较。
- [ ] 百分点与百分数用对；同比、环比未叠用；下降没写成“负增长”；倍数没用于减少；基期为 0 或负数的没算增速；约数没参与计算。
- [ ] 每个计算结果都有算式；没有运行脚本的已注明人工演算。
- [ ] 用户材料中加引号的指标名称、做法名称和本单位提法原样保留；确需改写的已列入提法核对清单请用户确认。
- [ ] 用户说的“周五”“下周一”等相对日期，已知当天日期的已推算为具体日期并注明；“年底前”等期限原样保留。
- [ ] 用户指定了字数的，篇幅在目标 ±10% 内，或已说明差距。
- [ ] 图表黑白灰，有图题、单位、数据来源，纵轴从 0 开始，无双坐标轴；没用在线图表或远程渲染服务。
- [ ] 没有未脱敏的个人信息；正文没有 Markdown 符号、免责声明和【待核实】；起草说明不超过 5 行，待补、待核实各汇总一行。

## 角色适配

- 教学模式：有报表的，体检结果、计算底稿和正文一次交付，口径冲突处正文注明口径；只问一两个数怎么写的，直接给句子和讲解。“附：写作要点”按本次数据涉及的用法各举一处正误对照（百分点、同比环比、倍数、翻番、年均增速等），涉及年均增速的，说明按水平法计算、不是各年增速的简单平均，并说明每个【待补】一般到哪取数（统计报表、业务系统、财务快报）。
- 高效模式：不提问，一次交付；需要时数据段落给详、简两版。起草说明只写假设、待补、待核实和计算说明，不展开讲解，但每条体检问题和表述判断仍写明问题类型和依据（列入附表）；底稿可只列算式和结果两栏。
- 转译模式：接受原始表格和口头描述；只问统计时段、对比基期、计量单位；体检问题用大白话解释（如“有数字被存成了文字，Excel 加总会漏掉”）；底稿完整列出算式。
- 审稿模式：只出体检报告或数据表述问题清单，每条写位置、问题、依据、建议，不重写全文，是否采用由用户定；整篇稿件核稿转 gongwen-review。
- 严谨模式：用于对外发布、报上级党组织的数据。底稿为每个数注明出处（报表名称、时段、口径）；未确认已公开的数据，“待核实”一行请用户确认是否已对外公布，并附数据出处核对清单。

## 参考资料

没有文件系统（网页版、内网提示词版）时，读不到的文件按本文和附录执行，不向用户索要。各步骤已写明何时读哪个文件，另外：

| 文件 | 何时读取 |
|---|---|
| `references/scripts.md` | 运行脚本前查命令和参数 |
| `references/_shared/profiles/units/` | 按单位类型补充读取 |
| `references/_shared/style/ai-tone.md`、`references/_shared/style/defensive.md` | 写数据段落时避开 AI 腔和对冲语气 |
