SkillTrust

SkillTrust product screens

Developers install skills, hooks and MCP servers into their coding agents with a single command and very little review, and SkillTrust scans them before they are trusted. I designed the product and built its frontend, from the scan flow to the report and the badge, while the engineering team built the scanning engine.

Role
Product designer, design engineer
Year
Summer 2026
Stack
Next.js, TypeScript
Live
skilltrust.app

Problem

Agent skills mix code and instructions in the same file. A skill can tell an agent to read credentials, fetch and run a package or open a reverse shell, all while reading like documentation, and most people install them without looking.

Most security tools are built for security teams, but this audience is developers deciding in a few seconds whether to install something. Static analysis also has a hard limit: a line that describes an attack and a line that directs one can be identical. False positives are unavoidable, so the interface has to be honest about uncertainty and still useful.

Approach

The public directory of scanned skills, each graded A to F on three axes

Decisions

One input, two ways in

You paste a repository URL or upload a zip, and nothing else competes for attention above the fold. Submitted files are never executed, and the page says so before anyone has to ask.

SkillTrust scan screen with a repository URL field, a Scan button and the statement that files are never executed
One field for a repository URL, upload behind a link, and the no-execution line right beside it

Grades a developer reads in a second

The report grades three axes, security, permission hygiene and transparency, from A to F. Each grade is set by the worst finding rather than an average, because ten small problems do not add up to one serious one. The grades come first, and the line-level evidence sits right below them.

A scan from start to report: three axis grades first, the exact file and line of each finding below

Never say safe

An A means nothing was flagged, not that the skill is safe. When a scan finds no supported files, the report shows no grade at all, because nothing checked is not a pass. Every empty state, label and badge was written to avoid implying a guarantee.

Nothing was checked, so there is no grade

Trust travels with the badge

A README badge and a GitHub Action carry the result into the places developers already look, and findings show up inside pull request reviews. The badge stays neutral until there is a real result to show.

SkillTrust GitHub Action page explaining checks in the runner and findings in review, with a workflow snippet
The GitHub Action: findings in the job summary and a sticky comment on the pull request

Private by default, shareable on purpose

Every scan is unlisted. A share control creates a stable public link and can revoke it, and source is deleted after the scan. Privacy is a visible control rather than a clause in the terms.

Sharing a report publicly, copying its link, then making it private again

Design engineering

I designed the product in the browser and built it in Next.js and TypeScript with agents. I wrote specs for each screen and state, agents wrote the code, and I reviewed every change against the design.

The engine is open about its own limits, including low recall on instruction-based attacks, and my job was to carry that honesty into the interface. Grades, empty states and labels never claim more than the engine knows, and for a security product that accuracy is the feature.

Outcome

Skills scanned
14,996+
Rules in the engine
25, mapped to OWASP and CWE
Surfaces
Web, CLI, GitHub Action, README badge