๐ŸŽฏ

slack-memory-retrieval

๐ŸŽฏSkill

from krafton-ai/kira

VibeIndex|
What it does

slack-memory-retrieval skill from krafton-ai/kira

slack-memory-retrieval

Installation

Install skill:
npx skills add https://github.com/krafton-ai/kira --skill slack-memory-retrieval
2
AddedJan 29, 2026

Skill Details

SKILL.md

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.

Overview

# 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:

  1. Analyze context - Extract channel, user, keywords from conversation
  2. Read index.md - Get overview of available memories
  3. Identify relevant files - Based on context and index
  4. Load memories - Read specific files needed
  5. 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 info
  • users/U456_๊น€์ฒ ์ˆ˜.md - User profile, communication style

Topic Files (Multiple Per Category)

  • projects/์‹ ์ œํ’ˆ๋Ÿฐ์นญ.md - Project discussions
  • decisions/AWS์ „ํ™˜_20251117.md - Important decisions
  • meetings/2025-11-17-Q4ํšŒ์˜.md - Meeting notes
  • misc/๋งˆ์ผ€ํŒ…ํŒ€_์ผ์ƒ_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:

```bash

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:

```bash

view {memories_path}/projects/

# See available projects before loading specific files

```

Retrieval Patterns

Pattern 1: Channel Response

When responding in a channel:

```bash

# 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:

```bash

# 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:

```bash

# 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:

```bash

# 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:

```bash

# 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:

```yaml

# 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:

```bash

# 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:

```bash

# 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:

```yaml

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:

  1. Check index.md for recent updates
  2. Search broader category (e.g., misc/)
  3. Check related_to in similar files
  4. Inform user if information not available

Issue: Conflicting information

Solution:

  1. Prioritize newer information (check updated timestamp)
  2. Consider context of each source
  3. Mention both perspectives if relevant

Issue: Too much information

Solution:

  1. Prioritize by relevance to current question
  2. Summarize rather than detail
  3. Focus on actionable insights

Issue: Memory seems outdated

Solution:

  1. Check updated timestamp
  2. Look for newer related files
  3. Note timeframe in response
  4. 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

  1. Always start with index.md - Get the map before exploring
  2. Extract context first - Channel, user, keywords guide retrieval
  3. Load efficiently - Directory listing โ†’ relevant files only
  4. Follow references - Use related_to metadata
  5. Synthesize naturally - Don't cite sources explicitly
  6. Apply preferences - Use channel/user guidelines
  7. Stay current - Prioritize recent updates
  8. Don't over-fetch - Load what you need
  9. Respect guardrails - Stay within {memories_path}
  10. Provide value - Context-aware, relevant responses

Reference Documents

For detailed retrieval patterns and techniques:

  • [retrieval-patterns.md](references/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

```bash

# Once per session

view {memories_path}/projects/

view {memories_path}/channels/

# Then reference from memory

```

Tip 2: Use Index Effectively

```bash

# Index Recent Updates = quick scan of active areas

# No need to check every directory

```

Tip 3: Smart Caching

```bash

# Within a conversation:

# - Load channel context once

# - Load user profile once

# - Reuse for subsequent messages

```

Tip 4: Selective Loading

```bash

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