Come usare
- Copia il comando e controlla il pacchetto prima di installarlo nel tuo ambiente agente.
- Controlla strumenti, credenziali e ambienti richiesti nel documento originale.
- Descrivi input e risultato desiderato; confronta l’output con le fonti.
npx skills add https://github.com/iteam-company/claude-code-boilerplates --skill create-hookPrima di iniziare
- L’installazione non include abbonamenti, quote API o accesso ai file.
- Stelle e installazioni indicano attività, non un test indipendente di qualità o sicurezza.
Contenuto dal repository con titoli, esempi, codice, tabelle, link e immagini preservati.
Create Hook
Analyze a component or file and determine if any inline logic can be extracted into a reusable hook. Proposes the hook API and asks before implementing -- never writes code without confirmation.
When to use this skill
Invoke when:
- A component feels too large or mixes concerns (state + effects + layout)
- You spot a pattern repeated across more than one component
- Inline
useEffect+useStatelogic is complex enough to have a name - The user asks "can this be a hook?" or "should I extract this?"
Steps
- Read the target file(s).
- Identify extraction candidates -- inline logic blocks that:
- Combine state + side effects (timers, listeners, observers, storage)
- Access browser APIs (scroll, resize, matchMedia, localStorage, IntersectionObserver)
- Would have a clear, reusable name independent of the component's UI
- Check
hooks/for existing hooks before proposing a new one:
useDebounce<T>(value, delay)-- debounces any valueuseClickOutside<T extends HTMLElement>(callback)-- fires callback on outside click, returns refuseActiveSection(ids)-- tracks which section id is centered in the viewportuseAuth()-- reads JWT token, exposes user + helpersuseOrg()-- current org from OrgProvider context
If the existing hook already covers the case, suggest using it instead.
- For each candidate, propose:
- Hook name (
useprefix, describes what it returns) - Signature: inputs and return value
- Which component(s) would benefit
- Whether it is worth extracting (skip trivial single-
useStatewrappers)
- Ask the user: "Should I extract [hookName]?" before writing any code.
Only implement after confirmation.
- If confirmed, write the hook to
hooks/<hookName>.tsand refactor the component to use it.
Hook design rules (apply when implementing)
- Named export only, no default export
'use client';at the top- Generic when return type depends on input
- Clean up all effects (timers, listeners, observers)
- Wrap callback args in
useRefso callers don't needuseCallback - No comments unless the WHY is non-obvious
Usage
/create-hook <file or component path>
Examples: /create-hook components/blog/BlogSearch.tsx /create-hook components/layout/header.tsx /create-hook app/(layout)/blog/page.tsx


