con un clic
react-hook-builder
Use when creating custom React hooks in apps/web/src/hooks/
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
Use when creating custom React hooks in apps/web/src/hooks/
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Basado en la clasificación ocupacional SOC
Record browser-based feature demos as GIFs via Playwright and optionally document them in docs/features/index.md. Trigger with "Demo <feature>" or "Demo and Document <feature>".
Use when creating service modules in apps/api/skillhub/services/
Use when writing API tests in apps/api/tests/
Use when implementing division-based access control on any endpoint
Use when adding services to docker-compose.yml or creating Dockerfiles
Use when implementing error handling across the API, frontend, or MCP server
| name | react-hook-builder |
| description | Use when creating custom React hooks in apps/web/src/hooks/ |
// apps/web/src/hooks/useMyData.ts
import { useState, useEffect } from 'react';
import { api } from '../lib/api';
export function useMyData(params?: Record<string, string>) {
const [data, setData] = useState(null);
const [loading, setLoading] = useState(true);
const [error, setError] = useState<Error | null>(null);
useEffect(() => {
api.get('/api/v1/endpoint', { params })
.then(setData)
.catch(setError)
.finally(() => setLoading(false));
}, [JSON.stringify(params)]);
return { data, loading, error };
}
| Hook | File | Purpose |
|---|---|---|
| useAuth | hooks/useAuth.ts | Auth state + login/logout |
| useFlag | hooks/useFlag.ts | Feature flag checking |
| useSkills | hooks/useSkills.ts | Skills data fetching |
import { renderHook, waitFor } from '@testing-library/react';
import { useMyData } from '../hooks/useMyData';
test('fetches data', async () => {
const { result } = renderHook(() => useMyData());
await waitFor(() => expect(result.current.loading).toBe(false));
expect(result.current.data).toBeDefined();
});
apps/web/src/hooks/useAuth.tsapps/web/src/lib/api.ts