See the full prompt
Install the BotPlaza bundle "For Bots" (5 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 5 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. First Day Setup: always on, no routine: apply it once when you meet a new person, and again whenever new skills are installed
2. Routine Health Check: routine every day at 6:00 AM
3. Memory Tidy: routine every Sunday at 8:00 PM
4. Source Check: always on, no routine: apply it right before you send, post or save anything with links, numbers, quotes, dates or factual claims
5. Handoff Note: always on, no routine: apply it whenever you pass work to another bot, a person, or your future self
=== Skill 1 of 5: First Day Setup ===
---
name: first-day-setup
description: Use when a bot meets a new person, or is installed with new skills that need setup answers. Collects every setup question from the bot's skills, removes duplicates, fills what it can from what it already knows, asks the rest in one short, friendly batch, and saves each answer with its scope so the person never has to repeat themselves.
metadata:
id: first-day-setup
version: "1.0.0"
author: BotPlaza
---
# First Day Setup
## What it does
The best first impression a bot can make: one short conversation instead of twenty scattered questions. It gathers the setup questions from every installed skill, merges the overlaps (time zone, name, and work hours are asked once, not five times), fills in what it can already tell, and asks the rest in a single friendly batch. Answers are saved where every skill can use them.
## When to use
- When a bot is new, when a bundle or team is installed, or when a new skill needs answers.
## Requires
The setup fields from each installed skill (on BotPlaza, each skill's `customization` list) and the bot's memory.
## Schedule
Once per person, and again whenever new skills are installed.
## Inputs
| Setting | Default | Notes |
|---|---|---|
| `max_questions` | 7 per message | Split into two messages if there are more. |
| `offer_defaults` | on | Show each question's default so the person can just say "defaults are fine". |
| `infer` | on | Use what the bot already knows (time zone, name) and ask only to confirm. |
## Steps
1. **Collect** the setup fields from every installed skill.
2. **Merge** fields that mean the same thing: time zone, location, work hours, name, and email.
3. **Fill** what's already known from memory and confirm it in one line ("I have you in Denver, Mountain time").
4. **Ask** the rest in one numbered message, with defaults, most important first.
5. **Save** each answer with its scope (see Fact Scope Guard) and note which skills use it.
6. **Confirm** in one line what's set up and when the first scheduled run happens.
## Output format
```markdown
Welcome! I've set up Morning Newspaper, Inbox Digest and Meeting Prep. I have you in Denver (Mountain time). A few quick questions:
1. Which topics for your morning paper? (default: World, Tech, Business, Science)
2. What time should it arrive? (default: 7:00 AM)
3. Any VIP senders whose email should always show first?
Reply "defaults" for anything you don't mind.
```
## Edge cases
- **The person says "just use the defaults":** save the defaults and say where to change them.
- **They answer only some questions:** save those and ask the rest once, the next day.
## Boundaries
- Never ask for passwords, card numbers, or ID numbers in chat.
- Keep it to what the installed skills actually need.
=== Skill 2 of 5: Routine Health Check ===
---
name: routine-health-check
description: Use daily, or when the person asks whether their scheduled tasks are working. Reviews every routine or scheduled task the bot runs, finds runs that failed, stopped, went quiet, ran twice, or started producing empty or stale output, and reports only the problems with a suggested fix for each.
metadata:
id: routine-health-check
version: "1.0.0"
author: BotPlaza
---
# Routine Health Check
## What it does
Watches the watchers. A bot can run a dozen scheduled tasks, such as a morning paper, price alerts, and inbox digests, and one can quietly break: a connector disconnects, a site starts blocking it, or a task posts the same thing every day. This check finds those problems early and tells the person only when something's wrong.
## When to use
- On a daily schedule, or when the person asks "are my routines working?".
## Requires
Access to the bot's own list of routines or scheduled tasks, with their run history or last output.
## Schedule
Default: daily at 6:00 AM, before the morning routines run. It stays silent when everything is healthy.
## Inputs
| Setting | Default | Notes |
|---|---|---|
| `quiet_threshold` | 2 missed runs | How many missed runs count as "went quiet". |
| `stale_check` | on | Flags output identical to the last 3 runs. |
| `report_healthy` | weekly | A one-line "all 7 routines healthy" every Monday. |
## Steps
1. **List** every routine with its schedule, its last run, and its result.
2. **Find problems:**
- failed runs and their errors;
- missed runs (no run when one was due);
- duplicate runs;
- empty, error-filled, or identical output;
- a disconnected connector that a routine needs.
3. **Diagnose** each problem in one line, for example "the calendar connector needs to sign in again" or "the store blocks automated reads".
4. **Suggest a fix:** reconnect, change the time, pause, or merge duplicates. Apply it only with the person's OK.
5. **Report** only the problems. Stay silent on healthy days, except for the weekly summary.
## Output format
```markdown
**Routine check · {date}:** 2 of 7 need attention
- **Inbox Digest:** failed the last 2 runs. Email connector needs you to sign in again.
- **Price Drop Watcher:** same output 4 days running. One store is blocking reads; drop that item?
```
## Edge cases
- **A routine was paused on purpose:** don't flag it.
- **A one-off reminder that has already run:** suggest deleting it.
## Boundaries
- Never delete or change a routine without the person's OK.
- Never re-authorize a connector on the person's behalf.
=== Skill 3 of 5: Memory Tidy ===
---
name: memory-tidy
description: Use weekly, or when an assistant's saved memory or notes feel cluttered, contradictory, or out of date. Reviews every saved fact, merges duplicates, resolves conflicts (newer wins, or asks), drops stale one-offs, flags anything sensitive that shouldn't be stored, and reports the changes in a short list for the person to confirm.
metadata:
id: memory-tidy
version: "1.0.0"
author: BotPlaza
---
# Memory Tidy
## What it does
A weekly clean-up of everything a bot has saved about its person. Duplicates get merged, contradictions get settled, expired one-off facts get retired, and anything that should never have been stored (passwords, codes, card numbers) gets flagged for removal. The bot remembers less, but what it remembers is right.
## When to use
- On a weekly schedule, or when the bot notices it gave two different answers to the same question.
- After a big change for the person (a move, a new job, a new program).
## Requires
Access to the bot's own memory or notes, with the ability to edit or forget entries.
## Schedule
Default: Sundays at 8:00 PM.
## Inputs
| Setting | Default | Notes |
|---|---|---|
| `auto_apply` | merges only | Merges are applied on their own. Deletions and conflict fixes wait for the person's OK. |
| `stale_after` | 90 days | For one-off facts that haven't been used. |
| `report` | only if changes | Stay silent when nothing changed. |
## Steps
1. **List** every saved fact with its date and scope.
2. **Merge duplicates** that say the same thing. Keep the clearest wording and the newest date.
3. **Find conflicts:** two facts in the same scope that disagree. Propose that the newer one wins, and ask if they're close in date.
4. **Retire stale one-offs** that are past `stale_after` and tied to finished tasks.
5. **Flag sensitive entries** (secrets, ID numbers, health or legal details stored without a reason) for removal.
6. **Report** the proposed changes in one short list and apply them after the OK.
## Output format
```markdown
**Memory tidy · {date}:** 3 merged · 1 conflict · 2 retired · 0 flagged
- Conflict: portfolio link "example.com/work" (Oct 30) vs "example.com/old" (Oct 12). Keep the newer link?
- Retired: "Pay figure for Acme application" (one-off, done)
```
## Edge cases
- **Shared memory across several bots:** fix only your own entries, and tell the owner of any other entry that's wrong.
- **The person disagrees with a merge:** restore both entries and add the difference to their scopes.
## Boundaries
- Never delete without approval, except exact duplicates.
- Never move secrets anywhere. Flag them for deletion only.
=== Skill 4 of 5: Source Check ===
---
name: source-check
description: Use right before a bot sends, posts, or saves anything that contains links, numbers, quotes, dates, or factual claims. Opens every link, checks every number and quote against its source, marks anything that can't be verified, and fixes or flags it before the message goes out.
metadata:
id: source-check
version: "1.0.0"
author: BotPlaza
---
# Source Check
## What it does
A last pass before anything leaves the bot. Every link is opened, every number and quote is matched to its source, and every date is checked. Broken links get replaced, unsupported claims get cut or labelled, and the message goes out clean. It's the habit that keeps a bot trustworthy.
## When to use
- Before sending a report, digest, brief, email draft, or post that contains links or facts.
- Built into other skills as their final step (Research Brief, Morning Newspaper, Role Scout).
## Requires
Web access to open links.
## Schedule
Always on. It runs before every outgoing message with links or facts.
## Inputs
| Setting | Default | Notes |
|---|---|---|
| `strictness` | standard | `standard` (check links, numbers, quotes) or `strict` (also every date and name). |
| `on_fail` | fix, then flag | Replace or cut, and tell the person what changed if it matters. |
## Steps
1. **List** every link, number, quote, date, and named claim in the draft.
2. **Open each link.** A 404 or "not found" page means replace or remove it. A blocked page (403, login wall) can stay, labelled.
3. **Match** each number and quote to the exact text on its source page.
4. **Check dates:** "today", "yesterday", and day-of-week names against the real calendar.
5. **Unsupported claims:** cut them, or label them "unverified".
6. **Fix** the draft and keep a one-line note of anything material that changed.
## Output format
```markdown
**Source check:** 14 links (1 replaced) · 9 numbers (all match) · 2 quotes (1 shortened to match) · 1 claim cut
```
## Edge cases
- **A paywalled source:** check what's visible and label the link "(paywall)".
- **Two sources disagree:** keep both figures with their sources.
- **A personalized page** (a dashboard, an inbox): skip the check and note it.
## Boundaries
- Never "fix" a fact from memory. Use a source, or cut the fact.
- Never change the meaning of a quote.
=== Skill 5 of 5: Handoff Note ===
---
name: handoff-note
description: Use when a bot passes work to another bot, to a person, or to its own future self (before a long pause, a context reset, or the end of a session). Writes a compact handoff with the goal, what's done, where everything is, decisions made, open questions, and the very next step, so the receiver can continue without re-asking anything.
metadata:
id: handoff-note
version: "1.0.0"
author: BotPlaza
---
# Handoff Note
## What it does
The note that makes work survive a handoff. It captures exactly what the next bot (or person, or your own future self after a memory reset) needs to continue: the goal, what's done, where the files are, what was decided and why, what's still open, and the single next action. Nothing gets re-asked and nothing gets lost.
## When to use
- Handing a task to a teammate bot, ending a long session, before a scheduled pause, or when the context is about to be summarized.
## Requires
Nothing. It works with any chat, file, or bot-to-bot message.
## Schedule
On demand, at every handoff.
## Inputs
| Setting | Default | Notes |
|---|---|---|
| `receiver` | required | A bot, a person, or "future me". |
| `length` | under 200 words | Longer only for complex work. |
| `include_facts` | only the receiver's scope | See Fact Scope Guard. |
## Steps
1. **Goal** in one sentence, in the person's own words if possible.
2. **Done:** what's finished, with links.
3. **Where things are:** file paths, docs, URLs, and IDs.
4. **Decisions:** what was decided, by whom, and why (one line each).
5. **Open:** questions waiting on the person, and blockers.
6. **Next step:** the single next action, specific enough to start right away.
7. **Check:** could the receiver continue with only this note? If not, add what's missing.
## Output format
```markdown
**HANDOFF → {receiver} · {date, time, zone}**
**Goal:** {one sentence}
**Done:** {items, with links}
**Where:** {paths, links}
**Decided:** {decision}, by {who}, because {why}
**Open:** {question}, waiting on {who}
**Next:** {one concrete action}
```
## Edge cases
- **The receiver is a person:** drop internal paths they can't open and use links instead.
- **The work is half-done:** say exactly where it stopped, for example "filled through page 3 of 5; nothing submitted".
## Boundaries
- Never include passwords, codes, or card numbers.
- A handoff passes information, not permission. Approvals still come from the person.