Use when creating temporary files, drafts, experiments, or any content that should not be committed to version control. Ensures proper placement in .claude/.scratch with gitignore configuration.
Limited to specific tools
Additional assets for this skill
This skill is limited to using the following tools:
name: scratch-workspace description: Use when creating temporary files, drafts, experiments, or any content that should not be committed to version control. Ensures proper placement in .claude/.scratch with gitignore configuration. allowed-tools:
This skill covers proper use of the .claude/.scratch/ directory for temporary, exploratory, and draft work.
The scratch workspace provides a gitignored location for:
Before creating scratch files:
Ensure directory exists
mkdir -p .claude/.scratch
Verify gitignore
Check .gitignore contains:
.claude/.scratch
If missing, add it:
echo '.claude/.scratch' >> .gitignore
Organize scratch files by purpose:
.claude/
├── .scratch/
│ ├── drafts/ # Work-in-progress implementations
│ │ └── feature-x.ts
│ ├── experiments/ # Exploratory code
│ │ └── perf-test.js
│ ├── notes/ # Planning and notes
│ │ └── architecture.md
│ └── temp/ # Truly temporary files
└── settings.json # Claude settings (NOT scratch)
.claude/.scratch/# Create scratch area
mkdir -p .claude/.scratch/experiments
# Work on experiment
# ... create files in .claude/.scratch/experiments/
When scratch work is ready:
Periodically clean scratch:
# Review what's in scratch
ls -la .claude/.scratch/
# Remove old experiments
rm -rf .claude/.scratch/experiments/old-test/
The .claude/.scratch directory is gitignored, so:
git status won't show scratch filesgit add . won't stage scratch filesMost IDEs will show .claude/.scratch in the file tree. You can:
.claude/.scratch/drafts/
└── new-feature/
├── index.ts
├── types.ts
└── test.ts
.claude/.scratch/experiments/
└── perf-comparison/
├── approach-a.ts
├── approach-b.ts
└── benchmark.ts
.claude/.scratch/notes/
└── refactor-plan.md
# Verify gitignore entry
grep -r ".claude/.scratch" .gitignore
# If missing, add it
echo '.claude/.scratch' >> .gitignore
mkdir -p .claude/.scratch
# Remove from tracking but keep locally
git rm -r --cached .claude/.scratch
git commit -m "chore: remove scratch files from tracking"