report-email
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.
- License 许可
- ISC
- 最近更新
- 2026-11-08
- Stars
- ★ 6
- Forks
- 1
01 前言 Front Matter
- name
- report-email
- uses
- [ "get_totals_tool" ]
- title
- Report email
- tools
- [ "send_report_email_tool" ]
- command
- requires
- [ "email" ]
- max_rounds
- 6
- description
- 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.
- suggested_model
- null
02 资源文件 5
- 脚本__init__.py—
- 许可证LICENSE1.0 KB
- 参考文档SOURCE.md363 B
- 脚本tools.py4.8 KB
- 参考文档TRUST.auto.yaml2.2 KB
03 SKILL.md 正文
Report email
You write the report the way a planner would send a client summary: the conclusion first, the
evidence after, the actions last, short enough to be read on a phone. Then you send it with
send_report_email_tool. The recipient is always the user's own account email; you cannot
choose or change it, and you must never claim to have sent anything elsewhere.
0. Only send when asked
- Send only if the user explicitly asked to be emailed (this skill being active because they typed the command counts as asking). Never email proactively, and never on a schedule.
- One email per request. If the user asks for changes afterwards, show what changes and ask before sending a second one.
- If the subject or scope is ambiguous (which period, which analysis), ask one short question first. If it is clear, do not ask; pick a descriptive subject yourself.
1. Make sure the content exists
- If the report you are about to send is already in this conversation (for example, you just produced a review or a portfolio analysis), reuse its figures exactly. Do not change numbers, and do not add figures that no tool returned.
- If the user wants something that has not been produced yet ("email me my spending summary
for the last 3 months"), gather it first: load the matching skill with
load_skill_tool(financial-health-review for personal finances, portfolio-review for the portfolio), or use the core tools (get_totals_tooland friends). Then write the report from those results. - Figures from the core tools are net of reimbursements (friends repaying shared expenses); use
effective_amount, never rawamount, if you total transactions yourself. - Never write a report from memory or general knowledge. If the data is missing, say so in the report's data notes instead of filling the gap.
2. Report structure (Markdown)
Use this order. Headings with ##, tables in pipe syntax, no raw HTML, no images, links only
with http/https. The report is rendered to email HTML and, optionally, PDF.
# <Title>plus a one-line subtitle with the period or "as of" date.- Summary (2-4 sentences or 3 bullets): the verdict and the one or two things that matter most, with numbers. A reader who stops here should still know what to do.
- Key figures table: Metric | Value | Reading (good / watch / act). 5-8 rows. Keep every cell short; put currency and unit in the value ("1,240 EUR", "18%").
- Sections: one
##per topic (cash flow, spending, debt, portfolio...). Each starts with the finding in one sentence, then a small table or 3-5 bullets. Prefer tables for anything with 3 or more comparable numbers; bullets for reasoning. - Recommended actions: a numbered list, each item "what, number, effect, main trade-off". 3-5 items, most valuable first.
- Data notes and caveats: data date or window, gaps (short history, uncategorised spending, missing prices, currencies not converted), assumptions used.
- Final line, exactly this sentence in italics, translated into the user's language: This is automated guidance generated from your own recorded data and public market information. It is not regulated financial advice, and the reasoning may contain errors. Check anything you intend to act on.
3. Style
- Write in the user's language, plain and direct; no filler, no emojis, no hype.
- Length: 300-700 words for a normal report; hard limit 60,000 characters (the tool rejects more). Long raw data lists do not belong in an email: summarise, and offer the detail in chat.
- Numbers: consistent currency and decimals; percentages with one decimal at most. Dates in ISO or the user's usual format; always state the period.
- No price predictions or guarantees. Analyst views are attributed. Recommendations must name their main risk, as in chat.
- Subject: specific and dated, for example "Financial health review, Apr-Sep 2026". Avoid generic subjects like "Report".
4. Sending
Call send_report_email_tool(subject, markdown, attach_pdf):
attach_pdf=trueonly if the user asked for a PDF, an attachment or something to keep or print. Otherwise false.- Read the result:
sent: true: confirm in one sentence ("Sent to <to>", add "with a PDF attached" ifattached_pdf). Do not paste the whole report again.errormentions disabled notifications: tell the user email is turned off in their notification settings and offer the report in chat instead.errormentions SMTP configuration: tell them no mail server is configured (Settings, notifications, or the server's SMTP settings) and offer the report in chat.errorsays the report is too long: shorten it (drop the lowest-value section, compress tables) and call once more.- Any other error: say it failed, do not retry more than once, and offer the report in chat.
- Never state or imply that the email was delivered unless
sentis true.
5. Output in chat after sending
Two or three lines: what was sent (subject, period, PDF yes/no), to which address (from the tool result), and an offer to adjust. Do not repeat the report.
04 同仓库更多 Skills
other-skill
A skill with no tools and an investments requirement.
demo-skill
Use for demo work. Second line of the description.
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.
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.
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.
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.