Skip to content
Back to skills

Receipts

ASecurity

Run and verify the daily receipt-to-Drive pipeline locally. Scans Gmail for purchase emails, uploads to Google Drive, and emails the configured accounting address.

  • 4 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added September 12, 2026
businessgoshellbash

Security analysis

A100/100

Scanned September 12, 2026

npx -y skills add MattVOLTA/outworkos_diy --skill receipts --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Receipts?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Receipts
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/mattvolta-receipts/badge)](https://www.skillsdirectory.com/skills/mattvolta-receipts)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: receipts
description: Run and verify the daily receipt-to-Drive pipeline locally. Scans Gmail for purchase emails, uploads to Google Drive, and emails the configured accounting address.
user_invocable: true
arguments:
  - name: action
    description: "What to do: run (default), verify, dry-run, or backfill YYYY-MM-DD"
    required: false
    default: run
---

# /receipts — Receipt Pipeline

Run the receipt-to-Drive sync pipeline locally and verify results.

## Actions

### `run` (default)
Execute the receipt pipeline for yesterday's purchases.

### `dry-run`
Validate config and secrets without processing any emails.

### `verify`
Check the last run's results — query Gmail for the notification email sent to the accounting address and confirm it was delivered.

### `backfill YYYY-MM-DD`
Run the pipeline for a specific date (useful for catching missed days).

## Implementation

### Step 1: Parse the action

Parse the user's argument to determine which action to take. Default to `run` if no argument.

For `backfill`, extract the date argument (e.g., `backfill 2026-03-05`).

### Step 2: Execute

#### For `run`, `dry-run`, and `backfill`:

Run the shell script which pulls secrets from Vault and executes the pipeline:

```bash
# Normal run (yesterday)
$OUTWORKOS_ROOT/scripts/run-receipts.sh

# Dry run
$OUTWORKOS_ROOT/scripts/run-receipts.sh --dry-run

# Backfill specific date
$OUTWORKOS_ROOT/scripts/run-receipts.sh --date 2026-03-05
```

After the script completes, parse the JSON log output and report:
- Number of receipts scanned, uploaded, skipped, failed
- Drive folder URL (if receipts were uploaded)
- Whether the notification email was sent

#### For `verify`:

Look up the accounting email address from `user_profiles.accounting_email` or `outworkos.config.yaml`, then use Google Workspace Gmail search to find the most recent "Daily Receipts" notification:

1. Search Gmail for: `to:{ACCOUNTING_EMAIL} subject:"Daily Receipts" from:{USER_EMAIL}` (limit to last 7 days)
2. Read the most recent match
3. Report:
   - Date of last receipt email
   - Whether receipts were found or it was a "no receipts" confirmation
   - Drive folder link (if included)
   - Any gaps in daily coverage (missing dates in the last 7 days)

### Step 3: Report

Provide a concise summary:

**Run/Backfill success:**
> Receipt sync complete for {date}: {N} receipts uploaded to Drive.
> Notification sent to {ACCOUNTING_EMAIL}.
> Drive folder: {url}

**Dry-run success:**
> Config valid. All 4 Vault secrets loaded successfully. Pipeline ready.

**Verify result:**
> Last receipt email: {date} — {N} receipts ({vendor list})
> Coverage: {dates covered} | Gaps: {any missing dates}

**Failure:**
> Receipt sync failed: {error details}
> Suggested fix: {actionable suggestion}

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.