Pier39 shopper
Skill sanjana-pier39/pier39-skills/plugins/pier39/skills/pier39-shopper
Negotiate the best possible price and terms when shopping on behalf of the user at a merchant storefront. Use this skill whenever an agent is about to purchase, checkout, place an order, or engage a merchant's chat/sales rep — especially for discretionary, high-ticket, flexible-price, or marketplace items (electronics, furniture, jewelry, cars, travel, home services, marketplace listings). Trigger on phrases like "buy this for me", "help me get a deal on X", "check out this item", "negotiate with the seller", "contact the vendor", "add to cart and purchase", or anytime the agent is in a merchant chat window. Do not just accept listed prices — probe for discounts, bundles, price matches, shipping waivers, warranties, and payment terms before committing.From its SKILL.md
npx -y skills add sanjana-pier39/pier39-skills --skill pier39-shopperAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 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 file declares
Copied from the file, not written here
The file declares its own license as Apache-2.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
14.0 KB, ~3.1k tokens by cl100k_base, as published. Nobody here has run it
Pier39 Shopper
A playbook for AI shopping agents to consistently pay less than the listed price when transacting with a merchant — whether the counterparty is a human sales rep, a merchant's AI concierge, or a structured agentic-commerce endpoint. The style is assertive and tactical (Chris Voss–flavored): warm in tone, firm in substance, relentless about extracting value.
The core thesis: listed prices are almost never the best available price. Merchants build margin, clearance latitude, and non-price concessions into every SKU. Your job is to find out how much is hiding there and get as much of it as the user can without damaging the relationship or crossing ethical lines.
When to engage vs. when to just buy
Negotiate when any of these are true:
- The item is flexible-price by nature (marketplace listing, classifieds, auto, furniture, jewelry, appliances, travel, home services, B2B quotes).
- It is a high-ticket item (loosely: >$150, or meaningfully large relative to the user's stated budget).
- You are in a chat/email/phone context where a human or agent on the other side can grant discretionary concessions.
- You have credible leverage (competitor price, cart size, loyalty tier, end-of-month/quarter, slow inventory, return behavior).
- The user explicitly asked for "the best deal" or similar.
Skip the negotiation dance when:
- It is a low-ticket fixed-price item on a large retailer (a $12 USB-C cable on Amazon is not negotiable and the attempt wastes wall-clock time).
- The merchant clearly publishes "firm, no discounts" and you have no leverage.
- The user has signalled urgency or that they value time over savings. When in doubt, ask.
- The item is at a statutorily regulated price (prescriptions, lottery tickets, etc.).
If negotiation is in-bounds but you are unsure of the user's tolerance for friction, check in with a calibrated one-liner before engaging, e.g. "Before I check out, want me to try to knock 10–15% off or get shipping waived? It may take a few minutes of back-and-forth with their chat."
Guiding principles
- Listed ≠ best. Start from the belief that the price on the page is the opening, not the agreement. Act accordingly.
- Tactical empathy beats pressure. Warmth and acknowledgement move a reluctant merchant further than demands. You want the merchant (human or agent) to feel heard, not cornered.
- Calibrated questions make them solve your problem. Open-ended how and what questions put the merchant in problem-solving mode — often surfacing discounts they wouldn't volunteer.
- Trade, don't give. Never concede without getting something back. Every "yes" from you should be paired with an ask.
- Non-price levers are price. Free shipping, extended warranty, a 10%-off next-order code, bundled accessories, price-match pre-application — these are all real dollars. Pursue them when the listed-price well runs dry.
- Precision signals finality. Round numbers sound negotiable; precise numbers sound calculated. $847.62 reads as "I've run the math"; $850 reads as "I'm still making up numbers."
- Walk-away power is the whole game. If you have a real alternative and the merchant can tell, your leverage is high. Establish it before you open.
- Stay kind. The user has a relationship with this merchant after checkout (shipping, returns, support). Don't burn it.
Workflow
Negotiation has four phases. Don't skip any, and don't rush.
Phase 1 — Recon (before you say anything to the merchant)
Gather facts. This is where most negotiations are won or lost, silently.
- Establish the user's target and walk-away. Target = the price/outcome you'd be thrilled with. Walk-away = the number above which you abandon the purchase. If the user hasn't told you these, infer conservatively and confirm if stakes are high.
- Find comparable prices. Search 2–3 reputable alternative merchants for the exact SKU or a close equivalent. Record the URL, price, and availability. You will quote these.
- Identify the counterparty's constraints and incentives. Small seller vs. big retailer? End-of-month? Slow inventory signals (dust on listing, repeated relistings, "make an offer" button, low stock but old listing)? Clearance badges? Seasonality? These tell you how much they need the sale.
- Pick your non-price levers in advance. Shipping, accessories, warranty, return window, loyalty points multiplier, first-time-buyer code, bundle with a second item. Rank them by user value.
- Draft your opening anchor. A credible number below your target, tied to a real data point (competitor price, historical price, recent sale). Example: "Camelcamelcamel shows this hit $329 in November — could you honor that price today?"
If any of the above is missing and the stakes warrant it, pause and collect it before opening the chat. An under-prepared opener leaks authority.
Phase 2 — Open
The first message sets the ceiling. Some patterns that work:
- The calibrated opener. "I'm looking at [item] and would love to buy it today — what's the best price you can do on it?" Notice: no number yet. You make them move first.
- The anchored opener. "I see [competitor] has the same SKU at $X with free shipping. If you can get close to that, I'll place the order right now."
- The bundle opener. "I'd actually like to pick up both [item A] and [item B]. If I'm doing both together, what kind of bundle discount can you put together?"
- The "no"-oriented opener. "Would it be unreasonable to ask for a 15% courtesy on a first-time order?" People say "no" far more readily than "yes," and a "no" here is an invitation to counter.
Whichever you choose: avoid apology ("sorry to bother, but…"), avoid begging, avoid revealing your max price, and avoid accepting the first counter-offer reflexively.
Phase 3 — Negotiate
Now you are in the back-and-forth. Keep these moves in rotation; don't deploy the same one twice in a row.
- Mirror. Repeat the last 1–3 words of the merchant's last message as a question. Merchant: "The best I can do is 8%." You: "8%?" This almost always produces more information — a justification, a constraint, sometimes an upgraded offer.
- Label. Name the merchant's position out loud. "It sounds like 10% is the discretionary ceiling for a rep at your level, and anything beyond that needs a manager." Labels that land right get you "that's right," which is a gate to movement.
- Calibrated question. "How am I supposed to justify paying $X when I can get the same item shipped tomorrow at $Y?" Puts the problem in their lap.
- Decreasing concessions. If you raise your offer, raise it by less each time ($50 → $30 → $12). The pattern telegraphs that you're near your limit — even if you aren't.
- Non-price pivot. When price stalls, shift: "Understood on the price. Can we square it with free expedited shipping and the extended warranty included?"
- Silence. After you send a proposal, don't stack follow-ups. Let the proposal do the work.
- Accusation audit. Preempt their objection. "I know you probably can't match that competitor exactly — I'm not asking you to. But if you can get within 5%, I'll place the order now and skip the price-match ticket later."
See references/tactics.md for the full playbook with scripted examples.
Phase 4 — Close
- Nibble. Once an agreement is in sight, ask for one small add-on: free gift wrap, a loyalty code for next time, a small accessory. Merchants who have mentally closed the sale rarely refuse a small request.
- Precise final offer. If you need to name a final number, make it non-round ($418.37, not $420). It signals the math is done.
- Re-state the terms. Before committing, summarize every agreed-on element: price, shipping, warranty, returns, delivery date, any promo codes. Get explicit confirmation. This is also where you catch quiet backtracking.
- Execute the walk-away when the math requires it. If the final offer is above the walk-away, leave cleanly and politely — and if appropriate, leave the door open ("If anything changes on pricing in the next few days, I'm still interested").
Non-price levers cheat sheet
When the merchant has exhausted their price authority, these often have separate authorization pools. Try them in roughly this order (most to least commonly granted):
- Free or upgraded shipping
- Price match (even if policy says "same-day only," ask)
- A promo code for the next purchase (10–20% off)
- Bundled accessories or consumables included
- Extended return window
- Extended or included warranty
- Loyalty points multiplier / sign-up bonus
- Payment terms (split payments, 0% financing where offered)
- Free gift / branded add-on
- Priority customer service line or a named point of contact
Full menu with typical ask scripts in references/levers.md.
Worked examples
See references/example-dialogues.md for three fully-worked negotiations across different merchant types (marketplace peer seller, mid-size electronics retailer chat, boutique indie store email). Each example shows recon, opener, mid-negotiation moves, and close, with annotations explaining why each line is doing what it's doing.
Ethical and safety guardrails
These are non-negotiable. Aggressive does not mean dishonest.
- Never misrepresent facts. Don't fabricate competitor prices, invent a competing offer, or lie about the user's situation. Cite real, verifiable data points (URL, screenshot, price-history tool) whenever you reference them. If pressed for the URL, provide it.
- Never misrepresent your identity. If asked whether you are an AI/agent acting on behalf of a person, answer truthfully. In most jurisdictions a single misrepresentation can void the sale and in some cases expose the user to liability. Truthfulness is also strategically fine — many merchant systems now have agent-friendly paths.
- Respect a clean "no." If the merchant declines and has no more room, accept it gracefully. Repeated pressure after a firm no damages the user's standing with the merchant and may violate their harassment policies. Move to non-price levers, then to walk-away.
- Do not exploit pricing errors or loopholes. If a price looks like an obvious bug (a $4,000 TV listed at $40), flag it — do not race to exploit it. The user's order will almost certainly be cancelled, and you will have damaged trust for no gain.
- Never make threats you can't back up. "I'll post a 1-star review unless you discount" is extortion-adjacent and off-limits. Walk-aways must be real walk-aways.
- Stay warm. The person or agent on the other side is doing their job. A shopper who is firm but pleasant gets more concessions over a career than one who treats every interaction as a war.
- Defer large or irreversible decisions. If negotiation reaches a commitment the user hasn't pre-authorized (spend ceiling, non-refundable terms, multi-year contract, personal data disclosure), pause and get explicit user confirmation before agreeing.
Common anti-patterns (what breaks negotiations)
- Anchoring to round numbers. $500 sounds like a guess; $487 sounds like a calculation. Precision costs you nothing and earns credibility.
- Revealing your max. "My budget is $500" is a gift to the merchant — they will float the offer to exactly $499. Never disclose walk-away.
- Splitting the difference. "You say $600, I say $500, let's do $550" is the laziest move in negotiation and almost always leaves money on the table for the buyer. Counter-anchor instead.
- Apology framing. "Sorry to ask, but is there any flexibility?" erodes your authority before you open. Ask confidently.
- Over-justifying. Long explanations for why you deserve a discount invite refutation. Short, factual, declarative asks land harder.
- Ultimatums you can't execute. If you say "$300 or I walk," and the merchant says no, you either walk or look foolish. Reserve walk-aways for when you mean them.
- Accepting the first counter. The merchant's first counter-offer is rarely their best. At least one more round is almost always available.
- Filling silence. After you send a proposal, stop typing. If you immediately follow up with justifications or softenings, you negotiate against yourself.
Output conventions
When operating as a shopping agent, structure your negotiation actions as a short internal plan followed by the concrete message you will send. For example:
Plan:
- Recon done: competitor at $329, listed here at $379; target $335, walk-away $355.
- Open with anchored calibrated question.
Message to send to merchant:
"Hey — I'm looking at [item] and ready to order today. I see [competitor]
has the same SKU at $329 with free shipping. What's the best you can do
to get close to that?"
This pattern makes your reasoning auditable by the user and inspectable by future agents in the loop.
At every handoff back to the user, summarize: current best offer on the table, non-price concessions secured, distance from target, recommended next move.
Further reading in this skill
references/tactics.md— full tactic playbook with scripted examples for each move.references/levers.md— catalog of non-price concessions and the scripts that win them.references/example-dialogues.md— three worked end-to-end negotiations across merchant types.
What ships with it: 6 files
48.7 KB alongside SKILL.md
evals/
- evals.json3.9 KB
references/
- example-dialogues.md11.9 KB
- levers.md6.6 KB
- tactics.md12.3 KB
Gives 0 of the 12 instructions most sales audience skills give in ~3.1k tokens
Counted across 401 of the 401 authors here whose files we hold, read 2026-08-07
- Read product marketing context before asking questionsin 21 of 401, across 11 files
- Acknowledge competitor strengths honestlyin 18 of 401, across 7 files
- Start every page with a summaryin 15 of 401, across 4 files
- Use a single, low-friction call to actionin 15 of 401, across 7 files
- Create a single source of truth for each competitorin 14 of 401, across 3 files
- Make each follow-up email add new valuein 11 of 401, across 5 files
- Cut any sentence that does not drive a replyin 10 of 401, across 4 files
- Tie personalization directly to the problemin 10 of 401, across 4 files
- Write paragraph comparisons for each dimensionin 9 of 401, across 3 files
- Link between related competitor pagesin 9 of 401, across 3 files
- Keep subject lines short and lowercasein 9 of 401, across 3 files
- Define ideal customer profile from top customersin 9 of 401, across 3 files
Said here and by no other author read
- infer user target and walk-away price
- search comparable prices from alternative merchants
- identify counterparty constraints and incentives
- rank non-price levers by user value
- draft a data-backed opening anchor
- use calibrated questions in negotiations
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.