Agent skill

dr

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/dr

SKILL.md

Dry 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:

  • /dry-run /po_spec path/to/spec.md - Preview full spec workflow
  • /dry-run /spec IMPLEMENT path/to/spec.md - Test implementation without changes
  • /dry-run why did you implement X this way? - Normal chat (no files affected)

Workflow

Step 1: Initialize Session Status

Find the Claude Code PID and create session directory:

bash
pgrep -x claude | head -1 || echo "shared"

Use the output as CLAUDE_PID. Then create the session directory:

bash
mkdir -p outputs/session/<CLAUDE_PID>

Check if outputs/session/<CLAUDE_PID>/status.yml exists. If not, create with initial schema:

yaml
dry_run: false

Step 2: Set Dry-Run Mode

Update outputs/session/<CLAUDE_PID>/status.yml:

yaml
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: outputs/session/<CLAUDE_PID>/status.yml can be modified
  • 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:

yaml
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:

  1. It does NOT interpret or execute the delegated work itself
  2. It sets the flag, then lets normal AI behavior handle the prompt
  3. The dry_run flag is checked by pretooluse hook (hard enforcement at tool level)
  4. After completion, it ensures cleanup

State Schema

outputs/session/<claude_pid>/status.yml:

yaml
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.

Expand your agent's capabilities with these related and highly-rated skills.

Didn't find tool you were looking for?

Be as detailed as possible for better results