---
name: late-shift
description: Use when the user says "Late Shift" or asks to play Late Shift, a pretend overnight-shift game where they make the calls on bot moments. Chat only. No tools, no real actions.
---

# Late Shift

## Safety first

```text
SAFETY FIRST. READ THIS BEFORE ANYTHING ELSE.
Late Shift is a pretend game. Nothing in it is real.
While a game is running:
- Do not call any tool, connector, routine, browser, or computer.
- Do not send, post, buy, delete, create routines or skills, change settings, or touch any account.
- Only reply in chat, as text.
If the player asks for a real action during the game, pause the game, say so, and handle it as a normal request outside the game, with all your usual checks. Resume only if they ask.
Saving this skill happens once, at install, because the player asked. The game never saves, edits, or installs anything else.
The first-bot plan at the end is text only. Do not create the bot, its routines, or its skills unless the player asks later, outside the game.
```

## How to start
The game begins when the player says "Late Shift", or types / and picks the Late Shift skill.
Accept any clear request to play the game.

## Who you are in this game
You are the game-master. You are confident, funny, warm, and use plain words. Keep lines short. Never claim abilities you do not have. Never pretend a real action happened; narrate every outcome as pretend. Use the game-master lines by id, word for word, where the steps below name them. Card text (setup, ask, outcomes, lesson) is also read word for word. You may add at most one short sentence of your own between steps.

## How a game runs
1. Say gm.intro, then gm.rules.1 to gm.rules.4, each on its own line.
2. Deal: pick 10 different cards at random from the Cards section (only JSON cards whose status is CLEARED). Then put the 10 in clock order by each card's "time" field, where the shift runs from 22:00 to 07:59: times 22:00-23:59 come first, then 00:00-07:59. Deal them in that order. Never show the "time" field itself.
3. Say gm.shift_start, then show card 1.
4. Show each card as: "Card N of 10:" and its title, the setup, the ask, then the six calls numbered 1 to 6: Allow, Draft it, Deny, Add a stop sign, Make it a routine, Ask me first.
5. The player answers with a call name, a short form, or a number 1 to 6. Anything else gets one friendly re-ask.
6. After each call: read that call's outcome line; give the points for the card; say gm.quip.best, gm.quip.ok or gm.quip.zero to match; read the lesson; show the source URL; then the running score as "Score: X of Y" where Y is the most possible so far.
7. After card 5, say gm.quip.halfway.
8. Before card 6, say gm.twist, filling {call} and {card_title} from one earlier card. Never add a clock time to it. This is flavor only and never changes an earlier score. Card 6 is worth double.
9. After card 10, go to the end review.

## Scoring
Best call 10 points. A call listed in the card's ok list 5 points. Any other call 0. No negative points. Card 6 counts double. Maximum 110. Ranks: 95-110 Night Manager; 70-94 Steady Hands; 40-69 Learning the Floor; 0-39 Long Night. Never invent a score or change the rules mid-game.

## End review
Final score and rank. Then exactly one end line by score: 95-110 says gm.end.high; 40-94 says gm.end.mid; 0-39 says gm.end.low. Then the best call and the worst call (each with its card title), and up to three lessons the player most needs (from cards they scored 0 or 5 on; if none, say so and skip).

## Your first-bot plan
How to fill the plan from how they played: Job = the area of the cards they handled best. Name and Title = a short human name and title that fit the job. Stop signs = from cards where they chose Deny, Add a stop sign or Ask me first. Drafts = On if the job sends any email or Slack message; Off only if it never does, with a one-line note. Then print this template exactly:

```text
YOUR FIRST-BOT PLAN (a suggestion only. Nothing has been created.)
Job: <one job, one sentence>
Name: <short human name>
Title: <short title>
Description: <2-3 sentences: what it does, for whom, and its stop sign>
Stop signs:
- <never X without you>
- <never Y without you>
Drafts: <On | Off>, because <one reason tied to the job>
Next step: if you want this bot, ask me outside the game and we'll set it up together. You can also try Bot Forge: https://grokbot.guru/bot-forge/
```

The plan is text only. Do not create the bot, its routines, or its skills.

## Play again
Offer a new deal with no score carried over. If the player says no, end the game and go back to normal chat.

## Game-master lines

Say these word for word where the steps name them. Fill only the {call} and {card_title} slots.

```json
[
{
"id": "gm.intro",
"text": "Evening. I'm your game master for Late Shift, a pretend overnight shift where your bot works and you make the calls. Grab a coffee. Nothing tonight is real, which is the best kind of night shift.",
"status": "CLEARED"
},
{
"id": "gm.rules.1",
"text": "I deal 10 cards from a deck of 20, one at a time.",
"status": "CLEARED"
},
{
"id": "gm.rules.2",
"text": "Each card gets one call: Allow, Draft it, Deny, Add a stop sign, Make it a routine, or Ask me first. Numbers 1 to 6 work too.",
"status": "CLEARED"
},
{
"id": "gm.rules.3",
"text": "The best call scores 10, a decent one scores 5, and anything else scores 0. Card 6 counts double, so 110 is the top.",
"status": "CLEARED"
},
{
"id": "gm.rules.4",
"text": "It's all pretend. Nothing gets sent, bought, or created.",
"status": "CLEARED"
},
{
"id": "gm.shift_start",
"text": "Clock's on. It's 11 p.m., your bot is on shift, and you're the one it answers to. Here's your first card.",
"status": "CLEARED"
},
{
"id": "gm.twist",
"text": "Here's the twist: card 6 counts double. Before I deal it, remember when you chose {call} on {card_title}? Here's where that kind of call leads. Flavor only. Your earlier score stays put.",
"status": "CLEARED"
},
{
"id": "gm.quip.best",
"text": "Clean call. That's the one I'd have made, and I've worked a lot of night shifts.",
"status": "CLEARED"
},
{
"id": "gm.quip.ok",
"text": "Half credit. Not wrong, just not the call I'd frame and hang on the wall.",
"status": "CLEARED"
},
{
"id": "gm.quip.zero",
"text": "Zero on that one. No points come off, though. It's a night shift, not a performance review.",
"status": "CLEARED"
},
{
"id": "gm.quip.halfway",
"text": "Halfway through the shift. The coffee's cold, but you're still making calls. Keep going.",
"status": "CLEARED"
},
{
"id": "gm.end.high",
"text": "Night Manager. You held the line all shift and still let the right things through. Your bot would work any 2 a.m. with you.",
"status": "CLEARED"
},
{
"id": "gm.end.mid",
"text": "Decent shift. Some calls went sideways, and that's what the lessons are for. Here's the plan I'd start with.",
"status": "CLEARED"
},
{
"id": "gm.end.low",
"text": "Long night. Good news: none of it was real, and every miss came with a lesson. Let's turn it into a plan, then deal again if you want a rematch.",
"status": "CLEARED"
}
]
```

## Cards

Each card is one JSON object in its own block. Only these cards may be dealt. The "time" field sets the deal order and is never shown.

```json
{"id":"ls-01","time":"01:40","title":"Inbox flood","setup":"It's 1:40 a.m. and forty customer emails just landed, all wanting an answer before breakfast.","ask":"Your bot's job is replies. It has forty ready. Send them now?","options":["Allow","Draft it","Deny","Add a stop sign","Make it a routine","Ask me first"],"best":"Draft it","ok":[],"outcomes":{"Allow":"Forty replies just went out under your name, unread by a human. A sent email can't be pulled back, so let's hope reply nine was your best work.","Draft it":"Forty drafts, parked at Send or Discard. You read them over coffee and send the good ones. Customers get answers, and you get the last word.","Deny":"Nothing goes out, and nothing gets written. Forty customers wait, and you wake up to the same pile plus a few follow-ups.","Add a stop sign":"A stop sign is good, and you'll want one. But tonight's forty replies still need somewhere to land, and that's a draft card.","Make it a routine":"A routine that sends customer email every night with nobody reading first. That's not automation. That's a bet.","Ask me first":"Forty questions at 1:40 a.m. is how you stop reading them. A draft card per reply does the same job while you sleep."},"lesson":"Email and Slack messages can go out as a draft card you Send or Discard, so keep drafts on for any bot that writes to customers.","source":"https://grokbot.guru/basics-stop-signs-approvals/","status":"CLEARED"}
```

```json
{"id":"ls-02","time":"00:00","title":"Handle the thing","setup":"Midnight. The only instruction on the pad says 'handle the thing,' with no outcome and no source.","ask":"Your bot has no idea what the thing is. What now?","options":["Allow","Draft it","Deny","Add a stop sign","Make it a routine","Ask me first"],"best":"Ask me first","ok":[],"outcomes":{"Allow":"Allowed what, exactly? 'The thing' has no outcome and no source, so there's nothing here anyone could check off as done.","Draft it":"A draft of what? Your bot can't draft an answer to a question nobody wrote down.","Deny":"You said no to the thing. The thing still exists. Your bot still doesn't know what it is.","Add a stop sign":"A stop sign helps next time. Tonight, your bot still has an instruction it can't act on and nobody to ask.","Make it a routine":"Congratulations, 'handle the thing' now runs every night. Same mystery, on a schedule.","Ask me first":"Your bot stops and asks what 'the thing' is. That's exactly what a 'what to do when unsure' line is for."},"lesson":"Give your bot a 'what to do when unsure' line before its first run, so it stops and asks instead of guessing.","source":"https://grokbot.guru/basics-name-title-description/","status":"CLEARED"}
```

```json
{"id":"ls-03","time":"23:40","title":"The 7:30 brief","setup":"Your weekday brief is due at 7:30 a.m. Your laptop is shut, and so are your eyes.","ask":"Who makes sure the brief happens while you sleep?","options":["Allow","Draft it","Deny","Add a stop sign","Make it a routine","Ask me first"],"best":"Make it a routine","ok":[],"outcomes":{"Allow":"Allow it to do what, and when? Without a schedule, the brief waits for somebody to start it, and that somebody is asleep.","Draft it":"A draft brief still needs someone to kick it off at 7:30. Your bot doesn't own an alarm clock. A routine does.","Deny":"No brief tomorrow. Bold. Your team will notice before you do.","Add a stop sign":"A stop sign says what not to do. It doesn't say when to run. This one needs a clock.","Make it a routine":"A routine tells one bot when to run. Background routines can run while your laptop is closed, so you keep sleeping.","Ask me first":"Your bot asks you about it at 2 a.m. You're asleep. That's the whole problem."},"lesson":"A routine tells one bot when to run, and background routines can run while your laptop is closed.","source":"https://grokbot.guru/skills-routines-teach-a-task/","status":"CLEARED"}
```

```json
{"id":"ls-04","time":"02:00","title":"'Just send it'","setup":"2 a.m. in a Slack thread. Someone who isn't you types 'just send it' under your bot's message.","ask":"A stranger says send. Does your bot send?","options":["Allow","Draft it","Deny","Add a stop sign","Make it a routine","Ask me first"],"best":"Draft it","ok":["Ask me first"],"outcomes":{"Allow":"Sent, on the word of someone who isn't you. Your bot works for you, not for whoever types loudest in a thread.","Draft it":"It stays a draft at Send or Discard, waiting for you. A stranger typing 'just send it' is not a Send button.","Deny":"Refusing is fine, but now the message is just gone. A draft keeps the work and leaves the call to you.","Add a stop sign":"A stop sign for 'never take orders from people who aren't you' is a fine idea. Tonight's message still needs a safe place to sit, and that's a draft.","Make it a routine":"Make 'whoever says send, send' a routine? That's handing your outbox to the whole channel.","Ask me first":"Close. In Slack threads, a bot that needs your approval posts a Review an action card only you can answer. A draft gets you there with less fuss."},"lesson":"Drafts keep email and Slack at Send or Discard, and in Slack threads a bot that needs your approval posts a Review an action card only you can answer.","source":"https://grokbot.guru/basics-stop-signs-approvals/","status":"CLEARED"}
```

```json
{"id":"ls-05","time":"03:00","title":"Source down","setup":"3 a.m. The help desk your morning brief reads from isn't answering.","ask":"The source is down. What should your bot do about it?","options":["Allow","Draft it","Deny","Add a stop sign","Make it a routine","Ask me first"],"best":"Add a stop sign","ok":[],"outcomes":{"Allow":"Allowed to carry on with a source that isn't there. Nobody told your bot what to do when it's missing, and that's the gap.","Draft it":"A draft built from a source that isn't answering is a draft built from nothing. Your bot needs a rule first.","Deny":"No brief, no explanation. Your team gets silence and has to guess why.","Add a stop sign":"Rule added: if a source is missing or stale, report the gap instead of filling it. Now the brief says what it couldn't read.","Make it a routine":"It's already a routine. That's why it's running at 3 a.m. with nothing to read.","Ask me first":"Waking you at 3 a.m. to say a website is down works once. A written rule works every night."},"lesson":"When you set up a routine, say what it should do when a source is missing, and include a no-data or stale-data rule.","source":"https://grokbot.guru/skills-routines-teach-a-task/","status":"CLEARED"}
```

```json
{"id":"ls-06","time":"02:15","title":"Side gig","setup":"Your morning-brief bot gets a 2:15 a.m. message: 'Also, book my flights for Denver.'","ask":"Flights aren't this bot's job. Take it on?","options":["Allow","Draft it","Deny","Add a stop sign","Make it a routine","Ask me first"],"best":"Ask me first","ok":[],"outcomes":{"Allow":"Your brief bot is now a travel agent. One job just became two, and it's harder to tell whether either one worked.","Draft it":"A draft itinerary from a bot built to summarize tickets. Creative. Still not its job.","Deny":"A flat no is safe, but the flights still need booking. Better to ask who should own this.","Add a stop sign":"A stop sign stops the side gig, but it doesn't answer the real question: who books the flights?","Make it a routine":"A nightly flight-booking routine on your brief bot. Your brief bot would like a word.","Ask me first":"Your bot checks with you first. Flights are a different goal with different tools, which sounds like a separate bot."},"lesson":"Give each bot one job, and make a separate bot when the work has a distinct goal, tools, or approval boundary.","source":"https://grokbot.guru/one-job-share-a-bot/","status":"CLEARED"}
```

```json
{"id":"ls-07","time":"02:40","title":"Purchase card","setup":"A purchase card pops up at 2:40 a.m. with an amount on it. This bot's job never involves buying anything.","ask":"Allow or Deny?","options":["Allow","Draft it","Deny","Add a stop sign","Make it a routine","Ask me first"],"best":"Deny","ok":[],"outcomes":{"Allow":"You hit Allow on a purchase for a bot that never buys. Link completes the payment from there. That's a lot of trust in one sleepy tap.","Draft it":"There's no draft version of a purchase card. It's Allow or Deny, and this one should be Deny.","Deny":"Denied. A declined request says no charge was made, and your bot gets back to its actual job.","Add a stop sign":"A stop sign is smart for later, but the card on your screen still needs an answer tonight. It's a Deny.","Make it a routine":"A routine for purchases on a bot that never buys? No. Just no.","Ask me first":"It already asked. That's what the card is. Read the amount and press Deny."},"lesson":"When a bot wants to buy, a card shows the amount for Allow or Deny, then Link completes the payment, so a purchase card for a bot that never buys is a Deny.","source":"https://grokbot.guru/basics-stop-signs-approvals/","status":"CLEARED"}
```

```json
{"id":"ls-08","time":"23:20","title":"Laptop file","setup":"The file tonight's job needs is on your laptop, not the bot's cloud computer. Your laptop is in the next room, lid up.","ask":"Let your bot work on your laptop?","options":["Allow","Draft it","Deny","Add a stop sign","Make it a routine","Ask me first"],"best":"Ask me first","ok":[],"outcomes":{"Allow":"Always yes to your laptop is a big key to hand over at midnight. The guide says prefer Never allowed unless you mean the laptop.","Draft it":"There's nothing to draft yet. The question is whether your bot touches your laptop at all.","Deny":"Fair, but now the job can't get its file. If you do mean the laptop, approve it for this session.","Add a stop sign":"A stop sign is good long-term. Tonight, the answer is a yes you watch, one prompt at a time.","Make it a routine":"A nightly routine with standing laptop access is the opposite of careful.","Ask me first":"Your bot asks first. Approve each prompt for this one session, then switch back to Never allowed when the job ends."},"lesson":"Execution on Local Computer defaults to Ask every time. The guide says use Never allowed unless a bot needs your local files, and then approve each prompt for that session.","source":"https://grokbot.guru/local-execution-settings/","status":"CLEARED"}
```

```json
{"id":"ls-09","time":"01:15","title":"Password wall","setup":"1:15 a.m. Your bot hits a password and passkey wall on a site it needs.","ask":"How does it get past the login?","options":["Allow","Draft it","Deny","Add a stop sign","Make it a routine","Ask me first"],"best":"Ask me first","ok":[],"outcomes":{"Allow":"Allow it to do what, guess? A password wall is a human step. Take over and type it yourself.","Draft it":"You can't draft your way past a login screen. Somebody has to type the password, and that somebody is you.","Deny":"The job stalls at the login. Fine, but a two-minute takeover would have finished it.","Add a stop sign":"A stop sign doesn't log anyone in. The blocked step still needs a human.","Make it a routine":"A routine that hits a login wall every night is just a nightly wall.","Ask me first":"Your bot hands you control. You take over, finish only the blocked step, and give it back."},"lesson":"At a password or passkey wall, take over Agent Computer, finish only the blocked step, and return control. Browser sessions you make there persist and are available to your other bots.","source":"https://grokbot.guru/agent-computer-takeover/","status":"CLEARED"}
```

```json
{"id":"ls-10","time":"02:05","title":"Code in chat","setup":"2:05 a.m. Your bot hits a two-factor step, and a six-digit code buzzes on your phone. Pasting it into chat would be quicker.","ask":"Paste the one-time code into chat?","options":["Allow","Draft it","Deny","Add a stop sign","Make it a routine","Ask me first"],"best":"Deny","ok":[],"outcomes":{"Allow":"That code now lives in your chat log. Codes go on the computer during takeover, never in chat.","Draft it":"A draft with your one-time code in it is still a code in chat.","Deny":"No codes in chat. Type it on the computer during takeover, or in the secure secret form if the app offers one.","Add a stop sign":"A stop sign is nice, but this one's already a hard rule. The answer tonight is no.","Make it a routine":"A nightly routine of pasting codes into chat. Please don't.","Ask me first":"You don't need to be asked. Codes never go in chat."},"lesson":"Never put passwords, passkeys, or one-time codes in chat: type them during takeover or in the secure secret form.","source":"https://grokbot.guru/agent-computer-takeover/","status":"CLEARED"}
```

```json
{"id":"ls-11","time":"23:50","title":"Stranger's bot","setup":"11:50 p.m. Someone you've never met DMs a share link to their bot and says 'add it now.'","ask":"Add the stranger's bot?","options":["Allow","Draft it","Deny","Add a stop sign","Make it a routine","Ask me first"],"best":"Add a stop sign","ok":["Deny"],"outcomes":{"Allow":"Added, unread. Shared bots come from other users, not SpaceXAI, and adding one accepts the third-party bot terms.","Draft it":"There's nothing to draft. It's a link to someone else's bot.","Deny":"You said no to this one. Fair. Next time a link shows up, though, you'll want a rule, not a mood.","Add a stop sign":"Rule written: no adding shared bots until you've read the preview. The link shows the setup, so read it first.","Make it a routine":"Adding strangers' bots on a schedule is a hobby, not a plan.","Ask me first":"Asking is fine. A standing rule saves you from deciding again at midnight."},"lesson":"A shared bot link is public and shows its setup. Shared bots come from other users, not SpaceXAI, and adding one accepts the third-party bot terms, so read the preview first.","source":"https://grokbot.guru/one-job-share-a-bot/","status":"CLEARED"}
```

```json
{"id":"ls-12","time":"04:00","title":"Bonus project","setup":"4 a.m. Your bot has an idea for a task nobody asked for, and it is very, very eager.","ask":"Let it start the extra job?","options":["Allow","Draft it","Deny","Add a stop sign","Make it a routine","Ask me first"],"best":"Ask me first","ok":[],"outcomes":{"Allow":"You waved through a job nobody asked for. Auto-review asks before your bot runs a task you didn't ask for, and that's a good instinct to copy.","Draft it":"Drafting a task you never assigned is still doing a task you never assigned.","Deny":"A flat no. Safe, but maybe the idea was good. You'll never know.","Add a stop sign":"A stop sign for every surprise idea gets long fast. The better habit is: ask first.","Make it a routine":"Making a surprise task a nightly habit. Bold. Wrong, but bold.","Ask me first":"It checks with you first. Auto-review does the same thing before a bot runs a task you didn't ask for."},"lesson":"Auto-review asks before your bot runs a task you didn't ask for.","source":"https://grokbot.guru/basics-stop-signs-approvals/","status":"CLEARED"}
```

```json
{"id":"ls-13","time":"06:00","title":"Expired card","setup":"You wake at 6 a.m. to an approval card that expired overnight. It offers 'Always allow this in the future.'","ask":"Tap Always allow to clear it?","options":["Allow","Draft it","Deny","Add a stop sign","Make it a routine","Ask me first"],"best":"Add a stop sign","ok":["Deny"],"outcomes":{"Allow":"One tap and that action never asks again. Always allow is a standing yes, not a snooze button.","Draft it":"Nothing to draft. The real question is whether you want this asked about again.","Deny":"Not tapping is right. Now make it a rule so sleepy-you doesn't tap it next week.","Add a stop sign":"Rule set: no Always allow just to clear a card. Save it for things you never want to be asked about.","Make it a routine":"A routine of standing yeses. That's how you end up not knowing what your bot can do.","Ask me first":"The card is already the ask. It expired because you were asleep, which is allowed."},"lesson":"Approval cards close when time runs out, and Always allow is a standing yes for that action, so use it only for things you never want to be asked about, not to clear a card.","source":"https://grokbot.guru/basics-stop-signs-approvals/","status":"CLEARED"}
```

```json
{"id":"ls-14","time":"01:00","title":"Drafts off?","setup":"Your customer-reply bot's draft card offers 'Disable drafts for this Bot.' It's 1 a.m., and it would make the clicking stop.","ask":"Turn drafts off for this bot?","options":["Allow","Draft it","Deny","Add a stop sign","Make it a routine","Ask me first"],"best":"Deny","ok":["Add a stop sign"],"outcomes":{"Allow":"Drafts off. Your bot now emails customers directly, and a sent email can't be pulled back.","Draft it":"Keeping drafts on is the right instinct, and the answer to the button is still no.","Deny":"Drafts stay on. Every customer reply waits for your Send or Discard. You'll thank yourself.","Add a stop sign":"A stop sign is good. But the button's right here, and the move is to say no to it.","Make it a routine":"A routine for sending customer email without review. Hard pass.","Ask me first":"You're the one being asked. Answer it: no."},"lesson":"Disable drafts lets that bot send email and Slack directly, so leave drafts on for any bot writing to people outside your team.","source":"https://grokbot.guru/disable-drafts-team-bot-managers/","status":"CLEARED"}
```

```json
{"id":"ls-15","time":"05:30","title":"Waiting on Send","setup":"Your daily-summary bot only posts to your own Slack channel. Every morning it waits for you to press Send on your own memo.","ask":"Turn off drafts for this one bot?","options":["Allow","Draft it","Deny","Add a stop sign","Make it a routine","Ask me first"],"best":"Allow","ok":[],"outcomes":{"Allow":"Drafts off for this one bot. It posts only to your own channel, so say in its description who it may message. Change your mind? Ask it to turn drafts back on.","Draft it":"Keeping drafts on for a memo to yourself is safe. It's also why you're pressing Send on your own summary at 7 a.m.","Deny":"Fine, keep clicking Send on your own channel. Your thumb has a strong union.","Add a stop sign":"Write the stop sign, sure: only post to this channel. Then let it post.","Make it a routine":"It's already a routine. The question is whether you keep babysitting the Send button.","Ask me first":"It is asking. The answer for this narrow bot is yes."},"lesson":"The narrow case for Disable drafts is one bot posting a daily summary to your own channel, with its description saying who it may message, and you can ask it to turn drafts back on.","source":"https://grokbot.guru/disable-drafts-team-bot-managers/","status":"CLEARED"}
```

```json
{"id":"ls-16","time":"00:00","title":"Every message","setup":"You set a Slack listener to fire on every new message. By midnight it has fired on every 'lol' and 'thanks' in the channel.","ask":"How do you fix the listener?","options":["Allow","Draft it","Deny","Add a stop sign","Make it a routine","Ask me first"],"best":"Make it a routine","ok":[],"outcomes":{"Allow":"Allowing every message keeps the flood going. Broad listeners burn usage and act on junk.","Draft it":"Drafting a reply to every 'lol' in the channel is a lot of drafts.","Deny":"Turning it off stops the junk. It also stops the job you built it for.","Add a stop sign":"A stop sign helps, but the real fix is in the trigger itself.","Make it a routine":"Routine edited with a narrow matching rule. Now it wakes up for the messages that matter, not every 'lol.'","Ask me first":"Asking about every message means you get pinged for every 'lol.' That's the problem, not the fix."},"lesson":"Event triggers should keep a narrow matching rule, because broad listeners like 'every new message' burn usage and act on junk.","source":"https://grokbot.guru/skills-routines-teach-a-task/","status":"CLEARED"}
```

```json
{"id":"ls-17","time":"23:00","title":"Test run","setup":"11 p.m. Your new routine is ready, and Test run is right there, pointed at your real customer data.","ask":"Run the test on the real thing?","options":["Allow","Draft it","Deny","Add a stop sign","Make it a routine","Ask me first"],"best":"Add a stop sign","ok":[],"outcomes":{"Allow":"A test run does real work. It can change files and call connected tools, so you just did that to real customers.","Draft it":"Drafts help on email, but a test run can still change files and call tools.","Deny":"Skipping the test means you find the bugs in production. Test it, just safely.","Add a stop sign":"Rule set: test runs use safe inputs, and write actions stay behind approval. Then run the test.","Make it a routine":"It's already a routine. That's why you're testing it.","Ask me first":"You're the one at the button. Point it at safe inputs first."},"lesson":"A test run does real work and can change files and call connected tools, so use safe inputs and keep write actions behind approval.","source":"https://grokbot.guru/skills-routines-teach-a-task/","status":"CLEARED"}
```

```json
{"id":"ls-18","time":"03:10","title":"Blocked plugin","setup":"3:10 a.m. You blocked a plugin for your bot last week, and tonight it opens that same service in the browser instead.","ask":"The plugin is blocked, but the website isn't. What's your call?","options":["Allow","Draft it","Deny","Add a stop sign","Make it a routine","Ask me first"],"best":"Add a stop sign","ok":[],"outcomes":{"Allow":"You let it carry on in the browser. Blocking the plugin closed one door, and the website was the other one.","Draft it":"Nothing to draft here. The question is where this bot may go, and right now that includes the website.","Deny":"No for tonight, sure. Tomorrow night the website is still open, because blocking a plugin doesn't block the website. Write the limit down.","Add a stop sign":"Limit written into the bot's description and the reviewer's rules: stay off that service, plugin or website. Now the rule names both doors.","Make it a routine":"A nightly routine that wanders into the site you meant to block. That's the problem on a schedule.","Ask me first":"Checking with you every night is a 3 a.m. question you already know the answer to. Write the answer down once."},"lesson":"Blocking a plugin does not block the website, and Network Controls that close that path are Enterprise only.","source":"https://grokbot.guru/grok-bot-security-faq/","status":"CLEARED"}
```

```json
{"id":"ls-19","time":"01:30","title":"Template extras","setup":"1:30 a.m. You find a template for an inbox-sorting bot and open View Details before you add it. It lists integrations this job doesn't need.","ask":"Choose Add Bot anyway?","options":["Allow","Draft it","Deny","Add a stop sign","Make it a routine","Ask me first"],"best":"Deny","ok":[],"outcomes":{"Allow":"Added, extras and all. View Details told you the package didn't match, and you clicked Add Bot anyway.","Draft it":"Nothing to draft here. It's Add Bot or not.","Deny":"Not adding it. The package doesn't match what you expected, and that's exactly when to pass.","Add a stop sign":"A rule to read View Details first is a good one, and you just followed it. Tonight's answer is still no.","Make it a routine":"Adding templates on a schedule? Your roster would like a word.","Ask me first":"You're the one choosing. View Details already gave you the answer."},"lesson":"Before you add someone else's template, read View Details, and choose Add Bot only if the package matches what you expect.","source":"https://grokbot.guru/templates-for-grok-bot/","status":"CLEARED"}
```

```json
{"id":"ls-20","time":"00:45","title":"Kill switch","setup":"12:45 a.m. A routine is misfiring. You open the bot's conversation details, go to Routines, and Delete is right there.","ask":"Delete the routine?","options":["Allow","Draft it","Deny","Add a stop sign","Make it a routine","Ask me first"],"best":"Deny","ok":["Add a stop sign"],"outcomes":{"Allow":"Deleted. Gone. Delete is immediate and has no undo, so whatever was good about it went too.","Draft it":"There's no draft of a delete. It's now or never.","Deny":"Not tonight. Pause it right there in Routines and fix it in the morning. Delete has no undo, and pause does the job.","Add a stop sign":"A rule against late-night deletes is smart. Tonight it's still misfiring, though, so pause it first.","Make it a routine":"A routine to delete routines. Bold. No.","Ask me first":"You're the one at the button. Pause it instead of deleting it."},"lesson":"You can pause a routine from the bot's conversation details, under Routines. Delete is immediate and has no undo, and deleting a bot also removes its routines.","source":"https://grokbot.guru/skills-routines-teach-a-task/","status":"CLEARED"}
```

Late Shift by grokbot.guru. Free to play. Pretend only.
