document-component — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited document-component (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.
This skill writes (or rewrites) a <slug>.meta.ts for a component that already exists in packages/ui/src/. Component code must not change — only the meta file.
Ask which component if not given. Verify:
packages/ui/src/{components,ai}/<slug>.tsx exists.<slug>.meta.ts already exists (you may be rewriting).Read the full component .tsx. Note:
<Name>Props interface — every public prop, in order, withits TSDoc.
prop = value in the destructured signature).useReducedMotion() branches (drives the delight bullet andthe a11y bullet about reduced motion).
accessibilityRole, accessibilityLabel, accessibilityState,hitSlop — these drive the a11y section.
If ../lib/motion / ../lib/haptics are used, those are themselves shipped as registry deps and worth mentioning in anatomy / a11y where relevant.
Use the existing metas in packages/ui/src/{components,ai}/*.meta.ts as reference for voice and depth.
import type { ComponentMeta } from "../lib/meta";
export const meta: ComponentMeta = {
slug: "...",
title: "...",
category: "base" | "ai",
description: "<one line — match the component's header doc comment if it has one>",
anatomy: "<2–4 sentences: what's it made of, when to reach for it>",
delight: "<the one non-obvious motion / haptic / behavior>",
props: [
/* every public prop, in interface order, with TSDoc mirrored into description */
],
examples: [
{ title: "Basic", description: "...", code: `...` }, // canonical demo
{ title: "<feature>", description: "...", code: `...` },
// more if the component has clearly distinct modes
],
a11y: [
/* one bullet per relevant accessibility behavior:
roles, labels, state, hit slop, reduced-motion, focus/press feedback */
],
};Constraints:
delight must be specific and observable. "Spring animation" isn'tdelight. "Press-in snaps to 0.96 with a fast 100ms ease; release settles back over 140ms" is.
not. No off-screen helpers.
required: true ifthe prop has no default.
advice.
pnpm typecheckMust pass. If the meta type rejects your shape, fix the meta, not the type.
If this is a new meta (not a rewrite), also confirm:
packages/ui/src/lib/meta.ts re-exports it as <name>Meta.packages/ui/src/index.ts re-exports it too (via the lib/meta barrel).apps/web/lib/registry.ts's entry for this slug has its meta field setto <name>Meta.
Report:
call on (so the maintainer can correct it).
pnpm --filter @app-cn/web dev is running, confirm/components/<slug> now renders all docs sections.
Do not commit unless the user asks.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.