Text-based wireframing format that embeds in markdown like Mermaid. Familiar component names, indented to show containment, rendered in a hand-drawn style. Agent-first — trivial for LLMs to read and write.
SaferSkills independently audited wiremark (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.
wiremark is a plain-text wireframe format: an indented outline of component names that renders to a hand-drawn SVG sketch. Source lives in a fenced code block tagged wireframe (or a standalone .wiremark file).
Wireframe #login mobile
Stack column gap=2
Typography h4 "Sign in"
TextField "Email" type=email
TextField "Password" type=password
Button "Sign in" contained to=#dashboardBefore using a component not shown above, check reference.md in this skill folder -- it lists every component with its props, enum values, and defaults. Do not invent components.
Component [keyless-value | key=value]*. Components arePascalCase names (Stack, Card, TextField, AppBar, ...). Many feel familiar from UI libraries, but the vocabulary is wiremark's own -- never guess a name; check reference.md.
spaces per level, never tabs. Only components marked [c] in reference.md take children -- children under a leaf are dropped silently.
TextField "Email", neverTextField Email). Bare = setting: enum value (outlined), boolean flag (checked), sizing token, number, or icon name. Never quote a setting: variant="outlined" and gap="2" are hard errors. No bare text lines -- wrap text in its owner (Typography "...").
TextField "Email" outlined == TextField label="Email" variant=outlined.
width height, in that order, bare tokens only (no width= key),on components marked [w h]: 240px (pixels), 30%, * (fill), bare number (flex weight). Box 240px * is a fixed-width, full-height rail. Omit for natural content size.
Img draws a placeholder image, bare Buttonreads "Button". For placeholder text give a filler amount token on a component marked [~]: ~3 (sentences/lines), ~5w (words), ~2l (lines), or _/__/___. Filler style: filler=squiggle|lorem|blocks on the Wireframe root.
// to end of line.Wireframe #id mobile|landscape|portrait (or both w= and h=),one or more per document. visible=false hides a shared-shell frame; background=#shell composes it underneath another frame; Anchor #region + anchor=#region places foreground content inside the shell (drop the preset when using anchor=); direction=TD|LR orients multi-frame flow.
to=#frame-id, making it a link; the navigation graphis inferred from those links (frames only, no deep links). Multiple visible frames render as a flow chart automatically.
Icon Search,Button "Save" startIcon=Check); unknown names degrade to a placeholder.
component/prop, bad enum value. Soft warnings (still renders): missing background/anchor target, unknown icon. Silent (check yourself): a to= link to a nonexistent frame, children nested under a leaf component.
style=/sx=/colors), breakpoints, x/y coordinates.Button variants are text|outlined|contained (use contained for a primary action, never primary); Typography body variants are body1/body2 (not body); checkboxes/switches are Control checkbox / Control switch (+ checked); companion components you may know from UI libraries do not exist (no DialogTitle/DialogContent, IconButton, Menu, Container, Paper, ListItemText -- nest content directly, use a bare Icon, quote the ListItem label).
After writing or editing a wireframe, validate it: save the source as x.wiremark and run npx @wiremark/cli x.wiremark -o x.svg (Node 18+). Hard errors exit non-zero with a line number; warnings print to stderr while the SVG is still written. Dead to= links and children under leaf components are silent -- re-read those yourself.
Further reading: <https://docs.wiremark.dev> (human docs), <https://docs.wiremark.dev/reference/icons> (icon gallery).
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.