From personal-finance
Use when the user wants to extract invoice information from emails, process PDF attachments for invoice data, pull out amounts and IBANs from invoices, or parse invoice PDFs.
npx claudepluginhub karimstekelenburg/k3m-marketplace --plugin personal-financeThis skill is limited to using the following tools:
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Analyzes BMad project state from catalog CSV, configs, artifacts, and query to recommend next skills or answer questions. Useful for help requests, 'what next', or starting BMad.
Parse arguments from $ARGUMENTS. Determine the data directory: use --data-dir if provided, otherwise default to ~/Documents/finance-data/.
Determine the extraction scope from the arguments:
If --email-id ID is given:
Run the extractor for that single email's attachment:
uv run ${CLAUDE_PLUGIN_ROOT}/scripts/extract_invoice.py --email-id ID [--data-dir PATH]
If --all-pending is given (or no scope flag is provided):
Run the extractor over all emails with status='pending' in the database:
uv run ${CLAUDE_PLUGIN_ROOT}/scripts/extract_invoice.py --all-pending [--data-dir PATH]
After the script completes, report:
llm_fallback (flag these clearly — they require review)Display a summary table for all extracted invoices:
| Email ID | Vendor | Amount | Due Date | Confidence | LLM Fallback |
|---|
Mark llm_fallback rows with a warning indicator.
For each llm_fallback invoice, perform manual extraction:
uv run ${CLAUDE_PLUGIN_ROOT}/scripts/extract_invoice.py --update-record --email-id ID --vendor "..." --amount ... --due-date ... --iban ... [--data-dir PATH]
llm_fallback flag as resolved after writingIf any attachment cannot be read (corrupt PDF, unsupported format), report the email ID and error; continue processing remaining items.