它做什么

你给 AI agent 一个旧账单文件, 它自己看格式、做映射、跑转换, 最后给你两个文件。

  1. 认格式 看表头在第几行、每列是什么意思。 支付宝 / 微信导出的 CSV 开头有几行说明文字, 表头不在第 1 行 — 它会自己找。
  2. 做映射 旧分类 → 格子记账的 23 个系统分类; 旧账户(如「招商银行(1234)」)→ 你已有的账户 (按机构名匹配);对不上的会新建自定义分类。
  3. 出产物 gridly-migrated.sqlite(schemaVersion 9,跟 app 生成的完全兼容) + migration-report.md。
  4. 列问题 迁不进去的数据(比如没披露对端账户的转账)不会被瞎猜, 会原样列在报告里给你看。

支持哪些来源

来源格式说明
支付宝账单 CSV 从支付宝 → 我的 → 账单 → 导出得到的原始 CSV
微信账单 CSV 微信没有「交易分类」列,分类来自「商品」— 已内置识别 + 关键词归并
通用账单 CSV / Excel(.xlsx) 随手记等其他 app 导出的表格。列名自适应, 认不准可以用 config.json 手动指定

不支持:其它 app 的数据库文件、截图账单、PDF 账单。 遇到这些它会直接告诉你不支持,不会硬转。

安装

这个 skill 是纯 Markdown + Python 标准库, 不绑定任何一家 agent —— 任何支持 skill 机制的 AI agent 都能用。解压下载的 zip, 把里面的 gridly-migrate/ 整个文件夹 放到 agent 找 skill 的目录就行。

放到哪

每个 agent 放 skill 的地方不太一样, 一般在用户目录下,具体看该 agent 自己的文档或设置页。常见的:

  • Claude Code:~/.claude/skills/gridly-migrate/
  • Codex:~/.codex/skills/gridly-migrate/
  • 其它 agent:用它告诉你的 skill 目录

放完确认一下 gridly-migrate/ 里面有 SKILL.md + references/ + scripts/ —— 少了就解压错层级了。

⚠️ 装完要重启 agent agent 启动时才扫描 skill 目录。先把目录建好再启动, 不然目录建完不会被重新扫描, skill 装了也看不见。

命令行装法

macOS / Linux(把 <SKILL_DIR> 换成你 agent 的 skill 目录):

mkdir -p <SKILL_DIR>
unzip -q gridly-migrate-skill.zip -d <SKILL_DIR>
# 装完重启 agent

怎么给 AI agent 下指令

装好之后不用记任何命令。agent 会自己判断该用这个 skill, 你只要说清要干什么、给哪个文件。 下面几句可以直接抄。

最简单的一句

帮我把支付宝账单导入格子记账

agent 会反问你文件在哪(或者它在常见下载目录里自己找), 然后给你两个文件。

给具体路径

用 gridly-migrate 把 ~/Downloads/alipay_record.csv 迁进格子记账

最可靠的写法。直接把文件拖进对话框也可以。

导进现有账本,别覆盖

把这份账单追加到我现在的格子里,别覆盖我已有的数据

这句很重要。app 的「备份还原」是整库覆盖, 不加这句 agent 默认会生成一个干净库, 导入会把你原来的数据冲掉。

要那份报告

迁完把迁不进去的行列出来给我看

报告本来就会生成,加这句 agent 会把「无法迁移」那几条 在对话里直接摊开给你看。

Excel 文件

这个 xlsx 里的列有点怪,你先看看表头再决定怎么映射

让 agent 先识别再干活。识别不准它会生成 config.json 让你确认列对应关系。

英文也认

migrate my WeChat bill export into gridly

skill 的 description 是中英双语的, 英文问也会触发。

它不会干的事 不会替你改源码、不会从 gridly 导出数据、 也不会替 gridly 做备份还原(那个 app 自己有)。 它只负责「旧数据 → sqlite」这一步。

拿到之后

两个文件,导入 app 只需要第一个。

产物

  • gridly-migrated.sqlite — 能直接导入 app 的数据库
  • migration-report.md — 迁移结果 + 逐条映射依据 + 无法迁移的数据清单

导入 app

  1. 把 gridly-migrated.sqlite 传到手机
  2. 格子记账 → 我的 → 数据 → 备份还原 → 还原 → 选该文件
  3. 确认后 app 自动退出,重新打开即可

⚠️ 还原会覆盖 app 里现有数据 先在 app 里点「备份」导出一次。 如果你是要追加到现有账本, 让 agent 用「追加/别覆盖」那种说法。

FAQ

转账为什么不迁?
支付宝/微信的「不计收支」是账户间划转,但 CSV 不披露对端账户。 gridly 的调拨必须成对(source + dest),猜方向会污染余额和月度汇总。 所以默认列进「无法迁移」,由你决定补录方式。
支持 Mac / Windows?
脚本只依赖 Python 标准库(xlsx 用内置 zipfile + xml 解析),不需要 pandas/openpyxl,三平台都能跑。
能迁多少笔?
没有上限 —— 取决于机器性能。几万笔是正常量级。
会不会改我原来的数据?
不会。脚本只读你给的源文件, 新建产物。唯一会动你数据的步骤是 app 里点「还原」,那是你自己点的。
这个 skill 跟 app 版本有关吗?
有关。目标 schema 是 schemaVersion 9。 如果以后 app 改了 schema,这个 skill 会跟着更新, 老的 skill 包导入后会触发 app 的 migration 把数据冲掉。