Kelly invoice sheet
Extract invoices, receipts, credit notes, statements, PDFs, images, docs, and spreadsheet-like invoice exports into a local reviewable table with field confidence, line items, approval decisions, and CSV/JSON export. Use when the user invokes /kelly-invoice-sheet or $kelly-invoice-sheet, asks for "Invoice转表格", invoice OCR, receipt-to-spreadsheet, invoice data extraction, bookkeeping import prep, or a Lido-style Extract Data workflow with a local App-in-Skill UI.From its SKILL.md
npx -y skills add mr-kelly/skills --skill kelly-invoice-sheetAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
5.5 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it
Kelly Invoice Sheet
Overview
Use this skill to turn invoice files or extracted invoice text into a structured batch that the user can review in a local spreadsheet-style UI. The skill owns extraction, reasoning, validation, and export; the app only reads/writes local handoff files and records human decisions.
Default interaction mode: App UI. Unless the user explicitly asks for chat-only handling, prepare or load a batch, start/reuse the local app with app/start.sh, and give the actual local URL.
App UI Screenshots
<table> <tr> <td width="33%"><img src="assets/screenshots/overview.webp" alt="Kelly Invoice Sheet spreadsheet extraction desk"></td> <td width="33%"><img src="assets/screenshots/detail.webp" alt="Kelly Invoice Sheet invoice detail review"></td> <td width="33%"><img src="assets/screenshots/extract-data.webp" alt="Kelly Invoice Sheet Extract Data upload modal"></td> </tr> <tr> <td><strong>Spreadsheet extraction desk</strong><br>Sheet-like invoice table with extracted rows, status filters, confidence flags, and human-attention counts.</td> <td><strong>Invoice detail review</strong><br>Editable invoice fields, line items, confidence notes, and approve/request-changes/block controls.</td> <td><strong>Extract Data upload</strong><br>Lido-style upload modal with local file, Google Drive, OneDrive, and email source options.</td> </tr> </table>Workflow
- Accept invoice source files or source text from the user. Supported workflow inputs include PDFs, images, Word docs, CSV/XLS/XLSX exports, OCR text, email attachments, and pasted invoice text.
- Extract invoice header fields, line items, totals, currency, dates, vendor identity, bill-to, payment terms, and source snippets. If OCR or document parsing needs another installed skill or tool, use it, then normalize the result into this skill's batch schema.
- Read
references/invoice-batch-schema.mdbefore writingapp/.data/current_batch.json. - Write a batch to
app/.data/current_batch.json, keeping stableidandrefvalues such asReview #1. - Run
node scripts/validate_ui_schema.ts app/.data/current_batch.json. - Launch or reuse the local app with
app/start.sh, then send the user to the printed URL. - After the user approves or edits rows, run
node scripts/export_decisions.tsto export approved invoices to CSV and JSON.
Use chat-only mode only when the user says "chat only", "no UI", "纯聊天", "不要打开 UI", or similar.
App Contract
Local handoff files:
app/.data/current_batch.json: current invoice extraction batch.app/.data/decisions.json: human review decisions, edits, and notes.app/.data/agent_tasks.json: queued revision tasks fromrequest_changesor@aicomments.app/.data/execution_report.json: latest export report.app/.data/agent.lock: temporary lock while the skill writes batch/report files.
Workflow statuses:
needs_review: extracted row needs human review.changes_requested: user asked the agent to revise extraction.approved: row is ready for export.done: row has been exported or intentionally completed.blocked: row cannot proceed without missing information or source correction.
Extraction Rules
- Preserve source values. Do not invent invoice numbers, dates, tax ids, vendors, totals, or payment instructions.
- Keep original currency. Do not convert currencies unless the user explicitly asks and provides rates.
- Treat money fields as high-risk: totals, tax, amount due, currency, and bank/payment hints should be reviewed when confidence is low.
- Use
field_confidenceandwarningsfor ambiguous OCR, cropped images, handwritten values, missing references, negative totals, credit notes, duplicate invoice numbers, or total/line-item mismatches. - Mark rows
blockedif required fields are missing: vendor name, invoice number, invoice date, currency, or total. - Never send invoice files to external services from the app. Any external OCR/API use belongs to the skill workflow and should be explicit.
Scripts
node scripts/generate_demo_batch.tsWrites a safe synthetic batch and onboarding marker for UI testing.node scripts/validate_ui_schema.ts [batch-path]Validates the invoice batch schema.node scripts/export_decisions.tsExports approved or human-revised invoices toexports/<batch-id>/invoices.csv,line_items.csv, andapproved_invoices.json, then writesexecution_report.json.
Local App
Start the UI:
skills/kelly-invoice-sheet/app/start.sh
The app uses local HTTP on 127.0.0.1, prefers ports 3000-4000, and stores private runtime state under ignored app/.data/.
Safety Defaults
- Treat invoice data as sensitive. Do not commit
app/.data/, source invoices, exports,config.local.json, or env files. - The app only edits local decision files. It does not upload invoices, import into accounting systems, send email, pay vendors, or mutate remote systems.
- Export only after explicit approval in the UI or chat.
What ships with it: 47 files
128.5 KB alongside SKILL.md, 21 of them executable
agents/
- openai.yaml236 B
app/
- app.jsruns20.2 KB
- demo-visuals.css1.4 KB
- demo-visuals.jsruns4.4 KB
- i18n/messages.jsruns1.3 KB
- index.html650 B
- server/demo-visuals.tsruns12.1 KB
- server/hono.tsruns2.1 KB
- server/index.tsruns625 B
- server/launcher.tsruns2.9 KB
- server/paths.tsruns544 B
- server/setup.tsruns6.3 KB
- setup-gate.css4.5 KB
- setup-gate.jsruns8.8 KB
- start.shruns150 B
- styles.css17.3 KB
assets/
- screenshots/detail-mobile.webp130 B
- screenshots/detail.webp130 B
- screenshots/detail-zh-CN.webp130 B
- screenshots/extract-data.webp130 B
- screenshots/extract-data-zh-CN.webp130 B
- screenshots/overview-mobile.webp130 B
- screenshots/overview.webp130 B
- screenshots/overview-zh-CN.webp130 B
- screenshots/thumbs/detail-mobile.webp130 B
- screenshots/thumbs/detail.webp130 B
- screenshots/thumbs/detail-zh-CN.webp130 B
- screenshots/thumbs/extract-data.webp130 B
- screenshots/thumbs/extract-data-zh-CN.webp130 B
- screenshots/thumbs/overview-mobile.webp130 B
- screenshots/thumbs/overview.webp130 B
- screenshots/thumbs/overview-zh-CN.webp130 B
lib/
- common.tsruns2.5 KB
- data-provider/index.tsruns1.7 KB
- data-provider/local-file-provider.tsruns7.7 KB
- data-provider/provider-interface.tsruns1.9 KB
- invoice-schema.tsruns8.0 KB
- package.json23 B
- paths.tsruns786 B
- config.example.json402 B
7 more files not listed here. See all 47 in the repository.