Back to skills
SkillHub ClubShip Full StackFull Stack

dr

Imported from https://github.com/majiayu000/claude-skill-registry.

Packaged view

This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.

Stars
125
Hot score
95
Updated
March 20, 2026
Overall rating
C2.8
Composite score
2.8
Best-practice grade
D40.0

Install command

npx @skill-hub/cli install majiayu000-claude-skill-registry-dr

Repository

majiayu000/claude-skill-registry

Skill path: skills/data/dr

Imported from https://github.com/majiayu000/claude-skill-registry.

Open repository

Best for

Primary workflow: Ship Full Stack.

Technical facets: Full Stack.

Target audience: everyone.

License: Unknown.

Original source

Catalog source: SkillHub Club.

Repository owner: majiayu000.

This is still a mirrored public skill entry. Review the repository before installing into production workflows.

What it helps with

  • Install dr into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
  • Review https://github.com/majiayu000/claude-skill-registry before adding dr to shared team environments
  • Use dr for development workflows

Works across

Claude CodeCodex CLIGemini CLIOpenCode

Favorites: 0.

Sub-skills: 0.

Aggregator: No.

Original source / Raw SKILL.md

---
name: dry-run
description: 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
project-agnostic: true
allowed-tools:
  - Bash
  - Write
  - Read
---

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