{"skill":{"slug":"ledger-by-cn","displayName":"ledger cn","summary":"个人记账与账本管理工具。支持多账本、自然语言/批量记账、期初结余初始化、跨月余额趋势图、分类统计、多账本对比图、CSV导出、飞书云盘同步等。","description":"---\nname: ledger\ndescription: 个人记账与账本管理工具。支持多账本、自然语言/批量记账、期初结余初始化、跨月余额趋势图、分类统计、多账本对比图、CSV导出、飞书云盘同步等。\nversion: \"1.3.0\"\nauthor: \"Victor\"\nemoji: \"💰🐰\"\ntags: [\"finance\", \"accounting\", \"ledger\", \"budget\", \"feishu\"]\n---\n\n# Ledger - 个人记账技能（优化版）\n\n## 核心职责（触发条件）\n\n当用户提到以下任一场景时，必须使用本技能，不要用其他方式代替：\n\n- 记账、记录收入/支出、批量添加交易\n- 查看某账本某月/多月汇总、流水、余额\n- 画余额趋势图、支出饼图、柱状图等\n- 导出 CSV / 同步到飞书云盘 / 上传文件\n- 查询/设置分类、预算（未来扩展）\n- 任何提到\"账本\"\"期初\"\"结余\"\"画图\"\"同步\"\"飞书\"等关键词\n\n## 数据存储与重要约定（严格遵守）\n\n- **【重要】每次查询账本时，必须从账本目录读取最新数据，不要使用上下文缓存或假设数据**\n- 根路径：`~/.openclaw/skills_data/ledger/<账本名>/` （账本名如 \"default\"，不区分大小写但保持用户输入一致）\n\n\n- 后续任何计算余额趋势、累计余额、月度汇总时：\n  - **查询汇总时**：用户说\"所有/全部\"则包含所有月份数据，否则只统计指定月份\n  - 所有统计到的月份数据直接累加\n\n## 日期解析规则（容错增强）\n\n用户输入日期可能简写，必须智能补全为 YYYY-MM-DD：\n\n- \"0114\" / \"14\" → 当前月份的 14 日（例如当前 2026-03 → 2026-03-14）\n- \"1\" → 当前月份 1 日（2026-03-01）\n- \"3月15日\" → 当前年 03-15（2026-03-15）\n- \"2026-3-5\" → 补零为 2026-03-05\n- \"去年12月\" → 2025-12 (当年往前推一年)\n- 无日期 → 默认当天（当前时间：2026-03-15）\n- 如果跨月/跨年模糊，或输入如\"上个月\"\"明年\"等相对时间，主动询问确认：\n  示例回复：\"您说的'上个月'是指 2026 年 2 月吗？请确认日期范围。\"\n\n## 处理流程（Agent 必须严格遵循的思考链）\n\n1. **解析用户输入**\n   - 确定账本名（从上下文提取，如\"我的账本\"，默认 \"default\"）\n   - 提取日期、金额、分类、账户、备注\n     - 支持批量：多行\"日期 金额 [分类] [账户] [备注]\"\n     - 金额识别：正数/负数/\"+\"\"-\"\"花了\"\"收入\"等关键词判断正负\n\n\n\n### SQLite CLI 工具（推荐，使用 uv 运行）\n\n```bash\n# 创建账本\nuv run python ~/.openclaw/skills/ledger/src/cli.py create --name 新账本\n\n# 列出账本\nuv run python ~/.openclaw/skills/ledger/src/cli.py list\n\n# 查看账本日期范围（输出格式：开始月份 结束月份）\nuv run python ~/.openclaw/skills/ledger/src/cli.py range --name 兔兔\n# 输出示例：2025-12 2026-03\n\n# 查看所有交易\nuv run python ~/.openclaw/skills/ledger/src/cli.py show --name 兔兔\n\n# 查看单月汇总\nuv run python ~/.openclaw/skills/ledger/src/cli.py show --name 兔兔 --month 2026-03\n\n# 查看日期范围\nuv run python ~/.openclaw/skills/ledger/src/cli.py show --name 兔兔 --from 2026-01 --to 2026-03\n\n# 查看余额趋势\nuv run python ~/.openclaw/skills/ledger/src/cli.py trend --name 兔兔\n\n# 绘制账单折线图（单个账本） # 需要先查看记账范围\nuv run python ~/.openclaw/skills/ledger/src/cli.py chart --name 兔兔 --from 2026-01 --to 2026-03\n\n# 绘制多账本对比图 # 需要先查看记账范围\nuv run python ~/.openclaw/skills/ledger/src/cli.py chart --name 兔兔 vk --from 2026-01 --to 2026-03\n\n# 保存到指定路径\nuv run python ~/.openclaw/skills/ledger/src/cli.py chart --name 兔兔 --output /tmp/chart.png\n\n# 添加交易（日期默认当天）\nuv run python ~/.openclaw/skills/ledger/src/cli.py add --name 兔兔 --amount -50 --category 餐饮\n```\n\n### Markdown 输出（飞书群聊）\n\n添加 `--markdown` 参数输出 Markdown 格式：\n\n```bash\n# Markdown 格式查看单月汇总\nuv run python ~/.openclaw/skills/ledger/src/cli.py show --name 兔兔 --month 2026-03 --markdown\n\n# Markdown 格式查看余额趋势\nuv run python ~/.openclaw/skills/ledger/src/cli.py trend --name 兔兔 --markdown\n```\n\n### SQLite 原生命令查询\n\n```bash\n# 按月统计收支\nsqlite3 ~/.openclaw/skills_data/ledger/兔兔/ledger.db -header -column \\\n  \"SELECT substr(date,1,7) as month, \n          SUM(CASE WHEN amount > 0 THEN amount ELSE 0 END) as income,\n          SUM(CASE WHEN amount < 0 THEN amount ELSE 0 END) as expense\n   FROM transactions GROUP BY month ORDER BY month;\"\n\n# 按分类统计支出\nsqlite3 ~/.openclaw/skills_data/ledger/兔兔/ledger.db -header -column \\\n  \"SELECT category, SUM(ABS(amount)) as total \n   FROM transactions WHERE amount < 0 \n   GROUP BY category ORDER BY total DESC;\"\n\n# 查询2025年数据\nsqlite3 ~/.openclaw/skills_data/ledger/兔兔/ledger.db -header -column \\\n  \"SELECT id, date, amount, category, account, description \n   FROM transactions WHERE date LIKE '2025%';\"\n```\n\n## 安全与边界\n\n- 单笔 |amount| > 10000 必须二次确认\n- 输入严重模糊或矛盾时，主动询问澄清，不要擅自假设\n- 所有文件操作使用安全路径，避免越界\n","topics":["Ledger","Accounting","Budget","Feishu","批量"],"tags":{"latest":"1.0.1"},"stats":{"comments":0,"downloads":579,"installsAllTime":22,"installsCurrent":0,"stars":1,"versions":2},"createdAt":1773584739146,"updatedAt":1778491928981},"latestVersion":{"version":"1.0.1","createdAt":1774853934325,"changelog":"**重大变更：账本存储全面升级为 SQLite，命令行工具大幅增强**\n\n- 增加 SQLite 存储、全新 CLI 工具，比原有 JSONL 文件方式更高效安全\n- 支持账本创建、导入、列出，快速查账、绘图、统计等多种命令\n- 新增多账本对比图、多账本查询能力\n- 支持 Markdown 输出和原生 SQL 查询，便于在群聊等场景友好展示\n- 老版脚本（plot_ledger.py/print_ledger.py）已移除，推荐全部用 CLI 工具操作","license":"MIT-0"},"metadata":{"setup":[],"os":null,"systems":null},"owner":{"handle":"victor233k","userId":"s17bnaskvey3ct55xnkp4wyv8h83wqn5","displayName":"victor233k","image":"https://avatars.githubusercontent.com/u/160450845?v=4"},"moderation":{"isSuspicious":false,"isMalwareBlocked":false,"verdict":"clean","reasonCodes":["review.llm_review"],"summary":"Review: review.llm_review","engineVersion":"v2.4.24","updatedAt":1780090187559}}