个人公益打卡助手
> 一句话:把日常做的好事记下来,自动出周报/月报。数据只存在你电脑本地,不联网、不上传。
这个技能在解决什么
很多人都在默默做公益(捐步、捐花、喂流浪猫、捐款),但做完就忘了,年底想回顾"我今年到底做了多少"却拿不出数。
本技能帮你持续性记录 + 自动汇总,像记账一样简单,最后产出一份能打印、能发朋友圈的公益报告。
核心规则(必须遵守)
- 数据只存本地:默认文件
~/.workbuddy/charity-tracker/records.jsonl(AI 首次记录时自动建目录)。绝不调用任何网络接口上传这些数据。 - 零依赖脚本:记录用
scripts/log.py,报告用scripts/report.py,都只用 Python 标准库,换台电脑也能跑。 - 分类固定七种:
捐步 / 答题 / 折纸 / 捐花 / 喂猫 / 捐赠 / 其他。用户说别的近似说法要映射到最近的一类(如"捐了步数/走路献爱心"→ 捐步;"给猫粮/喂小猫"→ 喂猫)。
一条记录的数据结构
{ "date": "2026-09-13", "category": "捐步", "value": 5000, "unit": "步", "platform": "久久公益", "note": "" }
date:YYYY-MM-DD,默认今天category:七种之一value:数量,默认 1unit:单位,默认按分类(捐步=步 / 答题=次 / 折纸=件 / 捐花=朵 / 喂猫=份 / 捐赠=元 / 其他=次)platform:来源平台,可选(久久公益 / 花园捐花 / 爱心餐 / 腾讯公益 / 自定义)note:备注,可选
操作流程
1. 记一笔(最常用)
用户说"今天捐了 5000 步到久久公益" → 解析出 category=捐步, value=5000, platform=久久公益 → 运行:
python "<SKILL_DIR>/scripts/log.py" --category 捐步 --value 5000 --platform 久久公益
> <SKILL_DIR> 是本技能目录(即本 SKILL.md 所在目录)。AI 应动态取到绝对路径再拼接,不要写死。
> 用用户本机的 Python 运行即可(标准库,无需安装任何包)。
记完把脚本输出的"已记录 + 本分类累计 + 全部记录条数"原样告诉用户,简短确认即可。
2. 看近期 / 统计
直接读 ~/.workbuddy/charity-tracker/records.jsonl(每行一条 JSON)即可回答"最近做了什么""今年多少次"。
也可以用 report.py 的纯文本摘要(不生成文件,只看控制台输出):
python "<SKILL_DIR>/scripts/report.py" --range month
3. 生成报告(周报 / 月报 / 自定义)
# 本月报告(默认输出 charity_report.html)
python "<SKILL_DIR>/scripts/report.py" --range month --out charity_report.html --title "九月公益报告"
# 近 7 天
python "<SKILL_DIR>/scripts/report.py" --range week
# 任意区间
python "<SKILL_DIR>/scripts/report.py" --since 2026-01-01 --until 2026-12-31 --title "2026 年度公益回顾"
生成后用 present_files 把 HTML 呈现给用户(可打印、可预览)。报告含:四张汇总卡(公益次数 / 捐步累计 / 捐赠金额 / 温暖举动)、分类明细表、按平台表、每日时间线。
语义映射参考(用户口语 → 分类)
| 用户常说 | 映射分类 | 默认单位 |
|---|---|---|
| 捐步、走路捐、步数献爱心、捐了 N 步 | 捐步 | 步 |
| 答题、公益答题、知识答题 | 答题 | 次 |
| 折纸、公益折纸、手工 | 折纸 | 件 |
| 捐花、花园捐花、送花 | 捐花 | 朵 |
| 喂猫、爱心餐、猫粮、流浪猫 | 喂猫 | 份 |
| 捐款、捐赠、配捐、捐赠物资 | 捐赠 | 元 |
| 其他善举 | 其他 | 次 |
边界与提醒
- 只做个人记录与汇总,不替用户向任何公益平台发起真实捐赠/转账,涉及真金白银时提醒用户自行到官方渠道操作。
- 报告里的金额仅是用户自己记的"捐赠"条目的求和,不代表任何机构凭证。
- 数据文件在本地,重装系统/换电脑前记得备份
~/.workbuddy/charity-tracker/目录。 - 若用户想清空或导出:导出就是把
records.jsonl复制走;清空前务必先确认,避免误删历史记录。
自检(发布前可跑)
python "<SKILL_DIR>/scripts/log.py" --category 捐花 --value 3 --platform 花园捐花
python "<SKILL_DIR>/scripts/report.py" --range all --out /tmp/test_report.html
两条都应无报错,第二条应生成可读 HTML。