validator

validator

Runs local validation operations for any project. Auto-detects language/framework and runs linting, type checking, tests, and dead code detection. Use this when the user says "validate", "run validation", "check code", "lint and test", or "run checks".

0スター
0フォーク
更新日 1/17/2026
SKILL.md
readonlyread-only
name
validator
description

Runs local validation operations for any project. Auto-detects language/framework and runs linting, type checking, tests, and dead code detection. Use this when the user says "validate", "run validation", "check code", "lint and test", or "run checks".

Validator Skill

You are a CI/CD pipeline running locally. Your job is to detect the project type and run all appropriate validation commands, then report the results clearly.

Process

Step 1: Detect Project Type

Check for these files to identify the project:

File Language/Framework
package.json Node.js / TypeScript / JavaScript
tsconfig.json TypeScript
pyproject.toml Python (modern)
setup.py Python (legacy)
requirements.txt Python
Gemfile Ruby
Cargo.toml Rust
go.mod Go
pom.xml Java (Maven)
build.gradle Java/Kotlin (Gradle)

If multiple are found (e.g., package.json + tsconfig.json), use the most specific (TypeScript in this case).

Step 2: Read Project Configuration

For the detected project type, read the config file to identify available scripts:

Node.js/TypeScript: Read package.json → check scripts for:

  • lint, eslint, check
  • typecheck, tsc, type-check
  • test, jest, vitest, playwright
  • build (useful to verify compilation)

Python: Check for tool configs in pyproject.toml or separate files:

  • ruff.toml, .flake8, .pylintrc → linting
  • mypy.ini, pyrightconfig.json → type checking
  • pytest.ini, setup.cfg → testing

Step 3: Run Validation Commands

Run each category in order. Continue even if a command fails - collect all results.

TypeScript / JavaScript

# 1. Linting (try in order, use first available)
npm run lint          # if script exists
npx eslint .          # fallback

# 2. Type checking (TypeScript only)
npm run typecheck     # if script exists
npx tsc --noEmit      # fallback

# 3. Tests
npm run test          # if script exists
npx jest              # or vitest, playwright

# 4. Dead code (optional)
npx knip              # if installed

Python

# 1. Linting (try in order)
ruff check .          # modern, fast
flake8                # traditional
pylint **/*.py        # comprehensive

# 2. Type checking
mypy .                # if configured
pyright               # alternative

# 3. Tests
pytest                # most common
python -m unittest discover  # stdlib fallback

# 4. Dead code (optional)
vulture .             # if installed

Ruby

# 1. Linting
bundle exec rubocop

# 2. Tests
bundle exec rspec     # if spec/ exists
bundle exec rake test # alternative

# 3. Dead code (optional)
bundle exec debride .

Rust

# 1. Linting
cargo clippy -- -D warnings

# 2. Tests
cargo test

# 3. Build check
cargo build --release

Go

# 1. Linting
go vet ./...
golangci-lint run     # if installed

# 2. Tests
go test ./...

# 3. Build check
go build ./...

Step 4: Collect and Parse Results

For each command:

  1. Capture stdout and stderr
  2. Note the exit code (0 = pass, non-zero = fail)
  3. Parse output to extract:
    • Error count
    • Warning count
    • Test pass/fail counts
    • Specific file:line references

Step 5: Generate Report

Present results in this format:

## Validation Report

**Project:** [TypeScript/Python/Ruby/etc.]
**Overall Status:** PASS ✓ / FAIL ✗

---

### Linting
**Status:** PASS ✓ / FAIL ✗
**Command:** `npm run lint`
- Errors: 0
- Warnings: 3

<details>
<summary>Warnings (3)</summary>

- `src/utils.ts:42` - Unexpected any. Specify a different type.
- `src/api.ts:15` - 'response' is defined but never used.
- `src/api.ts:23` - Prefer const over let.

</details>

---

### Type Checking
**Status:** PASS ✓
**Command:** `npx tsc --noEmit`
- No type errors found.

---

### Tests
**Status:** PASS ✓
**Command:** `npm run test`
- Total: 47
- Passed: 47
- Failed: 0
- Skipped: 2

---

### Dead Code Detection
**Status:** SKIPPED (knip not installed)

---

## Summary

| Check | Status | Issues |
|-------|--------|--------|
| Linting | ✓ | 3 warnings |
| Type Check | ✓ | 0 |
| Tests | ✓ | 47/47 passed |
| Dead Code | - | skipped |

### Recommended Actions
1. Consider fixing the 3 linting warnings
2. Install `knip` for dead code detection: `npm i -D knip`

Error Handling

Command not found:

  • Note as "SKIPPED - tool not installed"
  • Suggest installation command

Command fails:

  • Still report as FAIL with output
  • Continue to next check
  • Include error output in report

Timeout:

  • If a command takes >2 minutes, note as "TIMEOUT"
  • Tests may take longer - use appropriate timeout

Guidelines

  • Run all checks - don't stop on first failure
  • Be thorough - capture all output for debugging
  • Be clear - present pass/fail prominently
  • Be helpful - suggest fixes for common issues
  • No interaction - run autonomously, report when done

You Might Also Like

Related Skills

fix

fix

243Kdev-testing

Use when you have lint errors, formatting issues, or before committing code to ensure it passes CI.

facebook avatarfacebook
入手
peekaboo

peekaboo

179Kdev-testing

Capture and automate macOS UI with the Peekaboo CLI.

openclaw avataropenclaw
入手
frontend-testing

frontend-testing

128Kdev-testing

Generate Vitest + React Testing Library tests for Dify frontend components, hooks, and utilities. Triggers on testing, spec files, coverage, Vitest, RTL, unit tests, integration tests, or write/review test requests.

langgenius avatarlanggenius
入手
frontend-code-review

frontend-code-review

127Kdev-testing

Trigger when the user requests a review of frontend files (e.g., `.tsx`, `.ts`, `.js`). Support both pending-change reviews and focused file reviews while applying the checklist rules.

langgenius avatarlanggenius
入手
code-reviewer

code-reviewer

92Kdev-testing

Use this skill to review code. It supports both local changes (staged or working tree) and remote Pull Requests (by ID or URL). It focuses on correctness, maintainability, and adherence to project standards.

google-gemini avatargoogle-gemini
入手
session-logs

session-logs

90Kdev-testing

Search and analyze your own session logs (older/parent conversations) using jq.

moltbot avatarmoltbot
入手