The health headline01
> /ds-bridge:analyticsexample · acme-shop
Health65/100▲ 14 since Oct 6
Import coverage79%11 of 14 components
Consistency80/100tokens · matches · overrides
Design debt29/100lower is better
  • okfigmalibrary health, parity, per-frame readiness
  • okcodelint, import coverage, custom components
  • oktokendrift and contrast
  • okgitchange activity
  • okscoresystem score and its weights
Four numbers replayed from recorded history — health, import coverage, consistency and debt — with the trend and the status of every data domain.

Read the tutorial →

Hardcoded values, found02
> /ds-bridge:ds-lint srcexample · acme-shop
On-system76%39 of 51 values use a token
4exact
0near
8off-system
  • PromoBanner.tsx:7off-systembackground: #eff6ffno matching token
  • PromoBanner.tsx:8off-systemcolor: #1e3a8ano matching token
  • PromoBanner.tsx:11exactpadding: 24px→ var(--spacing-6)
  • PromoBanner.tsx:12exactmarginBottom: 16px→ var(--spacing-4)
  • LegacyButton.tsx:12exactbackgroundColor: #171717→ var(--primary)
  • Dashboard.tsx:66exactcolor: #737373→ var(--muted-foreground)
  • SignIn.tsx:46off-systemcolor: #2563ebno matching token

12 findings · --fix rewrites the 4 exact matches in place

Every raw color and size checked against your tokens: exact matches you can fix automatically, values with no token, and the on-system share.

Read the tutorial →

Token drift03
> /ds-bridge:token-checkexample · acme-shop
In sync86tokens match the built CSS
0stale
0missing
0orphan

Source tokens/tokens.json · modes lightdark

Your token source compared with the built CSS — stale, missing and orphan variables.

Read the tutorial →

Contrast across modes04
> /ds-bridge:a11y-checkexample · acme-shop
Pass AA19/20pairs across light and dark
Fail1one fix
  • Aamuted-foreground on mutedlight4.34:1fail · try #707070
  • Aamuted-foreground on muteddark5.83:1pass
  • Aaprimary-foreground on primarydark14.22:1pass
  • Aaforeground on backgrounddark18.96:1pass
Every semantic foreground/background pair, in every mode, against WCAG AA — with a suggested fix for each failure.

Read the tutorial →

Figma ↔ code parity05
> /ds-bridge:parity-auditexample · acme-shop
5ok
6prop-mismatch
3missing-in-figma
1missing-in-code
  • Alertokvariants match
  • Inputokvariants match
  • Buttonprop-mismatchsize: code also has xs, icon, icon-xs, icon-sm, icon-lg
  • Badgeprop-mismatchvariant: code also has link, ghost
  • Dialogmissing-in-figmasrc/components/ui/dialog.tsx
  • Selectmissing-in-figmasrc/components/ui/select.tsx
  • Tooltipmissing-in-codeFigma 1:125, no code match
Import coverage 11/14never imported: Dialog, Select, Textarea
Which components match, which differ in their variants, and which exist on only one side — plus how many your code actually imports.

Read the tutorial →

Library hygiene06
> /ds-bridge:library-healthexample · acme-shop
Placed instances21
Override hotspots1Legacy Button · fills
Deprecated in use1Legacy Button
Detached?1Badge (heuristic)
Override hotspots, deprecated components still in use, and instances that look detached (a heuristic).
Recurring exceptions, with an owner07
> /ds-bridge:exceptionsexample · acme-shop
Recorded runs2
Need an owner1
Decided1
  • Legacy Buttonneeds an owneroverrides · 1 latest · 2 of 2 runsfix the usage, or evolve the component?
  • Legacy Buttonfix the implementationdeprecated · 1 latest · 2 of 2 runs@acme-design · review by Oct 31 · “Swap the last instance for Button”
Deviations that keep coming back, run after run — each one either waiting for an owner or carrying the decision someone made. Logging one never changes a score.

Read the tutorial →

Handoff readiness08
> /ds-bridge:handoff-qa <frame-url>example · acme-shop
Sign in frame66/100gate 80 · not ready yet
  • Colors bound to variables44%
  • Auto layout100%
  • Text with a text style0%
  • −15typography3 layers — “Sign in to Acme”, “Forgot your password?”Apply a text style (or bind its type variables)
  • −19var-binding5 layers — header, Email field, Password fieldBind fills/strokes to a variable
A Figma frame scored for how machine-readable it is before a developer picks it up, with every deduction and its fix.

Read the tutorial →

How much of a frame is on-system09
> /ds-bridge:figma-impl <frame-url>example · acme-shop
Sign in · on-system93%13 requirements resolved
  • gapcolor: #2563ebno token match
Before writing code: how much of the frame resolves to your tokens and components, and exactly what doesn’t.

Read the tutorial →

One changelog for both sides10
> /ds-bridge:ds-changelogexample · acme-shop
0breaking
1notable
4minor
3Figma versions
  • Oct 7minorFindings status after v1.16.0code
  • Oct 6minorConfigure ds-bridge (library key, gitignore token)code
  • Oct 6notableAcme shop on shadcn/ui with Tokens Studio tokenscode
Code, Figma and token changes in one list, by severity and audience.

Read the tutorial →

Every repo, ranked11
> /ds-bridge:rollupexample · 4 demo repos
Repos4
Mean score76
Size-weighted85
Pooled on-system93%
  1. sds-dashboard89on-system 97% · contrast 80% · readiness 86
  2. primer-hub76on-system 76% · contrast 94% · readiness 84
  3. m3-pulse74on-system 81% · contrast 100% · readiness 95
  4. acme-shop63on-system 76% · contrast 95% · readiness 77
Recorded history from several repos, ranked by system score — local only, nothing hosted.

Read the tutorial →

The HTML dashboard12
> /ds-bridge:dashboardexample · sample project
One offline page with the score, trends, per-frame readiness and the gaps to close next.

Read the tutorial →

Connected, and where each value came from13
> ds-bridge config showexample · acme-shop
ds-bridge configuration

  Figma token       figd_…XXXX              ← .ds-bridge.env
  Library file key  L5ZCpigEnN9MxJwa8AORmH  ← .ds-bridge.env
  Token source      — (auto-detect)         ← auto-detected at run time
  Report style      both                    ← default
  Readiness gate    80                      ← default
After `ds-bridge config connect --verify`: the effective config with the token masked, and which source won each value.

Read the tutorial →

Your numbers will differ: every figure comes from your own code, tokens and Figma files. Nothing is sent anywhere — ds-bridge runs locally.