See the full prompt
Install the BotPlaza bundle "Research Desk" (3 skills). For each skill below, save it as a skill with its exact name. Then create one routine per scheduled skill that runs it on the schedule listed and posts the result here; skills marked on demand get no routine. Before the first run, read the setup questions in all 3 skills, merge the ones they share (such as my name, city, time zone and where to deliver), ask me everything in one short message, and remember my answers for every skill in this bundle. When you're done, list the skills and routines you created. Never send, post, submit, or buy anything on my behalf without asking me first.
1. Research Brief: on demand, no routine
2. Reading Digest: routine every Friday at 5:00 PM
3. Price Drop Watcher: routine every day at 9:00 AM
=== Skill 1 of 3: Research Brief ===
---
name: research-brief
description: Use when the user asks for a research brief, deep dive, explainer, literature scan, or "find out everything about" a topic, company, technology, or question. Produces a sourced brief with a bottom-line answer, key findings, open debates, and a numbered source list, with every claim tied to a source opened this run.
metadata:
id: research-brief
version: "1.0.0"
author: BotPlaza
---
# Research Brief
> Any question, answered with the evidence and every source.
## What it does
Turn a question into a brief the user can act on: the answer up top, the evidence below, and every claim traceable to a source.
## When to use
- "Research X", "give me a deep dive on X", "what's the state of X", "should we use X or Y", "brief me on X before Thursday".
- Not for live prices, sports scores, or a single fact lookup. Answer those directly.
## Requires
Web search and web access to open sources. No accounts needed.
## Schedule
On demand. Run it when the user asks; it can also be put on a schedule (for example a weekly brief on a tracked topic).
## Inputs
| Setting | Default | Notes |
|---|---|---|
| `question` | required | Restate it as one clear question before starting. If it's vague, pick the most useful reading, say which, and proceed. |
| `depth` | standard | `quick` (5–8 sources, about 1 page), `standard` (10–15 sources, 2–3 pages), `deep` (20+ sources, with a methods note). |
| `audience` | the user | E.g. "my CFO", "a non-technical friend". Sets vocabulary and what to explain. |
| `recency` | any | Or "last 12 months", "since 2024". |
| `source_types` | balanced | Toggle: news, academic papers, official/government data, company filings, expert blogs, forums. |
| `format` | brief | `brief` (prose + bullets), `table` (comparison grid), `memo` (one page, decision-oriented). |
## Steps
1. **Frame.** Write the question in one sentence and list 3 to 5 sub-questions that together answer it.
2. **Search wide.** Run several searches per sub-question with different phrasings. Include primary sources (papers, filings, official data, documentation), not just articles about them.
3. **Read, don't skim.** Open every source you will cite. Note the publish date, author or organization, and the specific claim you're using.
4. **Weigh sources.** Prefer primary over secondary, recent over old (unless history matters), and independent over interested parties. Flag when a source has a stake in the answer.
5. **Find the disagreement.** Look for where credible sources conflict. Report the conflict honestly; don't average it away.
6. **Answer.** Write a 2–3 sentence bottom line that directly answers the question, with your confidence (high / medium / low) and why.
7. **Write the brief** in the format below. Tie each claim to a numbered source like [3].
8. **Check.** Every number and quote matches its source. Every source is listed with a working URL and date. Nothing comes from memory alone; if you know something but can't source it, say "unsourced" or cut it.
## Output format
```markdown
# {Question}
*Research brief · {date} · {N} sources · Confidence: {high/medium/low}*
## Bottom line
{2–3 sentences answering the question.}
## Key findings
1. **{Finding}.** {Evidence, 1–3 sentences.} [1][4]
## Where sources disagree
- {Point of conflict, who says what.} [2] vs [6]
## What we still don't know
- {Gap}
## If you're deciding
- {Practical implication or next step}
## Sources
1. {Author/Org}, "{Title}", {Outlet}, {date}. {URL}
```
## Edge cases
- **Little reliable information:** say so in the bottom line. A short honest brief beats a long speculative one.
- **Fast-moving topic:** add "As of {date, time, tz}" and note what may change.
- **Medical, legal, or financial questions:** summarize the evidence, note it isn't professional advice, and point to the right kind of professional.
- **Paywalled papers:** use the abstract and say only the abstract was read.
- **The user's premise is wrong:** say so plainly in the bottom line, with the source.
## Boundaries
- Read-only. This skill never sends, posts, or buys anything.
- Never cite a source you didn't open this run, and never present model memory as a finding.
=== Skill 2 of 3: Reading Digest ===
---
name: reading-digest
description: Use when the user asks for a reading digest, paper digest, "what's new in {field}", a weekly roundup of research papers, newsletters, or saved articles, or when a scheduled reading routine runs. Finds new papers and long-form pieces on the user's topics, picks the few worth their time, and explains each in plain language with links.
metadata:
id: reading-digest
version: "1.0.0"
author: BotPlaza
---
# Reading Digest
> This week's papers worth reading, each explained in three lines.
## What it does
The handful of papers and essays from this week worth your time, each explained in three plain sentences, so you can decide what to actually read.
## When to use
- "What's new in {field} this week", "summarize this week's papers on {topic}", "go through my saved articles".
- A weekly routine (default: Friday 5:00 PM).
## Requires
Web search and web access (arXiv, journals, preprint servers). Optional: a read-later app (Readwise, Instapaper, Notion) to save picks.
## Schedule
Default: Weekly, Friday 5:00 PM. 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
| Setting | Default | Notes |
|---|---|---|
| `topics` | ask | E.g. "LLM agents", "CRISPR delivery", "urban planning". Up to 5. |
| `sources` | preprints, journals, quality long-form | Toggle: arXiv, bioRxiv/medRxiv, SSRN, journals, newsletters, the user's read-later list, specific blogs. |
| `window` | last 7 days | |
| `count` | 5 | Items in the digest. |
| `level` | informed non-specialist | Or `expert` (keep jargon, add methods detail) or `beginner`. |
| `include_skipped` | yes | A short "also out this week" list. |
## Steps
1. **Search** each topic across the enabled sources for items published in the window. Collect title, authors, venue, date, and link.
2. **Screen** by relevance to the topic, novelty (new result vs incremental), credibility (venue, methods, data), and attention from credible experts. Note when something is a preprint and not peer reviewed.
3. **Read** the abstract, introduction, figures, and conclusion of each pick at minimum. For articles, read the whole piece.
4. **Explain** each pick in three sentences: what they did, what they found, why it matters (or why to be skeptical).
5. **Add one honest caveat** per item (small sample, preprint, single lab, industry-funded, benchmark only).
6. **Write** in the format below, ordered by how much the user should care.
## Output format
```markdown
# Reading digest · {topics} · week of {date}
*{N} items reviewed, {count} picked*
## 1. {Title}
{Authors (first author et al.)} · {Venue or "Preprint"} · {date} · ~{X} min read
**What:** {one sentence} **Found:** {one sentence} **Why it matters:** {one sentence}
*Caveat: {one line}*
[Read]({url})
## Also out this week
- [{Title}]({url}), {one line}
```
## Edge cases
- **Nothing notable:** say so and list the 2 or 3 closest items instead of padding.
- **Paywalled:** use the abstract and say so; link a free version if the authors posted one.
- **Retractions or major corrections** to anything in past digests: lead with them.
## Boundaries
Summarize and link; don't reproduce full text. Never state a finding more strongly than the authors do.
=== Skill 3 of 3: Price Drop Watcher ===
---
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.