Build Slack Profile
Build your personal Slack profile - top channels, collaborators, topics, writing style
Check if the Slack profile exists in Service 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.
Ask permission casually with time estimate: 'Mind if I look at how you use Slack? Takes about 3 mins.' Wait for confirmation before proceeding.
Say 'Checking...' then run the code.
Verify Slack 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.
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 Slack Writing Samples:
Analyze Slack Usage → writes
Service Profiles
Analyze Writing Style → writes
User Analysis Results (file: writing-style.md)
Extract Profile from Writing Samples → writes
User Profile Facts
Extract Key People from Slack → writes
People Directory
Present your findings:
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.'List what was added to their knowledge:
- Slack profile
- Writing style
- User profile
- Key people
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.'