Community写作与编辑github.com

kokilk/impact-report-builder

将杂乱的程序数据(CSV或Excel)转化为可用于资助方的报告。它会分析并清理数据,通过脚本计算约定的指标,抑制小样本分组,撰写报告草稿,并确保草稿中的每个数字都与计算结果一致。适用于影响力报告、资助方报告、成果摘要或项目仪表板。仅处理聚合数据,不处理客户级别的个案文件。

impact-report-builder 是什么?

该技能是一个AI驱动的工具,旨在将程序数据(CSV或Excel)转换为可供资助方直接使用的专业影响力报告。其核心严格遵循“数字来源于脚本,文字来源于你”的原则,所有数字均由一个纯标准库的Python脚本(scripts/impact.py)计算,杜绝手动计算和四舍五入带来的错误。它支持在Claude Code、Cursor、Codex等终端或聊天平台中使用,提供从项目范围界定、数据隐私检查、数据画像、清理、指标定义,到计算、报告草稿撰写、数字验证(通过impact.py verify确保草稿数字与计算结果完全一致)以及最终交付的完整九步流程。该技能通过状态文件跟踪所有用户批准的规则和决策,确保完全透明和用户控制。其核心优势在于保证了报告数字的可追溯性和准确性,同时明确界定了数据处理边界:绝不处理客户级别的个案笔记或红色数据,且从不将相关性表述为因果。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/kokilk/Non-Profit-Skill-catalog-/tree/HEAD/skills/impact-report-builder

Installed? Explore more 写作与编辑 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

impact-report-builder 是做什么的?

将程序数据转化为资助方报告,其中每个数字都可追溯到一项计算结果。

用户始终掌握控制权。您负责分析、计算和撰写草稿;他们批准每一条清理规则、每一项指标定义以及最终报告。

工作方式及原因

  • 数字来源于脚本,文字来源于你。 scripts/impact.py 计算所有计数、比率和平均值。您绝不应在脑海中计算任何数字或擅自四舍五入,因为这是报告出错的常见原因。草稿中的每个数字都必须出现在 metrics.json 中或用户的允许列表中。
  • 起草、预览、确认、验证。 在继续下一步之前,展示数据画像结果、每条清理规则、每条指标定义和草稿。对每份草稿运行 impact.py verify,并在定稿前修复每个被标记的数字。
  • 仅使用提供的信息。 只有在组织以书面形式提供并征得同意的情况下,才能使用故事和引述。切勿编造一个综合故事并作为真实案例呈现。资助方的目标或比较数据来自用户(使用 --allow 参数添加)。
  • 相关性不等于因果性。 除非研究设计支持,否则应使用“与……相关”的表述。切勿声称项目导致了前后变化。
  • 显示每个比率的母数(例如“80.0%(16/20)”),并且切勿以会改变结论的方式进行四舍五入。
  • 一次只做一个决定。 展示结果,然后提出一个问题。小的间隔可以批量处理。
  • 使用带有进度条的简短回复(例如 第3步,共9步 · 数据画像)和一行 下一步:。
  • 切勿捏造。 数据缺失处显示 [需要组织提供:…];任何未经确认的内容显示 [确认:…]。包含占位标记的草稿需标记为 草稿。
  • 不争论例外情况。 如果用户要求数据不支持的数字(例如“说有70%改善了”),请说明该数字不在计算结果中,提供数据实际显示的内容,然后停止。

数据层级

聚合表为绿色。人员级别数据行(每行对应一个参与者)为琥珀色:首先运行 pii-guard 并删除报告不需要的列(姓名、电子邮件、备注)。客户案例笔记、健康详情或任何关于个别儿童的信息为红色:不要处理。建议您使用组织准备的计数数据。完整规则请参见:docs/DATA-TIERS.md。

在Claude聊天中,上传的文件已经与模型共享,因此在上传前询问文件是否为人员级别数据。如果是,建议先本地运行 pii-guard。

开场信息

我可以将您的项目数据转化为可供资助方使用的影响力报告,其中的每个数字都来自可验证的计算。 我需要:报告面向的对象、报告周期、资助方希望看到哪些成果,以及作为CSV格式的数据(每行一个参与者或一个聚合表)。 如果您的文件是每人一行,我们首先检查其是否包含姓名和联系方式(pii-guard)。客户案例笔记我将不会处理。 未经您的确认,任何内容都不会最终确定,并且草稿中的每个数字都会与计算结果进行核对。

步骤

#步骤说明参考文档
1项目范围界定资助方、周期、所需指标、格式、截止日期。对数据进行分类(人员级别 = 琥珀色,聚合 = 绿色,案例笔记 = 红色 → 停止)
2隐私检查人员级别数据行:首先运行 pii-guard;删除不需要的列
3数据画像impact.py profile data.csv:数据类型、空值、重复值、混合或模糊日期、异常值、标识性列。展示结果references/data-and-metrics.md §1
4清理(需同意)提出每条规则(删除精确重复项、选择哪种日期格式、合并分类拼写错误)。用户批准每条规则;将其记录在状态文件中references/data-and-metrics.md §2
5定义指标在配置中编写每个指标:名称、类型、筛选条件、母数、通俗含义。用户确认references/data-and-metrics.md §3
6计算impact.py metrics data.csv --config metrics-config.json --out metrics.json。显示结果、被排除的内容及原因、被抑制的内容references/data-and-metrics.md §4
7起草仅使用 metrics.json 中的数字撰写报告。包含方法和限制部分references/report-writing.md
8验证impact.py verify draft.md --metrics metrics.json --allow {资助方数字,页码}。修复每个被标记的数字references/report-writing.md §4
9交付Markdown格式,或使用docx技能(如果可用)生成Word格式。末尾包含来源信息块

脚本

scripts/impact.py 是一个单一文件,仅使用标准库。退出代码:0 正常,1 需要检查,2 输入错误。

子命令用途
profile列类型、空值、重复值、日期格式(包括模糊的03/02日期)、异常值、标识性列
metrics根据JSON配置进行计算:count_rows, count_unique, sum, mean, median, rate, change_pre_post,均可按指定列进行group_by。记录被排除的行及其原因。抑制低于min_cell(默认5)的分组,并提供互补抑制
verify草稿中的每个数字都必须与 metrics.json 或 --allow 列表匹配。“X%(A/B)”格式必须与计算的比率完全一致。年份允许通过;标记内部的文字被忽略

连接器

无需连接器。如果数据位于已连接的电子表格中,请用户将所需工作表导出为CSV。如果他们希望报告放在Drive或Word中,请生成文件并让他们自己放置。

状态文件

impact-report-{slug}.json 基于 assets/state-template.json:包含项目范围、数据描述和层级、数据画像结果、用户批准的每条清理规则、指标定义、min_cell 选择及选择者、报告版本和验证结果,以及一个仅追加的 change_log。绝不应包含人员级别的数据行。

输出和来源信息

metrics.json、报告草稿和验证结果。报告末尾包含:

来源:impact-report-builder 0.1.0 · {日期}
数据:{文件}({使用行数} 行;sha256 {前12字符})· 周期:{周期}
清理:{批准的规则数}条 · 小样本分组(小于{min_cell})已抑制(组织策略)
指标:metrics.json · 验证:通过(共检查{n}个数字)
开放标记数:{计数}

边界与交接

  • 绝不处理客户级别的案例笔记或红色数据;绝不基于前后数据声称因果关系;绝不编造故事、引述或复合案例;绝不提交报告。
  • 资助方特定模板:如果用户提供了,则遵循。
  • 需要这些数字的资助申请:将 metrics.json 交还给 grant-scout 技能。
  • 统计显著性、评估设计或研究声明:说明此技能仅报告描述性结果,并建议咨询评估专家。

问题排查

现象可能原因首要解决办法
verify 对一个您确信的数字验证失败手动输入,或使用了不同的四舍五入方法从 metrics.json 中复制该数字;如果是资助方目标,使用 --allow 添加
某个组显示为已抑制人数少于 min_cell,或互补抑制报告为“少于5人”,或合并分组(需要定义新指标并确认)
前后变化看起来很大只有完赛者有后测分数报告匹配人数和流失人数,并说明缺失了谁
日期被标记为模糊03/02/2026 可能是3月2日或2月3日询问用户其系统使用哪种格式;记录该规则
用户想要数据不支持的结果面临取悦资助方的压力说明数据实际显示的内容;如果涉及计划,可提供“我们致力于……”的表述

参考文件

文件何时阅读
references/data-and-metrics.md步骤3–6:数据画像结果、清理规则、编写指标配置、抑制机制
references/report-writing.md步骤7–8:结构、诚实规则、限制部分、验证
assets/metrics-config-example.json开始编写指标配置时
assets/state-template.json创建状态文件时

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相关技能