[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CPD5WMS8B44FTZG60VM575":3,"skill-same:01M6CPD5WMS8B44FTZG60VM575":104},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":31,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":56,"commitSha":57,"skillDirectory":58,"forksCount":59,"repositoryHtmlUrl":60,"repositoryHomepageUrl":61,"ownerHtmlUrl":62,"ownerBlogUrl":63,"ownerDescription":6,"updatedAt":64,"install":65,"resources":78},"01M6CPD5WMS8B44FTZG60VM575","report-email",null,"Use when the user asks to be emailed a report, summary or analysis (optionally as a PDF): \"email me this\", \"send me a report\", \"mail me the review as a PDF\". Writes a properly structured Markdown report and sends it to the user's own address.","Lefyd24\u002FHomeFinance","Lefyd24","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F95217224?v=4","01M6CPCP2WFVRF5A4JYHNBP5GK","Lefteris Fthenos","01M6CPCP71KN0QDC7HG8X5PYG5",6,"ISC","https:\u002F\u002Fgithub.com\u002FLefyd24\u002FHomeFinance\u002Fblob\u002Fmain\u002Fbackend\u002Fapp\u002Fai_skills\u002Freport_email\u002FSKILL.md",[18,23,26],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000002","文档处理","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000005","邮件与沟通",{"categoryNo":27,"categoryName":28,"taxonomyType":29,"taxonomyTypeDesc":30},"01JBSEEDCAT000000000000034","行政与办公人员","PROFESSION","适用职业",[32,33,34,35,36,37,38,39,40,41,42,43],"report","email","report email","PDF","review","analysis","markdown","tool","user","use","summary","me","2026-11-10 10:12:30",false,"---\nname: report-email\ntitle: Report email\ndescription: >\n  Use when the user asks to be emailed a report, summary or analysis (optionally as a PDF):\n  \"email me this\", \"send me a report\", \"mail me the review as a PDF\". Writes a properly\n  structured Markdown report and sends it to the user's own address.\ncommand: email\ntools: [send_report_email_tool]\nuses: [get_totals_tool]\nmax_rounds: 6\nrequires: [email]\nsuggested_model: null\n---\n\n# Report email\n\nYou write the report the way a planner would send a client summary: the conclusion first, the\nevidence after, the actions last, short enough to be read on a phone. Then you send it with\n`send_report_email_tool`. The recipient is always the user's own account email; you cannot\nchoose or change it, and you must never claim to have sent anything elsewhere.\n\n## 0. Only send when asked\n- Send only if the user explicitly asked to be emailed (this skill being active because they\n  typed the command counts as asking). Never email proactively, and never on a schedule.\n- One email per request. If the user asks for changes afterwards, show what changes and ask\n  before sending a second one.\n- If the subject or scope is ambiguous (which period, which analysis), ask one short question\n  first. If it is clear, do not ask; pick a descriptive subject yourself.\n\n## 1. Make sure the content exists\n- If the report you are about to send is already in this conversation (for example, you just\n  produced a review or a portfolio analysis), reuse its figures exactly. Do not change numbers,\n  and do not add figures that no tool returned.\n- If the user wants something that has not been produced yet (\"email me my spending summary\n  for the last 3 months\"), gather it first: load the matching skill with `load_skill_tool`\n  (financial-health-review for personal finances, portfolio-review for the portfolio), or use\n  the core tools (`get_totals_tool` and friends). Then write the report from those results.\n- Figures from the core tools are net of reimbursements (friends repaying shared expenses); use\n  `effective_amount`, never raw `amount`, if you total transactions yourself.\n- Never write a report from memory or general knowledge. If the data is missing, say so in\n  the report's data notes instead of filling the gap.\n\n## 2. Report structure (Markdown)\nUse this order. Headings with `##`, tables in pipe syntax, no raw HTML, no images, links only\nwith http\u002Fhttps. The report is rendered to email HTML and, optionally, PDF.\n\n1. `# \u003CTitle>` plus a one-line subtitle with the period or \"as of\" date.\n2. **Summary** (2-4 sentences or 3 bullets): the verdict and the one or two things that matter\n   most, with numbers. A reader who stops here should still know what to do.\n3. **Key figures** table: Metric | Value | Reading (good \u002F watch \u002F act). 5-8 rows. Keep every\n   cell short; put currency and unit in the value (\"1,240 EUR\", \"18%\").\n4. **Sections**: one `##` per topic (cash flow, spending, debt, portfolio...). Each starts with\n   the finding in one sentence, then a small table or 3-5 bullets. Prefer tables for anything\n   with 3 or more comparable numbers; bullets for reasoning.\n5. **Recommended actions**: a numbered list, each item \"what, number, effect, main trade-off\".\n   3-5 items, most valuable first.\n6. **Data notes and caveats**: data date or window, gaps (short history, uncategorised\n   spending, missing prices, currencies not converted), assumptions used.\n7. Final line, exactly this sentence in italics, translated into the user's language:\n   *This is automated guidance generated from your own recorded data and public market\n   information. It is not regulated financial advice, and the reasoning may contain errors.\n   Check anything you intend to act on.*\n\n## 3. Style\n- Write in the user's language, plain and direct; no filler, no emojis, no hype.\n- Length: 300-700 words for a normal report; hard limit 60,000 characters (the tool rejects\n  more). Long raw data lists do not belong in an email: summarise, and offer the detail in chat.\n- Numbers: consistent currency and decimals; percentages with one decimal at most. Dates in ISO\n  or the user's usual format; always state the period.\n- No price predictions or guarantees. Analyst views are attributed. Recommendations must name\n  their main risk, as in chat.\n- Subject: specific and dated, for example \"Financial health review, Apr-Sep 2026\". Avoid\n  generic subjects like \"Report\".\n\n## 4. Sending\nCall `send_report_email_tool(subject, markdown, attach_pdf)`:\n- `attach_pdf=true` only if the user asked for a PDF, an attachment or something to keep or\n  print. Otherwise false.\n- Read the result:\n  - `sent: true`: confirm in one sentence (\"Sent to \u003Cto>\", add \"with a PDF attached\" if\n    `attached_pdf`). Do not paste the whole report again.\n  - `error` mentions disabled notifications: tell the user email is turned off in their\n    notification settings and offer the report in chat instead.\n  - `error` mentions SMTP configuration: tell them no mail server is configured (Settings,\n    notifications, or the server's SMTP settings) and offer the report in chat.\n  - `error` says the report is too long: shorten it (drop the lowest-value section, compress\n    tables) and call once more.\n  - Any other error: say it failed, do not retry more than once, and offer the report in chat.\n- Never state or imply that the email was delivered unless `sent` is true.\n\n## 5. Output in chat after sending\nTwo or three lines: what was sent (subject, period, PDF yes\u002Fno), to which address (from the\ntool result), and an offer to adjust. Do not repeat the report.\n","# Report email\n\nYou write the report the way a planner would send a client summary: the conclusion first, the\nevidence after, the actions last, short enough to be read on a phone. Then you send it with\n`send_report_email_tool`. The recipient is always the user's own account email; you cannot\nchoose or change it, and you must never claim to have sent anything elsewhere.\n\n## 0. Only send when asked\n- Send only if the user explicitly asked to be emailed (this skill being active because they\n  typed the command counts as asking). Never email proactively, and never on a schedule.\n- One email per request. If the user asks for changes afterwards, show what changes and ask\n  before sending a second one.\n- If the subject or scope is ambiguous (which period, which analysis), ask one short question\n  first. If it is clear, do not ask; pick a descriptive subject yourself.\n\n## 1. Make sure the content exists\n- If the report you are about to send is already in this conversation (for example, you just\n  produced a review or a portfolio analysis), reuse its figures exactly. Do not change numbers,\n  and do not add figures that no tool returned.\n- If the user wants something that has not been produced yet (\"email me my spending summary\n  for the last 3 months\"), gather it first: load the matching skill with `load_skill_tool`\n  (financial-health-review for personal finances, portfolio-review for the portfolio), or use\n  the core tools (`get_totals_tool` and friends). Then write the report from those results.\n- Figures from the core tools are net of reimbursements (friends repaying shared expenses); use\n  `effective_amount`, never raw `amount`, if you total transactions yourself.\n- Never write a report from memory or general knowledge. If the data is missing, say so in\n  the report's data notes instead of filling the gap.\n\n## 2. Report structure (Markdown)\nUse this order. Headings with `##`, tables in pipe syntax, no raw HTML, no images, links only\nwith http\u002Fhttps. The report is rendered to email HTML and, optionally, PDF.\n\n1. `# \u003CTitle>` plus a one-line subtitle with the period or \"as of\" date.\n2. **Summary** (2-4 sentences or 3 bullets): the verdict and the one or two things that matter\n   most, with numbers. A reader who stops here should still know what to do.\n3. **Key figures** table: Metric | Value | Reading (good \u002F watch \u002F act). 5-8 rows. Keep every\n   cell short; put currency and unit in the value (\"1,240 EUR\", \"18%\").\n4. **Sections**: one `##` per topic (cash flow, spending, debt, portfolio...). Each starts with\n   the finding in one sentence, then a small table or 3-5 bullets. Prefer tables for anything\n   with 3 or more comparable numbers; bullets for reasoning.\n5. **Recommended actions**: a numbered list, each item \"what, number, effect, main trade-off\".\n   3-5 items, most valuable first.\n6. **Data notes and caveats**: data date or window, gaps (short history, uncategorised\n   spending, missing prices, currencies not converted), assumptions used.\n7. Final line, exactly this sentence in italics, translated into the user's language:\n   *This is automated guidance generated from your own recorded data and public market\n   information. It is not regulated financial advice, and the reasoning may contain errors.\n   Check anything you intend to act on.*\n\n## 3. Style\n- Write in the user's language, plain and direct; no filler, no emojis, no hype.\n- Length: 300-700 words for a normal report; hard limit 60,000 characters (the tool rejects\n  more). Long raw data lists do not belong in an email: summarise, and offer the detail in chat.\n- Numbers: consistent currency and decimals; percentages with one decimal at most. Dates in ISO\n  or the user's usual format; always state the period.\n- No price predictions or guarantees. Analyst views are attributed. Recommendations must name\n  their main risk, as in chat.\n- Subject: specific and dated, for example \"Financial health review, Apr-Sep 2026\". Avoid\n  generic subjects like \"Report\".\n\n## 4. Sending\nCall `send_report_email_tool(subject, markdown, attach_pdf)`:\n- `attach_pdf=true` only if the user asked for a PDF, an attachment or something to keep or\n  print. Otherwise false.\n- Read the result:\n  - `sent: true`: confirm in one sentence (\"Sent to \u003Cto>\", add \"with a PDF attached\" if\n    `attached_pdf`). Do not paste the whole report again.\n  - `error` mentions disabled notifications: tell the user email is turned off in their\n    notification settings and offer the report in chat instead.\n  - `error` mentions SMTP configuration: tell them no mail server is configured (Settings,\n    notifications, or the server's SMTP settings) and offer the report in chat.\n  - `error` says the report is too long: shorten it (drop the lowest-value section, compress\n    tables) and call once more.\n  - Any other error: say it failed, do not retry more than once, and offer the report in chat.\n- Never state or imply that the email was delivered unless `sent` is true.\n\n## 5. Output in chat after sending\nTwo or three lines: what was sent (subject, period, PDF yes\u002Fno), to which address (from the\ntool result), and an offer to adjust. Do not repeat the report.\n",{"name":5,"uses":49,"title":51,"tools":52,"command":33,"requires":54,"max_rounds":14,"description":55,"suggested_model":6},[50],"get_totals_tool","Report email",[53],"send_report_email_tool",[33],"Use when the user asks to be emailed a report, summary or analysis (optionally as a PDF): \"email me this\", \"send me a report\", \"mail me the review as a PDF\". Writes a properly structured Markdown report and sends it to the user's own address.\n","main","809d65610efe5f7d855069c968f79b2bc716fb89","backend\u002Fapp\u002Fai_skills\u002Freport_email",1,"https:\u002F\u002Fgithub.com\u002FLefyd24\u002FHomeFinance","https:\u002F\u002Flefyd24.github.io\u002FHomeFinance\u002F","https:\u002F\u002Fgithub.com\u002FLefyd24","https:\u002F\u002Ffthenos.work","2026-11-08 07:16:43",{"source":8,"skillName":5,"commands":66,"prompt":76,"zipAvailable":77},[67,70,73],{"tool":68,"command":69},"npx","npx skills add Lefyd24\u002FHomeFinance --skill report-email",{"tool":71,"command":72},"bunx","bunx skills add Lefyd24\u002FHomeFinance --skill report-email",{"tool":74,"command":75},"pnpm","pnpm dlx skills add Lefyd24\u002FHomeFinance --skill report-email","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FLefyd24\u002FHomeFinance\u002Fblob\u002Fmain\u002Fbackend\u002Fapp\u002Fai_skills\u002Freport_email\u002FSKILL.md",true,[79,85,90,96,100],{"path":80,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":83,"sourceHtmlUrl":84},"__init__.py","SCRIPT","脚本",0,"https:\u002F\u002Fgithub.com\u002FLefyd24\u002FHomeFinance\u002Fblob\u002Fmain\u002Fbackend\u002Fapp\u002Fai_skills\u002Freport_email\u002F__init__.py",{"path":86,"resourceType":86,"resourceTypeDesc":87,"sizeBytes":88,"sourceHtmlUrl":89},"LICENSE","许可证",1063,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-spot-aml-red-flags-in-wallet-activity\u002FLICENSE",{"path":91,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":94,"sourceHtmlUrl":95},"SOURCE.md","REFERENCE","参考文档",363,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-spot-aml-red-flags-in-wallet-activity\u002FSOURCE.md",{"path":97,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":98,"sourceHtmlUrl":99},"tools.py",4943,"https:\u002F\u002Fgithub.com\u002FLefyd24\u002FHomeFinance\u002Fblob\u002Fmain\u002Fbackend\u002Fapp\u002Fai_skills\u002Freport_email\u002Ftools.py",{"path":101,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":102,"sourceHtmlUrl":103},"TRUST.auto.yaml",2270,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-spot-aml-red-flags-in-wallet-activity\u002FTRUST.auto.yaml",[105,118,130,153,172,187],{"skillNo":106,"name":107,"nameZh":6,"description":108,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":109,"categories":110,"keywords":114,"publishedAt":44},"01M6CPDEB1TCPW1R6XR98SBQSH","other-skill","A skill with no tools and an investments requirement.","https:\u002F\u002Fgithub.com\u002FLefyd24\u002FHomeFinance\u002Fblob\u002Fmain\u002Fbackend\u002Ftests\u002Ffixtures\u002Fai_skills\u002Fgood\u002Fother_skill\u002FSKILL.md",[111],{"categoryNo":112,"categoryName":113,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[115,116,117],"other skill","no tools","Tools",{"skillNo":119,"name":120,"nameZh":6,"description":121,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":122,"categories":123,"keywords":125,"publishedAt":44},"01M6CPDBW95ZXM409KJ0G6WKF2","demo-skill","Use for demo work. Second line of the description.","https:\u002F\u002Fgithub.com\u002FLefyd24\u002FHomeFinance\u002Fblob\u002Fmain\u002Fbackend\u002Ftests\u002Ffixtures\u002Fai_skills\u002Fgood\u002Fdemo_skill\u002FSKILL.md",[124],{"categoryNo":112,"categoryName":113,"taxonomyType":21,"taxonomyTypeDesc":22},[126,127,33,41,128,39,129],"demo skill","demo","work","lookup",{"skillNo":131,"name":132,"nameZh":6,"description":133,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":134,"categories":135,"keywords":139,"publishedAt":44},"01M6CPD8TKFS2ZRSC6B92H5TGE","web-research","Look things up on the web when Yahoo market data cannot answer them (regulation, lawsuits, product launches, management changes, macro events, recent news the feed misses). Returns cited sources; never used for prices or financial statements.","https:\u002F\u002Fgithub.com\u002FLefyd24\u002FHomeFinance\u002Fblob\u002Fmain\u002Fbackend\u002Fapp\u002Fai_skills\u002Fweb_research\u002FSKILL.md",[136],{"categoryNo":137,"categoryName":138,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究",[140,141,142,39,143,144,145,146,147,148,149,150,151,152],"web research","web","research","returns","data","macro","search","product","Market","look","up","never","management",{"skillNo":154,"name":155,"nameZh":6,"description":156,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":157,"categories":158,"keywords":159,"publishedAt":44},"01M6CPD3514RDT3HNC1TQE1C6E","portfolio-review","Use when the user wants their investment portfolio reviewed or rebalanced: drift versus a target allocation, concentration, currency exposure, fund costs, \"am I on track\", \"how should I split my next contribution\". Needs investment accounts to be connected.","https:\u002F\u002Fgithub.com\u002FLefyd24\u002FHomeFinance\u002Fblob\u002Fmain\u002Fbackend\u002Fapp\u002Fai_skills\u002Fportfolio_review\u002FSKILL.md",[],[36,160,161,162,163,164,165,41,166,40,167,168,169,170,171,39],"portfolio review","portfolio","next","drift","investment","fund","overview","profile","status","risk","how","plan",{"skillNo":173,"name":174,"nameZh":6,"description":175,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":176,"categories":177,"keywords":178,"publishedAt":44},"01M6CPCZQW8QKXYB7KV8R2KT17","opportunity-screening","Find investment candidates the user does not already hold (find me ideas, what should I add, opportunities for my profile). Derives screens from the investor profile and portfolio gaps, shortlists, deep-dives the best two or three, and returns a ranked table including a low-cost index baseline.","https:\u002F\u002Fgithub.com\u002FLefyd24\u002FHomeFinance\u002Fblob\u002Fmain\u002Fbackend\u002Fapp\u002Fai_skills\u002Fopportunity_screening\u002FSKILL.md",[],[179,142,180,181,143,182,39,183,184,168,40,167,166,161,185,165,164,186,43],"opportunity screening","find","technical","table","baseline","index","cost","three",{"skillNo":188,"name":189,"nameZh":6,"description":190,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":191,"categories":192,"keywords":196,"publishedAt":44},"01M6CPCWJ43W1E8CW5F0G1KGRQ","financial-health-review","Use when the user asks for a review, check-up or analysis of their own finances over time: how they are doing, where the money goes, savings rate, spending trends, subscriptions, budget or debt priorities, or \"what should I fix first\". Produces a structured report with 3-5 prioritised, quantified actions.","https:\u002F\u002Fgithub.com\u002FLefyd24\u002FHomeFinance\u002Fblob\u002Fmain\u002Fbackend\u002Fapp\u002Fai_skills\u002Ffinancial_health_review\u002FSKILL.md",[193],{"categoryNo":194,"categoryName":195,"taxonomyType":29,"taxonomyTypeDesc":30},"01JBSEEDCAT000000000000040","财务",[36,197,198,199,200,201,37,168,32,202,203,204,205,206,165,150,41,207,39,170],"financial health review","financial health","health","Budget","first","audit","actions","check","goals","subscriptions","fix"]