Skip to content

Conversation

@bokelley
Copy link
Contributor

@bokelley bokelley commented Jan 5, 2026

Summary

Two improvements to help Addie use existing context better:

  1. Skip welcome goals for engaged users - Don't ask "what brings you here?" to committee leaders, working group members, or active Slack users who are clearly already part of the community.

  2. Passive note extraction from channels - Watch public channels Addie is in and extract interesting tidbits when people reveal something about themselves (interests, what they're building, opinions). Stored as text notes, not structured insights.

Why

LLMs already know context from company names and roles. If we tell Claude "Christina is CMO of Scope3", it already knows Scope3 is a sustainability company. We don't need to infer and store "interested in sustainability" - we just need to pass rich context and let the LLM reason naturally.

Changes

Skip welcome goals

  • Added eligibility check in outbound-planner.ts to skip intro goals for users with:
    • Committee leader status
    • Working group membership
    • Council membership
    • 10+ Slack messages in last 30 days
  • Enhanced prompt with "Role in Community" section and notes display

Passive note extraction

  • New passive-note-extractor.ts service with rate-limited queue (5s between LLM calls)
  • New 'note' insight type (migration 141)
  • Hooked into message handler for public channels
  • Filters out short messages, pure questions, and reactions
  • LLM summarizes notable statements in one sentence

Files changed

  • server/src/addie/services/outbound-planner.ts - Eligibility check + richer prompt
  • server/src/addie/services/passive-note-extractor.ts - New service
  • server/src/slack/events.ts - Hook for passive extraction
  • server/src/db/migrations/141_note_insight_type.sql - New insight type

Test plan

  • TypeScript compiles
  • All tests pass
  • Verify engaged users no longer see welcome goal
  • Verify notes are extracted from channel conversations

🤖 Generated with Claude Code

bokelley and others added 2 commits January 5, 2026 11:39
The outbound planner was suggesting the "Welcome - What Brings You" goal
to users who are clearly already engaged with the community (e.g.,
committee leaders, working group members). These users don't need to be
asked what brings them here.

Added eligibility check to skip intro goals for users who show any of
these engagement indicators:
- Committee leader status
- Working group membership
- Council membership
- 10+ Slack messages in the last 30 days

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Two improvements to how Addie understands members:

1. Enriched LLM context in outbound planner:
   - Role in Community now prominently shows Committee Leader, Council Member, WG Member
   - Notes from channel conversations displayed separately for context
   - Removed duplicate committee leader from capabilities section

2. Passive note extraction from public channels:
   - New 'note' insight type for storing interesting tidbits as text
   - Watches all public channels Addie is in
   - Rate-limited queue (5s between LLM calls) to avoid API overload
   - Only extracts notable statements (interests, what they're building, opinions)
   - Stores as observations with medium confidence

Example flow:
Christina posts "I'm really interested in doing more with user data"
→ Extracted note: "Mentioned being interested in doing more with user data (in #wg-creative)"
→ Shows in planner context: "Notes from Channel Conversations: - Mentioned being interested..."

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@bokelley bokelley changed the title Skip welcome goals for highly engaged users Better context for Addie: Skip welcome goals + passive note extraction Jan 5, 2026
bokelley and others added 2 commits January 5, 2026 16:03
Rename 141_note_insight_type.sql to 142_note_insight_type.sql since
141_fix_feed_email_slugs.sql already exists on main.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Rename note_insight_type migration to 143 since 142_member_search_analytics.sql
was added to main.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@bokelley bokelley merged commit 6f5b728 into main Jan 6, 2026
6 checks passed
bokelley added a commit that referenced this pull request Jan 6, 2026
#628)

* Skip welcome goals for highly engaged users

The outbound planner was suggesting the "Welcome - What Brings You" goal
to users who are clearly already engaged with the community (e.g.,
committee leaders, working group members). These users don't need to be
asked what brings them here.

Added eligibility check to skip intro goals for users who show any of
these engagement indicators:
- Committee leader status
- Working group membership
- Council membership
- 10+ Slack messages in the last 30 days

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Add passive note extraction from public channels

Two improvements to how Addie understands members:

1. Enriched LLM context in outbound planner:
   - Role in Community now prominently shows Committee Leader, Council Member, WG Member
   - Notes from channel conversations displayed separately for context
   - Removed duplicate committee leader from capabilities section

2. Passive note extraction from public channels:
   - New 'note' insight type for storing interesting tidbits as text
   - Watches all public channels Addie is in
   - Rate-limited queue (5s between LLM calls) to avoid API overload
   - Only extracts notable statements (interests, what they're building, opinions)
   - Stores as observations with medium confidence

Example flow:
Christina posts "I'm really interested in doing more with user data"
→ Extracted note: "Mentioned being interested in doing more with user data (in #wg-creative)"
→ Shows in planner context: "Notes from Channel Conversations: - Mentioned being interested..."

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Fix duplicate migration version number

Rename 141_note_insight_type.sql to 142_note_insight_type.sql since
141_fix_feed_email_slugs.sql already exists on main.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Fix migration version conflict (142 -> 143)

Rename note_insight_type migration to 143 since 142_member_search_analytics.sql
was added to main.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants