Agent skill

Logistics Ops

by ericrisco in ericrisco/rsc-harness

A skill your agent uses when an order is paid and packed and the box now has to move, go sideways, or come back — picking a carrier and service and cutting a label, reacting to a delivery exception…

MITAuto-check passedBusiness, Finance & HR

Install Logistics Ops

skills CLI
$ npx skills add ericrisco/rsc-harness --skill logistics-ops -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install ericrisco/rsc-harness logistics-ops --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/logistics-ops .claude/skills/logistics-ops && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
logistics-ops
GitHub stars
167
Token cost
~3.3k tokens
SKILL.md length
1,403 words
Files
4 (incl. references)
Skills in repo
227
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when an order is paid and packed and the box now has to move, go sideways, or come back — picking a carrier and service and cutting a label, reacting to a delivery exception…

  • An order is paid and packed and the box now has to move
  • SKILL.md covers The parcel lifecycle — the spine, Ship — rate-shop, don't reflex, Track — kill WISMO before it… and Except — the tiered exception…, plus 4 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md
  • Come back — picking a carrier and service and cutting a label

What it does

Logistics Ops is an agent skill from ericrisco/rsc-harness. Use when an order is paid and packed and the box now has to move, go sideways, or come back — picking a carrier and service and cutting a label, reacting to a delivery exception, getting ahead of where-is-my-order tickets, running a return, exchange or refund with its reverse label, filing a carrier claim before the window closes, and setting return-window and restocking-fee policy. NOT setting stock levels or reorder points (that is inventory), NOT sourcing or buying from suppliers (that is procurement), NOT…

Its SKILL.md is about 3.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `evals/README.md`, `evals/cases.yaml` and `references/carriers-and-claims.md`).

It sits in Business, Finance & HR, covering Vendor and procurement management and Customer support. The repository describes itself as: Your agent invents things because it has no memory, and can't touch your database because it has no arms. rsc is the meta-harness that gives it both, plus the trade to know the… The licence is MIT.

When your agent uses it

  • An order is paid and packed and the box now has to move
  • Come back — picking a carrier and service and cutting a label
  • Reacting to a delivery exception
  • Getting ahead of where-is-my-order tickets

Example prompts

  • “/logistics-ops”

Requirements

  • Python 3

What it can do on your machine

Read from SKILL.md and the folder at commit e3d5b33. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are python).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Logistics Ops loads about 3.3k tokens when it runs, and up to ~4.7k if it reads all its reference files. Until then it costs about 150 tokens; SKILL.md has 1,403 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~150
When it runs · the whole SKILL.md, loaded when a task matches
~3.3k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~4.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from ericrisco/rsc-harness at commit e3d5b33, republished under its MIT licence (© ericrisco). 1,403 words, ~3,261 tokens.

Download SKILL.mdSave it as .claude/skills/logistics-ops/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
name
logistics-ops
description
Use when an order is paid and packed and the box now has to move, go sideways, or come back — picking a carrier and service and cutting a label, reacting to a delivery exception, getting ahead of where-is-my-order tickets, running a return, exchange or refund with its reverse label, filing a carrier claim before the window closes, and setting return-window and restocking-fee policy. NOT setting stock levels or reorder points (that is `inventory`), NOT sourcing or buying from suppliers (that is `procurement`), NOT writing the apology to the customer (that is `customer-support`).
tags
logistics, shipping, carriers, returns, reverse-logistics, fulfillment, tracking
recommends
inventory, procurement, customer-support, api-connector-builder, webhooks, bookkeeping
origin
risco

Logistics-ops — the box is packed, now move it, watch it, and bring it home cheap

You run the parcel as an operation. An order is paid and packed; from here the box has exactly four things it can do — ship out, travel, go sideways, or come back — and your job is to make each one cost the least while keeping the promise the order made. You ship on the cheapest service that still hits the delivery date, you catch the parcel when it goes wrong before the customer notices, and you turn the return into the smallest possible revenue loss.

You do not decide what stock to hold or when to reorder — that is inventory. You do not source or buy from suppliers — that is procurement (inbound from vendors, not outbound to customers). You do not write the on-voice customer reply — you hand the facts and the trigger to customer-support and it writes the apology around them. You do not host the carrier-API webhook listener — that is api-connector-builder / webhooks. And you do not post the refund to the books — that is bookkeeping. You decide what calls to make and when, and what to do with the box.

The parcel lifecycle — the spine

Every parcel moves through four legs. Two of them (EXCEPT, REVERSE) are where operators lose money by treating them as edge cases. They are not: exceptions hit 8-12% of parcels (≈18% at peak) and returns run ≈20% of online sales. Build both as first-class paths.

text
  SHIP            TRACK             EXCEPT             REVERSE
  rate-shop  ──►  watch the    ──►  tiered        ──►  return / exchange /
  + cut label     tracker           response           refund + reverse label
  + validate      (event-driven)    by severity        + carrier claim
  address                              ▲                   ▲
                       └── exception ──┘                   │
                       └────────── return requested ───────┘
  • SHIP — order is paid and packed; choose carrier + service against the delivery promise, validate the address, buy the label.
  • TRACK — label exists; watch the tracker for status changes via webhook, not polling, and notify the customer proactively.
  • EXCEPT — the tracker fired a delivery exception; classify it and respond on a severity clock.
  • REVERSE — the customer wants it back / it came back damaged; run the disposition decision, cut the reverse label, file any claim.

Ship — rate-shop, don't reflex

Pick the service against the delivery promise the order actually made, not your habit. "2-day paid at checkout" sets the constraint; the cheapest service that still delivers by that date wins. Shipping everything one way leaves money on the table on every order.

Audit the surcharges — the headline is a lie. The 2026 carrier increase reads as 5.9% (UPS GRI effective 2025-12-22, FedEx 5.9% effective 2026-01-05) but lands at a real 8-12% once new dimensional/cubic criteria for Additional Handling and Large Package kick in; USPS Ground Advantage is up 7.8%, and the residential surcharge climbed ~8% into the mid-$6 range. So compare landed cost per shipment including DIM weight and surcharges, never the base rate card.

Validate the address before you buy the label. A bad/undeliverable address is the cheapest exception to prevent and the most common one to suffer — fix it at the API, not after a failed attempt.

python
# EasyPost: build the shipment, rate-shop, buy the cheapest that fits the promise.
shipment = client.shipment.create(
    to_address=to_addr,        # validated upstream
    from_address=from_addr,
    parcel={"length": 9, "width": 6, "height": 3, "weight": 12},  # drives DIM
)
# Filter to services that hit the promised delivery date, THEN take the cheapest.
rate = shipment.lowest_rate(carriers=["USPS", "UPS", "FedEx"])
bought = client.shipment.buy(shipment.id, rate=rate)
# `bought.tracker` is now live (pre_transit → ... → delivered).
text
Bad : "We always ship UPS Ground." → overpays on light zone-1 parcels,
      misses the 2-day promise, eats the surcharge increase blind.
Good: rate-shop USPS/UPS/FedEx against the 2-day promise, compare landed
      cost incl. DIM + surcharges, buy the cheapest service that still hits
      the date. Validate the address first.

Track — kill WISMO before it becomes a ticket

WISMO ("where is my order") is 30-40% of ecommerce support contacts (50%+ at peak) and each human-handled ticket costs $5-$22. The whole game is to message the customer before they message you.

Use the tracker webhook, not a polling loop. EasyPost pushes tracker.updated events as the parcel moves; subscribe and react to status changes — in_transit, out_for_delivery, exception, delivered. Polling burns API calls and lags reality. (The listener hosting is webhooks' job; you decide which events fire which message.)

The window is tiny. The difference between a handled exception and a WISMO ticket is often only 4-12 hours of response time. Fire a proactive notification on the status change and the ticket never gets created — and 98% of consumers say shipping shapes brand loyalty, so this is retention work.

You supply the trigger and the fact ("FedEx shows out-for-delivery, EDD today"). customer-support writes the tone and owns the SLA on the reply. Never let support invent an ETA the carrier hasn't given.

Except — the tiered exception protocol

A failed delivery costs ~$20-30 direct and $140+ in lost future revenue, so triage by severity, don't treat every exception the same. First normalize the code: carriers label the same event differently (FedEx, UPS, USPS each use distinct exception codes for address / weather / damage / failed-attempt — see the reference glossary), so map to a bucket before you route.

Exception typeAct on the parcelCustomer-comms SLA
Damage / past EDDOpen claim path, prep replacement/refundProactive outreach same business day
Address / accessCorrect address, intercept, break reattemptResolve within 24 h
Weather / operationalHold, let carrier recover, monitor48-h check-in cadence
Failed attemptReattempt or redirect to pickup before cycle 2Within 24 h

Sequence is always act → notify → escalate: fix the parcel first (intercept, reattempt, claim), then send the proactive message, then escalate to the carrier if the clock runs out. Don't notify before you have an action, and don't escalate before you've notified.

Show full SKILL.md (602 more words)Show less

Claims — file before the window closes

Claim windows are hard deadlines. Miss them and the money is simply gone. Capture evidence at exception detection, because you cannot reconstruct it later.

CarrierDamaged / missing contentsLost / undeliveredGuaranteed-service refund
USPS≤ 60 days from mailing*(varies by service)—
UPSnotice ≤ 60 days of delivery≤ 60 days of scheduled deliv.≤ 15 days of invoice
FedEx≤ 60 days of ship date (intl 21 d)up to 9 months≤ 15 days of invoice

*Windows vary by service class; confirm against the full matrix in references before relying on a date.

Evidence checklist — gather now, at detection:

  • Tracking number + the exception event/screenshot (timestamped)
  • Photos of the damaged item and the packaging
  • Declared/invoice value and the original label
  • Weight and dimensions as shipped
  • For guaranteed-service refunds: the carrier invoice (15-day clock starts there)

Reverse — turn the return into the smallest loss

Returns are ≈20% of online sales (NRF: 19.3% returned in 2025; apparel runs 20-40%), not an edge case — design the reverse flow as a primary path. Route by reason, and default to retaining revenue before handing back cash.

Return reasonDefault dispositionWhy
Defective / damagedRefund or replacement, no restocking feeYour fault — fee kills the relationship
Wrong item sentReplacement + free reverse labelYour fault — fix fast
Changed mind / sizeInstant exchange or store credit firstRetains the revenue, often cheaper than reverse freight
Not as describedRefund or store creditListing risk — fix the listing too
Low-value bulkyKeep-it / refund (no return)Reverse freight > item value

Tune the policy as both a conversion lever and a cost lever. 82% of consumers rank free returns as a key purchase factor and 81% read the policy before buying — but 72% of merchants now charge a restocking fee, typically 10-25% (15-25% standard), with windows of 30-90 days. Charge the fee only where the reason is buyer-side ("changed mind"), never on a defect. And screen for fraud: ~9% of returns are fraudulent and 85% of retailers now use AI to flag them — flag mismatched weight/serial, serial returners, and wardrobing.

python
# The reverse label is the SAME create call with is_return: true (swaps to/from).
return_shipment = client.shipment.create(
    to_address=from_addr,      # back to your warehouse
    from_address=to_addr,      # from the customer
    parcel=parcel,
    is_return=True,
)
return_label = client.shipment.buy(
    return_shipment.id, rate=return_shipment.lowest_rate()
)

Hand the restock quantity to inventory (does it go back to sellable stock?) and the refund accounting to bookkeeping (the credit-note entry). You decide the disposition; they record the consequence.

Anti-patterns

Anti-patternWhy it costs youDo instead
Ship by habit, one carrier alwaysOverpays per order, misses promisesRate-shop the three against the promise
Trust the "5.9%" headlineReal increase is 8-12% with DIM/surchargesAudit landed cost per shipment
Poll the tracker on a timerLags reality, burns API callsSubscribe to tracker.updated webhooks
Wait for the WISMO ticketTicket costs $5-22; you missed the 4-12 h windowNotify proactively on status change
Same urgency for damage and weatherWastes effort or misses the costly oneTier by severity (table above)
Cash-refund by defaultHands back revenue you could keepOffer exchange / store-credit first
No return-window or restocking policyCan't defend the cost or the conversionSet 30-90 d window, 10-25% fee buyer-side only
Restocking fee on a defectBurns the relationship on your own faultFree reverse label for defective/wrong-item
Capture claim evidence "later"Window closes, money gone; can't reconstructPhotograph + record value/weight at detection
Let support invent the ETAA wrong promise becomes a second complaintGive support the tracker fact, not a guess
Treat returns as an edge caseThey're ~20% of ordersDesign REVERSE as a primary path

References

Full per-carrier exception-code glossary (FedEx/UPS/USPS → the four buckets), the complete claim-window matrix with required evidence per claim type, and runnable EasyPost snippets (rate-shop + one-call buy, tracker webhook handler shape, the is_return: true reverse label) live in references/carriers-and-claims.md.

© ericrisco, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 3 other files (references) in skills/logistics-ops of ericrisco/rsc-harness.

  • SKILL.md
  • evals/README.md
  • evals/cases.yaml
  • references/carriers-and-claims.md

Open the folder on GitHubat commit e3d5b33

Compare with similar skills

Logistics Ops next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Logistics Ops compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Logistics Ops this skillericrisco/rsc-harness167—~3.3kAutomated safety check: PassMIT
Energy Procurementaffaan-m/ECC275k4 repos~7.4kAutomated safety check: PassApache-2.0
Security Commsbriiirussell/cybersecurity-skills413—~3.8kAutomated safety check: PassMIT
Rfp Response Compliance Reviewpnp/sharepoint-skills131—~2.8kAutomated safety check: PassMIT
Serenity Alphahaskaomni/serenity-skill632—~2.6kAutomated safety check: PassMIT
Scorecard Matrixpnp/sharepoint-skills131—~1.9kAutomated safety check: PassMIT

Similar skills

  • Energy Procurement

    affaan-m/ECC

    Procure electricity and natural gas for commercial and industrial facilities: tariff and rate-schedule optimization, demand-charge mitigation, supplier RFPs, fixed/index/block-and-index hedging…

    275k GitHub starsUsed in 4 repos~7.4k tokens
    Business, Finance & HRAuto-check passed
  • Security Comms

    briiirussell/cybersecurity-skills

    Translate technical security work into the language of non-security audiences — board, executives, engineering, customer success, customers, legal, procurement, sales.

    413 GitHub stars~3.8k tokensUpdated 4 mo ago
    Business, Finance & HRAuto-check passed
  • Rfp Response Compliance Review

    pnp/sharepoint-skills

    Reviews a draft proposal against the firm's configurable compliance rules — prohibited language, required disclosures, role and positioning boundaries, and procurement-submission requirements.

    131 GitHub stars~2.8k tokensUpdated yesterday
    Business, Finance & HRAuto-check passed
  • Serenity Alpha

    haskaomni/serenity-skill

    Translate market-moving news into investable alpha hypotheses by mapping observed demand changes to revenue lines, supply chains, small-cap financial elasticity, market misclassification, validation…

    632 GitHub stars~2.6k tokensUpdated 2 mo ago
    Business, Finance & HRAuto-check passed
  • Scorecard Matrix

    pnp/sharepoint-skills

    Generates a polished, self-contained HTML heatmap scorecard — a weighted comparison matrix where entities (rows) are scored across dimensions (columns), with computed totals, rank badges, and a…

    131 GitHub stars~1.9k tokensUpdated yesterday
    Business, Finance & HRAuto-check passed
  • Recover source-bound buyer jobs, struggling moments, desired progress, forces, workarounds, information acts, journey states, criteria, constraints, roles, locales, and authentic language.

    1.5k GitHub stars~1.4k tokensUpdated yesterday
    Business, Finance & HRAuto-check passed

More from ericrisco/rsc-harness

All 227 skills in this repo
  • Ab Testing

    ericrisco/rsc-harness

    A skill your agent uses when designing or analyzing a controlled experiment — falsifiable hypothesis, sample size from an MDE, reading significance/CI/power, CUPED, or rescuing tests that won't go…

    167 GitHub stars~2.4k tokensUpdated today
    Auto-check passed
  • Accessibility

    ericrisco/rsc-harness

    A skill your agent uses when making a web UI conform to WCAG 2.2 Level AA — axe-core or Lighthouse a11y violations, keyboard operability, focus management, ARIA roles/names/live regions, contrast…

    167 GitHub stars~3.4k tokensUpdated today
    Auto-check passed
  • Ads

    ericrisco/rsc-harness

    A skill your agent uses when running or fixing paid acquisition on Google or Meta — campaign structure (Performance Max, Demand Gen, Search, Advantage+), platform-fit creative, budget/scaling rules…

    167 GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Agent Eval

    ericrisco/rsc-harness

    A skill your agent uses when measuring whether an LLM or agent system actually got better and gating merges on it: golden sets, fixing an inflated LLM-as-judge, scoring RAG (faithfulness, contextual…

    167 GitHub stars~3.2k tokensUpdated today
    Auto-check passed
  • AI Media

    ericrisco/rsc-harness

    A skill your agent uses when a creative goal must become a finished media file: pick and order generative-media models per modality — AI voiceover, image-to-video clips, score — then glue them with…

    167 GitHub stars~3.3k tokensUpdated today
    Auto-check passed
  • Analytics

    ericrisco/rsc-harness

    A skill your agent uses when instrumenting product or web analytics — GA4/PostHog SDK wiring, event taxonomy, funnels, double-counted events, consent gating, PII scrubbing.

    167 GitHub stars~2.8k tokensUpdated today
    Auto-check passed

Questions about Logistics Ops

What does Logistics Ops do?

A skill your agent uses when an order is paid and packed and the box now has to move, go sideways, or come back — picking a carrier and service and cutting a label, reacting to a delivery exception…. Logistics Ops is an agent skill from ericrisco/rsc-harness. Use when an order is paid and packed and the box now has to move, go sideways, or come back — picking a carrier and service and cutting a label, reacting to a delivery exception, getting ahead of where-is-my-order tickets, running a return, exchange or refund with its reverse label, filing a carrier claim before the window closes, and setting return-window and restocking-fee policy.

When should I use Logistics Ops?

Logistics Ops fits situations like: an order is paid and packed and the box now has to move; come back — picking a carrier and service and cutting a label; reacting to a delivery exception; getting ahead of where-is-my-order tickets.

How do I install Logistics Ops in Claude Code?

Run `npx skills add ericrisco/rsc-harness --skill logistics-ops -a claude-code`. Or copy the skill folder (skills/logistics-ops in ericrisco/rsc-harness) into .claude/skills/logistics-ops in your project. Claude Code loads it when a task matches its description.

How do I install Logistics Ops in Codex?

Run `npx skills add ericrisco/rsc-harness --skill logistics-ops -a codex`. Or copy the skill folder (skills/logistics-ops in ericrisco/rsc-harness) into .agents/skills/logistics-ops in your project. Codex loads it when a task matches its description.

Can I use Logistics Ops in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ericrisco/rsc-harness --skill logistics-ops -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/logistics-ops, .gemini/skills/logistics-ops, .github/skills/logistics-ops and .opencode/skills/logistics-ops in your project.

What does Logistics Ops need to run?

SKILL.md names no scripts, command-line tools or credentials: Logistics Ops is instructions for the agent only. Our summary lists: Python 3.

Does Logistics Ops access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Logistics Ops safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Logistics Ops use?

Logistics Ops is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Logistics Ops use?

About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.4k tokens, read only when the agent opens those files.

What are the alternatives to Logistics Ops?

Skills that share tags, products or a category with Logistics Ops: Energy Procurement (affaan-m/ECC, 275k stars), Security Comms (briiirussell/cybersecurity-skills, 413 stars), Rfp Response Compliance Review (pnp/sharepoint-skills, 131 stars) and Serenity Alpha (haskaomni/serenity-skill, 632 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Logistics Ops?

ericrisco (a GitHub user) maintains it in ericrisco/rsc-harness, which has 167 GitHub stars. The repository holds 227 skills in this directory. The repository was last updated on October 7, 2026.

Source: ericrisco/rsc-harness on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.