[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M79D1PS76RVTQ2T4PYFNH7PD":3,"skill-same:01M79D1PS76RVTQ2T4PYFNH7PD":46},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":18,"linkOnly":19,"markdownContent":20,"markdownBody":21,"frontMatter":22,"refName":23,"commitSha":24,"skillDirectory":25,"forksCount":26,"repositoryHtmlUrl":27,"repositoryHomepageUrl":28,"ownerHtmlUrl":29,"ownerBlogUrl":28,"ownerDescription":30,"updatedAt":31,"install":32,"resources":45},"01M79D1PS76RVTQ2T4PYFNH7PD","cfo-statement-fetch",null,"Collect the month's bank and card statements from the finance folder and normalise them into one table.","PersonalClaw\u002FPersonalClaw","PersonalClaw","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F306824595?v=4","01M79D0KNQCPQXVH30C5PREVCW","01M79D0KPT5XDNEAW87TEYQW3V",9,"MIT","https:\u002F\u002Fgithub.com\u002FPersonalClaw\u002FPersonalClaw\u002Fblob\u002Fmain\u002Fsrc\u002Fpersonalclaw\u002Fpacks\u002Fbundled\u002Fpersonal-cfo\u002Fskills\u002Fcfo-statement-fetch\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: cfo-statement-fetch\ndescription: Collect the month's bank and card statements from the finance folder and normalise them into one table.\n---\n\n# Collect this month's statements\n\nUse this when a budget review needs the raw numbers first.\n\n## Steps\n\n1. Ask which month to close if the user has not said. Default to the previous full month.\n2. Read every statement file in the finance folder bound during pack setup (`finance_folder`).\n   CSV, TSV and plain-text exports only — do not open anything that looks like a credential\n   file, and never copy account numbers into the summary.\n3. Normalise every row to `date, description, amount, currency, account`. Negative amounts\n   are outflows.\n4. Report the row count per source file and any file you could not parse, by name. A silently\n   skipped statement is a wrong budget.\n\n## What not to do\n\n- Do not guess at a missing month. Say the month is incomplete and name the gap.\n- Do not store the normalised table anywhere outside the working directory for this task.\n","# Collect this month's statements\n\nUse this when a budget review needs the raw numbers first.\n\n## Steps\n\n1. Ask which month to close if the user has not said. Default to the previous full month.\n2. Read every statement file in the finance folder bound during pack setup (`finance_folder`).\n   CSV, TSV and plain-text exports only — do not open anything that looks like a credential\n   file, and never copy account numbers into the summary.\n3. Normalise every row to `date, description, amount, currency, account`. Negative amounts\n   are outflows.\n4. Report the row count per source file and any file you could not parse, by name. A silently\n   skipped statement is a wrong budget.\n\n## What not to do\n\n- Do not guess at a missing month. Say the month is incomplete and name the gap.\n- Do not store the normalised table anywhere outside the working directory for this task.\n",{"name":5,"description":7},"main","cfba933d376f99978247a7d18b592232c649e87a","src\u002Fpersonalclaw\u002Fpacks\u002Fbundled\u002Fpersonal-cfo\u002Fskills\u002Fcfo-statement-fetch",6,"https:\u002F\u002Fgithub.com\u002FPersonalClaw\u002FPersonalClaw","https:\u002F\u002Fpersonalclaw.dev","https:\u002F\u002Fgithub.com\u002FPersonalClaw","Self-hosted personal AI agent — an agentic OS for one person: chat, goal loops, memory, knowledge, automation, apps. Local-first, zero telemetry, MIT.","2026-11-15 04:04:52",{"source":8,"skillName":5,"commands":33,"prompt":43,"zipAvailable":44},[34,37,40],{"tool":35,"command":36},"npx","npx skills add PersonalClaw\u002FPersonalClaw --skill cfo-statement-fetch",{"tool":38,"command":39},"bunx","bunx skills add PersonalClaw\u002FPersonalClaw --skill cfo-statement-fetch",{"tool":41,"command":42},"pnpm","pnpm dlx skills add PersonalClaw\u002FPersonalClaw --skill cfo-statement-fetch","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FPersonalClaw\u002FPersonalClaw\u002Fblob\u002Fmain\u002Fsrc\u002Fpersonalclaw\u002Fpacks\u002Fbundled\u002Fpersonal-cfo\u002Fskills\u002Fcfo-statement-fetch\u002FSKILL.md",true,[],[47,54,61,68,75,82],{"skillNo":48,"name":49,"nameZh":6,"description":50,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":51,"categories":52,"keywords":53,"publishedAt":18},"01M79D5S4EBPTFGMRDY7AM7ERD","ledger-read","Read a ledger CSV","https:\u002F\u002Fgithub.com\u002FPersonalClaw\u002FPersonalClaw\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fexternal_formats_golden\u002Fskill-md\u002Fskills\u002Fledger-read\u002FSKILL.md",[],[],{"skillNo":55,"name":56,"nameZh":6,"description":57,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":58,"categories":59,"keywords":60,"publishedAt":18},"01M79D5QFEBGM2PTM21WVTA90K","budget-coach","Weekly spend review","https:\u002F\u002Fgithub.com\u002FPersonalClaw\u002FPersonalClaw\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fexternal_formats_golden\u002Fskill-md\u002Fskills\u002Fbudget-coach\u002FSKILL.md",[],[],{"skillNo":62,"name":63,"nameZh":6,"description":64,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":65,"categories":66,"keywords":67,"publishedAt":18},"01M79D5MTEV62YBKTNY874Y9C4","yt-transcript","Fetch the transcript of a YouTube video and summarise it with timestamps. Use when the user shares a youtube.com or youtu.be link and asks what it says.","https:\u002F\u002Fgithub.com\u002FPersonalClaw\u002FPersonalClaw\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fagent_tool_skills\u002Fyt-transcript\u002FSKILL.md",[],[],{"skillNo":69,"name":70,"nameZh":6,"description":71,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":72,"categories":73,"keywords":74,"publishedAt":18},"01M79D5JG2M47DS0X3GRZ94PXY","incident-writeup","Turn my incident notes, Slack excerpts and graphs into a blameless postmortem in Cartwheel's format. Use after an on-call incident once the mitigation is in.","https:\u002F\u002Fgithub.com\u002FPersonalClaw\u002FPersonalClaw\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fagent_tool_skills\u002Fincident-writeup\u002FSKILL.md",[],[],{"skillNo":76,"name":77,"nameZh":6,"description":78,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":81,"publishedAt":18},"01M79D5DX9SWDFDAFW3AD5FATT","feedsmith-release","Cut a feedsmith release - bump the version, move the Unreleased changelog section, tag, and draft the GitHub release notes. Use when I say \"release feedsmith\" or \"cut 0.x\".","https:\u002F\u002Fgithub.com\u002FPersonalClaw\u002FPersonalClaw\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fagent_tool_skills\u002Ffeedsmith-release\u002FSKILL.md",[],[],{"skillNo":83,"name":84,"nameZh":6,"description":85,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":88,"publishedAt":18},"01M79D59Z7A0FEZSB5AEQYHNSR","feedsmith-bench","Benchmark feedsmith fetch against a real OPML, cold and warm, and compare with main. Use before merging anything that touches fetch.py or store.py.","https:\u002F\u002Fgithub.com\u002FPersonalClaw\u002FPersonalClaw\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fagent_tool_homes\u002Fnoor\u002F.codex\u002Fskills\u002Ffeedsmith-bench\u002FSKILL.md",[],[]]