scratch-pad
Scratch Pad - Markdown-Based Task Memory
Simple markdown file for tracking progress during complex tasks. All content is directly written to a .md file for immediate use.
Quick Start
# Initialize scratch pad
python scripts/scratch_pad.py init "Task Name"
# Add content
python scripts/scratch_pad.py append "Finding: The analysis shows..."
# Log tool calls
python scripts/scratch_pad.py log-tool "web_search" '{"query": "AI trends"}' "Found 10 results"
# Read current content
python scripts/scratch_pad.py read
Core Commands
Basic Operations
# Start new task
python scripts/scratch_pad.py --file /path/to/scratch.md init "Task Name"
# Add any content
python scripts/scratch_pad.py append "Content to add..."
# Add section header
python scripts/scratch_pad.py section "Research Findings"
# Read entire pad
python scripts/scratch_pad.py read
Structured Logging
# Log tool execution
python scripts/scratch_pad.py log-tool "tool_name" '{"param": "value"}' "result text"
# Add finding
python scripts/scratch_pad.py finding "Important discovery" --category "Analysis"
# Add checkpoint
python scripts/scratch_pad.py checkpoint "Phase 1 Complete"
# Add TODO
python scripts/scratch_pad.py todo "Follow up on this"
python scripts/scratch_pad.py todo "Completed task" --done
# Mark complete
python scripts/scratch_pad.py complete
When to Use
ALWAYS use for:
- Tasks with 5+ tool calls
- Multi-source research ("조사해줘")
- Comparative analysis ("비교해줘")
- Information synthesis ("정리해줘")
- Step-by-step processing
Integration Pattern
# 1. Initialize at task start
SCRATCH_FILE="FILESYSTEM_BASE_DIR/files/{channel_id}/tmp/scratch_{timestamp}.md"
python scripts/scratch_pad.py --file $SCRATCH_FILE init "User request summary"
# 2. Log each tool call
python scripts/scratch_pad.py --file $SCRATCH_FILE log-tool "mcp__perplexity__search" '{"query": "..."}'
# Execute tool...
python scripts/scratch_pad.py --file $SCRATCH_FILE append "Result: Found X relevant items"
# 3. Add findings
python scripts/scratch_pad.py --file $SCRATCH_FILE finding "Key insight from research"
# 4. Read content for reference (DO NOT include raw content in response)
CONTENT=$(python scripts/scratch_pad.py --file $SCRATCH_FILE read)
# Use $CONTENT as reference to write organized response in mcp__slack__answer
# 5. Clean up (REQUIRED)
rm $SCRATCH_FILE
Important:
- The scratch pad is for YOUR reference only
- DO NOT copy/paste the raw markdown into responses
- USE it to organize and write a proper answer
- ALWAYS delete the scratch file after use
Output Format
The markdown file is structured for easy reading:
# 📋 Task Name
**Created:** 2025-11-05 10:00:00
**Status:** 🔄 In Progress
---
## 📝 Task Overview
Task: Research competitor products
Started: 2025-11-05 10:00:00
---
## Research Findings (10:05:23)
[10:05:30] Found 3 main competitors...
### 🔧 [10:06:15] Tool: web_search
**Parameters:**
```json
{
"query": "competitor analysis"
}
Result:
Found 10 relevant results
✅ Checkpoint: Initial Research Complete
Time: 10:15:00 Gathered basic information on all competitors
## Best Practices
1. **Use descriptive section headers** - Makes content easy to navigate
2. **Log tools immediately** - Capture parameters before execution
3. **Add findings as you go** - Don't wait until the end
4. **Use checkpoints** - Mark major milestones
5. **Reference, don't copy** - Use scratch pad as reference for organized response
6. **Always clean up** - Delete scratch files after task completion
7. **Keep it concise** - Focus on key information for YOUR reference
## Module Usage
```python
from scripts.scratch_pad import ScratchPadManager
# Initialize
manager = ScratchPadManager('/tmp/task.md')
manager.init("Complex Analysis Task")
# Add content
manager.add_section("Research Phase")
manager.append("Starting research on topic X...")
# Log tool
manager.log_tool("web_search", {"query": "topic X"}, "10 results found")
# Add finding
manager.add_finding("Topic X is growing 50% annually", "Market Trends")
# Read content
content = manager.read()
# Mark complete
manager.complete()
File Management
- Location: Always in
FILESYSTEM_BASE_DIR/files/{channel_id}/tmp/ - Naming:
scratch_{timestamp}.mdorscratch_{task_id}.md - Cleanup: Delete after task completion
- Size limit: Keep under 1MB for performance
Why Markdown?
- ✅ Human-readable format
- ✅ No JSON parsing overhead
- ✅ Direct append operations
- ✅ Easy to include in responses
- ✅ Can be viewed/edited manually
- ✅ Natural structure for documentation
More from krafton-ai/kira
slack-proactive-intervention-patterns
메모리에서 7가지 개입 기회 패턴을 감지하는 지식 베이스. 조사 제안, 스케줄링, 문서화, 초안 작성, 연결 조율, 예측적 제안, 루틴 자동화 패턴의 시그널과 점수 계산 방법.
21it-role-expert
Provides role-specific expertise for 26+ IT company positions. Use when responding from a specific role's perspective, providing role-based advice, or when specialized knowledge is needed for engineering, product, design, data, marketing, sales, operations, HR, legal, finance, leadership, or academic functions.
19confluence-deep-reader
Read a Confluence page and recursively explore its child pages up to 3 levels deep. Use when users want to comprehensively read a Confluence page tree, understand hierarchical documentation, or analyze content across parent and child pages.
18email-action-extractor
Extract actionable tasks assigned to the user from email text. Filters out informational emails (announcements, newsletters, ads, automated reports) and only processes emails with clear action requests. Handles group emails by identifying user-specific assignments.
16slack-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.
16pdf
Comprehensive PDF manipulation toolkit for extracting text and tables, creating new PDFs, merging/splitting documents, and handling forms. When Claude needs to fill in a PDF form or programmatically process, generate, or analyze PDF documents at scale.
15