# Mktemp D

> Forbids creating temporary files or directories at hardcoded paths under `/tmp`. Always allocate a private directory with `mktemp -d` and place every temporary artifact inside it.

- Skill: `petr-korobeinikov/mktemp-d` (Agent Skill)
- Install (CLI): `npx skillmds@latest add petr-korobeinikov/mktemp-d`
- Raw SKILL.md: https://api.skillmd.com/api/skills/petr-korobeinikov/mktemp-d/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: petr-korobeinikov (https://skillmd.com/u/petr-korobeinikov)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/petr-korobeinikov/mktemp-d

---


# mktemp-d

Never create a temporary file or directory at a hardcoded path
under `/tmp`.
Always allocate a private directory with `mktemp -d`
and place all temporary artifacts inside it.

## Why

`mktemp -d` returns a unique, private directory.
A hardcoded path under `/tmp` does not —
it collides with concurrent runs and any leftover state from prior runs.

## Rule

One `mktemp -d` per logical scope, then build paths inside it:

```sh
tmpdir=$(mktemp -d)

cp something "$tmpdir/input"
do_work > "$tmpdir/output.log"
```

## Direct substitutions

| Don't                  | Do                                           |
| ---------------------- | -------------------------------------------- |
| `mkdir /tmp/work`      | `work=$(mktemp -d)`                          |
| `touch /tmp/out.log`   | `work=$(mktemp -d); : > "$work/out.log"`     |
| `cmd > /tmp/output`    | `work=$(mktemp -d); cmd > "$work/output"`    |
| `tar xf x.tar -C /tmp` | `work=$(mktemp -d); tar xf x.tar -C "$work"` |

If you encounter a hardcoded `/tmp/...` path while editing a file,
replace it with the `mktemp -d` idiom as part of the same edit.

