--- name: idempotent-script-design description: Use this skill when writing scripts, cron jobs, data pipelines, or any automated process that may be run multiple times. Design every operation to be safely re-runnable without side effects. category: automation --- # Idempotent Script Design An idempotent operation produces the same result whether run once or ten times. **Techniques:** - **Check before create:** `CREATE TABLE IF NOT EXISTS`, `mkdir -p`, check file existence before writing. - **Upsert instead of insert:** Use `INSERT ... ON CONFLICT DO UPDATE` in SQL. - **Atomic writes:** Write to a temp file, then rename — prevents corrupt partial output. - **Track progress:** Write a completion marker or checkpoint so reruns skip done work. **Testing idempotency:** Run your script twice on the same input and verify the output is identical. **Anti-patterns:** - Appending to a file without checking if the data is already there. - Inserting rows without checking for duplicates.