Skill
Graduate AI skills into cheap, fast, deterministic workflows
npx -y skills add trevhud/rote --skill skillAssembled 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← recommendedPush to procurementSend imports to procurementRun the invoice pushProcess imports for procurement
⚠️ Do NOT trigger on just Run — too generic, may conflict with other skills.
Prerequisites Check
Before any automation begins, verify both:
- Browser-automation plugin is installed and active (Settings → Plugins → browser plugin = enabled, browser open with extension running).
- User is logged in to
https://ops.example.com/app/audit/importin 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 Filters → Clear 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
- Click the Filters button (toolbar, top left). Panel slides in from the right.
- Set Date Imported: enter
[start date] - [end date]using the 7-day window. - Set Sent To Procurement: select No.
- Leave all other fields empty.
- Close the panel (× top right).
- 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:
| Column | Notes |
|---|---|
| Batch ID | Unique identifier — use to re-identify rows after refresh |
| Status | Must be IMPORTED to qualify |
| Sent Date | Should be - (not yet pushed) |
| Invoice Number | Carrier invoice number |
| Carrier | e.g., FedEx, UPS, DHL |
| Invoice Type | e.g., FedEx, UPS_W2G, DHL ecommerce |
| Import File | Source filename as shown |
| Date Imported | Full timestamp with timezone |
| Imported By | Full name of importing user |
| Record Count | Number of records in batch |
| Charges | Number of charge line items |
| Packages | Package count |
| Ship Packages | Shipped package count |
| Earliest Ship Date | Earliest shipment date or - |
| Latest Ship Date | Latest shipment date or - |
7b — Check Status Eligibility
| Status | Action |
|---|---|
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 Message | Color | Result | Action |
|---|---|---|---|
| (any success message) | Green | ✅ Success | Record; proceed to 7g |
Procurement is not enabled for this invoice type | Red | ❌ Failed | ERR-INVOICE-TYPE; skip refresh; next row |
Invoice already exists in procurement | Red | ❌ Failed | ERR-DUPLICATE; skip refresh; next row |
Procurement request timed out | Red | ❌ Failed | ERR-TIMEOUT; check the portal manually |
Authorization denied | Red | ❌ Failed | ERR-AUTH; stop run; alert user |
Cannot connect to procurement | Red | ❌ Failed | ERR-CONN; stop run; alert user |
| No toast after 5 seconds | — | ❌ Failed | ERR-NO-CONFIRM; check the portal manually |
7g — Refresh and Capture Sent Date (Success Only)
- Click the ↻ refresh icon (top right of table toolbar).
- Wait for table to reload.
- Re-locate the row by Batch ID — never by position.
- 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 → YYYY → MM
- Check if
YYYYandMMsubfolders exist in the archive. Create if missing. - Create the Google Sheet in the correct
MMsubfolder with three tabs:
Tab 1 — Invoice Detail
One row per processed invoice. Columns in exact order:
| # | Column | Source |
|---|---|---|
| 1 | Batch ID | Screen |
| 2 | Status | Screen |
| 3 | Invoice Number | Screen |
| 4 | Carrier | Screen |
| 5 | Invoice Type | Screen |
| 6 | Import File | Screen |
| 7 | Date Imported | Screen |
| 8 | Imported By | Screen |
| 9 | Record Count | Screen |
| 10 | Charges | Screen |
| 11 | Packages | Screen |
| 12 | Ship Packages | Screen |
| 13 | Earliest Ship Date | Screen |
| 14 | Latest Ship Date | Screen |
| 15 | Sent Date | Screen (populated after success; - otherwise) |
| 16 | Push Status | Added: ✅ Success / ❌ Failed / ⚠️ Skipped |
| 17 | Failure Code | Added: ERR code from §7f, or blank on success |
| 18 | Failure Detail | Added: human-readable reason, or blank on success |
Tab 2 — Run Summary
One row per metric:
| Metric | Value |
|---|---|
| Run start time | From Step 5 |
| Date window | [start] - [end] from the calculation |
| Total qualifying invoices | From Step 6 |
| Pushed successfully | Count of ✅ |
| Failed | Count of ❌, with per-ERR-code breakdown |
| Skipped | Count of ⚠️ |
| Run stopped early | Yes/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).
- 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.