agentsclimarketplace

Skill

Skill trevhud/rote/examples/invoice-push/skill

Graduate AI skills into cheap, fast, deterministic workflows

Install
npx -y skills add trevhud/rote --skill skill

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 3 stars3 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.

What its author says it does

Copied from the file, not written here

Automates bulk "Push to Procurement" from a fulfillment platform's Cloud Imports screen using a browser-automation plugin. Use this skill whenever the user says "push invoices to procurement", "run the invoice push", or "process imports for procurement". Verifies prerequisites, calculates a 7-day rolling date window ending yesterday, clears stale filters, applies Date Imported + Sent To Procurement = No filters, sets page size to 90, pushes each qualifying invoice via the ⋮ menu, refreshes after each push to capture the Sent Date, paginates through all pages, and generates a three-tab report (Invoice Detail, Run Summary, Failure Code Reference) saved to the Invoice Push Reports Archive in Google Drive. Do NOT trigger on the bare word "Run" alone.

SKILL.md

8.9 KB, as published. Nobody here has run it

invoice-push

Owner: Parcel Audit Team Tool: Claude + browser-automation plugin


Trigger Phrases

Activate this skill when the user says any of the following:

  • Push invoices to procurement ← recommended
  • Push to procurement
  • Send imports to procurement
  • Run the invoice push
  • Process imports for procurement

⚠️ Do NOT trigger on just Run — too generic, may conflict with other skills.


Prerequisites Check

Before any automation begins, verify both:

  1. Browser-automation plugin is installed and active (Settings → Plugins → browser plugin = enabled, browser open with extension running).
  2. User is logged in to https://ops.example.com/app/audit/import in the browser.

If the plugin is unavailable, respond:

"I cannot run the invoice push — the browser-automation plugin is not connected. Please go to Settings → Plugins, confirm the plugin is installed and enabled, and that the browser is open with the extension active. Then try again."

Do not proceed until both prerequisites are confirmed.


Date Window Calculation

Calculate dynamically before opening the browser:

  • End date (yesterday): today − 1 day
  • Start date: end date − 7 days (7-day rolling window)
  • Format: M/D/YYYY (e.g., 4/22/2026)

Example — run date = May 5, 2026:

  • End date = May 4, 2026 → 5/4/2026
  • Start date = April 27, 2026 → 4/27/2026

Invoices imported today are never pushed — log as ⚠️ Skipped: Imported within 24 hours of run — not eligible.


Step-by-Step Automation

Step 1 — Navigate to the Imports Screen

Navigate to: https://ops.example.com/app/audit/import

Wait for the table to fully load (tab title = "Imports", rows visible).


Step 2 — Clear All Existing Filter Pills

Check for active filter pills below the search bar.

  • Click × on each pill to remove, or click FiltersClear all → close panel.
  • Confirm the table resets to unfiltered state before proceeding.

⚠️ Stale filters silently exclude qualifying invoices. Always start clean.


Step 3 — Apply Qualifying Filters

  1. Click the Filters button (toolbar, top left). Panel slides in from the right.
  2. Set Date Imported: enter [start date] - [end date] using the 7-day window.
  3. Set Sent To Procurement: select No.
  4. Leave all other fields empty.
  5. Close the panel (× top right).
  6. Confirm pills show:
    • Date Imported: [start] - [end] ×
    • Sent To Procurement: No ×

Step 4 — Set Page Size to 90

Click the "25 per page" dropdown (bottom left) → select 90. Wait for the table to reload.


Step 5 — Record Run Start Time

Note the current timestamp (e.g., May 5, 2026 9:15 AM MDT). This goes in the Run Summary tab of the final report.


Step 6 — Read Total Record Count

Check the pagination label (e.g., 1-22 of 22 imports). Record the total qualifying invoice count for the Run Summary.


Step 7 — Process Each Invoice Row

For each visible row:

7a — Read All Column Values

Read every column exactly as displayed. Do not infer or assume. Columns:

ColumnNotes
Batch IDUnique identifier — use to re-identify rows after refresh
StatusMust be IMPORTED to qualify
Sent DateShould be - (not yet pushed)
Invoice NumberCarrier invoice number
Carriere.g., FedEx, UPS, DHL
Invoice Typee.g., FedEx, UPS_W2G, DHL ecommerce
Import FileSource filename as shown
Date ImportedFull timestamp with timezone
Imported ByFull name of importing user
Record CountNumber of records in batch
ChargesNumber of charge line items
PackagesPackage count
Ship PackagesShipped package count
Earliest Ship DateEarliest shipment date or -
Latest Ship DateLatest shipment date or -

7b — Check Status Eligibility

StatusAction
IMPORTED✅ Eligible — proceed to 7c
FAILED⚠️ Skip — log: Status is FAILED — not eligible for push.
IN PROGRESS⚠️ Skip — log: Status is IN PROGRESS — not eligible for push.
Any other⚠️ Skip — log: Status is [value] — not eligible for push.

⚠️ Never click ⋮ on a FAILED or IN PROGRESS row.

7c — Apply the 24-Hour Rule

If Date Imported is within 24 hours of the current run time:

  • Do not push.
  • Log as: ⚠️ Skipped | Failure Detail: Imported within 24 hours of run — not eligible.
  • Move to next row.

7d — Open the ⋮ Menu

The ⋮ icon is in the 3rd column (between Status badge and Sent Date). Click it. Dropdown shows:

  • Push to Procurement
  • View Payables
  • Delete

7e — Click "Push to Procurement"

Click Push to Procurement.

7f — Wait for Toast Notification (up to 5 seconds)

Toast MessageColorResultAction
(any success message)Green✅ SuccessRecord; proceed to 7g
Procurement is not enabled for this invoice typeRed❌ FailedERR-INVOICE-TYPE; skip refresh; next row
Invoice already exists in procurementRed❌ FailedERR-DUPLICATE; skip refresh; next row
Procurement request timed outRed❌ FailedERR-TIMEOUT; check the portal manually
Authorization deniedRed❌ FailedERR-AUTH; stop run; alert user
Cannot connect to procurementRed❌ FailedERR-CONN; stop run; alert user
No toast after 5 seconds❌ FailedERR-NO-CONFIRM; check the portal manually

7g — Refresh and Capture Sent Date (Success Only)

  1. Click the ↻ refresh icon (top right of table toolbar).
  2. Wait for table to reload.
  3. Re-locate the row by Batch ID — never by position.
  4. Read and record the Sent Date now populated in the row.

⚠️ Always re-identify rows by Batch ID after refresh. Row order may shift.


Step 8 — Pagination

After all rows on the current page are processed:

  • Check pagination label (e.g., 1-90 of 150 imports).
  • If more pages exist, click Next → and repeat Step 7.
  • Continue until the last page is fully processed.

Step 9 — Generate and Save the Google Sheet Report

Archive folder ID: 1ExampleInvoicePushArchiveFolderId0000000000 File name format: Invoice_Push_Report_YYYY-MM-DD Folder path: Archive → YYYYMM

  1. Check if YYYY and MM subfolders exist in the archive. Create if missing.
  2. Create the Google Sheet in the correct MM subfolder with three tabs:

Tab 1 — Invoice Detail

One row per processed invoice. Columns in exact order:

#ColumnSource
1Batch IDScreen
2StatusScreen
3Invoice NumberScreen
4CarrierScreen
5Invoice TypeScreen
6Import FileScreen
7Date ImportedScreen
8Imported ByScreen
9Record CountScreen
10ChargesScreen
11PackagesScreen
12Ship PackagesScreen
13Earliest Ship DateScreen
14Latest Ship DateScreen
15Sent DateScreen (populated after success; - otherwise)
16Push StatusAdded: ✅ Success / ❌ Failed / ⚠️ Skipped
17Failure CodeAdded: ERR code from §7f, or blank on success
18Failure DetailAdded: human-readable reason, or blank on success

Tab 2 — Run Summary

One row per metric:

MetricValue
Run start timeFrom Step 5
Date window[start] - [end] from the calculation
Total qualifying invoicesFrom Step 6
Pushed successfullyCount of ✅
FailedCount of ❌, with per-ERR-code breakdown
SkippedCount of ⚠️
Run stopped earlyYes/No — Yes only on ERR-AUTH or ERR-CONN

Tab 3 — Failure Code Reference

Static reference table, one row per code from §7f: code, toast message, meaning, and the operator action (retry tomorrow, check the portal manually, or escalate to an administrator).


  1. After the sheet is created, reply to the user with the sheet link, the success/failed/skipped counts, and — if the run stopped early — which error stopped it and which invoices were never attempted.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.