design-link-in-bio — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited design-link-in-bio (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.
Produces a deliverable mobile-first HTML page at 375px primary design width (with a centered-on-desktop fallback that maintains the column constraint). This is NOT a screenshot artifact — it's a real page meant to be deployed to a static host (GitHub Pages, Netlify, Vercel) as a link-in-bio destination from social profiles.
The format is functionally identical to a Linktree-style page, but the visual treatment commits to the brand's editorial register rather than the rounded-button-stack template that all link-in-bio services produce by default.
DESIGN.md exists for the brandlabel + url, optional meta (e.g. "GitHub" + "github.com/shane" + "Open source")./design/<brand-slug>/artifacts/link-in-bio.html (single file — overwrite OK; canonical bio page for the brand)
test -f ./design/<brand-slug>/tokens.cssAsk in one message:
1. Name / wordmark — how the brand displays at the top
2. Tagline — 1 line, max 10 words, sentence-case ending in period per brand voice
3. Links — list of label + URL pairs, in display order. Optionally per-link meta description (1 sentence).
4. Social footer handles — Twitter/X, GitHub, etc.
5. Optional: which link (if any) is "current" — gets the brand accent treatmentThe link-in-bio is small surface area, so the variation lever is the OVERALL register:
editorial-cream — cream page, Fraunces wordmark, link entries as numbered list with hairline rules. Most editorial.inverted — full dark inversion canvas (canonical v2 feature treatment). Reads as confident; rare for link-in-bio formats which lean cheerful by default.mono-stack — mono-led, technical register. Each link as a code-style row. Best for engineering-audience brands.chrome-led — wordmark + tagline + buttons-vertical-stack. Last resort. This is the Linktree default the skill exists to avoid.Template:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>[name] — links</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=<families>&display=swap">
<style>
/* Embed tokens.css verbatim */
<contents of tokens.css>
* { box-sizing: border-box; }
html, body { margin: 0; }
body {
background: var(--color-surface);
color: var(--color-ink);
font-family: var(--type-sans-family);
font-size: 17px;
line-height: 1.55;
font-feature-settings: 'ss01', 'cv11', 'kern';
min-height: 100vh;
}
/* Mobile-first column — 375px design width, centered on desktop */
.page {
max-width: 375px;
margin: 0 auto;
padding: 64px 24px 80px;
min-height: 100vh;
display: flex;
flex-direction: column;
}
/* Header — wordmark + tagline */
.bio-head { padding-bottom: 32px; border-bottom: 1px solid var(--color-rule); margin-bottom: 32px; }
.wordmark { font-family: var(--type-display-family); font-weight: 600; font-size: 28px; line-height: 1.0; letter-spacing: -0.01em; color: var(--color-ink); margin: 0; }
.tagline { font-family: var(--type-display-family); font-style: italic; font-weight: 400; font-size: 16px; line-height: 1.45; color: var(--color-ink-soft); margin: 12px 0 0; max-width: 32ch; }
/* Link list — numbered, no buttons, no rounded rectangles */
.links { list-style: none; padding: 0; margin: 0 0 48px; flex: 1; }
.links li {
border-top: 1px solid var(--color-rule);
}
.links li:last-child { border-bottom: 1px solid var(--color-rule); }
.links a {
display: grid;
grid-template-columns: 32px 1fr auto;
gap: 12px;
padding: 18px 0;
align-items: baseline;
text-decoration: none;
color: var(--color-ink);
transition: color 200ms;
}
.links a:hover { color: var(--color-ink-soft); }
.links .num {
font-family: var(--type-mono-family);
font-size: 12px; letter-spacing: 0.06em;
color: var(--color-ink-3);
align-self: baseline;
}
.links .label {
font-family: var(--type-display-family);
font-weight: 500; font-size: 18px; line-height: 1.3;
letter-spacing: -0.005em;
}
.links .label .meta {
display: block;
margin-top: 4px;
font-family: var(--type-sans-family);
font-size: 13px;
font-weight: 400;
color: var(--color-ink-3);
}
.links .arrow {
font-family: var(--type-mono-family);
font-size: 14px;
color: var(--color-ink-3);
transition: transform 200ms, color 200ms;
}
.links a:hover .arrow { transform: translateX(3px); color: var(--color-ink); }
/* "Current" link — brand accent */
.links li.is-current .num { color: var(--color-accent); }
.links li.is-current .arrow { color: var(--color-accent); }
.links li.is-current::before {
content: 'CURRENT';
display: block;
padding: 8px 0 0;
font-family: var(--type-mono-family);
font-size: 10px; letter-spacing: 0.18em;
color: var(--color-accent);
}
/* Social footer */
.bio-foot {
padding-top: 24px;
border-top: 1px solid var(--color-rule);
display: flex;
flex-wrap: wrap;
gap: 16px;
font-family: var(--type-mono-family);
font-size: 12px;
letter-spacing: 0.06em;
color: var(--color-ink-3);
}
.bio-foot a { color: var(--color-ink); text-decoration: none; }
.bio-foot a:hover { color: var(--color-ink-soft); }
</style>
</head>
<body>
<main class="page">
<header class="bio-head">
<h1 class="wordmark">[name / wordmark]</h1>
<p class="tagline">[tagline]</p>
</header>
<ol class="links">
<li>
<a href="[url 1]">
<span class="num">01</span>
<span class="label">[link 1 label]<span class="meta">[optional meta]</span></span>
<span class="arrow">→</span>
</a>
</li>
<!-- repeat per link -->
</ol>
<footer class="bio-foot">
<a href="[social 1 url]">[social 1 handle]</a>
<a href="[social 2 url]">[social 2 handle]</a>
<span style="margin-left: auto;">© [year]</span>
</footer>
</main>
</body>
</html>chrome-led unless explicitly justifiedLink-in-bio page generated at ./design/<brand-slug>/artifacts/link-in-bio.html.>
Variation register: <picked>. Open in a browser at 375px AND desktop widths to verify the column layout holds.>
To deploy: drop the file on any static host (GitHub Pages, Netlify, Vercel) atindex.htmlof a subdomain or path. Update the<title>and meta description with brand-specific copy.
Governed by three shared canonical references — read them, do not restate them:
Forbidden (fast scan — the references hold the full list):
hsl(230–280) family on a near-white surface. The single loudest AI tell.Required variation (every invocation):
Authenticity: prefer specific over generic everywhere — real datelines (not "today"), the brand's actual voice (not "build the future" filler), concrete CTAs over placeholders.
.canvas div. The page IS the deliverable.var(--*) from tokens.css.../design-anti-patterns.md (the hard floor — wins every conflict), ../design-principles.md (the craft floor), and ../design-variation-sop.md (direction roster + offer-3 procedure). The anti-patterns file is the canonical anti-tell list. Specific anti-pattern this format invites: the Linktree-default vertical button stack. Avoid it.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.