compose-design-catalog — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited compose-design-catalog (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.
Render a Compose component system and export it as an importable sticker sheet: every component in its primary modes, in two variants (the ideal render and a layout render that borders every composable), with the system's design tokens and an accessibility greenline layer extracted automatically from the render — not transcribed from a spec.
This skill is the system-wide, sticker-sheet sibling of compose-preview-design-board (which arranges an arbitrary set of renders into one HTML brief). It assumes the compose-preview skill is installed — that skill owns the renderer, CLI, and Gradle plugin. Check first with compose-preview --version; if missing, run the bootstrap installer:
curl -fsSL https://raw.githubusercontent.com/yschimke/compose-ai-tools/main/scripts/install.sh \
| bashThis pipeline is code-led. Every value on the sheet — padding, corner radius, type, colour, touch-target size, maxLines / overflow — comes from the renderer's own data products, so the catalog is correct by construction. Published design kits (the Material 3 / Wear OS / Glimmer / Widget Figma kits) are seed/reference only: use them for the component inventory and for naming parity, never as authority. A kit/render divergence is a bug in the kit.
like Material 3) generated from the code, refreshable on every change.
ideal render and a borderedlayout render — plus tokens and a11y annotations, in one bundle.
branch a designer can pull from.
For one-off sets of renders → compose-preview-design-board. For rendering or reviewing → compose-preview / compose-preview-review.
@Preview discovery is local-module only, so the components must be authored as @Preview functions in a Gradle module that depends on the target library (androidx.compose.material3, androidx.wear.compose.material3, androidx.xr.glimmer:glimmer, androidx.glance, …). Author one `@Preview` per component × primary mode, padded, with the breakpoints the system's kit documents (e.g. compact / medium / expanded for M3; small/large round for Wear). See the samples/design-catalog-* modules in yschimke/compose-ai-tools.
captures plus the wireframe, theme, semantics, and a11y products:
compose-preview show --module samples:design-catalog-m3 \
--with-extension a11y,theme,semantics,semantics-wireframe --json \
> /tmp/m3-show.jsoncapture PNGs → the ideal variant.compose/semantics-wireframe (PNG/SVG) → the layout variant (bordered).compose/theme → the token set (colorScheme + typography + shapes).compose/semantics v6 → per-node bounds, padding, textOverflow(maxLines / lineCount / truncated).
a11y/atf + a11y/touchTargets → the greenline findings.@design-parity/candidate's mappers (nativeFindings, semanticsToSemanticTree, composeThemeToTokens) into @design-parity/catalog-export:
import { buildCatalog, writeCatalog } from "@design-parity/catalog-export";
const catalog = buildCatalog(
{ system: "compose-m3", title: "Compose Material 3",
library: ["androidx.compose.material3:material3"],
renderer: "compose-preview 0.16.2" },
sources, // one ComponentSource per component (ideal+layout images, tokens,
// semantics, findings) from the mappers above
);
await writeCatalog(catalog, ".design-artifacts/compose-m3", {
sourceRoot: "build/compose-previews",
}); catalog.json # index: components, both variants, greenlines
tokens.dtcg.json # W3C DTCG token set — Figma Variables / Tokens Studio / Style Dictionary / Claude Design
figma-variables.json # Figma variable-collection projection (light/dark as modes)
images/<component>/<variant>__<state>[__theme][__size].pngcatalog.json; the DTCG fileseeds tokens. Pair with compose-preview-design-board to wrap the same renders as a browsable HTML brief.
tokens.dtcg.json via a DTCG/Tokens-Studio plugin, orcreate variables from figma-variables.json; place the variant PNGs as the sticker-sheet frames.
design-artifacts/<system> branch (design-artifacts/compose-m3, .../wear-m3, .../glimmer, .../glance-wear) — the surface a designer pulls from. Regenerate on component changes so the sheet never drifts.
Maintained at github.com/yschimke/skills under skills/compose-design-catalog/. The export library (@design-parity/catalog-export) lives in yschimke/design-parity; the renderer/CLI in yschimke/compose-ai-tools.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.