# Scratch Pad

> Markdown-based working memory for complex tasks. Use when: 5+ tool calls needed, researching multiple sources, analyzing/comparing items, multi-step workflows. Record process → Reference for response → Delete after use

- Skill: `majiayu000/scratch-pad` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add majiayu000/scratch-pad`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/scratch-pad/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/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

```bash
# 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

```bash
# 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

```bash
# 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

```bash
# 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:

```markdown
# 📋 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}.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

