Claude-skill-registry dry-run
Simulates command execution in dry-run mode without file modifications. Sets dry_run flag, executes command with read-only constraint, then resets flag. Useful for testing workflows safely. Triggers on keywords: dry run, simulate, test command, preview changes, safe mode, no write
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/dr" ~/.claude/skills/majiayu000-claude-skill-registry-dry-run && rm -rf "$T"
skills/data/dr/SKILL.mdDry Run Skill
Executes any command or skill in simulation mode, preventing all file modifications except session state.
Usage
/dry-run <any command or prompt>
Examples:
- Preview full spec workflow/dry-run /po_spec path/to/spec.md
- Test implementation without changes/dry-run /spec IMPLEMENT path/to/spec.md
- Normal chat (no files affected)/dry-run why did you implement X this way?
Workflow
Step 1: Initialize Session Status
Find the Claude Code PID and create session directory:
pgrep -x claude | head -1 || echo "shared"
Use the output as
CLAUDE_PID. Then create the session directory:
mkdir -p outputs/session/<CLAUDE_PID>
Check if
outputs/session/<CLAUDE_PID>/status.yml exists. If not, create with initial schema:
dry_run: false
Step 2: Set Dry-Run Mode
Update
outputs/session/<CLAUDE_PID>/status.yml:
dry_run: true
This signals to THIS session's file operations that writes are prohibited. Other Claude sessions (different PIDs) are not affected.
Step 3: Execute Delegated Command
Execute the provided command/prompt EXACTLY as given. All behavior remains normal EXCEPT:
CRITICAL CONSTRAINTS:
- NO file modifications allowed (Read, Grep, Glob, LSP, Bash read-only commands OK)
- ONLY exception:
can be modifiedoutputs/session/<CLAUDE_PID>/status.yml - If command requires file writes, DESCRIBE what WOULD be changed instead
- For chat-only prompts (no file operations needed), respond normally
Step 4: Reset Dry-Run Mode
After execution completes (success or failure), reset state in
outputs/session/<CLAUDE_PID>/status.yml:
dry_run: false
Step 5: Report Results
Provide summary:
- What was executed
- What file changes WOULD have occurred (if any)
- Verification that dry_run mode is reset
Implementation Notes
The skill acts as a wrapper:
- It does NOT interpret or execute the delegated work itself
- It sets the flag, then lets normal AI behavior handle the prompt
- The dry_run flag is checked by pretooluse hook (hard enforcement at tool level)
- After completion, it ensures cleanup
State Schema
outputs/session/<claude_pid>/status.yml:
dry_run: bool # true = prevent file writes, false = normal mode
Session isolation by Claude PID ensures parallel agents don't interfere with each other. Future extensions may add additional session state fields.