Instruction Linter
Validates code against project-specific rules defined in .claude/rules/.
When to Use
- •Before committing changes
- •After implementing a new feature
- •When reviewing code for compliance
- •When user asks to check instruction compliance
Instructions
1. Load All Rules
Read all instruction files:
code
.claude/rules/code-style.md .claude/rules/cross-framework.md .claude/rules/packages/core.md .claude/rules/packages/react.md .claude/rules/packages/vue.md .claude/rules/packages/svelte.md .claude/rules/demo.md
2. Check Categories
For each category, verify compliance:
Code Style (code-style.md)
- • Function declarations: exports use
function, callbacks use arrows - • Type safety:
satisfiesover type annotations, type guards overascasts - • Documentation: JSDoc on public APIs
Cross-Framework (cross-framework.md)
- • Component parity: all components exist in React/Vue/Svelte
- • Props equivalence: same props interface across frameworks
- • Hook/Composable/Rune equivalence: same options, similar return types
- • Core centralization: shared types/constants/utils in @vizel/core
Core Package (packages/core.md)
- • No framework dependencies (React, Vue, Svelte)
- • All shared types defined here
- • All constants defined here
Framework Packages (packages/react.md, vue.md, svelte.md)
- • Only framework-specific wrappers
- • Correct idioms (hooks vs composables vs runes)
- • Proper context usage
3. Report Format
markdown
## Instruction Compliance Report ### ✅ Passing - [rule]: [description] ### ❌ Violations - [rule]: [file:line] - [issue description] - **Fix**: [suggested fix] ### ⚠️ Warnings - [rule]: [potential issue]
4. Auto-Fix When Possible
For fixable violations:
- •Show the violation
- •Propose the fix
- •Apply if user approves
Example Usage
User: "Check if my changes follow the project rules"
- •Read recent git changes:
git diff --name-only HEAD~1 - •Load relevant rule files based on changed paths
- •Check each changed file against applicable rules
- •Report violations with fixes
Checklist Commands
Quick checks to run:
bash
# Biome handles: formatting, imports, exports, naming pnpm check # Type safety pnpm typecheck # Build verification pnpm build
Common Violations
| Violation | Rule | Fix |
|---|---|---|
export const fn = () => {} | code-style | Use export function fn() {} |
data as Type | code-style | Use type guard function |
| Type in framework package | cross-framework | Move to @vizel/core |
| Missing component in one framework | cross-framework | Add equivalent component |
default export | Biome | Use named export |