Skip to content
Back to skills

File Validation

ASecurity

Strict detection and removal of unrelated files before PR creation

  • 666 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added February 8, 2026
developmentpythongosqlnodedockertestingdebugginggitdatabase

Works with

  • vscode

Security analysis

A100/100

Scanned February 12, 2026

npx -y skills add majiayu000/claude-skill-registry --skill file-validation --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of File Validation?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for File Validation
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-file-validation/badge)](https://www.skillsdirectory.com/skills/majiayu000-file-validation)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: File Validation
description: Strict detection and removal of unrelated files before PR creation
---

# File Validation Skill

> Be strict, not permissive. Unrelated files MUST be removed, not suggested.

**Core Principle**: STRICT MODE - Unrelated files are removed immediately, not flagged for later cleanup.

---

## Overview

File validation ensures PRs contain only relevant changes. This prevents:
- Local dev artifacts (redis-cluster, .env.local, tmp/)
- Debug files (console.log, dump.rdb)
- OS/IDE artifacts (.DS_Store, .vscode/)
- Unintentional changes from other work

**Policy**: When unrelated files are detected, remove them. Don't suggest cleanup - do it.

---

## When to Use

**Trigger automatically** during:
- `/commit-commands:commit-push-pr`
- `/commit-commands:commit`
- Any PR creation workflow

**Trigger manually** with:
- `/v-file-validation:check`

---

## Commands

| Command | Purpose |
|---------|---------|
| `/v-file-validation:check` | Run detection and prompt for removal |

---

## Detection Patterns

### By File Path

Flag files containing these path segments:

| Pattern | Category | Example |
|---------|----------|---------|
| `local` | Local config | `config/local.json` |
| `test-data` | Test fixtures | `test-data/users.json` |
| `tmp` | Temporary | `tmp/debug.log` |
| `debug` | Debug files | `debug/output.txt` |
| `dump` | Data dumps | `dump/database.sql` |
| `cache` | Cache files | `.cache/` |
| `redis-cluster` | Local Redis | `redis-cluster/dump.rdb` |
| `docker-compose.override` | Local Docker | `docker-compose.override.yml` |

### By File Extension

Flag files with these extensions:

| Extension | Category | Example |
|-----------|----------|---------|
| `.log` | Log files | `app.log` |
| `.pid` | Process IDs | `server.pid` |
| `.rdb` | Redis dumps | `dump.rdb` |
| `.dump` | Data dumps | `postgres.dump` |
| `.swp` | Vim swap | `.file.swp` |
| `.pyc` | Python compiled | `__pycache__/*.pyc` |

### By File Name

Flag files matching these names:

| Name | Category |
|------|----------|
| `.DS_Store` | macOS artifact |
| `Thumbs.db` | Windows artifact |
| `desktop.ini` | Windows artifact |
| `.env.local` | Local env config |
| `.env.development.local` | Local env config |
| `.env.test.local` | Local env config |

### Common Categories

| Category | Examples | Why Unrelated |
|----------|----------|---------------|
| **Local dev artifacts** | `redis-cluster/`, `dump.rdb`, `.env.local` | Only exist in local environment |
| **Debug files** | `debug.log`, `tmp/`, `console-output.txt` | Temporary debugging |
| **OS artifacts** | `.DS_Store`, `Thumbs.db`, `desktop.ini` | OS-specific, should be in .gitignore |
| **IDE files** | `.vscode/`, `.idea/`, `*.swp` | IDE-specific, should be in .gitignore |
| **Build artifacts** | `node_modules/`, `dist/`, `build/`, `*.pyc` | Generated, should be in .gitignore |
| **Test data** | `test-data/`, `fixtures/local/` | Local testing only |
| **Config overrides** | `docker-compose.override.yml`, `local.settings.json` | Local dev config |

---

## Detection Logic

```python
def is_unrelated(file_path, pr_scope):
    # 1. Path-based detection
    unrelated_patterns = [
        'local', 'test-data', 'tmp', 'debug', 'dump',
        'cache', '.DS_Store', '*.log', '*.pid',
        'redis-cluster', 'docker-compose.override'
    ]

    if any(pattern in file_path for pattern in unrelated_patterns):
        return True

    # 2. Extension-based detection
    unrelated_extensions = ['.log', '.pid', '.rdb', '.dump', '.swp', '.pyc']
    if any(file_path.endswith(ext) for ext in unrelated_extensions):
        return True

    # 3. Scope-based detection
    # Read PR description + Linear issue
    # Check if file is mentioned or relates to scope
    if not file_mentioned_in_scope(file_path, pr_scope):
        return True

    return False
```

---

## Strict Mode Policy

### Wrong Approach (Too Permissive)

```
❌ "These files shouldn't affect the PR, but you may want to clean them up later"
```

### Right Approach (Strict)

```
✅ "These files are unrelated to this PR and must be removed:
- redis-cluster/dump.rdb (local dev artifact)
- .env.local (local config)
- tmp/debug.log (debug file)

Removing them now."
```

Then execute the removal.

---

## Handling User Override

**Rare case**: User insists files ARE related.

**Response**:
```
Okay, keeping the files. Please add justification to PR description:

## Unusual Files Included

This PR includes files that may appear unrelated:
- redis-cluster/: [Explain why needed]
- .env.local: [Explain why needed]

Justification: [User's explanation]
```

This documents the decision for reviewers.

---

## Integration Points

### With commit-commands Plugin

When `/commit-commands:commit-push-pr` runs:
1. List all changed files
2. Invoke `/v-file-validation:check`
3. If unrelated files found → Prompt for removal
4. After cleanup → Continue with commit

### With Tech Lead

Before tech lead approval:
1. Run file validation
2. If unrelated files found → Block until cleaned

---

## Reference Files

| File | Purpose |
|------|---------|
| `violet-brain/patterns/pr-quality.md` | PR quality standards and file validation criteria |
| `violet-brain/patterns/multi-agent-git.md` | Multi-agent git safety (never use `git add -A`) |

---

*Skill Version: 1.0.0*

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.