소스 정보
- 저장소
- mikailustuner/OmniRule
- 최근 소스 활동
- 2026년 5월 8일 23:36
- 감지된 SKILL.md 언어
- 영어
- 스타
- 5
- 포크
- 1
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/mikailustuner/OmniRule --skill forms-patterns명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SKILL.md 표시 중
SOC 직업 분류 기준
| name | forms-patterns |
| description | Form architecture, validation patterns, state handling |
| triggers | {"extensions":[".tsx",".jsx"],"keywords":["form","input","validation","react-hook-form","formik","zod","submit","field"]} |
| auto_load_when | Building or editing forms |
| agent | frontend-ops |
| tools | ["Read","Write","Bash"] |
Focus: Architecture, validation, state management
When to use controlled input:
├── Framework (React/Vue) → yes
├── Real-time validation → yes
├── Conditional fields → yes
└── Simple form → uncontrolled
When to use uncontrolled:
├── No JS required → yes
├── Large form → performance
├── Framework not needed → yes
└── File upload → yes
When to nest forms:
├── Related fields → yes
├── Multi-step → yes
└── Separate forms → no nesting
When to validate on blur:
├── Required fields → yes
├── Format validation → yes
├── Custom rules → yes
└── Debounce needed → add delay
When to validate on submit:
├── Performance → yes
├── User preference → yes
├── All fields → yes
└── Heavy validation → yes
When to use HTML5 validation:
├── Simple rules → yes
├── Browser support → yes
├── Custom messages → overrides
└── Disabled for style → avoid
When to use custom validation:
├── Complex rules → yes
├── Cross-field validation → yes
├── Async validation → yes
└── Different error UI → yes
When to show error inline:
├── Field-specific → yes
├── Clear which field → yes
├── Multiple errors → yes
└── Summary also shown → yes
When to show error summary:
├── Many errors → yes
├── Form above fold → yes
├── Mobile → position carefully
└── Single error → inline only
When to use aria-invalid:
├── Validation error → yes
├── Conditional required → yes
├── Pre-validated → no
└── Initial state → no
When to use form state:
├── Many fields → yes
├── Cross-field logic → yes
├── Submission handling → yes
└── Simple form → local state
When to use field-level state:
├── Independent validation → yes
├── Many fields → yes
├── Shared state → lift up
└── Simple → local state
When to reset form:
├── Clear button → yes
├── Successful submit → yes
├── Navigation away → confirm
└── Same form, different data → yes
When to use aria-describedby:
├── Help text → yes
├── Error message → yes
├── Character count → yes
└── Instructions → yes
When to group fields:
├── Fieldset → yes (radio/checkbox group)
├── Related fields → yes
├── Conditional section → yes
└── Single field → no
When to use legend:
├── Fieldset → always
├── Descriptive label → yes
├── Group explanation → yes
└── Empty → not allowed
When to use single file:
├── One document → yes
├── Clear format → accept attribute
├── Validation needed → custom
When to use multiple files:
├── Multiple documents → yes
├── Drag and drop → yes
├── Progress indicator → yes
└── File list → yes
When to use preview:
├── Images → yes
├── Documents → icon
└── Not needed → skip
❌ Validating only on submit — user waits for errors
✅ Validate on blur for each field; show inline errors immediately
❌ Disabling submit button until valid (accessibility issue)
✅ Keep submit enabled; validate on submit, show all errors at once
❌ Resetting the form on validation error
✅ Preserve user input on error — never lose filled data
❌ Generic "Invalid" error message
✅ Specific messages: "Password must be at least 8 characters"
❌ No loading state after submit
✅ Disable submit + show spinner during submission
| Library | Use case | Key feature |
|---|---|---|
| react-hook-form | Performance-first | Uncontrolled inputs |
| Zod | Schema validation | Type inference |
| Formik | Complex forms | Built-in state |
| Server Actions | Next.js 15 | No JS bundle cost |
| HTML5 validation | Simple forms | Zero dependencies |
| UX Pattern | When | Note |
|---|---|---|
| Inline error | On blur | Don't show on pristine |
| Summary error | On submit | Anchor to first error |
| Success feedback | After submit | Toast or redirect |