Form Handling
Skill Profile
(Select at least one profile to enable specific modules)
Overview
Form handling is a critical aspect of web applications that collect data from users. React Hook Form and Zod provide a powerful combination for building forms in React: React Hook Form reduces re-renders and improves performance, while Zod provides validation that is runtime-safe and type-safe. This skill covers using React Hook Form and Zod to create forms with high validation quality, error handling, async validation, dynamic fields, and integration with UI libraries.
Why This Matters
- Increases Conversion Rate: Easy-to-use forms with clear validation increase conversion rates by 20-30%
- Reduces Form Abandonment: Real-time validation and clear error messages reduce form abandonment
- Improves Data Quality: Good validation prevents incorrect data entry and reduces data cleaning time
- Reduces Support Costs: Clear, working error messages reduce confusion and support tickets
- Improves User Satisfaction: Forms that work well and respond quickly create good user experience
- Improves Development Velocity: Type-safe validation reduces bugs and speeds up development
Core Concepts & Rules
1. Core Principles
- Follow established patterns and conventions
- Maintain consistency across codebase
- Document decisions and trade-offs
2. Implementation Guidelines
- Start with the simplest viable solution
- Iterate based on feedback and requirements
- Test thoroughly before deployment
Inputs / Outputs / Contracts
- Inputs:
- Form field definitions
- Validation requirements
- User session data
- API specifications
- Entry Conditions:
- React Hook Form is installed
- Zod is available
- Form schema is defined
- UI library is configured
- Outputs:
- Type-safe, validated forms
- Error handling implementation
- Form state management
- Integration with UI components
- Artifacts Required (Deliverables):
- Form components
- Zod validation schemas
- Error handling components
- Form state management setup
- Acceptance Evidence:
- Forms validate correctly
- Error messages are clear and actionable
- Type safety is maintained
- User experience is good
- Success Criteria:
- Forms are type-safe and validated
- Error handling is comprehensive
- User experience is smooth
- Performance is optimized
Skill Composition
Quick Start / Implementation Example
- Review requirements and constraints
- Set up development environment
- Implement core functionality following patterns
- Write tests for critical paths
- Run tests and fix issues
- Document any deviations or decisions
# Example implementation following best practices
def example_function():
# Your implementation here
pass
Assumptions / Constraints / Non-goals
- Assumptions:
- Development environment is properly configured
- Required dependencies are available
- Team has basic understanding of domain
- Constraints:
- Must follow existing codebase conventions
- Time and resource limitations
- Compatibility requirements
- Non-goals:
- This skill does not cover edge cases outside scope
- Not a replacement for formal training
Compatibility & Prerequisites
- Supported Versions:
- Python 3.8+
- Node.js 16+
- Modern browsers (Chrome, Firefox, Safari, Edge)
- Required AI Tools:
- Code editor (VS Code recommended)
- Testing framework appropriate for language
- Version control (Git)
- Dependencies:
- Language-specific package manager
- Build tools
- Testing libraries
- Environment Setup:
.env.example keys: API_KEY, DATABASE_URL (no values)
Test Scenario Matrix (QA Strategy)
| Type |
Focus Area |
Required Scenarios / Mocks |
| Unit |
Core Logic |
Must cover primary logic and at least 3 edge/error cases. Target minimum 80% coverage |
| Integration |
DB / API |
All external API calls or database connections must be mocked during unit tests |
| E2E |
User Journey |
Critical user flows to test |
| Performance |
Latency / Load |
Benchmark requirements |
| Security |
Vuln / Auth |
SAST/DAST or dependency audit |
| Frontend |
UX / A11y |
Accessibility checklist (WCAG), Performance Budget (Lighthouse score) |
Technical Guardrails & Security Threat Model
1. Security & Privacy (Threat Model)
- Top Threats: Injection attacks, authentication bypass, data exposure
2. Performance & Resources
3. Architecture & Scalability
4. Observability & Reliability
Agent Directives & Error Recovery
(ข้อกำหนดสำหรับ AI Agent ในการคิดและแก้ปัญหาเมื่อเกิดข้อผิดพลาด)
- Thinking Process: Analyze root cause before fixing. Do not brute-force.
- Fallback Strategy: Stop after 3 failed test attempts. Output root cause and ask for human intervention/clarification.
- Self-Review: Check against Guardrails & Anti-patterns before finalizing.
- Output Constraints: Output ONLY the modified code block. Do not explain unless asked.
Definition of Done (DoD) Checklist
Anti-patterns / Pitfalls
- ⛔ Don't: Log PII, catch-all exception, N+1 queries
- ⚠️ Watch out for: Common symptoms and quick fixes
- 💡 Instead: Use proper error handling, pagination, and logging
Reference Links & Examples
- Internal documentation and examples
- Official documentation and best practices
- Community resources and discussions
Versioning & Changelog
- Version: 1.0.0
- Changelog:
- 2026-02-22: Initial version with complete template structure
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: form-handling3description: Form handling is a critical aspect of web applications that collect Use when this capability is needed.4---56# Form Handling78## Skill Profile9*(Select at least one profile to enable specific modules)*10- [ ] **DevOps**11- [x] **Backend**12- [ ] **Frontend**13- [ ] **AI-RAG**14- [ ] **Security Critical**1516## Overview17Form handling is a critical aspect of web applications that collect data from users. React Hook Form and Zod provide a powerful combination for building forms in React: React Hook Form reduces re-renders and improves performance, while Zod provides validation that is runtime-safe and type-safe. This skill covers using React Hook Form and Zod to create forms with high validation quality, error handling, async validation, dynamic fields, and integration with UI libraries.1819## Why This Matters20- **Increases Conversion Rate**: Easy-to-use forms with clear validation increase conversion rates by 20-30%21- **Reduces Form Abandonment**: Real-time validation and clear error messages reduce form abandonment22- **Improves Data Quality**: Good validation prevents incorrect data entry and reduces data cleaning time23- **Reduces Support Costs**: Clear, working error messages reduce confusion and support tickets24- **Improves User Satisfaction**: Forms that work well and respond quickly create good user experience25- **Improves Development Velocity**: Type-safe validation reduces bugs and speeds up development2627---2829## Core Concepts & Rules3031### 1. Core Principles32- Follow established patterns and conventions33- Maintain consistency across codebase34- Document decisions and trade-offs3536### 2. Implementation Guidelines37- Start with the simplest viable solution38- Iterate based on feedback and requirements39- Test thoroughly before deployment404142## Inputs / Outputs / Contracts43* **Inputs**:44 - Form field definitions45 - Validation requirements46 - User session data47 - API specifications48* **Entry Conditions**:49 - React Hook Form is installed50 - Zod is available51 - Form schema is defined52 - UI library is configured53* **Outputs**:54 - Type-safe, validated forms55 - Error handling implementation56 - Form state management57 - Integration with UI components58* **Artifacts Required (Deliverables)**:59 - Form components60 - Zod validation schemas61 - Error handling components62 - Form state management setup63* **Acceptance Evidence**:64 - Forms validate correctly65 - Error messages are clear and actionable66 - Type safety is maintained67 - User experience is good68* **Success Criteria**:69 - Forms are type-safe and validated70 - Error handling is comprehensive71 - User experience is smooth72 - Performance is optimized7374## Skill Composition75* **Depends on**: [react-best-practices](../react-best-practices/SKILL.md), [typescript-standards](../typescript-standards/SKILL.md)76* **Compatible with**: [state-management](../state-management/SKILL.md), [api-design](../api-design/SKILL.md)77* **Conflicts with**: None78* **Related Skills**: [error-boundaries-react](../error-boundaries-react/SKILL.md), [validation](../03-backend-api/validation/SKILL.md)7980---8182## Quick Start / Implementation Example83841. Review requirements and constraints852. Set up development environment863. Implement core functionality following patterns874. Write tests for critical paths885. Run tests and fix issues896. Document any deviations or decisions9091```python92# Example implementation following best practices93def example_function():94 # Your implementation here95 pass96```979899## Assumptions / Constraints / Non-goals100101* **Assumptions**:102 - Development environment is properly configured103 - Required dependencies are available104 - Team has basic understanding of domain105* **Constraints**:106 - Must follow existing codebase conventions107 - Time and resource limitations108 - Compatibility requirements109* **Non-goals**:110 - This skill does not cover edge cases outside scope111 - Not a replacement for formal training112113114## Compatibility & Prerequisites115116* **Supported Versions**:117 - Python 3.8+118 - Node.js 16+119 - Modern browsers (Chrome, Firefox, Safari, Edge)120* **Required AI Tools**:121 - Code editor (VS Code recommended)122 - Testing framework appropriate for language123 - Version control (Git)124* **Dependencies**:125 - Language-specific package manager126 - Build tools127 - Testing libraries128* **Environment Setup**:129 - `.env.example` keys: `API_KEY`, `DATABASE_URL` (no values)130131132## Test Scenario Matrix (QA Strategy)133134| Type | Focus Area | Required Scenarios / Mocks |135| :--- | :--- | :--- |136| **Unit** | Core Logic | Must cover primary logic and at least 3 edge/error cases. Target minimum 80% coverage |137| **Integration** | DB / API | All external API calls or database connections must be mocked during unit tests |138| **E2E** | User Journey | Critical user flows to test |139| **Performance** | Latency / Load | Benchmark requirements |140| **Security** | Vuln / Auth | SAST/DAST or dependency audit |141| **Frontend** | UX / A11y | Accessibility checklist (WCAG), Performance Budget (Lighthouse score) |142143144## Technical Guardrails & Security Threat Model145146### 1. Security & Privacy (Threat Model)147* **Top Threats**: Injection attacks, authentication bypass, data exposure148- [ ] **Data Handling**: Sanitize all user inputs to prevent Injection attacks. Never log raw PII149- [ ] **Secrets Management**: No hardcoded API keys. Use Env Vars/Secrets Manager150- [ ] **Authorization**: Validate user permissions before state changes151152### 2. Performance & Resources153- [ ] **Execution Efficiency**: Consider time complexity for algorithms154- [ ] **Memory Management**: Use streams/pagination for large data155- [ ] **Resource Cleanup**: Close DB connections/file handlers in finally blocks156157### 3. Architecture & Scalability158- [ ] **Design Pattern**: Follow SOLID principles, use Dependency Injection159- [ ] **Modularity**: Decouple logic from UI/Frameworks160161### 4. Observability & Reliability162- [ ] **Logging Standards**: Structured JSON, include trace IDs `request_id`163- [ ] **Metrics**: Track `error_rate`, `latency`, `queue_depth`164- [ ] **Error Handling**: Standardized error codes, no bare except165- [ ] **Observability Artifacts**:166 - **Log Fields**: timestamp, level, message, request_id167 - **Metrics**: request_count, error_count, response_time168 - **Dashboards/Alerts**: High Error Rate > 5%169170171## Agent Directives & Error Recovery172*(ข้อกำหนดสำหรับ AI Agent ในการคิดและแก้ปัญหาเมื่อเกิดข้อผิดพลาด)*173174- **Thinking Process**: Analyze root cause before fixing. Do not brute-force.175- **Fallback Strategy**: Stop after 3 failed test attempts. Output root cause and ask for human intervention/clarification.176- **Self-Review**: Check against Guardrails & Anti-patterns before finalizing.177- **Output Constraints**: Output ONLY the modified code block. Do not explain unless asked.178179180## Definition of Done (DoD) Checklist181182- [ ] Tests passed + coverage met183- [ ] Lint/Typecheck passed184- [ ] Logging/Metrics/Trace implemented185- [ ] Security checks passed186- [ ] Documentation/Changelog updated187- [ ] Accessibility/Performance requirements met (if frontend)188189190## Anti-patterns / Pitfalls191192* ⛔ **Don't**: Log PII, catch-all exception, N+1 queries193* ⚠️ **Watch out for**: Common symptoms and quick fixes194* 💡 **Instead**: Use proper error handling, pagination, and logging195196197## Reference Links & Examples198199* Internal documentation and examples200* Official documentation and best practices201* Community resources and discussions202203204## Versioning & Changelog205206* **Version**: 1.0.0207* **Changelog**:208 - 2026-02-22: Initial version with complete template structure209210---211> Converted and distributed by [TomeVault](https://tomevault.io/claim/amnadtaowsoam) — claim your Tome and manage your conversions.212<!-- tomevault:4.0:skill_md:2026-04-13 -->