task icon Task

Setup Slack Connection

Instructions
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).
1

Check if the Slack profile exists in uiConnection Profiles with a 'Last analyzed:' timestamp.
If fresh (< 30 days): Show you know them - 'You're mostly in #channel-x and #channel-y, talking with Person-A and Person-B.' Then ask what they want to do. STOP here.
If stale (> 30 days): 'Been a while since I checked your Slack - want me to refresh?' If they decline, use existing profile. STOP if they decline.
If no profile exists: Proceed to next step.

2

Ask permission casually with time estimate: 'Mind if I look at how you use Slack? Takes about 3 mins.' Wait for confirmation before proceeding.

3

Say 'Checking...' then run the code.

5

Verify uiSlack Writing Samples was written. Check the file exists and contains messagesFrom data. If missing or empty, tell the user the Slack connection failed and stop - do not proceed to subagents.

6

Run these 4 tasks in parallel as subagents. Tell each to read writing samples from uiSlack Writing Samples: - taskAnalyze Slack Usage → writes uiConnection Profiles - taskAnalyze Writing Style → writes uiWriting Style - taskExtract Profile from Writing Samples → writes uiUser Profile - taskExtract Key People from Slack → writes uiPeople Directory

7

Clean up: delete uiSlack Writing Samples

10

Present your findings:

  1. Lead with 1-2 genuine insights from the data. Look for bidirectional signals (someone who mentions them AND they reply to) or channel concentration. Example: 'Sarah mentions you and you reply to her threads — that's your main collaborator. You're mostly in #engineering.'
  2. List what was added to their knowledge: - Slack profile - Writing style - User profile - Key people
  3. End with (bold): 'I'll use this to personalize how I help you going forward.'
                    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. Check if the Slack profile exists in `./documents/connections/[service-name].md` with a 'Last analyzed:' timestamp.
If fresh (< 30 days): Show you know them - 'You're mostly in #channel-x and #channel-y, talking with Person-A and Person-B.' Then ask what they want to do. STOP here.
If stale (> 30 days): 'Been a while since I checked your Slack - want me to refresh?' If they decline, use existing profile. STOP if they decline.
If no profile exists: Proceed to next step.

2. Ask permission casually with time estimate: 'Mind if I look at how you use Slack? Takes about 3 mins.' Wait for confirmation before proceeding.

3. Say 'Checking...' then run the code.

4. [Gather Arguments: Connect to Slack] The next step has the following requirements for arguments, do not proceed until you have all the required information:
- `outputPath`: ./documents/tmp/writing-samples-slack.json

5. [Run Code: Connect to Slack]: Call `run_script` with:

```json
{
  "file": {
    "path": https://sk.ills.app/code/slack.workspace.connect/preview,
    "args": [
      "outputPath"
    ]
  },
  "packages": null
}
```

6. Verify `./documents/tmp/writing-samples-slack.json` was written. Check the file exists and contains messagesFrom data. If missing or empty, tell the user the Slack connection failed and stop - do not proceed to subagents.

7. Run these 4 tasks in parallel as subagents. Tell each to read writing samples from `./documents/tmp/writing-samples-slack.json`: - `./skills/sauna/[skill_id]/references/recipes/slack.workspace.analyze.md` → writes `./documents/connections/[service-name].md` - `./skills/sauna/[skill_id]/references/recipes/context.style.analyze.md` → writes `./documents/user/writing_style.md` - `./skills/sauna/[skill_id]/references/recipes/context.profile.extract.md` → writes `./documents/user/[personal|work|goals|interests].md` - `./skills/sauna/[skill_id]/references/recipes/slack.entities.extract.md` → writes `./documents/entities/people/*.md`

8. Clean up: delete `./documents/tmp/writing-samples-slack.json`

9. [Read Wow Moments Framework]: Read the documentation in: `./skills/sauna/[skill_id]/references/context.wow.framework.md` (Core principles for presenting insights)

10. [Read Slack Wow Moments]: Read the documentation in: `./skills/sauna/[skill_id]/references/slack.workspace.wow.md` (Slack-specific wow patterns)

11. Present your findings:
1. Lead with 1-2 genuine insights from the data. Look for bidirectional signals (someone who mentions them AND they reply to) or channel concentration. Example: 'Sarah mentions you and you reply to her threads — that's your main collaborator. You're mostly in #engineering.'
2. List what was added to their knowledge: - Slack profile - Writing style - User profile - Key people
3. End with (bold): 'I'll use this to personalize how I help you going forward.'