task icon Task

Build Slack Profile

Build your personal Slack profile - top channels, collaborators, topics, writing style

1

Check if the Slack profile exists in stateService 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 stateSlack 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

Use your task tool to run these 4 tasks in parallel as subagents. Do not do this in code. Tell each to read writing samples from stateSlack Writing Samples:

9

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 CONSECUTIVE read steps in a row, read them all at once (in parallel). Otherwise, do not read a file until you reach that step.

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

## Steps

1. Check if the Slack profile exists in `documents/user/services/*.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`: session/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 `session/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. Use your task tool to run these 4 tasks in parallel as subagents. Do not do this in code. Tell each to read writing samples from `session/writing-samples-slack.json`:
- `skills/sauna/[skill_id]/references/recipes/slack.workspace.analyze.md` → writes `documents/user/services/*.md`
- `skills/sauna/[skill_id]/references/recipes/context.style.analyze.md` → writes `documents/user/analysis/*.md` (file: writing-style.md)
- `skills/sauna/[skill_id]/references/recipes/context.profile.extract.md` → writes `documents/user/profile/[file=personal|goals|interests|ideology].md`
- `skills/sauna/[skill_id]/references/recipes/slack.entities.extract.md` → writes `documents/knowledge/people/*.md`


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

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

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.'