{
  "id": "price-drop-watcher",
  "slug": "price-drop-watcher",
  "name": "Price Drop Watcher",
  "tagline": "Name your price. Hear back only when it drops.",
  "description": "Watches products you name, checks the real product page on a schedule, and messages you only when the price hits your target or stock returns.",
  "category": "Shopping",
  "platforms": [
    "Grok Bot",
    "Muse",
    "Dots"
  ],
  "schedule": "Daily, 9:00 AM",
  "outputType": "alert",
  "previewImage": "previews/price-drop-watcher.png",
  "installSteps": {
    "grokBot": {
      "label": "Grok Bot",
      "status": "verified",
      "steps": [
        "Copy skills/price-drop-watcher/SKILL.md (the whole file, including the --- header).",
        "Open a one-to-one chat with your Grok Bot and paste the prompt below, with the file where it says.",
        "Try it once now: \"Run Price Drop Watcher.\"",
        "The routine shows in the Bot's info pane (click the Bot's name in the chat header) under Routines, where you can pause or edit it."
      ],
      "prompt": "Save the following as a skill called \"Price Drop Watcher\". Then create a routine that runs it every day at 9:00 AM and posts the result here. Before the first run, ask me the setup questions in the skill and remember my answers.\n\n<paste SKILL.md here>",
      "note": "Skills and routines are saved by asking the Bot; no settings to dig through.",
      "promptFull": "Save the following as a skill called \"Price Drop Watcher\". Then create a routine that runs it every day at 9:00 AM and posts the result here. Before the first run, ask me the setup questions in the skill and remember my answers.\n\n---\nname: price-drop-watcher\ndescription: 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.\nmetadata:\n  id: price-drop-watcher\n  version: \"1.0.0\"\n  author: BotPlaza\n---\n\n# Price Drop Watcher\n\n> Name your price. Hear back only when it drops.\n\n## What it does\n\nName the thing and your price. Get a short note when it actually drops, and silence when it doesn't.\n\n## When to use\n\n- \"Watch this {link} and tell me if it drops under $X\", \"let me know when it's back in stock\", \"check my watchlist\".\n- A scheduled routine (default: daily at 9:00 AM).\n\n## Requires\n\nWeb access to open product pages. No accounts needed. Optional: a price-history site for context.\n\n## Schedule\n\nDefault: 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.\n\n## Inputs\n\nPer watched item:\n\n| Field | Default | Notes |\n|---|---|---|\n| `item` | required | Product name plus a product URL, or a specific model/variant. |\n| `target_price` | none | Alert when price is at or below this. |\n| `drop_threshold` | 10% | Without a target, alert when the price falls at least this much from the price when watching started. |\n| `stores` | the given URL | Optionally also check named stores for the same model. |\n| `variant` | as linked | Size, color, storage. Must match exactly. |\n| `stop_after` | 90 days | Auto-expire old watches and say so. |\n\nStore the watchlist with: item, URL(s), variant, starting price and date, target, last-seen price and date.\n\n## Steps\n\n1. **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.\n2. **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.\n3. **Decide.** Alert if: price \u2264 target, or the drop since the start is \u2265 the threshold, or an out-of-stock item is back. Otherwise record the price silently.\n4. **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?\n5. **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).\n\n## Output format\n\n```markdown\n# Price drop: {Item}\n**{Store}: {current price}** (was {starting price} on {date}; target {target})\n{Variant} \u00b7 {In stock / limited} \u00b7 Sold by {seller} \u00b7 Checked {time tz}\n[View product]({url})\n\n{One line of context: lowest price seen, or \"sale ends {date}\" if the page says so.}\n```\n\n## Edge cases\n\n- **Page blocked or price hidden until cart:** say the price couldn't be read. Don't guess.\n- **Currency differs:** show the store's currency; convert only if asked and say it's approximate.\n- **Product page gone:** report it and offer to find the current listing.\n- **Multiple sellers:** use the lowest price from the store itself or a highly rated seller, and name the seller.\n\n## Boundaries\n\nNever add to cart, buy, or sign up for store accounts or alerts on the user's behalf. Report and link only."
    },
    "muse": {
      "label": "Muse",
      "status": "partially-verified",
      "steps": [
        "Copy skills/price-drop-watcher/SKILL.md.",
        "Open Muse and paste the prompt below with the file where it says.",
        "Try it: \"Run Price Drop Watcher.\" Muse has no skill install for outside skills, so it follows the pasted instructions.",
        "Ask Muse to make it a recurring task every day at 9:00 AM. It then shows under the Assistant icon > Upcoming.",
        "Muse Code (developer CLI): unzip downloads/price-drop-watcher.zip, run `muse skills validate ./price-drop-watcher` then `muse skills install ./price-drop-watcher --scope user`. Optional: add the BotPlaza connector (https://botplaza.lol/api/mcp) under mcpServers in ~/.config/muse/settings.json."
      ],
      "sourceUrl": "https://www.meta.com/help/superintelligence/1484325780075655/",
      "note": "Recurring tasks and Muse Code skill install are documented by Meta. Installing outside skills in the Muse app is not.",
      "prompt": "Here are instructions for a task called \"Price Drop Watcher\". Follow them whenever I say \"Run Price Drop Watcher\". Ask me the setup questions first and remember my answers.\n\n<paste SKILL.md here>\n\nIf you can save this as a skill, please do.",
      "promptFull": "Here are instructions for a task called \"Price Drop Watcher\". Follow them whenever I say \"Run Price Drop Watcher\". Ask me the setup questions first and remember my answers.\n\n---\nname: price-drop-watcher\ndescription: 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.\nmetadata:\n  id: price-drop-watcher\n  version: \"1.0.0\"\n  author: BotPlaza\n---\n\n# Price Drop Watcher\n\n> Name your price. Hear back only when it drops.\n\n## What it does\n\nName the thing and your price. Get a short note when it actually drops, and silence when it doesn't.\n\n## When to use\n\n- \"Watch this {link} and tell me if it drops under $X\", \"let me know when it's back in stock\", \"check my watchlist\".\n- A scheduled routine (default: daily at 9:00 AM).\n\n## Requires\n\nWeb access to open product pages. No accounts needed. Optional: a price-history site for context.\n\n## Schedule\n\nDefault: 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.\n\n## Inputs\n\nPer watched item:\n\n| Field | Default | Notes |\n|---|---|---|\n| `item` | required | Product name plus a product URL, or a specific model/variant. |\n| `target_price` | none | Alert when price is at or below this. |\n| `drop_threshold` | 10% | Without a target, alert when the price falls at least this much from the price when watching started. |\n| `stores` | the given URL | Optionally also check named stores for the same model. |\n| `variant` | as linked | Size, color, storage. Must match exactly. |\n| `stop_after` | 90 days | Auto-expire old watches and say so. |\n\nStore the watchlist with: item, URL(s), variant, starting price and date, target, last-seen price and date.\n\n## Steps\n\n1. **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.\n2. **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.\n3. **Decide.** Alert if: price \u2264 target, or the drop since the start is \u2265 the threshold, or an out-of-stock item is back. Otherwise record the price silently.\n4. **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?\n5. **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).\n\n## Output format\n\n```markdown\n# Price drop: {Item}\n**{Store}: {current price}** (was {starting price} on {date}; target {target})\n{Variant} \u00b7 {In stock / limited} \u00b7 Sold by {seller} \u00b7 Checked {time tz}\n[View product]({url})\n\n{One line of context: lowest price seen, or \"sale ends {date}\" if the page says so.}\n```\n\n## Edge cases\n\n- **Page blocked or price hidden until cart:** say the price couldn't be read. Don't guess.\n- **Currency differs:** show the store's currency; convert only if asked and say it's approximate.\n- **Product page gone:** report it and offer to find the current listing.\n- **Multiple sellers:** use the lowest price from the store itself or a highly rated seller, and name the seller.\n\n## Boundaries\n\nNever add to cart, buy, or sign up for store accounts or alerts on the user's behalf. Report and link only.\n\nIf you can save this as a skill, please do."
    },
    "dots": {
      "label": "Dots",
      "status": "partially-verified",
      "steps": [
        "Copy skills/price-drop-watcher/SKILL.md.",
        "Paste the prompt below into your dot's conversation in ChatGPT, with the file where it says.",
        "Wait for the dot to confirm the schedule, time zone and end date.",
        "Optional: in ChatGPT, Plugins > + > Add custom MCP server with https://botplaza.lol/api/mcp (no authentication). Dots can use installed plugins, but OpenAI hasn't said whether that includes custom ones.",
        "Business, Enterprise, Healthcare and Edu workspaces can also upload downloads/price-drop-watcher.zip under Plugins > Skills > Create > Upload from your computer."
      ],
      "sourceUrl": "https://learn.chatgpt.com/docs/dots",
      "note": "Dots are available on ChatGPT Pro, Business Premium and Enterprise, and are still rolling out. Pasting instructions in and scheduled check-ins are documented.",
      "prompt": "Here are instructions for a task called \"Price Drop Watcher\". Take this on as an ongoing responsibility and follow them whenever I say \"Run Price Drop Watcher\". Ask me the setup questions first and remember my answers.\n\n<paste SKILL.md here>\n\nCheck in every day at 9:00 AM Eastern time for the next 3 months, and confirm the schedule back to me.",
      "promptFull": "Here are instructions for a task called \"Price Drop Watcher\". Take this on as an ongoing responsibility and follow them whenever I say \"Run Price Drop Watcher\". Ask me the setup questions first and remember my answers.\n\n---\nname: price-drop-watcher\ndescription: 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.\nmetadata:\n  id: price-drop-watcher\n  version: \"1.0.0\"\n  author: BotPlaza\n---\n\n# Price Drop Watcher\n\n> Name your price. Hear back only when it drops.\n\n## What it does\n\nName the thing and your price. Get a short note when it actually drops, and silence when it doesn't.\n\n## When to use\n\n- \"Watch this {link} and tell me if it drops under $X\", \"let me know when it's back in stock\", \"check my watchlist\".\n- A scheduled routine (default: daily at 9:00 AM).\n\n## Requires\n\nWeb access to open product pages. No accounts needed. Optional: a price-history site for context.\n\n## Schedule\n\nDefault: 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.\n\n## Inputs\n\nPer watched item:\n\n| Field | Default | Notes |\n|---|---|---|\n| `item` | required | Product name plus a product URL, or a specific model/variant. |\n| `target_price` | none | Alert when price is at or below this. |\n| `drop_threshold` | 10% | Without a target, alert when the price falls at least this much from the price when watching started. |\n| `stores` | the given URL | Optionally also check named stores for the same model. |\n| `variant` | as linked | Size, color, storage. Must match exactly. |\n| `stop_after` | 90 days | Auto-expire old watches and say so. |\n\nStore the watchlist with: item, URL(s), variant, starting price and date, target, last-seen price and date.\n\n## Steps\n\n1. **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.\n2. **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.\n3. **Decide.** Alert if: price \u2264 target, or the drop since the start is \u2265 the threshold, or an out-of-stock item is back. Otherwise record the price silently.\n4. **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?\n5. **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).\n\n## Output format\n\n```markdown\n# Price drop: {Item}\n**{Store}: {current price}** (was {starting price} on {date}; target {target})\n{Variant} \u00b7 {In stock / limited} \u00b7 Sold by {seller} \u00b7 Checked {time tz}\n[View product]({url})\n\n{One line of context: lowest price seen, or \"sale ends {date}\" if the page says so.}\n```\n\n## Edge cases\n\n- **Page blocked or price hidden until cart:** say the price couldn't be read. Don't guess.\n- **Currency differs:** show the store's currency; convert only if asked and say it's approximate.\n- **Product page gone:** report it and offer to find the current listing.\n- **Multiple sellers:** use the lowest price from the store itself or a highly rated seller, and name the seller.\n\n## Boundaries\n\nNever add to cart, buy, or sign up for store accounts or alerts on the user's behalf. Report and link only.\n\nCheck in every day at 9:00 AM Eastern time for the next 3 months, and confirm the schedule back to me."
    },
    "chatgpt": {
      "label": "ChatGPT",
      "status": "unverified",
      "verified": false,
      "steps": [
        "Download https://botplaza.lol/downloads/price-drop-watcher.zip (don't unzip).",
        "ChatGPT sidebar \u2192 Plugins \u2192 Skills tab \u2192 Create \u2192 Upload from your computer.",
        "Wait for the scan; if it says Needs Review, read it and approve.",
        "Use it with @price-drop-watcher or just ask.",
        "Ask ChatGPT to set a scheduled task that runs @price-drop-watcher at this cadence: every day at 9:00 AM. Set the time in your own time zone."
      ],
      "sourceUrl": "https://help.openai.com/en/articles/20001066-skills-in-chatgpt",
      "note": "Business, Enterprise, Edu and Healthcare plans only. Other plans fall back to pasting the prompt.",
      "prompt": "Here are instructions for a task called \"Price Drop Watcher\". Follow them whenever I say \"Run Price Drop Watcher\". Ask me the setup questions first and remember my answers.\n\n<paste SKILL.md here>",
      "promptFull": "Here are instructions for a task called \"Price Drop Watcher\". Follow them whenever I say \"Run Price Drop Watcher\". Ask me the setup questions first and remember my answers.\n\n---\nname: price-drop-watcher\ndescription: 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.\nmetadata:\n  id: price-drop-watcher\n  version: \"1.0.0\"\n  author: BotPlaza\n---\n\n# Price Drop Watcher\n\n> Name your price. Hear back only when it drops.\n\n## What it does\n\nName the thing and your price. Get a short note when it actually drops, and silence when it doesn't.\n\n## When to use\n\n- \"Watch this {link} and tell me if it drops under $X\", \"let me know when it's back in stock\", \"check my watchlist\".\n- A scheduled routine (default: daily at 9:00 AM).\n\n## Requires\n\nWeb access to open product pages. No accounts needed. Optional: a price-history site for context.\n\n## Schedule\n\nDefault: 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.\n\n## Inputs\n\nPer watched item:\n\n| Field | Default | Notes |\n|---|---|---|\n| `item` | required | Product name plus a product URL, or a specific model/variant. |\n| `target_price` | none | Alert when price is at or below this. |\n| `drop_threshold` | 10% | Without a target, alert when the price falls at least this much from the price when watching started. |\n| `stores` | the given URL | Optionally also check named stores for the same model. |\n| `variant` | as linked | Size, color, storage. Must match exactly. |\n| `stop_after` | 90 days | Auto-expire old watches and say so. |\n\nStore the watchlist with: item, URL(s), variant, starting price and date, target, last-seen price and date.\n\n## Steps\n\n1. **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.\n2. **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.\n3. **Decide.** Alert if: price \u2264 target, or the drop since the start is \u2265 the threshold, or an out-of-stock item is back. Otherwise record the price silently.\n4. **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?\n5. **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).\n\n## Output format\n\n```markdown\n# Price drop: {Item}\n**{Store}: {current price}** (was {starting price} on {date}; target {target})\n{Variant} \u00b7 {In stock / limited} \u00b7 Sold by {seller} \u00b7 Checked {time tz}\n[View product]({url})\n\n{One line of context: lowest price seen, or \"sale ends {date}\" if the page says so.}\n```\n\n## Edge cases\n\n- **Page blocked or price hidden until cart:** say the price couldn't be read. Don't guess.\n- **Currency differs:** show the store's currency; convert only if asked and say it's approximate.\n- **Product page gone:** report it and offer to find the current listing.\n- **Multiple sellers:** use the lowest price from the store itself or a highly rated seller, and name the seller.\n\n## Boundaries\n\nNever add to cart, buy, or sign up for store accounts or alerts on the user's behalf. Report and link only."
    },
    "gemini": {
      "label": "Gemini",
      "status": "unverified",
      "verified": false,
      "steps": [
        "gemini.google.com \u2192 Customize \u2192 Skills \u2192 Create \u2192 Upload \u2192 pick the SKILL.md at https://botplaza.lol/skills/price-drop-watcher.md (or https://botplaza.lol/downloads/price-drop-watcher.zip).",
        "Review, then Create.",
        "Use it with /price-drop-watcher."
      ],
      "sourceUrl": "https://support.google.com/gemini/answer/17094296",
      "note": "Personal accounts 18+. Workspace users must recreate the skill in Workspace Studio.",
      "prompt": "Here are instructions for a task called \"Price Drop Watcher\". Follow them whenever I say \"Run Price Drop Watcher\". Ask me the setup questions first and remember my answers.\n\n<paste SKILL.md here>",
      "promptFull": "Here are instructions for a task called \"Price Drop Watcher\". Follow them whenever I say \"Run Price Drop Watcher\". Ask me the setup questions first and remember my answers.\n\n---\nname: price-drop-watcher\ndescription: 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.\nmetadata:\n  id: price-drop-watcher\n  version: \"1.0.0\"\n  author: BotPlaza\n---\n\n# Price Drop Watcher\n\n> Name your price. Hear back only when it drops.\n\n## What it does\n\nName the thing and your price. Get a short note when it actually drops, and silence when it doesn't.\n\n## When to use\n\n- \"Watch this {link} and tell me if it drops under $X\", \"let me know when it's back in stock\", \"check my watchlist\".\n- A scheduled routine (default: daily at 9:00 AM).\n\n## Requires\n\nWeb access to open product pages. No accounts needed. Optional: a price-history site for context.\n\n## Schedule\n\nDefault: 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.\n\n## Inputs\n\nPer watched item:\n\n| Field | Default | Notes |\n|---|---|---|\n| `item` | required | Product name plus a product URL, or a specific model/variant. |\n| `target_price` | none | Alert when price is at or below this. |\n| `drop_threshold` | 10% | Without a target, alert when the price falls at least this much from the price when watching started. |\n| `stores` | the given URL | Optionally also check named stores for the same model. |\n| `variant` | as linked | Size, color, storage. Must match exactly. |\n| `stop_after` | 90 days | Auto-expire old watches and say so. |\n\nStore the watchlist with: item, URL(s), variant, starting price and date, target, last-seen price and date.\n\n## Steps\n\n1. **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.\n2. **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.\n3. **Decide.** Alert if: price \u2264 target, or the drop since the start is \u2265 the threshold, or an out-of-stock item is back. Otherwise record the price silently.\n4. **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?\n5. **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).\n\n## Output format\n\n```markdown\n# Price drop: {Item}\n**{Store}: {current price}** (was {starting price} on {date}; target {target})\n{Variant} \u00b7 {In stock / limited} \u00b7 Sold by {seller} \u00b7 Checked {time tz}\n[View product]({url})\n\n{One line of context: lowest price seen, or \"sale ends {date}\" if the page says so.}\n```\n\n## Edge cases\n\n- **Page blocked or price hidden until cart:** say the price couldn't be read. Don't guess.\n- **Currency differs:** show the store's currency; convert only if asked and say it's approximate.\n- **Product page gone:** report it and offer to find the current listing.\n- **Multiple sellers:** use the lowest price from the store itself or a highly rated seller, and name the seller.\n\n## Boundaries\n\nNever add to cart, buy, or sign up for store accounts or alerts on the user's behalf. Report and link only."
    },
    "cli": {
      "label": "Skills CLI",
      "status": "verified",
      "steps": [
        "All agents: `npx skills add https://botplaza.lol --skill price-drop-watcher` (add `-a claude-code`, `-a codex`, or `-a cursor` to choose one).",
        "Claude Code marketplace: `/plugin marketplace add https://botplaza.lol/.claude-plugin/marketplace.json` then `/plugin install price-drop-watcher@botplaza`.",
        "Fallback, Claude Code: `curl -fsSL https://botplaza.lol/downloads/price-drop-watcher.zip -o s.zip && unzip s.zip -d ~/.claude/skills/`.",
        "Fallback, Codex and other .agents readers: `curl -fsSL https://botplaza.lol/downloads/price-drop-watcher.zip -o s.zip && unzip s.zip -d ~/.agents/skills/`.",
        "Fallback, Cursor project: `curl -fsSL https://botplaza.lol/downloads/price-drop-watcher.zip -o s.zip && unzip s.zip -d .cursor/skills/`."
      ],
      "sourceUrl": "https://www.skills.sh/docs",
      "note": "The skills CLI reads /.well-known/agent-skills/index.json and installs each SKILL.md. The zip fallback uses the existing downloads/<slug>.zip folder layout.",
      "prompt": "npx skills add https://botplaza.lol --skill price-drop-watcher",
      "promptFull": "npx skills add https://botplaza.lol --skill price-drop-watcher"
    }
  },
  "author": "BotPlaza",
  "tags": [
    "shopping",
    "deals",
    "price tracking",
    "back in stock",
    "alerts"
  ],
  "featured": false,
  "longDescription": "Paste a product link and the price you'd pay. Price Drop Watcher checks the actual product page, not a cached search result, and confirms it's the same size, colour, condition, and seller before it tells you anything. Most days it stays quiet. When the price hits your number or an item comes back in stock, you get one short note with the link. It never adds to cart or buys.",
  "customization": [
    {
      "key": "cadence",
      "label": "Check",
      "type": "select",
      "options": [
        "Daily",
        "Twice daily",
        "Weekly"
      ],
      "default": "Daily",
      "question": "How often should it check prices?"
    },
    {
      "key": "dropThreshold",
      "label": "Alert on a drop of",
      "type": "select",
      "options": [
        "5%",
        "10%",
        "20%",
        "Only at my target"
      ],
      "default": "10%",
      "question": "How big a drop is worth an alert?"
    },
    {
      "key": "quietDays",
      "label": "Message on days with no drops",
      "type": "boolean",
      "default": false,
      "question": "Should it message on days with no drops?"
    },
    {
      "key": "stopAfter",
      "label": "Stop watching after",
      "type": "select",
      "options": [
        "30 days",
        "90 days",
        "Never"
      ],
      "default": "90 days",
      "question": "When should it stop watching an item?"
    },
    {
      "key": "compareStores",
      "label": "Also check other stores",
      "type": "boolean",
      "default": false,
      "question": "Should it also check other stores?"
    }
  ],
  "whatYouGet": [
    "A watchlist with starting price and date",
    "Alerts only when the price hits your target or drops past your threshold",
    "Back-in-stock alerts",
    "Variant, seller, and condition checked before alerting",
    "Direct product links"
  ],
  "dataSources": [
    {
      "name": "Web (product pages)",
      "required": true
    }
  ],
  "setupTime": "1 minute",
  "sampleOutput": "samples/price-drop-watcher.md",
  "skillFile": "skills/price-drop-watcher/SKILL.md",
  "version": "1.0.0",
  "license": "",
  "previewAlt": "A price-drop alert: headphones down from $299.99 to $219.99, under the $230 target, with a 30-day price chart and two other watched items.",
  "writesOrSends": "Read-only. Never adds to cart or purchases.",
  "audience": "people",
  "setup": [
    {
      "key": "cadence",
      "question": "How often should it check prices?",
      "type": "select",
      "default": "Daily",
      "options": [
        "Daily",
        "Twice daily",
        "Weekly"
      ]
    },
    {
      "key": "dropThreshold",
      "question": "How big a drop is worth an alert?",
      "type": "select",
      "default": "10%",
      "options": [
        "5%",
        "10%",
        "20%",
        "Only at my target"
      ]
    },
    {
      "key": "quietDays",
      "question": "Should it message on days with no drops?",
      "type": "boolean",
      "default": false
    },
    {
      "key": "stopAfter",
      "question": "When should it stop watching an item?",
      "type": "select",
      "default": "90 days",
      "options": [
        "30 days",
        "90 days",
        "Never"
      ]
    },
    {
      "key": "compareStores",
      "question": "Should it also check other stores?",
      "type": "boolean",
      "default": false
    }
  ],
  "safety": {
    "dataAccess": [
      "Public product pages you list (price and stock only)"
    ],
    "writesOrSends": "Read-only. Never adds to cart or purchases.",
    "estCost": "Low to medium: one run a day (~30 a month), one page check per watched product.",
    "costLevel": "light",
    "warnings": [
      "It never adds to cart or buys anything.",
      "Some stores block automated page reads; those items show as 'couldn't check' rather than a wrong price.",
      "Prices can change between the alert and checkout."
    ]
  },
  "checked": {
    "instructionOnly": true,
    "scripts": false,
    "runtimeFetch": false,
    "sha256": "3f7af522027dfc383debb2766d81db0cb5c0585a90192095745f50246e2e85e4",
    "checkedOn": "2026-10-31"
  },
  "urls": {
    "page": "https://botplaza.lol/skills/price-drop-watcher/",
    "markdown": "https://botplaza.lol/skills/price-drop-watcher.md",
    "skillMd": "https://botplaza.lol/skills/price-drop-watcher/SKILL.md",
    "json": "https://botplaza.lol/skills/price-drop-watcher.json",
    "zip": "https://botplaza.lol/downloads/price-drop-watcher.zip",
    "mcp": "https://botplaza.lol/api/mcp"
  }
}