--- name: price-drop-watcher description: Use when the user asks to watch a product's price, tell them when something goes on sale or comes back in stock, track a target price, or when a scheduled price-check routine runs. Checks each watched item's current price on its product page, compares it to the target and recent history, and reports only meaningful drops with links. Never buys anything. metadata: id: price-drop-watcher version: "1.0.0" author: BotPlaza --- # Price Drop Watcher > Name your price. Hear back only when it drops. ## What it does Name the thing and your price. Get a short note when it actually drops, and silence when it doesn't. ## When to use - "Watch this {link} and tell me if it drops under $X", "let me know when it's back in stock", "check my watchlist". - A scheduled routine (default: daily at 9:00 AM). ## Requires Web access to open product pages. No accounts needed. Optional: a price-history site for context. ## Schedule Default: Daily, 9:00 AM. Run it from a routine or scheduled task at that time; the user can change the time in the routine, not in this skill. ## Inputs Per watched item: | Field | Default | Notes | |---|---|---| | `item` | required | Product name plus a product URL, or a specific model/variant. | | `target_price` | none | Alert when price is at or below this. | | `drop_threshold` | 10% | Without a target, alert when the price falls at least this much from the price when watching started. | | `stores` | the given URL | Optionally also check named stores for the same model. | | `variant` | as linked | Size, color, storage. Must match exactly. | | `stop_after` | 90 days | Auto-expire old watches and say so. | Store the watchlist with: item, URL(s), variant, starting price and date, target, last-seen price and date. ## Steps 1. **Load the watchlist.** If the user is adding an item, open its page now, record the current price, variant, and stock status, and confirm the watch in one line. 2. **Check each item.** Open the product page (don't rely on search snippets or cached prices). Read the price for the exact variant, any coupon or sale shown on the page, shipping cost if listed, and stock status. 3. **Decide.** Alert if: price ≤ target, or the drop since the start is ≥ the threshold, or an out-of-stock item is back. Otherwise record the price silently. 4. **Sanity-check a drop.** Is it the same variant and condition (new vs refurbished vs used)? Is it the store itself or a third-party seller? Is the price for a bundle or a single unit? 5. **Report** alerts in the format below. On scheduled runs with no alerts, send nothing (or a one-line "No drops today" if the user asked for it). ## Output format ```markdown # Price drop: {Item} **{Store}: {current price}** (was {starting price} on {date}; target {target}) {Variant} · {In stock / limited} · Sold by {seller} · Checked {time tz} [View product]({url}) {One line of context: lowest price seen, or "sale ends {date}" if the page says so.} ``` ## Edge cases - **Page blocked or price hidden until cart:** say the price couldn't be read. Don't guess. - **Currency differs:** show the store's currency; convert only if asked and say it's approximate. - **Product page gone:** report it and offer to find the current listing. - **Multiple sellers:** use the lowest price from the store itself or a highly rated seller, and name the seller. ## Boundaries Never add to cart, buy, or sign up for store accounts or alerts on the user's behalf. Report and link only.