slack-memory-retrieval
Retrieve and utilize stored memories for AI employees in Slack environments. Efficiently searches and loads relevant context (channels, users, projects, decisions, meetings) from organized memory storage to inform responses. Use this when answering questions that require historical context, user preferences, project status, or any previously stored information. Works with slack-memory-store storage system.
$ Install
git clone https://github.com/krafton-ai/KIRA /tmp/KIRA && cp -r /tmp/KIRA/.claude/skills/slack-memory-retrieval ~/.claude/skills/KIRA// tip: Run this command in your terminal to install the skill
name: slack-memory-retrieval description: Retrieve and utilize stored memories for AI employees in Slack environments. Efficiently searches and loads relevant context (channels, users, projects, decisions, meetings) from organized memory storage to inform responses. Use this when answering questions that require historical context, user preferences, project status, or any previously stored information. Works with slack-memory-store storage system.
Slack Memory Retrieval
This skill enables AI employees to efficiently retrieve and utilize stored memories to provide context-aware responses in Slack conversations.
Core Purpose
Retrieve relevant memories from {memories_path} to inform the next response with appropriate context about people, projects, decisions, preferences, and work history.
Quick Start
Basic Workflow
Every memory retrieval follows this pattern:
- Analyze context - Extract channel, user, keywords from conversation
- Read index.md - Get overview of available memories
- Identify relevant files - Based on context and index
- Load memories - Read specific files needed
- Synthesize response - Combine memories with current context
Example: Simple Query
User (in #๋ง์ผํ
ํ): "Q4 ์ ๋ต ์ด๋ป๊ฒ ๋๊ณ ์์ด?"
Step 1: Context Analysis
- Channel: #๋ง์ผํ
ํ (C123)
- Keywords: Q4, ์ ๋ต
Step 2: Read Index
view {memories_path}/index.md
โ See Recent Updates, locate Q4-related items
Step 3: Load Relevant Files
view {memories_path}/channels/C123_๋ง์ผํ
ํ.md
view {memories_path}/projects/Q4์ ๋ต.md
view {memories_path}/meetings/ (find Q4 meetings)
Step 4: Respond
Synthesize information from channel context, project status, and meeting notes
Memory Structure
The memory system uses a hybrid approach:
Profile Files (One Per Entity)
channels/C123_๋ง์ผํ ํ.md- Channel guidelines, preferences, static infousers/U456_๊น์ฒ ์.md- User profile, communication style
Topic Files (Multiple Per Category)
projects/์ ์ ํ๋ฐ์นญ.md- Project discussionsdecisions/AWS์ ํ_20251117.md- Important decisionsmeetings/2025-11-17-Q4ํ์.md- Meeting notesmisc/๋ง์ผํ ํ_์ผ์_20251117.md- Casual conversations
Directory Structure
{memories_path}/
โโโ index.md # START HERE - navigation and stats
โโโ channels/ # Channel profile files (one per channel)
โโโ users/ # User profile files (one per user)
โโโ projects/ # Project topic files (multiple)
โโโ tasks/ # Task records
โโโ decisions/ # Decision records (date-stamped)
โโโ meetings/ # Meeting notes (date-stamped)
โโโ feedback/ # User feedback
โโโ announcements/ # Important announcements
โโโ resources/ # Internal docs and guides
โโโ external/news/ # External information
โโโ misc/ # Uncategorized conversations
Essential Rules
Always Start with Index
CRITICAL: Every retrieval session must begin by reading index.md:
view {memories_path}/index.md
The index provides:
- Navigation structure
- Statistics (total channels, users, active projects)
- Recent updates (10 most recent changes)
- Quick links to key information
This one-time read gives you the complete map of available memories.
Context-Driven Retrieval
Extract context from the conversation:
Channel Context:
Message in #๋ง์ผํ
ํ
โ Load: {memories_path}/channels/C123_๋ง์ผํ
ํ.md
โ Check related_to metadata for connected info
User Context:
DM from @chulsoo
โ Load: {memories_path}/users/U123_๊น์ฒ ์.md
โ Get communication_style, preferences
Project Context:
Question about "์ ์ ํ ๋ฐ์นญ"
โ Load: {memories_path}/projects/์ ์ ํ๋ฐ์นญ.md
โ Check milestones, status, participants
Keyword Context:
Question mentions "๊ฒฐ์ ", "์น์ธ"
โ Search: {memories_path}/decisions/
โ Find relevant decision files
Efficient Loading Strategy
Tier 1: Always Load (if relevant)
- index.md (overview)
- Current channel file (if in channel)
- Current user file (if DM or mentioned)
Tier 2: Load as Needed
- Project files (if project mentioned)
- Decision files (if asking about decisions)
- Meeting notes (if asking about meetings)
Tier 3: Load Selectively
- Tasks (only if specifically asked)
- Resources (only if referenced)
- External news (only if relevant)
Don't over-fetch. Use directory listings first:
view {memories_path}/projects/
# See available projects before loading specific files
Retrieval Patterns
Pattern 1: Channel Response
When responding in a channel:
# 1. Load channel context
view {memories_path}/channels/{channel_id}_{channel_name}.md
# 2. Check for channel guidelines
# Extract: tone, response_time, key_topics
# 3. Apply guidelines to response
# Adjust tone, format based on channel preferences
Pattern 2: User-Specific Response
When responding to a specific user:
# 1. Load user profile
view {memories_path}/users/{user_id}_{name}.md
# 2. Check communication_style
# Extract: tone, detail_level, preferences
# 3. Personalize response
# Match user's preferred style and detail level
Pattern 3: Project Status Query
When asked about project status:
# 1. Find project file
view {memories_path}/projects/
view {memories_path}/projects/{project_name}.md
# 2. Check metadata
# status, priority, milestones, participants
# 3. Get related info
# Check related_to for decisions, meetings
# 4. Provide comprehensive update
# Current status + recent activity + next steps
Pattern 4: Decision History
When asked about past decisions:
# 1. Search decisions
view {memories_path}/decisions/
# 2. Load relevant decision file
view {memories_path}/decisions/{decision_name}.md
# 3. Extract key info
# decision_makers, rationale, alternatives_considered
# 4. Explain context
# Why decision was made + alternatives + outcome
Pattern 5: Task History
When asked about completed work:
# 1. Check completed tasks
view {memories_path}/tasks/completed/
# 2. Filter by assignee/date
# Look for relevant assignee, date range
# 3. Summarize work
# List tasks + effort + outcomes
Advanced Techniques
Cross-Referencing
Follow the trail of related information:
# In project file:
---
related_to:
- decisions/๊ธฐ์ ์คํ์ ํ.md
- meetings/2025-10-20-๊ธฐํํ์.md
---
Load related files to build complete context.
Metadata Filtering
Use metadata to filter without reading entire files:
# List directory first
view {memories_path}/projects/
# Check filenames and metadata
# Only load files matching criteria:
# - status: in_progress
# - priority: high
# - participants: includes current_user
Temporal Context
Consider time-sensitivity:
# Recent Updates in index.md
โ Shows 10 most recent changes
โ Focus on these for "latest" questions
# File metadata: created, updated
โ Check dates to prioritize fresh info
Tag-Based Discovery
Use tags for discovery:
tags: [urgent, marketing, q4, approval-needed]
When user asks about "urgent items":
- Scan files for tags: urgent
- Collect across categories
- Present by priority
Response Construction
Synthesize, Don't Dump
โ Bad:
"According to channels/๋ง์ผํ
ํ.md, the response time is 1 hour.
According to projects/Q4์ ๋ต.md, the status is in_progress.
According to meetings/๊ธฐํํ์.md..."
โ Good:
"Q4 ๋ง์ผํ
์ ๋ต์ ํ์ฌ ์งํ ์ค์ด๋ฉฐ, ์ง๋ ๊ธฐํํ์์์
์ฃผ์ ๋ฐฉํฅ์ ํ์ ํ์ต๋๋ค. ํ์ฌ MVP ๊ฐ๋ฐ ๋จ๊ณ์ ์๊ณ ..."
Synthesize information naturally without explicitly citing sources.
Apply Context Appropriately
Channel Guidelines: If channel specifies "๊ฐ๊ฒฐํ ๋ต๋ณ", keep response concise.
User Preferences: If user prefers "bullet points", format accordingly.
Project Status: Include relevant status without over-explaining.
Maintain Conversational Flow
Integrate memories seamlessly into natural conversation:
User: "์ด๋ฒ ์ฃผ ๋ฏธํ
์ด๋ ์ด?"
Response: "ํ์์ผ ๊ธฐํํ์์์ ์ ๊ท ๊ธฐ๋ฅ 3๊ฐ๋ฅผ ์ต์ข
ํ์ ํ์ด์.
์ ๋ฐ์ ์ผ๋ก ๊ฐ๋ฐ ์ผ์ ์ ๋ํ ์ฐ๋ ค๊ฐ ์์์ง๋ง, ๋ฆฌ์์ค ์กฐ์ ์ผ๋ก
ํด๊ฒฐ ๊ฐ๋ฅํ ๊ฒ์ผ๋ก ๋ณด์
๋๋ค."
(Draws from: meetings/๊ธฐํํ์.md + projects/์ ๊ท๊ธฐ๋ฅ.md)
Important Guardrails
What to Retrieve
โ Do retrieve:
- Channel communication guidelines
- User preferences and profiles
- Project status and history
- Decision rationale and history
- Meeting notes and action items
- Completed task history
- Feedback and suggestions
- Resource documents
What NOT to Retrieve
โ Don't retrieve:
- Information outside {memories_path}
- System configuration files
- Scheduling requests (handled by scheduler agent)
- Agent identity info (name, org, team)
Privacy and Access
- Only access files within {memories_path}
- Don't share sensitive information inappropriately
- Respect access_level metadata if present
Efficiency
- Don't load unnecessary files
- Use directory listings before file reads
- Start with index.md, not individual files
- Follow the efficient loading strategy (Tier 1 โ Tier 2 โ Tier 3)
Troubleshooting
Issue: Can't find relevant memory
Solution:
- Check index.md for recent updates
- Search broader category (e.g., misc/)
- Check related_to in similar files
- Inform user if information not available
Issue: Conflicting information
Solution:
- Prioritize newer information (check updated timestamp)
- Consider context of each source
- Mention both perspectives if relevant
Issue: Too much information
Solution:
- Prioritize by relevance to current question
- Summarize rather than detail
- Focus on actionable insights
Issue: Memory seems outdated
Solution:
- Check updated timestamp
- Look for newer related files
- Note timeframe in response
- Suggest updating if critical
Integration with Memory Management
This skill works in tandem with slack-memory-store:
Memory Management (separate agent):
- Stores new information
- Updates existing memories
- Maintains index
Memory Retrieval (this skill):
- Reads stored information
- Finds relevant context
- Informs responses
These are complementary skills for a complete memory system.
Best Practices Summary
- Always start with index.md - Get the map before exploring
- Extract context first - Channel, user, keywords guide retrieval
- Load efficiently - Directory listing โ relevant files only
- Follow references - Use related_to metadata
- Synthesize naturally - Don't cite sources explicitly
- Apply preferences - Use channel/user guidelines
- Stay current - Prioritize recent updates
- Don't over-fetch - Load what you need
- Respect guardrails - Stay within {memories_path}
- Provide value - Context-aware, relevant responses
Reference Documents
For detailed retrieval patterns and techniques:
- retrieval-patterns.md - 10 detailed patterns for different scenarios with step-by-step examples
Example Workflows
Example 1: Morning Briefing
User (DM): "์ค๋ ๋ญ๋ถํฐ ์์ํ๋ฉด ์ข์๊น?"
# 1. Load user profile
view {memories_path}/users/U123_๊น์ฒ ์.md
โ Get role: PM, team: Product
# 2. Load index
view {memories_path}/index.md
โ Check Recent Updates
# 3. Check ongoing tasks
view {memories_path}/tasks/ongoing/
โ Find tasks assigned to U123
# 4. Check active projects
view {memories_path}/projects/
โ Filter by participants including U123
Response: "์ค๋์ Q4 ์ ๋ต ์ต์ข
์ ๊ฒํ ๊ฐ ๊ฐ์ฅ ์๊ธํด ๋ณด์
๋๋ค.
์คํ 3์ ์น์ธ ํ์๊ฐ ์์ ๋์ด ์์ด์, ์ค์ ์ค์ ๋ง๋ฌด๋ฆฌํ์๋ฉด ์ข์ ๊ฒ ๊ฐ์์.
๊ทธ ์ธ ์ ์ ํ ๊ธฐํ์ ์์ฑ๋ ์งํ ์ค์ด์ ๋ฐ, ์ด๋ฒ ์ฃผ ๊ธ์์ผ๊น์ง์๋ ์ฌ์ ๊ฐ ์์ต๋๋ค."
Example 2: Project Status Check
User (in #๊ฐ๋ฐํ): "์น์ฌ์ดํธ ๋ฆฌ๋ด์ผ ์ด๋๊น์ง ์์ด?"
# 1. Load channel context
view {memories_path}/channels/C456_๊ฐ๋ฐํ.md
# 2. Load index
view {memories_path}/index.md
# 3. Find project
view {memories_path}/projects/์น์ฌ์ดํธ๋ฆฌ๋ด์ผ.md
โ Get status, milestones, recent updates
# 4. Check related decisions
โ Follow related_to metadata
# 5. Check recent meetings
view {memories_path}/meetings/
โ Find recent discussions about this project
Response: "์น์ฌ์ดํธ ๋ฆฌ๋ด์ผ์ ํ์ฌ 70% ์งํ๋์ต๋๋ค.
ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ์๋ฃ๋๊ณ , ๋ฐฑ์๋ API ํตํฉ ์์
์ค์ด์์.
์ง๋์ฃผ ํ์์์ ๋์์ธ ์์คํ
์ ํ์ ํ๊ณ , ๋ค์ ์ฃผ ํ์์ผ
๋ด๋ถ ํ
์คํธ ์์ ์
๋๋ค."
Example 3: Decision Inquiry
User: "React vs Vue ์ด๋ป๊ฒ ๊ฒฐ์ ํ์์ง?"
# 1. Load index
view {memories_path}/index.md
# 2. Search decisions
view {memories_path}/decisions/
โ Find "ํ๋ก ํธ์๋ํ๋ ์์ํฌ์ ํ.md"
# 3. Load decision file
view {memories_path}/decisions/ํ๋ก ํธ์๋ํ๋ ์์ํฌ์ ํ.md
โ Get decision_makers, alternatives, rationale
# 4. Check related meetings
โ Follow related_to for meeting notes
Response: "React๋ฅผ ์ ํํ์ต๋๋ค. 9์ ๊ธฐ์ ๊ฒํ ํ์์์
Vue๋ ๊ณ ๋ คํ์ง๋ง, ํ์ ๊ธฐ์กด React ๊ฒฝํ๊ณผ ์ํ๊ณ์ ํ๋ถํจ์
์ด์ ๋ก React๋ก ๊ฒฐ์ ํ์ด์. ํนํ TypeScript ์ง์๊ณผ
๋๊ท๋ชจ ์ปค๋ฎค๋ํฐ๊ฐ ์ฃผ์ ์์ธ์ด์์ต๋๋ค."
Performance Tips
Tip 1: Batch Directory Reads
# Once per session
view {memories_path}/projects/
view {memories_path}/channels/
# Then reference from memory
Tip 2: Use Index Effectively
# Index Recent Updates = quick scan of active areas
# No need to check every directory
Tip 3: Smart Caching
# Within a conversation:
# - Load channel context once
# - Load user profile once
# - Reuse for subsequent messages
Tip 4: Selective Loading
# If user asks "quick status":
# โ Load index + 1-2 key files
# If user asks "detailed report":
# โ Load index + multiple related files
This skill transforms stored memories into actionable context, enabling AI employees to provide informed, personalized, and context-aware responses in every interaction.
Repository
