riligar-dev-manager — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited riligar-dev-manager (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.
Build fast, type-safe APIs with Elysia + Bun.
[!IMPORTANT] All work in this skill MUST adhere to rules em .agent/rules/ — clean-code, code-style, javascript-only, naming-conventions.import { Elysia, t } from 'elysia'
const app = new Elysia()
.get('/', () => 'Hello Elysia')
.post('/users', ({ body }) => createUser(body), {
body: t.Object({
name: t.String(),
email: t.String({ format: 'email' }),
}),
})
.listen(3000)| File | Description | When to Read |
|---|---|---|
| elysia-basics.md | Setup, routes, handlers, context | Starting new project |
| elysia-plugins.md | Plugins, guards, modular design | Organizing code |
| elysia-validation.md | TypeBox validation (body, query, params) | Input validation |
| elysia-lifecycle.md | Hooks (onBeforeHandle, onError, etc.) | Middleware, auth checks |
| elysia-patterns.md | REST patterns, responses, pagination | API design |
src/
├── index.js # Entry point
├── routes/
│ ├── index.js # Route aggregator
│ ├── users.js # User routes plugin
│ └── posts.js # Post routes plugin
├── services/
│ ├── user.js # Business logic
│ └── post.js
├── database/
│ ├── db.js # Drizzle connection
│ ├── schema.js # Drizzle schema
│ └── migrations/
└── middleware/
├── auth.js # Auth middleware
└── logger.js # Request logging| Pacote | Versão | Descrição |
|---|---|---|
bun | latest | Runtime |
elysia | latest | Framework HTTP |
bun:sqlite | builtin | SQLite driver |
drizzle-orm | latest | ORM |
bun:s3 | latest | S3/R2 Storage |
// routes/users.js
import { Elysia, t } from 'elysia'
import { getUserById, createUser } from '../services/user'
export const userRoutes = new Elysia({ prefix: '/users' })
.get('/', () => getAllUsers())
.get('/:id', ({ params }) => getUserById(params.id))
.post('/', ({ body }) => createUser(body), {
body: t.Object({
name: t.String({ minLength: 1 }),
email: t.String({ format: 'email' }),
}),
})// index.js
import { Elysia } from 'elysia'
import { userRoutes } from './routes/users'
import { postRoutes } from './routes/posts'
const app = new Elysia()
.onError(({ error, set }) => {
console.error(error)
set.status = 500
return { error: 'Internal Server Error' }
})
.use(userRoutes)
.use(postRoutes)
.listen(3000)
console.log(`Server running at ${app.server?.url}`)| Need | Skill |
|---|---|
| Authentication | @[.agent/skills/riligar-dev-auth-elysia] |
| database | @[.agent/skills/riligar-dev-database] |
| Infrastructure | @[.agent/skills/riligar-infra-fly] |
Before building an API:
riligar-dev-auth-elysiariligar-dev-database| Don't | Do |
|---|---|
| Put business logic in handlers | Extract to services/ |
| Skip input validation | Use TypeBox (t.Object) |
| Ignore error handling | Use onError lifecycle |
| Create monolithic files | Split into plugins |
Use verbs in routes (/getUser) | Use nouns (/users/:id) |
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.