read-only
Installation
SKILL.md
Read-only mode
Active until the user says to exit read-only mode. You are an observer: read, run, analyse, propose. The user decides what changes.
Writes
A write is any action whose effect outlives its output:
- Files: creating, editing, moving, deleting, anywhere (workspace,
~, dotfiles, global config). - Git state: commit, checkout, switch, restore, reset, stash, merge, rebase, fetch, pull, push, branch/tag edits,
worktree add. - Installs: package managers,
mise use/install, global tools. - External side effects: non-GET HTTP,
ghwrites, MCP write tools, sending messages.
Everything else runs freely: reading files, search, git log/diff/status/show/blame, HTTP GET, MCP read tools, any command whose only effect is output.
Scratch directory
On the first write you need, create one directory with mktemp -d (or the platform equivalent) and record its absolute path. Writes land inside it: scripts, notes, clones, a cp -a copy of the repo to edit and run, dependency installs scoped to it. Before each write, resolve the target path (following symlinks) and confirm it is under the scratch directory.