Skip to main content

audit-hooks

Audit & fix hooks and API usage patterns — eliminate server actions, raw fetch, and stale patterns

Quellinformationen

Repository
trycompai/comp
Letzte Quellaktivität
27. April 2026 um 13:56
Erkannte Sprache von SKILL.md
Englisch
Sterne
2.035
Forks
433

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
audit-hooks
description
Audit & fix hooks and API usage patterns — eliminate server actions, raw fetch, and stale patterns
Audit the specified files for hook and API usage compliance. **Fix every issue found immediately.** ## Forbidden Patterns (fix immediately) 1. **`useAction` from `next-safe-action`** → replace with SWR hook or custom mutation hook 2. **Server actions mutating via `@db`** → delete and use API hook instead 3. **Direct `@db` in client components** → replace with `apiClient` via hook 4. **Direct `@db` in Next.js pages for mutations** → replace with `serverApi` 5. **Raw `fetch()` without `credentials: 'include'`** → use `apiClient` 6. **`window.location.reload()` after mutations** → use SWR `mutate()` 7. **`router.refresh()` after mutations** → use SWR `mutate()` 8. **`useEffect` + `apiClient.get` for data fetching** → replace with `useSWR` 9. **Callback props for data refresh** (`onXxxAdded`, `onSuccess`) → remove, rely on SWR cache sharing ## Required Patterns - **Client data fetching**: `useSWR` with `apiClient` or custom hook - **Client mutations**: custom hooks wrapping `apiClient` with `mutate()` for cache invalidation - **Server components**: `serverApi` from `apps/app/src/lib/api-server.ts` - **SWR**: `fallbackData` for SSR data, `revalidateOnMount: !initialData` - **API response**: lists = `response.data.data`, single = `response.data` - **`mutate()` safety**: guard against `undefined` in optimistic update functions - **`Array.isArray()` checks**: when consuming SWR data that could be stale ## Process 1. Read files specified in `$ARGUMENTS` 2. Find forbidden patterns and fix them 3. Ensure all data fetching uses SWR hooks 4. Run typecheck to verify: `bunx turbo run typecheck --filter=@trycompai/app`
Auf GitHub ansehen