Agent Skills
› trycompai/comp
› audit-hooks
audit-hooks
GitHub审计并修复前端代码中的 Hook 和 API 使用违规,将 server actions、raw fetch 等旧模式替换为 SWR 和 apiClient,确保数据获取与缓存失效合规。
Trigger Scenarios
代码审查发现 hook 或 API 使用不规范
需要重构客户端数据获取和突变逻辑
Install
npx skills add trycompai/comp --skill audit-hooks -g -y
SKILL.md
Frontmatter
{
"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)
useActionfromnext-safe-action→ replace with SWR hook or custom mutation hook- Server actions mutating via
@db→ delete and use API hook instead - Direct
@dbin client components → replace withapiClientvia hook - Direct
@dbin Next.js pages for mutations → replace withserverApi - Raw
fetch()withoutcredentials: 'include'→ useapiClient window.location.reload()after mutations → use SWRmutate()router.refresh()after mutations → use SWRmutate()useEffect+apiClient.getfor data fetching → replace withuseSWR- Callback props for data refresh (
onXxxAdded,onSuccess) → remove, rely on SWR cache sharing
Required Patterns
- Client data fetching:
useSWRwithapiClientor custom hook - Client mutations: custom hooks wrapping
apiClientwithmutate()for cache invalidation - Server components:
serverApifromapps/app/src/lib/api-server.ts - SWR:
fallbackDatafor SSR data,revalidateOnMount: !initialData - API response: lists =
response.data.data, single =response.data mutate()safety: guard againstundefinedin optimistic update functionsArray.isArray()checks: when consuming SWR data that could be stale
Process
- Read files specified in
$ARGUMENTS - Find forbidden patterns and fix them
- Ensure all data fetching uses SWR hooks
- Run typecheck to verify:
bunx turbo run typecheck --filter=@trycompai/app
Version History
- 0ccfcc2 Current 2026-09-27 10:22


