一键导入
check-bills
List bills with due_date in a window (default = unpaid only)
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
List bills with due_date in a window (default = unpaid only)
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | check_bills |
| description | List bills with due_date in a window (default = unpaid only) |
| when_to_use | - Briefing template needs a per-day or per-period bills section - User asks "what bills are due this week / tomorrow" - For "how much is the X bill" / "when is X due" — call `find_bill_by_name` first, it returns the row to you; this skill only renders cards. NOT for "find me a Rechnung / invoice / scanned bill PDF" — that's a document search; route to `search_documents`. The word "Rechnung" in German means both "bill" (this skill, a row in Yorik's bills table) AND "invoice" (a scanned document, search_documents territory). When the user wants to OPEN / READ / SEE the document, prefer search_documents — even if a bills row also exists, the user is asking about the PDF, not the calendar reminder. |
| inputs | {"start_iso":{"type":"string","required":false,"description":"ISO date or datetime. Only bills with due_date >= this are included."},"end_iso":{"type":"string","required":false,"description":"ISO date or datetime. Only bills with due_date <= this are included."},"include_paid":{"type":"boolean","required":false,"default":false,"description":"Set true to also return already-paid bills (e.g. for the yesterday recap)."}} |
| outputs | {"bills":{"type":"array","description":"Each row has id, name, amount, currency, due_date, recurring, paid, email_message_id, document_id.\ndocument_id (when set) points to the scanned PDF in the documents store — pass it to read_document(doc_id=document_id) when the user wants to see the actual bill.\n"},"count":{"type":"integer"}} |
| tags | ["bills","list","read"] |
| permissions | ["admin","member","restricted"] |
Read-only date-bounded query against the bills table. Returns the same shape briefing_routes' BillsList renderer expects.
Reply ONE short sentence with the count; do NOT enumerate bills in prose — the cards/briefing row are the answer.
A row from this skill is a scheduled / expected payment, not proof that a bill document exists. A row with document_id set has a scan; a row with document_id null has only the table entry. Never describe a row as "the bill" without checking whether it has a document_id — the user thinks of "Rechnung" as the PDF, not the table row.
If document_id is set, call read_document(doc_id=document_id) and answer from that text. If document_id is null, call search_documents with the bill name + amount + due date as the query before answering. If search_documents returns nothing relevant, say plainly that the bill is scheduled but no scan is on file yet — do not surface an unrelated document as if it were the bill.
Create a new contact (person or business) with ALL its channels and address in one call.
Fetch the full body and metadata of a single email by message_id.
Record a new bill / recurring expense
Create a new calendar event in Yorik's local calendar
Attach a postal address (home, work, billing, shipping) to an existing contact.
Attach a channel (email, phone, whatsapp, signal, sms, website, social) to a contact.