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
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.

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.
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.
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.

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.
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
