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:
{
"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}.md
or scratch_{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