nebo-frontend-mastery — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited nebo-frontend-mastery (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.
Триггеры: "react", "nextjs", "frontend", "компонент", "UI", "верстка", "figma"
Needs onClick/onChange/useState? → 'use client' (push deep as possible)
Fetches data, no interactivity? → Server Component (default)
Heavy library (chart/editor/map)? → dynamic(() => import(), { ssr: false })
Large list (100+ items)? → Virtual scrolling
Image above fold? → fetchPriority="high", no lazy// app/products/[id]/page.tsx
export const revalidate = 3600; // ISR
async function ProductPage({ params }: { params: Promise<{ id: string }> }) {
const { id } = await params;
const product = await db.product.findUnique({ where: { id } });
if (!product) notFound();
return (
<main>
<h1>{product.name}</h1>
<Suspense fallback={<ReviewsSkeleton />}>
<Reviews productId={id} />
</Suspense>
</main>
);
}use() — read Promise/Context in render, works in conditionalsuseActionState — forms with pending stateuseOptimistic — instant UI feedback before server confirms'use server' + revalidatePath() + redirect()1. get_metadata → hierarchy, variants, layers
2. get_design_context → colors, spacing, typography
3. Screenshot → visual verification
4. Variables → design tokens → CSS variables
5. Code generation → production React// Images: always sized, lazy below fold
<Image src={src} alt={alt}
sizes="(max-width: 768px) 100vw, 50vw"
placeholder="blur" loading="lazy" />
// Fonts: next/font, never system defaults
import { Inter } from 'next/font/google';
const inter = Inter({ subsets: ['latin'], display: 'swap' });
// Bundle splitting: Vite manual chunks
output: {
manualChunks: { vendor: ["react","react-dom"], charts: ["recharts"] }
}LCP < 2.5s → preload hero image, inline critical CSS
INP < 200ms → debounce inputs, startTransition, break long tasks
CLS < 0.1 → width/height on images, font display swap'use client' only where interactivity needed'use client' at layout/page level (push to leaf components)~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.