About rule-auditor
A code-auditing skill for checking files against standards in relevant expert skills. It reports violations with locations and actionable fixes, with attention to severity, security, and type safety.
Key features
- 01Selects applicable expert skills
- 02Checks code against stated practices
- 03Reports file and line locations
- 04Suggests specific remediations
- 05Groups findings by severity
Use cases
- 01Review TypeScript and React code
- 02Check code for security issues
- 03Find language-specific anti-patterns
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ oimiragieo/ agent-studio --skill rule-auditorAfter installing, type/rule-auditorin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
commands/rule-auditor.mdhooks/post-execute.cjspre-execute.cjsreferences/research-requirements.mdrules/rule-auditor.mdschemas/input.schema.jsonoutput.schema.jsonscripts/main.cjstemplates/implementation-template.mdDetails
From the project READMERule Auditor Skill
Rule Auditor - Validates code against coding standards and best practices from expert skills. Reports compliance violations and suggests fixes. - Auditing code against best practices - Identifying violations and anti-patterns - Suggesting fixes for violations - Generating compliance reportsStep 1: Identify Applicable Skills
Find relevant expert skills based on the code being audited:
| File Type | Expert Skills |
|---|---|
.ts, .tsx | typescript-expert, react-expert |
.py | python-backend-expert |
.go | go-expert |
.java | java-expert |
*.test.* | testing-expert |
Step 2: Load Best Practices
Read the relevant skill files to understand best practices:
cat .claude/skills/[skill-name]/SKILL.md
Extract key rules and patterns to check for.
Step 3: Scan Target Files
Analyze the target files for violations:
- Read target files: Use Read tool to examine code
- Check patterns: Look for anti-patterns from skill guidelines
- Identify issues: Note file, line, and violation type
Common checks:
- Naming conventions
- Code structure
- Import patterns
- Type safety
- Security issues
- Performance anti-patterns
Step 4: Generate Report
Create a structured compliance report:
## Audit Report
**Target**: src/components/
**Skills Applied**: react-expert, typescript-expert
**Date**: YYYY-MM-DD
### Summary
- **Pass**: 12 rules
- **Warn**: 3 rules
- **Fail**: 2 rules
### Violations
#### FAIL: Avoid using `any` type
- **File**: src/components/UserAuth.tsx:45
- **Issue**: `const user: any = await getUser()`
- **Fix**: Define proper User interface
#### WARN: Use Server Components by default
- **File**: src/components/UserAuth.tsx:1
- **Issue**: Missing 'use client' directive but uses useState
- **Fix**: Add 'use client' or refactor to Server Component
</execution_process>
<best_practices>
- Run Early: Audit during development, not just before commit
- Prioritize: Focus on high-severity violations first
- Be Specific: Include file paths and line numbers
- Suggest Fixes: Provide actionable remediation steps
- Group Issues: Organize by severity and category
</best_practices>
**Audit Request**:Audit src/components/ for TypeScript and React best practices
Response:
## Audit Report: src/components/
### Violations Found
1. **[ERROR]** src/components/User.tsx:23
- Rule: Avoid `any` type
- Code: `const data: any = response.json()`
- Fix: `const data: UserResponse = response.json()`
2. **[WARN]** src/components/Form.tsx:1
- Rule: Prefer Server Components
- Issue: Uses useState without 'use client'
- Fix: Add 'use client' directive at top
### Passed Checks
- Component naming (PascalCase) ✓
- Hook usage patterns ✓
- Import organization ✓
</usage_example>
Rules
- Always check relevant expert skills for standards
- Provide line numbers and specific fixes
- Prioritize security and type safety issues
Memory Protocol (MANDATORY)
Before starting:
cat .claude/context/memory/learnings.md
After completing:
- New pattern ->
.claude/context/memory/learnings.md - Issue found ->
.claude/context/memory/issues.md - Decision made ->
.claude/context/memory/decisions.md
ASSUME INTERRUPTION: Your context may reset. If it's not in memory, it didn't happen.