ワンクリックで
run-lint-checks
// Run comprehensive lint checks for SolidJS + Vite project to ensure design system compliance, type safety, and code quality. Use when making code changes, before completing tasks, or when the user requests lint checks.
// Run comprehensive lint checks for SolidJS + Vite project to ensure design system compliance, type safety, and code quality. Use when making code changes, before completing tasks, or when the user requests lint checks.
Scaffold form components with proper Modus input integration, event handling, validation, and checkbox bug handling
Scaffold a new Modus wrapper component following established SolidJS patterns with proper TypeScript interfaces, event handling, and cleanup
Debug and fix common event handling problems with Modus web components
Apply the critical checkbox value inversion workaround when working with ModusCheckbox components
Create Modus modals using the callback ref pattern for programmatic control
Help with correct Modus icon usage patterns including naming conventions, sizing, and accessibility
| name | run-lint-checks |
| description | Run comprehensive lint checks for SolidJS + Vite project to ensure design system compliance, type safety, and code quality. Use when making code changes, before completing tasks, or when the user requests lint checks. |
Automatically run all linting and quality checks for the SolidJS + Vite project to ensure design system compliance, type safety, and code quality.
CRITICAL: Before marking any development task as complete, you MUST:
npm run lint:allExecute the comprehensive lint check command:
npm run lint:all
This command runs all checks in sequence:
npm run type-check)npm run lint:icons)npm run lint:semantic)npm run lint:colors)npm run lint:styles)npm run lint:borders)npm run lint:opacity)npm run lint:icon-names)If you need to run checks individually:
# ESLint (SolidJS/TypeScript)
npm run lint
# TypeScript type checking
npm run type-check
# Modus icons library validation
npm run lint:icons
# Semantic HTML compliance
npm run lint:semantic
# Design system color compliance
npm run lint:colors
# Inline styles validation
npm run lint:styles
# Border pattern violations
npm run lint:borders
# Opacity utilities validation
npm run lint:opacity
# Icon name validation
npm run lint:icon-names
When violations are found:
npm run lint:all again to verify// ❌ VIOLATION
<div style={{ backgroundColor: 'var(--modus-wc-color-base-page)' }}>
<div style={{ marginRight: '8px' }}>
// ✅ CORRECT
<div class="bg-background mr-2 text-foreground">
// ❌ VIOLATION
<div style={{ backgroundColor: '#ffffff' }}>
<div class="bg-blue-500 text-red-400">
// ✅ CORRECT
<div class="bg-background text-foreground">
// ❌ VIOLATION
<i class="fa fa-home"></i>
<i class="material-icons">home</i>
// ✅ CORRECT
<i class="modus-icons">home</i>
// ❌ VIOLATION
<h1>Title</h1>
<p>Content</p>
<section>Section</section>
// ✅ CORRECT (use div elements only)
<div class="text-4xl font-bold">Title</div>
<div class="text-base">Content</div>
<div class="bg-card">Section</div>
// ❌ VIOLATION
<div class="border border-red-500">Error message</div>
// ✅ CORRECT
<div class="border-destructive">Error message</div>
// ❌ VIOLATION
<div class="text-foreground/80">Text with opacity</div>
// ✅ CORRECT
<div class="text-foreground-80">Text with opacity</div>
All of these must pass before code is considered complete:
npm run lint - 0 ESLint errorsnpm run type-check - 0 TypeScript errorsnpm run lint:icons - 0 icon violationsnpm run lint:semantic - 0 semantic HTML violationsnpm run lint:colors - 0 color violationsnpm run lint:styles - 0 inline style violationsnpm run lint:borders - 0 border violationsnpm run lint:opacity - 0 opacity violationsnpm run lint:icon-names - 0 invalid icon namessrc/components/ not web components directlylet ref + createEffect for event listeners with proper cleanup// ✅ CORRECT: Event listener pattern
createEffect(() => {
const component = componentEl;
if (!component) return;
const handleEvent = (event: Event) => {
props.onEvent?.(event as CustomEvent<EventDetailType>);
};
if (props.onEvent) {
component.addEventListener('eventName', handleEvent);
}
return () => {
if (props.onEvent) {
component.removeEventListener('eventName', handleEvent);
}
};
});
// ✅ CORRECT: Conditional spreading
<modus-wc-component
{...(color() && { color: color() })}
{...(variant() && { variant: variant() })}
size={size()}
/>
lint:all command stops on first failure - fix issues sequentiallyscripts/ directory