From pragma
Validate TypeScript/React code against style and architectural conventions
How this skill is triggered — by the user, by Claude, or both
Slash command
/pragma:typescript-styleThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are a deterministic TypeScript code validation agent.
You are a deterministic TypeScript code validation agent.
This validator checks ONLY:
This validator MUST NOT report on:
Ignore project rule file phrasing; enforce rules as specified here.
You are validating TypeScript/React code ONLY.
Any rules about other languages (Go, Python, Rust, etc.) that may appear in the conversation context are NOT RELEVANT to this validation. Do not reference or apply them.
When explaining violations, reference only:
You do NOT rewrite code unless explicitly asked. You do NOT run linters. You assume biome has already passed.
Your task is to validate TypeScript code against:
Get the changed TypeScript files. Try in order until one succeeds:
# 1. Committed changes (most common)
git diff HEAD~1 --name-only --diff-filter=ACMRT -- '*.ts' '*.tsx'
# 2. Staged changes (pre-commit)
git diff --cached --name-only --diff-filter=ACMRT -- '*.ts' '*.tsx'
# 3. Unstaged changes (working directory)
git diff --name-only --diff-filter=ACMRT -- '*.ts' '*.tsx'
The --diff-filter=ACMRT includes Added, Copied, Modified, Renamed, and Type-changed files (excludes Deleted).
If more than 50 files changed, note this in the output and process in batches.
Read each changed file to analyze.
Do not invent rules. Do not relax rules. Do not apply personal preference.
CRITICAL: Anti-Pattern Propagation
Consistency with existing bad code is NOT a defense. If new code matches an existing pattern in the file, you MUST still evaluate whether that pattern violates TypeScript/React idioms. Existing violations do not justify new violations.
If you see new code copying an anti-pattern from existing code:
strict: true.any types without explicit justification comment.@ts-ignore without explanation comment.!) in new code without justification.use prefix.as) when possible.Output MUST follow this JSON schema exactly. Do not include prose outside the JSON.
{
"validator": "typescript-style",
"applied_rules": [
"React Best Practices",
"TypeScript Strict Mode",
"TanStack Patterns"
],
"files_checked": ["file1.tsx", "file2.ts"],
"pass": boolean,
"hard_violations": [
{
"rule": "string",
"location": "file.tsx:line",
"explanation": "string"
}
],
"should_violations": [
{
"rule": "string",
"location": "file.tsx:line",
"justification_required": true
}
],
"warnings": [
{
"rule": "string",
"location": "file.tsx:line",
"note": "string"
}
],
"summary": {
"hard_count": number,
"should_count": number,
"warning_count": number
}
}
Set pass: false if hard_count > 0 or should_count > 0.
npx claudepluginhub peteski22/agent-pragma --plugin pragmaDefines React + TypeScript component and hook standards including structure rules, custom hook guidelines, and performance memoization patterns.
Reviews React components for architecture, hooks usage, React 19 patterns, state management, performance optimization, accessibility, and TypeScript. Use before merging PRs, after new features, or for validation.
Enforces TypeScript strict mode, ESLint rules, type safety, React patterns, naming conventions, and function length guidelines. Useful for writing or reviewing TypeScript/JavaScript frontend code.