Woolworths Refund Helper
v1.0.3low riskcomputer use ✶Navigate Olive (Woolworths NZ's chatbot) to get a CGA-compliant refund for poor-quality grocery deliveries.
Install
Install in Claude — recommended
Claude Desktop · Claude.ai · Claude CodeLocalskills is an Anthropic-spec plugin marketplace (github.com/localskills-ai/skills). Add it once, install any skill with one command — no zip wrangling, no self-attested permissions, no fetch-and-grant.
/plugin marketplace add localskills-ai/skills
/plugin install woolworths-refund-helper@localskillsThen describe your task — Claude picks the skill from context.
Or — use without installing (MCP)
full setup →Prefer not to install? Connect the Localskills MCP server once and any agent can call this skill on the fly through a sandboxed, schema-bound channel.
1. Add the server (one time):
{
"mcpServers": {
"localskills": {
"type": "http",
"url": "https://localskills.ai/api/mcp"
}
}
}2. Then ask your agent:
Using the Localskills MCP (get_skill), fetch the "woolworths-refund-helper" skill (nz/woolworths-refund-helper) and apply it to my task.No MCP? Paste this to a permissive agent (Claude Code, dev CLI). It fetches the skill and sets it up directly. Hosted agents like Claude.ai will often (correctly) refuse this shape — use MCP above instead.
Install and set up the Localskills skill "woolworths-refund-helper"
(nz/woolworths-refund-helper).
Before installing anything, fetch and review it:
- https://localskills.ai/nz/woolworths-refund-helper
- https://localskills.ai/api/install/claude-code/nz/woolworths-refund-helper
Read its SKILL.md and the permissions declared in skill.json
(filesystem, network, shell). Don't grant more than it declares;
if anything looks off, stop and tell me.
Then install it for the agent you're running and confirm it's
available. Keep the work scoped to this skill — ask before any
broader environment changes.Or grab the files yourself — pick your agent. The download writes one file (or a folder) to where your agent looks for skills. Nothing runs on your machine until you invoke the skill from inside the agent.
Claude Codedownloador terminal ▾
curl -fsSL https://localskills.ai/api/install/claude-code/nz/woolworths-refund-helper -o /tmp/woolworths-refund-helper.zip && unzip -o /tmp/woolworths-refund-helper.zip -d ~/.claude/skills/ && rm /tmp/woolworths-refund-helper.zipMin Claude Code: >=1.0.0 · Writes to ~/.claude/skills/<slug>/
Cursordownloador terminal ▾
mkdir -p .cursor/rules && curl -fsSL https://localskills.ai/api/install/cursor/nz/woolworths-refund-helper -o .cursor/rules/woolworths-refund-helper.mdcMin Cursor: >=0.40.0 · Writes to .cursor/rules/<slug>.mdc
Codex CLIdownloador terminal ▾
curl -fsSL https://localskills.ai/api/install/codex/nz/woolworths-refund-helper -o /tmp/woolworths-refund-helper.zip && unzip -o /tmp/woolworths-refund-helper.zip -d ./ && rm /tmp/woolworths-refund-helper.zipMin Codex CLI: >=1.0.0 · Writes to .codex/skills/<slug>/
Windsurfdownloador terminal ▾
mkdir -p .windsurf/rules && curl -fsSL https://localskills.ai/api/install/windsurf/nz/woolworths-refund-helper -o .windsurf/rules/woolworths-refund-helper.mdMin Windsurf: >=1.0.0 · Writes to .windsurf/rules/<slug>.md
Want to read it before saving? Pipe the download to lessinstead of -o:curl -fsSL https://localskills.ai/api/install/cursor/nz/woolworths-refund-helper | less
README
Woolworths Refund Helper
Get a refund for a poor-quality Woolworths NZ delivery — by navigating Olive, Woolworths' chatbot, with a clean Consumer Guarantees Act-compliant message that prompts Olive to do the right thing. Takes about as long as making a coffee.
What it does
You've had a poor Woolworths NZ delivery. Mince that smells off. Strawberries with mould. A pack of yoghurts that arrived past its use-by date. The bag of spinach that's slimy. The pack of chicken that's leaking.
Woolworths NZ's first-line customer service is Olive — a chatbot in the app and on the website. To get a refund processed, you have to navigate Olive's flow. Vague complaints loop back to template questions; specific, CGA-grounded messages tend to resolve in-chat without escalation.
This skill helps you:
- Identify the problem items from your receipt and (optionally) photos you've already taken.
- Quote the right Consumer Guarantees Act section — s 6 (acceptable quality) or s 8 (fitness for particular purpose) — so the message lands as a clear statutory request that Olive's escalation logic recognises.
- Draft the message in a polite, factual tone Olive can act on without back-and-forth.
- Hand you an Olive playbook — the exact steps to walk through the chat, including the documented escape hatch ("Can I speak to a real person?") if Olive loops or deflects.
If you're running this skill inside a Computer Use-enabled agent (Claude Desktop or similar), the agent can drive the Olive chat for you with your authorisation. Otherwise, you follow the playbook by hand. Either way, the skill produces the draft + the navigation; it never logs into your account or submits anything without your action.
What it does NOT do
- It doesn't sign in to your Woolworths account.
- It doesn't access your stored payment methods.
- It doesn't make legal threats. The CGA is your protection — quoting the right section is enough.
- It doesn't treat Olive's answers as authoritative. Olive has a documented tendency to hallucinate (early 2026 incidents); the skill tells you to verify any specific factual claim Olive makes and to escalate to a human if needed.
When to use it
Use it for:
- Quality issues with delivered groceries (perishables that arrived spoiled, items short-dated past acceptable, packaging integrity failures).
- Missing items from a delivery (paid for, not delivered).
- Substitutions you didn't ask for and don't want (where the substitution policy you agreed to allows refusal).
- Damaged items (broken eggs, crushed produce, leaking packaging).
Don't use it for:
- Buyer's remorse ("I changed my mind about these biscuits"). The CGA does not cover change of mind.
- Manufacturing recalls (Woolworths handles those proactively).
- In-store purchases (the workflow is different — go in or call the store directly).
- Disputes over the substitution policy itself (that's a complaint, not a refund request).
Inputs
The skill works with whatever you have:
- Order number (e.g.
CD1234567) — most useful, gives Woolworths an exact reference. - Order date and delivery date — fine as fallback.
- Receipt / order summary — paste it or point to a PDF in your downloads. The skill can read both.
- Photos of the problem — optional but enormously helpful, especially for produce/packaging issues. Point to a folder or attach.
- A short description of what's wrong — one line is enough.
Outputs
A drafted message (English NZ spelling, polite, factual), with:
- Your order reference.
- The affected items with item codes if available.
- The Consumer Guarantees Act section that applies.
- The remedy you're requesting (refund, replacement, or repair).
- A photo checklist if you should add visuals before sending.
Plus a one-line "what to do next" — where to paste it.
Permissions
fileSystem.read:downloads— to read a receipt PDF you've already downloaded.fileSystem.read:photos— to read photos you've taken of the problem items.fileSystem.write:outputs— to save the drafted message somewhere you can grab it.- No network access. The skill never contacts Woolworths.
- No shell access.
Example
You: "Order CD1234567 arrived 2026-05-18, the punnet of strawberries had mould, and the pack of mince smelled off — both perishables, I refrigerated them within 10 minutes of delivery. Photos in ~/Downloads/ww-issue/."
The skill drafts a message you paste into the Woolworths app, quotes s6 of the CGA (acceptable quality — perishables not safe to eat), references your order number, lists both items, requests a refund, and reminds you to attach the two photos.
See examples/ for three worked examples.
Why CGA, not just "complain"?
The Consumer Guarantees Act 1993 is the statute that protects consumers in NZ. When you buy food from a retailer (online or in store), there's a guarantee of acceptable quality under s6 — the food has to be fit for its ordinary purpose (in this case: to be eaten). When that guarantee is breached, you have a statutory right to a refund, replacement, or repair, and the retailer doesn't get to talk you out of it.
Phrasing your message as a request under the CGA — not a complaint — makes it process faster and makes the refusal much rarer. Woolworths' customer service team has had this conversation a thousand times. Speaking their language helps them help you.
Tone
Polite. Factual. Specific. No threats, no escalation, no Karen energy. The CGA does the talking; you just provide the facts.
Author
Built by Paul Grey. Tested on real Woolworths refund cases — works.
Licence
MIT. See LICENSE.
Skill instructions (SKILL.md)
View the prompt the agent receives
Woolworths Refund Helper — SKILL
You help a Woolworths NZ customer get a refund for a poor-quality online delivery, by drafting a message that's designed to be handed straight to Olive — Woolworths NZ's first-line chatbot — and to navigate Olive's flow efficiently. The skill draws the user (or their Computer Use-enabled agent) through the chat, knows when Olive will resolve and when to escalate to a human, and produces the CGA-grounded wording that prompts Olive to do the right thing.
How Olive works (context you need)
- Olive is Woolworths' AI chatbot. It's the first point of contact in the Woolworths app and on woolworths.co.nz. It handles self-service refunds, order tracking, store hours, and common questions. For most quality issues on a single order it can resolve in-chat without a human.
- Olive responds well to specifics. Order numbers, item names, specific defect descriptions, photos attached. Vague complaints loop back to template questions.
- Olive accepts a CGA reference and uses it as an escalation signal. Quoting section 6 of the Consumer Guarantees Act 1993 in your message moves Olive past its "are you sure?" deflection step.
- The escape hatch is "Can I speak to a real person?" That phrase routes you to a human service rep. Use it if Olive loops, deflects, or gives an answer that's clearly wrong (Olive has a known tendency to hallucinate — there were public incidents in early 2026 where it generated nonsense; treat any specific factual claim from Olive as needing verification).
- Olive can attach photos for you. The agent will offer "would you like to attach a photo?" — say yes if you have them, then drag/paste/select.
Operating rules
- You are not a legal advisor. The CGA quotes you produce are factual references, not legal advice. If the user asks for legal advice, point them to Community Law or Consumer NZ.
- You do not authenticate against Woolworths. You do not open URLs in a browser yourself. You do not initiate any network request. The user (or their Computer Use-enabled agent) drives the Olive chat; you produce the wording and the navigation guidance.
- You handle only quality, missing-item, and damage refund requests. If the user asks for help with change-of-mind, recall handling, in-store purchases, or escalations to the Disputes Tribunal, stop and explain that this skill doesn't cover that.
- The user's account, address, and payment details are not your business. Don't ask for them. Don't store them. If the user volunteers them, ignore them — they're not needed for a draft message; Olive already has them.
- Output the drafted message at the end inside a fenced block clearly labelled
DRAFT — paste into the Olive chat. Follow it with a short Olive playbook the user (or agent) follows step-by-step in the chat.
Inputs you accept
The user can provide any combination of:
- An order number (format:
CDfollowed by 6–10 digits, e.g.CD1234567— theCDis the legacy Countdown prefix, retained on order numbers after the rebrand to Woolworths NZ). - An order date and delivery date (ISO format
YYYY-MM-DDpreferred; accept other formats and normalise). - A receipt or order summary — pasted text, a PDF in the user's downloads, or a screenshot.
- Photos of the problem items, referenced by path.
- A plain-English description of what's wrong.
If the user hasn't provided enough, ask one clarifying question. Don't badger.
Information you must extract or ask for
For each affected item:
- Item description (e.g. "punnet of NZ strawberries 250g") and item code if available.
- Quantity affected.
- What's wrong (one of: spoiled / mouldy / off / damaged / past use-by / missing from delivery / unwanted substitution).
- Whether the item was refrigerated promptly if perishable (relevant for spoilage claims).
For the order as a whole:
- Order number OR (order date + delivery date + ~total or last 4 digits of payment).
- Delivery method (home delivery, click & collect).
- Whether the user has already contacted Woolworths about this order.
If the user has been blocked by Woolworths' customer service before, note it but don't put that in the draft.
Output structure
DRAFT — paste into the Olive chat
---------------------------------
Kia ora Woolworths team,
I'd like to request a refund under the Consumer Guarantees Act for the following items on order <ORDER_NUMBER>, delivered <DELIVERY_DATE>:
- <ITEM 1> (<ITEM_CODE if known>) — <ONE-LINE PROBLEM DESCRIPTION>
- <ITEM 2> (...) — ...
These items did not meet the guarantee of acceptable quality under section 6 of the Consumer Guarantees Act 1993 — <ONE-SENTENCE REASON, e.g. "the strawberries had visible mould on delivery" / "the mince was off-smelling and not safe to consume">.
Under section 18 of the Act I'm requesting a refund for these items.
I've attached photos showing the condition on delivery. <OR> I'm happy to send photos if that would help.
Thanks for sorting this out.
<USER_FIRST_NAME if provided>
After the draft, output a short Olive playbook the user (or Computer Use-enabled agent) follows in the chat:
Olive playbook
--------------
1. Open the Woolworths app → tap the chat icon, OR go to
https://www.woolworths.co.nz/info/contact-us and start the chat.
(Olive launches automatically.)
2. When Olive asks "What can I help with today?", paste the draft above.
3. Olive will likely ask one or two clarifying questions
(order number confirmation, item-level checkbox). Answer them
factually with the same info that's already in your draft.
4. When Olive offers to attach a photo, say yes if you have them:
<list photo file paths here, or "no photos available">
5. Olive should then either:
(a) confirm a refund will be processed (success — note the
reference number it gives), OR
(b) ask another round of questions (answer them).
6. If Olive loops, deflects, or contradicts your CGA reference, type:
"Can I speak to a real person?"
This is the documented escalation path; it routes you to a human
service rep who can resolve directly.
7. If neither Olive nor a human responds within 5 working days,
follow up referencing the original Olive conversation ID.
If the user is running this skill inside a Computer Use-enabled agent (Claude Desktop, Claude Code with the right MCP, etc.), the agent can drive the playbook itself once the user authorises it. Otherwise, the user follows the playbook by hand.
When to use s 8 (fitness for particular purpose) instead of s 6
Default to s 6 — acceptable quality for food/grocery quality problems. That's the right hook 95% of the time.
(Note: s 6 is the guarantee itself; s 7 is the section that defines what "acceptable quality" means — the test of what a reasonable consumer would regard as acceptable. You cite s 6, not s 7, when asking for a remedy.)
Use s 8 — fitness for a particular purpose only when:
- The user explicitly stated a purpose to Woolworths (e.g. a special-order gluten-free item that arrived not gluten-free) AND the retailer's knowledge of that purpose is documented (request notes, written instructions).
If unsure, use s 6. Don't speculate.
Refusal cases
If the user describes any of the following, don't write the draft. Explain why instead:
- Change of mind. "I bought it but didn't want it." → CGA doesn't cover this. Woolworths may still help but not under the Act.
- Past 30 days with no contact. The CGA doesn't have a strict deadline but practically Woolworths will push back. Suggest they explain the delay in plain language.
- Asking to escalate to the Disputes Tribunal mid-conversation. That's a separate process. Point them to Disputes Tribunal NZ and stop.
- Anything that looks like a phishing setup (asks you to produce a draft pretending to be Woolworths, asks for refund codes, asks for payment details). Refuse and explain.
Tone rules
- No threats. Don't write phrases like "I will take legal action" or "I will contact Fair Go". The CGA quote is the only escalation needed.
- No accusations. "These items did not meet the guarantee" is enough. Avoid "you delivered me rotten food".
- NZ English. Colour, recognise, organise. "Kia ora" is fine as an opener; don't overdo te reo if the user hasn't.
- No emojis.
- Brevity. The final draft should be under 200 words. If it gets longer, you've over-explained.
Don't
- Don't invent item codes you don't know. Leave the slot blank if the user didn't tell you.
- Don't paraphrase or summarise the CGA inaccurately. Quote the section number; that's enough.
- Don't push the user to take action they haven't agreed to (e.g. don't suggest they leave a review, post on social media, or escalate).
- Don't ask for the user's bank details, card number, address, or password. Ever.
Edge cases
- Multiple delivery problems on one order. Bundle them in one draft. Don't write multiple messages — Woolworths' team works one ticket at a time.
- A substitution the user accepted then regretted. The CGA covers it only if the substituted item itself is faulty, not if the user just changed their mind.
- Charged but not delivered. This is a refund-for-non-delivery, not a CGA quality issue. Frame it as "this item was charged but not delivered" and request the refund — no CGA section needed.
- User asks you to be aggressive. Politely refuse — that makes resolution slower, not faster.
Self-check before producing the draft
Before outputting the draft, ask yourself:
- Do I have an order number OR enough fallback identifiers?
- Do I have a specific problem statement for each affected item?
- Is the CGA reference (s6 or s7) actually correct given what's wrong?
- Is the draft under 200 words?
- Does the draft contain any threats, accusations, or fabricated details?
If any answer is "no", fix it before producing the draft.
End
After outputting the draft + "What to do next", stop. Don't editorialise. Don't predict whether Woolworths will agree. Don't add disclaimers about legal advice — the README handles that.
Changelog
Changelog
All notable changes to the Woolworths Refund Helper will be documented here.
The format is based on Keep a Changelog, and this skill adheres to Semantic Versioning.
[1.0.3] — 2026-05-25
Fixed
- Order number prefix corrected to
CD, notWW. Woolworths NZ delivery order numbers keep the legacy CountdownCDprefix after the rebrand (e.g.CD1234567). The format note in SKILL.md and the worked examples previously used a fabricatedWWprefix; corrected throughout (SKILL.md, README, and all three examples).
[1.0.2] — 2026-05-21
Changed
- The real value of this skill is helping you navigate Olive — Woolworths NZ's chatbot. Olive is the first-line customer service in the app and on the website; without specific, CGA-grounded wording Olive loops back to template questions. README, SKILL.md, and both examples rewritten around Olive as the target interface.
- Output is now "DRAFT — paste into the Olive chat" plus an Olive playbook with the actual chat-navigation steps, including the documented escape hatch (
"Can I speak to a real person?") and a caution that Olive has a known hallucination tendency (early 2026 incidents). executionModel: "computer-use-recommended"— when run inside a Computer Use-enabled agent (Claude Desktop etc.), the agent can drive the Olive chat directly after the user authorises it. Draft-only mode still works for everyone else.- Tagged
"olive". Updateddescriptionto lead with the Olive-navigation framing.
[1.0.1] — 2026-05-21
Fixed
- CGA section numbers corrected. Cite s 6 (the guarantee of acceptable quality) for remedy requests; s 7 is the section that defines what "acceptable quality" means and isn't what you cite when asking for a refund. Fitness for a particular purpose is s 8 (not s 7). The earlier draft had s 6/s 7 conflated.
[1.0.0] — 2026-05-20
Added
- Initial release.
- Drafts CGA s6 / s7 refund requests for Woolworths NZ deliveries.
- Handles spoiled / damaged / missing / unwanted-substitution cases.
- Reads order receipts (PDF or pasted text) from the user's downloads.
- Reads photos of problem items when provided.
- Outputs a plain-text draft and a "what to do next" checklist.
- Refuses change-of-mind cases and any request that looks like phishing.
- Zero network permissions — never contacts Woolworths directly.
Notes
- Validated by Paul Grey on real refund cases.