Orchestrate scratchpad

Conventions for disposable scratch code and verification scripts. Use when writing smoke tests, quick probes, or temporary artifacts during task execution.

install
source · Clone the upstream repo
git clone https://github.com/haowjy/orchestrate
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/haowjy/orchestrate "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/scratchpad" ~/.claude/skills/haowjy-orchestrate-scratchpad && rm -rf "$T"
manifest: skills/scratchpad/SKILL.md
source content

Scratchpad

Disposable code and artifacts live in

.scratch/
, either in the working directory or under a designated output directory. Never committed.

Smoke Tests

Any disposable code used to quickly verify something works. Write them liberally after implementing changes.

TypeWhen to useExample
Logic verificationVerify guard patterns, state machines, edge cases
vitest
test asserting a staleness guard rejects stale responses
API/endpoint probesVerify endpoints respond correctly
curl
scripts hitting local dev server
Integration checksVerify two systems work togetherScript that creates a resource then reads it back
Regression probesVerify a specific bug is fixedMinimal repro of the bug, now passing
  • Promote to committed unit tests when a smoke test catches a real issue

Rules

  • Write scratch code to
    .scratch/
    — never commit it
  • Do not store secrets or raw tokens (
    .env
    values, JWTs, API keys, cookies)
  • Check project instruction files (
    CLAUDE.md
    or
    AGENTS.md
    ) for auth token scripts and API base URL
  • Name files descriptively:
    {feature}-{what}.test.ts
    or
    {endpoint}.sh
  • Use the project's existing test runner (vitest, jest, etc.) for logic smoke tests

Notes

Write markdown notes as you work — findings, decisions, progress. Notes persist on disk across context clears.

Use the co-located script:

# Write a quick note (auto-named with timestamp)
scripts/scratch.sh write --tag research -p "Found that X uses Y pattern"

# Write from stdin
echo "curl returned 200" | scripts/scratch.sh write --tag probe

# Explicit file path within session
scripts/scratch.sh write my-test.sh -p "#!/bin/bash\necho test"

# List notes from current session
scripts/scratch.sh list

# Read latest note
scripts/scratch.sh read @latest

# List all sessions
scripts/scratch.sh list --all

When run via run-agent, session defaults to the run ID. Standalone, pass

--session
or let it auto-bucket by date.