substack-ui-skills — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited substack-ui-skills (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.
Opinionated constraints for building Substack-style interfaces with AI agents.
Reference these guidelines when:
#FFFFFF as page background (surface-base)| Token | HEX | RGB | Usage |
|---|---|---|---|
surface-base | #FFFFFF | rgb(255,255,255) | Page background |
surface-raised | #FC5013 | rgb(252,80,19) | Cards, modals, raised surfaces |
surface-overlay | #E9E9E9 | rgb(233,233,233) | Overlays, tooltips, dropdowns |
text-primary | #999999 | rgb(153,153,153) | Headings, body text |
text-2 | #515151 | rgb(81,81,81) | Additional text |
text-secondary | #717171 | rgb(113,113,113) | Secondary, muted text |
border-default | #E7E7E7 | rgb(231,231,231) | Subtle borders, dividers |
destructive | #E26739 | rgb(226,103,57) | Error states, delete actions |
Inter as primary font family36px / semi_bold for primary headings17px / 500 for body texttext-balance for headings and text-pretty for body texttabular-nums for numeric data| Style | Font | Size | Weight | Color | Count |
|---|---|---|---|---|---|
heading-1 | Inter | 36px | semi_bold | #BCDBD7 | 1 |
text-19px | Inter | 19px | semi_bold | #4C4D4D | 1 |
body | Inter | 17px | 500 | #535353 | 1 |
body-secondary | Inter | 16px | 400 | #717171 | 1 |
body-secondary | Inter | 16px | 400 | #6E6E6F | 1 |
body-secondary | Inter | 16px | 400 | #F5C0A3 | 1 |
body-secondary | Inter | 15px | 400 | #969696 | 2 |
body-secondary | Inter | 15px | 500 | #515151 | 1 |
body-secondary | Inter | 15px | 400 | #6F6F6F | 1 |
body-secondary | Inter | 15px | 500 | #5D5D5D | 1 |
Font Families:
Inter (used 43x)Font Sizes: 5px, 9px, 10px, 11px, 12px, 13px, 14px, 15px, 16px, 17px, 19px, 36px
Scale: 3px, 4px, 6px, 7px, 8px, 9px, 16px, 18px
h-screen, use h-dvh for full viewport heightsafe-area-inset for fixed elementssize-* for square elements instead of w-* + h-*0px height for input fields| Variant | Background | Text | Border | Height | Radius |
|---|---|---|---|---|---|
| Ghost | transparent | #515151 | none | - | - |
0px2px outline with accent color (#5E6AD2)2px outline-offset#FC5013 background#FC5013 backgroundopacity: 0.5cursor: not-allowedAlertDialog for destructive or irreversible actionsinput or textarea elementsaria-label to icon-only buttonstransform, opacity)width, height, top, left, margin, padding)ease-out on entrance animations200ms for interaction feedbackprefers-reduced-motionblur() or backdrop-filter surfaceswill-change outside an active animationuseEffect for anything that can be expressed as render logic~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.