Trust Badges
Trust badges let developers and users verify the safety, reputation, and fitness of AI Skills and Genes at a glance. Powered by the V(g) security scanner and Rotifer Protocol’s reputation system.
Badge Types
Section titled “Badge Types”| Type | Label | Data Source | What it Shows |
|---|---|---|---|
| Safety | rotifer safety | V(g) static analysis grade (A/B/C/D/?) | Code security scan result |
| Reputation | rotifer reputation | Gene reputation_score from Registry | Aggregate trust score |
| Fitness | rotifer F(g) | Arena fitness value F(g) | Latest Arena competition score |
| Developer | rotifer reputation | Developer reputation score | Author credibility |
Quick Start
Section titled “Quick Start”Using the Badge Generator
Section titled “Using the Badge Generator”The easiest way to create a badge is the Badge Generator:
- Select a badge type (Safety / Reputation / Fitness / Developer)
- Enter the identifier (Skill name, Gene name, or username)
- Click Generate to preview
- Copy the Markdown snippet into your README
Using the CLI
Section titled “Using the CLI”Run a V(g) scan and embed the safety badge:
$ rotifer vg ./my-skill --id @alice/search-webThen add to your README:
Embedding Badges
Section titled “Embedding Badges”All badges render through shields.io using the Endpoint Badge format.
Markdown
Section titled “Markdown”<img src="https://img.shields.io/endpoint?url=https://badge.rotifer.dev/safety/@author/skill-name" alt="Rotifer Safety" />Badge Styles
Section titled “Badge Styles”Append &style= to customize appearance:
| Style | Parameter |
|---|---|
| Flat (default) | &style=flat |
| Flat Square | &style=flat-square |
| Plastic | &style=plastic |
| For the Badge | &style=for-the-badge |
Example:
API Reference
Section titled “API Reference”The badge API is hosted at badge.rotifer.dev and returns shields.io Endpoint Badge compatible JSON.
GET /safety/:skill_id
Section titled “GET /safety/:skill_id”Returns the V(g) safety grade for a Skill.
| Parameter | Description |
|---|---|
skill_id | Skill identifier (e.g. @author/skill-name) |
GET /gene/:identifier
Section titled “GET /gene/:identifier”Returns the reputation score for a Gene.
| Parameter | Description |
|---|---|
identifier | Gene UUID, plain name, or qualified name (@owner/gene-name) |
GET /gene/:identifier/fitness
Section titled “GET /gene/:identifier/fitness”Returns the Arena fitness score F(g) for a Gene.
| Parameter | Description |
|---|---|
identifier | Gene UUID, plain name, or qualified name (@owner/gene-name) |
GET /dev/:username
Section titled “GET /dev/:username”Returns the developer reputation score.
| Parameter | Description |
|---|---|
username | Developer username |
Response Format
Section titled “Response Format”All endpoints return the same JSON schema:
{ "schemaVersion": 1, "label": "rotifer safety", "message": "A", "color": "brightgreen", "cacheSeconds": 3600}When the identifier is not found:
{ "schemaVersion": 1, "label": "rotifer safety", "message": "not found", "color": "lightgrey", "cacheSeconds": 3600}Gene Identifier Resolution
Section titled “Gene Identifier Resolution”The /gene/ endpoints accept three identifier formats:
| Format | Example | Resolution |
|---|---|---|
| UUID | 550e8400-e29b-41d4-a716-446655440000 | Direct lookup |
| Qualified name | @alice/search-web | Query by owner + name |
| Plain name | search-web | Query by name (latest published) |
Caching & CORS
Section titled “Caching & CORS”- All responses include
Cache-Control: public, max-age=3600(1 hour cache) - CORS is enabled for all origins (
Access-Control-Allow-Origin: *)