rn-component-patterns — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited rn-component-patterns (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.
export default function ProfileScreen() {
const { data, isLoading, error } = useProfile();
if (isLoading) return <ScreenSkeleton />;
if (error) return <ErrorView retry={refetch} />;
return <ScrollView className="flex-1 bg-white p-4">...</ScrollView>;
}const schema = z.object({ email: z.string().email(), password: z.string().min(8) });
type FormData = z.infer<typeof schema>;
export function LoginForm() {
const { control, handleSubmit } = useForm<FormData>({ resolver: zodResolver(schema) });
const onSubmit = (data: FormData) => loginMutation.mutate(data);
return <View>
<Controller control={control} name="email" render={({field, fieldState}) => (
<TextInput className={fieldState.error ? 'border-red-500' : 'border-gray-300'} {...field} />
)} />
</View>;
}// Buyuk listeler icin DAIMA FlatList, ScrollView degil
<FlatList
data={items}
keyExtractor={(item) => item.id}
renderItem={({ item }) => <ItemCard item={item} />}
onEndReached={fetchNextPage}
onEndReachedThreshold={0.5}
ListEmptyComponent={<EmptyState />}
/>~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.