expense-filer
Turn a pile of receipts into a filed expense report through a tool-using agent — extraction, policy checks, and categorization done for you; submiss…
它会碰到什么
这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。
技能内容
Expense Filer Skill
Nobody's judgment is improved by hand-typing receipts. This skill does the clerk work — extraction, categorization, policy screening, currency normalization — and stops at the line that matters: submission happens only after a human reads the report. Numbers must reconcile; anything ambiguous is flagged, never guessed.
What This Skill Produces
- The itemized report — merchant, date, amount, currency, category, project/cost-center, per receipt
- Policy flags — over-limit items, missing-itemization risks, personal-expense suspicion, duplicates, each with the fix
- The reconciliation line — receipts total vs report total, to the cent
- The filing plan — what gets submitted where, gated on approval
Required Inputs
Ask for these if not provided:
- The receipts — images, PDFs, forwarded emails, or a folder the agent can read
- The policy — per-diem limits, category caps, itemization rules (or "use conservative defaults and flag everything near an edge")
- Context — trip/project the expenses attach to, cost center, currency of the report
- The expense system — Concur/Expensify/Ramp/a spreadsheet — and whether draft-only or submit is desired
Framework
- Extract with provenance — every line links to its source receipt; a number without a receipt is a flag, not a line.
- Categorize by the policy's taxonomy, not intuition; unknown category → flag with a best-guess clearly marked.
- Screen before math: duplicates (same merchant+amount±1 day), split-transaction patterns, weekend/personal-suspect items, alcohol-on-meal-receipt rules — flag, never silently drop or include.
- Normalize currency at the receipt-date rate, shown per line.
- Reconcile or refuse: if extracted totals and report totals disagree, the report doesn't ship.
Output Format
Expense Report: [trip/project] — [period]
| # | Date | Merchant | Amount | Curr | → [report curr] | Category | Receipt | Flags |
|---|---|---|---|---|---|---|---|---|
Total: [n] items · [amount] · reconciles ✓
Flags needing you: [each with the question to answer]
Quality Checks
- [ ] Every line traces to a receipt; every receipt appears exactly once
- [ ] Totals reconcile to the cent, conversion shown per line
- [ ] Every policy edge is flagged with the specific rule it grazes
- [ ] Nothing ambiguous was guessed — flags ask, lines assert
Anti-Patterns
- [ ] Do not round away discrepancies — a report that's $3 off is wrong, not close
- [ ] Do not categorize creatively to fit under caps — flag the overage; gaming policy is the user's career, not your cleverness
- [ ] Do not drop suspect items silently — surfacing them is the service
- [ ] Do not submit anything — filing is gated below, always
Execution
For agents with file/OCR access and expense-system access (API or UI). Without tools, the report itself is the deliverable. Rules per [SKILLSPEC.md §5](../../SKILLSPEC.md).
Preconditions
- The report above produced, flags resolved by the user, and the final version explicitly approved by a human.
- Expense-system access authenticated; the target report/trip container named.
- The filing plan (create entries, attach receipts, save as draft vs submit) displayed and confirmed — submit requires its own explicit yes.
Allowed actions
- Create the expense entries exactly as in the approved report; attach the corresponding receipt files.
- Save the report as a draft in the system.
- Submit only if the user's approval explicitly included the word-level go for submission.
- Nothing else: no editing existing reports, no touching payment methods, no approving on behalf of anyone.
Verification
- Re-read the created report from the system: line count, per-line amounts, and total match the approved version; every entry shows its attachment.
- Report the system's own total back next to the approved total.
Rollback
- Draft reports: delete the draft. Submitted reports: recall/withdraw if the system allows; otherwise notify the user immediately with the exact state.
- Stop and ask a human if: the system rejects an entry, an attachment fails, or any created total drifts from the approved one.
想直接用这个技能?
本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。
同名技能的其他版本
有 3 个不同仓库或目录里都有叫 expense-filer 的技能。它们内容并不相同,别混用:
- mohitagw15856/pm-claude-skills — Turn a pile of receipts into a filed expense report through a tool-using agent — extractio
- mohitagw15856/pm-claude-skills — Turn a pile of receipts into a filed expense report through a tool-using agent — extractio