frontend — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited frontend (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Read .agents/software-principles/SKILL.md first.app/, components/, hooks/, lib/package.json| Need | Solution |
|---|---|
| Fetch + render data | async Server Component |
useState / events / browser API | 'use client' — push as deep as possible |
| Reusable UI | components/ — server-first, add 'use client' only if needed |
| Custom logic | hooks/*.js (client) · lib/*.js (server/shared) |
Extensions: .jsx for JSX · .js for hooks and utilities.
| State | Implementation |
|---|---|
| Loading | loading.jsx or <Suspense fallback={<Skeleton />}> |
| Error | error.jsx — must be 'use client' |
| Empty | Inline message — helpful, not just "No data" |
| Not found | not-found.jsx |
async RSC + fetch with { next: { revalidate: N } } or cache() for dedupuseEffect with cleanup — only when Server Component is impossibleuseEffect for data when Server Component worksuseEffect deps array must be exhaustive — no suppression comments. Extract stable refs with useCallback/useMemo if needed[] arbitrary values unless truly one-off'use server')layout.jsx for shared UI. Export metadata or generateMetadata for SEOnext/image for images · next/font for fonts · @/ alias for all importskey props — never array index for dynamic listsNEXT_PUBLIC_ prefix.tsx/.ts extensions — this is a JS projectpackage.jsonkey={index} on dynamic listsuseEffect exhaustive-deps lint rule~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.