Create Service-fb6229 — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Create Service-fb6229 (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.
Generate a new service that follows our architecture patterns.
┌─────────────────────────────────────────────────────────────┐
│ YOUR SERVICE │
├─────────────────────────────────────────────────────────────┤
│ ┌───────────────────────────────────────────────────────┐ │
│ │ SERVER (server.ts) │ │
│ │ - Express/Fastify entry point │ │
│ │ - Defines routes │ │
│ │ - NEVER contains business logic │ │
│ └───────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ HANDLERS (handlers/) │ │
│ │ - Business logic lives here │ │
│ │ - One file per domain │ │
│ └───────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ ADAPTERS (adapters/) │ │
│ │ - External service wrappers │ │
│ │ - Database, APIs, etc. │ │
│ └───────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘packages/{name}/
├── src/
│ ├── server.ts # Entry point — routes only
│ ├── handlers/ # Business logic
│ │ └── index.ts
│ ├── adapters/ # External service wrappers
│ │ └── index.ts
│ └── types.ts # TypeScript types
├── tests/
│ └── handlers.test.ts
├── package.json
├── tsconfig.json
└── CLAUDE.md # Service-specific instructions{
"name": "@project/{name}",
"version": "1.0.0",
"type": "module",
"scripts": {
"build": "tsc",
"dev": "tsx watch src/server.ts",
"start": "node dist/server.js",
"test": "vitest run"
},
"dependencies": {
"express": "^4.21.0"
},
"devDependencies": {
"tsx": "^4.0.0",
"typescript": "^5.7.0",
"vitest": "^3.0.0",
"@types/express": "^5.0.0"
}
}import express from 'express';
import { handlers } from './handlers/index.js';
const app = express();
const PORT = process.env.PORT || 3000;
app.use(express.json());
// Health check
app.get('/health', (_req, res) => {
res.json({ status: 'ok', service: '{name}' });
});
// Routes — delegate to handlers (NEVER put logic here)
app.post('/api/v1/:action', handlers.handleAction);
// Unhandled rejection handler
process.on('unhandledRejection', (reason, promise) => {
console.error('Unhandled Rejection:', reason);
process.exit(1);
});
// Uncaught exception handler
process.on('uncaughtException', (error) => {
console.error('Uncaught Exception:', error);
process.exit(1);
});
app.listen(PORT, () => {
console.log(`{name} running on port ${PORT}`);
});export interface ServiceConfig {
port: number;
name: string;
environment: 'development' | 'staging' | 'production';
}
// Add your domain types here{
"compilerOptions": {
"target": "ES2022",
"module": "ESNext",
"moduleResolution": "bundler",
"outDir": "dist",
"rootDir": "src",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"declaration": true
},
"include": ["src/**/*"],
"exclude": ["node_modules", "dist", "tests"]
}Before scaffolding a new service, check the current branch:
git branch --show-currentDefault behavior (auto_branch = true in claude-mastery-project.conf):
main or master: automatically create a feature branch and switch to it: git checkout -b feat/<service-name>Report: "Created branch feat/<service-name> — main stays untouched."
To disable: Set auto_branch = false in claude-mastery-project.conf. When disabled, warn and ask the user before proceeding on main.
After the service is scaffolded, check RuleCatch:
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.