task icon Task

Play Inbox Bingo

1

Tell the user: 'Scanning your sent emails for corporate crimes... ๐ŸŽฏ' This takes about 10 seconds.

3

Check the code output. If success is false or emailCount is 0, tell the user: 'No sent emails found in the last 90 days. Try again after sending some emails!' and STOP.

6

Generate and present the BINGO CARD as a visual 5x5 grid:

Format each square as:

  • Filled (count > 0): [X] Phrase (count)
  • Empty (count = 0): [ ] Phrase

Grid layout (use table or code block for alignment):

     B           I           N           G           O
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ B1      โ”‚ I1      โ”‚ N1      โ”‚ G1      โ”‚ O1      โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ B2      โ”‚ I2      โ”‚ N2      โ”‚ G2      โ”‚ O2      โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ B3      โ”‚ I3      โ”‚ FREE    โ”‚ G3      โ”‚ O3      โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ B4      โ”‚ I4      โ”‚ N4      โ”‚ G4      โ”‚ O4      โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ B5      โ”‚ I5      โ”‚ N5      โ”‚ G5      โ”‚ O5      โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Highlight completed lines (BINGO!) and show the score prominently.

8

Compare current score to previous games in uiBingo Scoreboard:

  • If this is the first game: "First time playing! Your baseline score: X bingos, Y disaster points."
  • If improved: "๐ŸŽ‰ NEW HIGH SCORE! You beat your previous best of X bingos!"
  • If worse: "Previous best: X bingos. Keep those corporate habits in check!"
  • If tied: "Matched your best! Consistent corporate behavior detected."
10

Write a bingo announcer script to uiAnnouncer Script following the guidance in sliceBingo Announcer Guide.

Include:

  1. Dramatic opening
  2. Call out the top 3-5 highest-count phrases with bingo-style format ("B-1... SORRY FOR THE DELAY... 156 TIMES!")
  3. Announce any completed BINGOs
  4. Final score reveal
  5. Closing quip about their top crutch phrase

Keep under 500 characters for reasonable audio length.

12

Tell the user: 'Your bingo announcer is ready!' Share the audio file path so they can listen.

13

Save this game to uiBingo Scoreboard:

Add a new entry with:

  • date: current ISO date
  • bingoCount: number of completed lines
  • disasterScore: total phrase count sum
  • filledSquares: count of phrases found
  • topPhrase: the highest-count phrase and its count

Keep the scoreboard sorted by date descending, max 20 entries.

14

End with habit-breaking insight:

"Your top 3 email crutches:

Want tips to break these habits?"

                    You MUST use a todo list to complete these steps in order. Never move on to one step if you haven't completed the previous step. If you have multiple read steps in a row, read them all at once (in parallel).

Add all steps to your todo list now and begin executing.

## Steps

1. Tell the user: 'Scanning your sent emails for corporate crimes... ๐ŸŽฏ' This takes about 10 seconds.

2. [Gather Arguments: Scan Emails for Bingo Phrases] The next step has the following requirements for arguments, do not proceed until you have all the required information:
- `outputPath`: session/bingo-stats.json
- `maxEmails` (default: "200"): 200

3. [Run Code: Scan Emails for Bingo Phrases]: Call `run_script` with:

```json
{
  "file": {
    "path": https://sk.ills.app/code/gmail.bingo.scan/preview,
    "args": [
      "outputPath",
      "maxEmails"
    ]
  },
  "packages": null
}
```

4. Check the code output. If success is false or emailCount is 0, tell the user: 'No sent emails found in the last 90 days. Try again after sending some emails!' and STOP.

5. [Read Bingo Session Data]: Read the file at `session/bingo-stats.json` and analyze its contents (Load the bingo scan results)

6. [Read Bingo Phrases]: Read the documentation in: `skills/sauna/[skill_id]/references/gmail.bingo.phrases.md` (Reference for phrase categories and meanings)

7. Generate and present the BINGO CARD as a visual 5x5 grid:

**Format each square as:**
- Filled (count > 0): `[X] Phrase (count)`
- Empty (count = 0): `[ ] Phrase`

**Grid layout (use table or code block for alignment):**
```
     B           I           N           G           O
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ B1      โ”‚ I1      โ”‚ N1      โ”‚ G1      โ”‚ O1      โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ B2      โ”‚ I2      โ”‚ N2      โ”‚ G2      โ”‚ O2      โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ B3      โ”‚ I3      โ”‚ FREE    โ”‚ G3      โ”‚ O3      โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ B4      โ”‚ I4      โ”‚ N4      โ”‚ G4      โ”‚ O4      โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ B5      โ”‚ I5      โ”‚ N5      โ”‚ G5      โ”‚ O5      โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
```

Highlight completed lines (BINGO!) and show the score prominently.


8. [Read Bingo Scoreboard]: Read the file at `documents/inbox-bingo/scoreboard.json` and analyze its contents (Check previous scores for comparison)

9. Compare current score to previous games in `documents/inbox-bingo/scoreboard.json`:
- If this is the first game: "First time playing! Your baseline score: X bingos, Y disaster points."
- If improved: "๐ŸŽ‰ NEW HIGH SCORE! You beat your previous best of X bingos!"
- If worse: "Previous best: X bingos. Keep those corporate habits in check!"
- If tied: "Matched your best! Consistent corporate behavior detected."


10. [Read Bingo Announcer Guide]: Read the documentation in: `skills/sauna/[skill_id]/references/gmail.bingo.announcer.md` (Load guidance for announcer script)

11. Write a bingo announcer script to `session/announcer-script.txt` following the guidance in `skills/sauna/[skill_id]/references/gmail.bingo.announcer.md`.

Include:
1. Dramatic opening
2. Call out the top 3-5 highest-count phrases with bingo-style format ("B-1... SORRY FOR THE DELAY... 156 TIMES!")
3. Announce any completed BINGOs
4. Final score reveal
5. Closing quip about their top crutch phrase

Keep under 500 characters for reasonable audio length.


12. [Gather Arguments: Text to Speech] The next step has the following requirements for arguments, do not proceed until you have all the required information:
- `textFilePath`: session/announcer-script.txt
- `voiceId`: pNInz6obpgDQGcFmaJgB
- `modelId` (default: "eleven_multilingual_v2"): eleven_turbo_v2_5
- `outputFormat` (default: "mp3_44100_128"): mp3_44100_128
- `outputDir` (default: "session"): session

13. [Run Code: Text to Speech]: Call `run_script` with:

```json
{
  "file": {
    "path": https://sk.ills.app/code/media.audio.tts/preview,
    "args": [
      "textFilePath",
      "voiceId",
      "modelId",
      "outputFormat",
      "outputDir"
    ]
  },
  "packages": null
}
```

14. Tell the user: 'Your bingo announcer is ready!' Share the audio file path so they can listen.

15. Save this game to `documents/inbox-bingo/scoreboard.json`:

Add a new entry with:
- date: current ISO date
- bingoCount: number of completed lines
- disasterScore: total phrase count sum
- filledSquares: count of phrases found
- topPhrase: the highest-count phrase and its count

Keep the scoreboard sorted by date descending, max 20 entries.


16. End with habit-breaking insight:

"**Your top 3 email crutches:**
1. [phrase]: [count]x
2. [phrase]: [count]x
3. [phrase]: [count]x

Want tips to break these habits?"