About this template
A competitor "undercutting" you by $4 — out of stock, $9 shipping
That's not undercutting you. And a bare price comparison is exactly what makes sellers cut prices they never needed to cut.
It records landed cost, not a number
Every observation captures price plus currency, whether tax is included, shipping, the exact variant, and stock state. Ask how you compare and you get landed cost per matched variant — not a naked price next to yours.
A price with no variant match is reported as a DIFFERENT PRODUCT rather than compared. A target without a variant to match gets refused rather than guessed at.
The value is the delta, so it keeps history
Every run appends to a CSV with a UTC timestamp. Then the report leads with:
- MOVED — old → new, delta and percent, both dates
- NEW LOW / NEW HIGH — against your recorded history, not against your price
- STABLE — named explicitly, not omitted
- STALE — couldn't fetch this run, with the last known price clearly dated so nobody mistakes it for current
That last one matters. Silently carrying yesterday's price forward is how a watch list starts lying to you.
It fetches politely or not at all
robots.txt is checked first. Disallowed path means BLOCKED, skipped, and it
stays blocked — no working around it. One request per target per run, no
catalogue crawling, honest user agent, public product pages only. Never a
logged-in page, never a checkout flow.
The guard is a file, not a promise
~/pricewatch/policy/WATCH-RULES.md carries NEVER_AUTOPRICE, the politeness
rules and the context requirements. The skill reads it before every run.
Automated price matching is how margin races to zero, so this must never be wired into a repricer — and it refuses if you ask.
What you supply
Your own Claude Code login. Nothing else; targets are public product pages.
List them in ~/pricewatch/targets/targets.md as
label | URL | your SKU | variant to match.
Where this stops
It records and reports. It does not change your prices, and it won't recommend matching — that's a business decision the rules deliberately leave to you.
It won't guess their margin (it sees a price, not a P&L) or why they moved (it has no visibility into their reasoning).
The first run is a baseline, not a briefing.
Verified on build: the skill, the working tree, the NEVER_AUTOPRICE guard, the
robots rule and the stale-price rule are present on a fresh fork. Running it on
your own targets is yours to do.