Skip to main content

slack-memory-store

Comprehensive memory storage system for AI employees in IT companies who communicate via Slack. Automatically classifies and stores diverse information types (Slack messages, Confluence docs, emails, meetings, projects, decisions, feedback) in an organized folder structure with efficient indexing and retrieval. Use when managing or searching employee memory, storing conversations, documenting decisions, tracking projects, or organizing any work-related information.

Zur Installation springen

Quellinformationen

Repository
krafton-ai/KIRA
Letzte Quellaktivitรคt
20. Februar 2026 um 08:20
Erkannte Sprache von SKILL.md
Englisch
Sterne
928
Forks
106

Installationsoptionen

StandardmรครŸig ist der Prompt ausgewรคhlt, der zuerst die Quelle prรผft. Sie kรถnnen zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prรผfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich fรผr eine Installation entscheiden.

Datei-Explorer
7 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen ยท Schreibgeschรผtzte Vorschau
name
slack-memory-store
description
Comprehensive memory storage system for AI employees in IT companies who communicate via Slack. Automatically classifies and stores diverse information types (Slack messages, Confluence docs, emails, meetings, projects, decisions, feedback) in an organized folder structure with efficient indexing and retrieval. Use when managing or searching employee memory, storing conversations, documenting decisions, tracking projects, or organizing any work-related information.
# Slack Memory Store This skill enables systematic memory management for AI employees operating in IT company environments, primarily through Slack communication. ## Core Capabilities 1. **Auto-classification** - Automatically categorize incoming information into appropriate folders 2. **Multi-format support** - Handle Slack messages, Confluence documents, emails, meeting notes, etc. 3. **Smart indexing** - Maintain up-to-date index.md for rapid information retrieval 4. **Flexible schemas** - Support structured metadata for each information type 5. **CRUD operations** - Create, read, update, and delete memory entries ## Quick Start ### Initialize Memory Structure Before using the memory system for the first time, initialize the directory structure: ```bash python scripts/init_memory.py /path/to/memory ``` This creates: - All required directories (channels/, users/, projects/, etc.) - Initial index.md with navigation - Metadata tracking file ### Add New Information The primary way to add information to memory: ```bash python scripts/add_memory.py /path/to/memory "Title" "Content" '{"type":"channel", "channel_id":"C123"}' ``` The script will: 1. Analyze the content and metadata 2. Automatically classify into the appropriate directory 3. Generate a clean filename 4. Format with proper YAML frontmatter 5. Save to the correct location ### Update Index After adding/modifying multiple entries, update the index: ```bash python scripts/update_index.py /path/to/memory ``` This refreshes: - Statistics (total channels, users, projects, etc.) - Recent updates list (10 most recent changes) - Navigation links ### Search Memory To find information quickly: ```bash # Search by content python scripts/search_memory.py /path/to/memory content "ํ”„๋กœ์ ํŠธ" # Search by tag python scripts/search_memory.py /path/to/memory tag urgent # List files in category python scripts/search_memory.py /path/to/memory category projects ``` ## Memory Organization ### Directory Structure ``` memory/ โ”œโ”€โ”€ index.md # Main navigation and quick reference โ”œโ”€โ”€ channels/ # Slack channel information โ”‚ โ””โ”€โ”€ C123_๋งˆ์ผ€ํŒ…ํŒ€.md โ”œโ”€โ”€ users/ # Team member profiles โ”‚ โ””โ”€โ”€ U456_๊น€์ฒ ์ˆ˜.md โ”œโ”€โ”€ projects/ # Project status and history โ”‚ โ”œโ”€โ”€ ์‹ ์ œํ’ˆ๋Ÿฐ์นญ.md โ”‚ โ””โ”€โ”€ archive/ โ”œโ”€โ”€ tasks/ # Completed and ongoing tasks โ”‚ โ”œโ”€โ”€ ongoing/ โ”‚ โ””โ”€โ”€ completed/ โ”œโ”€โ”€ decisions/ # Decision points and rationale โ”œโ”€โ”€ meetings/ # Meeting notes and action items โ”œโ”€โ”€ feedback/ # User feedback and suggestions โ”œโ”€โ”€ announcements/ # Important announcements โ”œโ”€โ”€ resources/ # Internal docs, guides, manuals โ”œโ”€โ”€ external/ # External information โ”‚ โ””โ”€โ”€ news/ โ””โ”€โ”€ misc/ # Uncategorized information ``` ### File Format Each memory file follows this structure: ```markdown --- type: channel channel_id: C01234567 channel_name: "๋งˆ์ผ€ํŒ…ํŒ€" participants: [U01234567, U76543210] tags: [marketing, important] created: 2025-10-28 10:00:00 updated: 2025-10-28 15:30:00 --- # ๋งˆ์ผ€ํŒ…ํŒ€ ์ฑ„๋„ ## ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ์ง€์นจ - Tone: Professional but friendly - Response time: Within 1 hour during business hours - Key topics: Campaign planning, performance metrics ## Recent Discussions ... ``` ## Storage Strategy: Hybrid Approach **CRITICAL**: Use a hybrid strategy to optimize retrieval and file size: ### 1. Profile Files (One Per Entity - UPDATE, Don't Create New) - **Purpose**: Persistent guidelines, preferences, static info - **Action**: ALWAYS check if file exists first, then UPDATE it - **Examples**: - `channels/C123_๋งˆ์ผ€ํŒ…ํŒ€.md` - Channel guidelines, members, communication style - `users/U456_๊น€์ฒ ์ˆ˜.md` - User profile, preferences, work style ### 2. Topic Files (Multiple - CREATE New or UPDATE Existing) - **Purpose**: Conversations, projects, decisions, meetings - **Action**: Create new file per topic, or update if same topic continues - **Examples**: - `projects/์‹ ์ œํ’ˆ๋Ÿฐ์นญ.md` - Project discussions - `decisions/AWS์ „ํ™˜_20251117.md` - Important decisions (date-stamped) - `meetings/2025-11-17-Q4์ „๋žตํšŒ์˜.md` - Meeting notes - `misc/๋งˆ์ผ€ํŒ…ํŒ€_์ผ์ƒ_20251117.md` - Casual conversations ### 3. Decision Tree for Classification ``` Content type: โ”œโ”€ Channel/User guidelines or preferences? โ”‚ โ””โ”€ YES โ†’ UPDATE channels/C123_์ฑ„๋„๋ช….md or users/U456_์œ ์ €๋ช….md โ”‚ โ””โ”€ NO โ†’ What's the main topic? โ”œโ”€ Project discussion โ†’ projects/ํ”„๋กœ์ ํŠธ๋ช….md โ”œโ”€ Important decision โ†’ decisions/์ฃผ์ œ_DATE.md โ”œโ”€ Meeting notes โ†’ meetings/DATE-์ฃผ์ œ.md โ”œโ”€ Casual conversation โ†’ misc/์ฑ„๋„๋ช…_DATE.md (or skip if trivial) โ””โ”€ Task/feedback/announcement โ†’ respective directories ``` ## Handling Different Content Types ### Slack Conversations When receiving Slack message threads: 1. **Identify context**: Channel, participants, date range 2. **Extract key info**: Decisions, action items, important discussions 3. **Classify using Hybrid Strategy** (see Decision Tree above): - Channel guidelines/preferences โ†’ **UPDATE** `channels/C123_์ฑ„๋„๋ช….md` - User preferences โ†’ **UPDATE** `users/U456_์œ ์ €๋ช….md` - Project-focused โ†’ **CREATE/UPDATE** `projects/ํ”„๋กœ์ ํŠธ๋ช….md` - Decision-focused โ†’ **CREATE** `decisions/์ฃผ์ œ_DATE.md` - Meeting notes โ†’ **CREATE** `meetings/DATE-์ฃผ์ œ.md` - Casual chat โ†’ **CREATE** `misc/์ฑ„๋„๋ช…_DATE.md` (or skip if not important) 4. **Format**: Chronological order, preserve thread structure 5. **Metadata**: channel_id, participants, date_range, message_count, **related_to** (link to profile file) Example usage: ```python from scripts.add_memory import MemoryManager manager = MemoryManager('/path/to/memory') # Example 1: Topic file (project discussion) manager.add_memory( title="Q4 ์ „๋žต ๋…ผ์˜", content=formatted_slack_thread, metadata={ 'type': 'project', # Will create projects/Q4์ „๋žต๋…ผ์˜.md 'channel_id': 'C123', 'channel_name': '๋งˆ์ผ€ํŒ…ํŒ€', 'participants': ['U01', 'U02'], 'date_range': '2025-10-28', 'message_count': 25, 'tags': ['strategy', 'q4'], 'related_to': ['channels/C123_๋งˆ์ผ€ํŒ…ํŒ€.md'] # Link to channel profile } ) # Example 2: Profile file (channel guidelines update) manager.add_memory( title="๋งˆ์ผ€ํŒ…ํŒ€", content="Channel guidelines: Professional tone, quick response expected", metadata={ 'type': 'channel', # Will update channels/C123_๋งˆ์ผ€ํŒ…ํŒ€.md 'channel_id': 'C123', 'channel_name': '๋งˆ์ผ€ํŒ…ํŒ€', 'guidelines': {'tone': 'professional', 'response_time': '1์‹œ๊ฐ„ ์ด๋‚ด'} } ) ``` ### Confluence Documents When importing Confluence documentation: 1. **Convert format**: HTML โ†’ Markdown 2. **Preserve structure**: Headers, lists, tables 3. **Add metadata**: source_url, space, last_updated 4. **Classify**: Usually โ†’ `resources/` or `projects/` ### Email Threads When storing email conversations: 1. **Thread structure**: Maintain reply chain 2. **Extract metadata**: From, To, Subject, Date 3. **Classify by content**: - Announcements โ†’ `announcements/` - Project updates โ†’ `projects/` - Feedback โ†’ `feedback/` ### Meeting Notes When recording meetings: 1. **Structure**: Date, attendees, agenda, discussions, action items 2. **Always goes to**: `meetings/` 3. **Cross-reference**: Link to related projects/decisions 4. **Action items**: Extract and consider adding to `tasks/` ### External News When saving external articles: 1. **Always goes to**: `external/news/` 2. **Add metadata**: source, source_url, date, relevance 3. **Summarize**: Focus on key points relevant to company 4. **Link**: Connect to related_project if applicable ## Automatic Classification The system uses a multi-level classification strategy: ### Level 1: Explicit Metadata If `type` field exists in metadata โ†’ use directly ### Level 2: Structural Indicators - `channel_id` present โ†’ `channels/` - `user_id` present โ†’ `users/` - `project_id` present โ†’ `projects/` ### Level 3: Keyword Analysis Scan content for keywords (see `references/classification-guide.md` for full list): - "ํ”„๋กœ์ ํŠธ", "project", "milestone" โ†’ `projects/` - "๊ฒฐ์ •", "decision", "์Šน์ธ" โ†’ `decisions/` - "ํšŒ์˜", "meeting" โ†’ `meetings/` - etc. ### Level 4: Default If no classification match โ†’ `misc/` ## Advanced Features ### Update Existing Memory To update an existing file: ```python manager = MemoryManager('/path/to/memory') manager.update_memory( directory='projects', filename='์‹ ์ œํ’ˆ๋Ÿฐ์นญ.md', new_content=updated_content, new_metadata={'updated': '2025-10-28 16:00:00', 'status': 'completed'} ) ``` ### Cross-referencing Use `related_to` metadata to link related files: ```yaml --- type: decision related_to: - projects/์‹ ์ œํ’ˆ๋Ÿฐ์นญ.md - meetings/2025-10-28-์ „๋žตํšŒ์˜.md --- ``` ### Version Management If a file with the same name exists, the system automatically: 1. Detects duplicate 2. Adds version suffix: `filename_v2.md`, `filename_v3.md`, etc. ### Search Tips 1. **Content search**: Case-insensitive by default 2. **Tag search**: Find all files with specific tag 3. **Category search**: List all files in a directory 4. **Index search**: Use browser Ctrl+F on index.md for quick keyword lookup ## Best Practices ### 1. Consistent Metadata Always include at minimum: - `type`: Content type - `created`: Creation timestamp - `tags`: Relevant tags for searchability ### 2. Descriptive Titles Use clear, descriptive titles: - โœ… "Q4 ๋งˆ์ผ€ํŒ… ์ „๋žต ํšŒ์˜ - 2025-10-28" - โŒ "๋ฏธํŒ…" ### 3. Regular Index Updates Update index after: - Multiple file additions - File deletions - Category changes - Or at least once per hour ### 4. Use Tags Liberally Tags improve discoverability: ```yaml tags: [urgent, marketing, q4, strategy, approval-needed] ``` ### 5. Link Related Information When information is related, add cross-references: ```yaml related_to: - projects/์›น์‚ฌ์ดํŠธ๋ฆฌ๋‰ด์–ผ.md - decisions/๋””์ž์ธ์‹œ์Šคํ…œ์„ ํƒ.md ``` ## Reference Documents For detailed information, see: - **[data-schemas.md](references/data-schemas.md)** - Complete schemas for all memory types with examples - **[classification-guide.md](references/classification-guide.md)** - Detailed classification rules and content handling strategies ## Workflow Examples ### Example 1: Storing Slack Discussion ```python # 1. Format the Slack thread slack_content = """ ## Participants - @chulsoo (PM) - @sarah (Designer) ## Discussion [10:30] chulsoo: ๋žœ๋”ฉ ํŽ˜์ด์ง€ ๋””์ž์ธ ๋ฆฌ๋ทฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค [10:35] sarah: ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ์ „๋ฐ˜์ ์œผ๋กœ ์ข‹์€๋ฐ CTA ๋ฒ„ํŠผ์ด ๋” ๋ˆˆ์— ๋„์—ˆ์œผ๋ฉด ์ข‹๊ฒ ์–ด์š” ... """ # 2. Add to memory manager.add_memory( title="๋žœ๋”ฉ ํŽ˜์ด์ง€ ๋””์ž์ธ ๋ฆฌ๋ทฐ", content=slack_content, metadata={ 'type': 'project', 'channel_id': 'C123', 'project': '์‹ ์ œํ’ˆ๋Ÿฐ์นญ', 'participants': ['U01', 'U02'], 'tags': ['design', 'review', 'landing-page'] } ) # 3. Update index update_index() ``` ### Example 2: Quick Information Lookup ```bash # Find all files related to "์‹ ์ œํ’ˆ" python scripts/search_memory.py /memory content "์‹ ์ œํ’ˆ" # Results show: # 1. projects/์‹ ์ œํ’ˆ๋Ÿฐ์นญ.md # 2. meetings/2025-10-15-์‹ ์ œํ’ˆ๊ธฐํšํšŒ์˜.md # 3. decisions/์‹ ์ œํ’ˆ๊ฐ€๊ฒฉ๊ฒฐ์ •.md ``` ### Example 3: Tracking Project Progress ```python # Initial project setup manager.add_memory( title="์‹ ์ œํ’ˆ ๋Ÿฐ์นญ ํ”„๋กœ์ ํŠธ", content=""" ## Overview AI ๊ธฐ๋ฐ˜ ์ถ”์ฒœ ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ ๋ฐ ๋Ÿฐ์นญ ## Milestones - [ ] MVP ๊ฐœ๋ฐœ (2025-11-30) - [ ] ๋ฒ ํƒ€ ํ…Œ์ŠคํŠธ (2025-12-15) - [ ] ์ •์‹ ์ถœ์‹œ (2025-12-31) """, metadata={ 'type': 'project', 'status': 'in_progress', 'priority': 'high', 'participants': ['U01', 'U02', 'U03'] } ) # Later: Update progress manager.update_memory( 'projects', '์‹ ์ œํ’ˆ๋Ÿฐ์นญํ”„๋กœ์ ํŠธ.md', updated_content_with_progress, {'updated': '2025-10-28', 'status': 'on_track'} ) ``` ## Troubleshooting ### Issue: Files not found by search **Solution**: Ensure filename ends with `.md` and is not `index.md` ### Issue: Wrong classification **Solution**: Provide explicit `type` in metadata or add more specific keywords to content ### Issue: Index out of date **Solution**: Run `update_index.py` manually ### Issue: Duplicate files
Auf GitHub ansehen
Diese SKILL.md ist sehr gross, daher zeigt SkillsMP hier nur den ersten Abschnitt. Auf GitHub ansehen