Loading skill
Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Generate professional PDF invoices from JSON data. Use when the user needs to create an invoice, billing document, or payment request with company/client details and line items.
.claude/skills/sundial-org-invoice-generator/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-23 | ✗→✓ | ▲ Improved | 52% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 32% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -22% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 30% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -19% | 0% |
Generate PDF invoices from structured JSON data.
bashcd invoice-generator && npm install
INVOICE_DIR environment variable (or in skills.entries.invoice-generator.env):bashexport INVOICE_DIR="/path/to/your/invoices"
This creates the directory structure:
$INVOICE_DIR/
├── configs/ # Optional: saved invoice configs
└── invoices/ # Generated PDF outputbash# From stdin (on-the-fly) cat invoice-data.json | {baseDir}/scripts/generate.sh # From a full file path {baseDir}/scripts/generate.sh /path/to/invoice-data.json # From a saved config (looks in $INVOICE_DIR/configs/) {baseDir}/scripts/generate.sh client-template # Loads: $INVOICE_DIR/configs/client-template.json # Output goes to: $INVOICE_DIR/invoices/invoice-{number}.pdf (auto-versions if exists)
The JSON input must contain these fields:
json{ "company": { "name": "Your Company", "address": "123 Main St", "cityStateZip": "City, State, 12345", "country": "Country" }, "client": { "name": "Client Name", "address": "456 Client Ave", "cityStateZip": "City, State, 67890", "country": "Country", "taxId": "TAX123" }, "invoice": { "number": "INV-2025.01", "date": "Jan 15 2025", "dueDate": "Jan 30 2025" }, "items": [ { "description": "Service description", "rate": "1000.00", "currency": "USD" } ], "totals": { "currency": "USD", "total": "1,000.00" } }
See references/data-schema.md for complete field documentation.
The script outputs the path to the generated PDF file on success:
$INVOICE_DIR/invoices/invoice-INV-2025.01.pdf
# If that filename already exists, the script will write:
# $INVOICE_DIR/invoices/invoice-INV-2025.01-2.pdf (then -3, etc.)Other measured skills in the registry, with their headline benchmark lift.