ask-questions-if-under…
Clarify requirements before implementing. Do not use automatically, only when invoked explicitly.
Backend API design, database architecture, microservices patterns, and test-driven development. Use for designing APIs, database schemas, or backend system architecture.
Claude Code
$ npx -y skills add MoizIbnYousaf/Ai-Agent-Skills --skill backend-development --agent claude-code
Codex
$ npx skills add MoizIbnYousaf/Ai-Agent-Skills --skill backend-development -a codex -y
Cursor
$ npx skills add MoizIbnYousaf/Ai-Agent-Skills --skill backend-development -a cursor -y
Gemini CLI
$ npx skills add MoizIbnYousaf/Ai-Agent-Skills --skill backend-development -a gemini-cli -y
GitHub Copilot
$ npx skills add MoizIbnYousaf/Ai-Agent-Skills --skill backend-development -a github-copilot -y
OpenCode
$ npx skills add MoizIbnYousaf/Ai-Agent-Skills --skill backend-development -a opencode -y
Windsurf
$ npx skills add MoizIbnYousaf/Ai-Agent-Skills --skill backend-development -a windsurf -y
name: backend-development description: Backend API design, database architecture, microservices patterns, and test-driven development. Use for designing APIs, database schemas, or backend system architecture. source: wshobson/agents license: MIT version: 4.1.0
GET /users # List users POST /users # Create user GET /users/:id # Get user PUT /users/:id # Update user (full) PATCH /users/:id # Update user (partial) DELETE /users/:id # Delete user GET /users/:id/posts # List user's posts POST /users/:id/posts # Create post for user
{
"data": { ... },
"meta": {
"page": 1,
"per_page": 20,
"total": 100
}
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Invalid input",
"details": [
{ "field": "email", "message": "Invalid format" }
]
}
}-- Use UUIDs for public IDs CREATE TABLE users ( id SERIAL PRIMARY KEY, public_id UUID DEFAULT gen_random_uuid() UNIQUE, email VARCHAR(255) UNIQUE NOT NULL, created_at TIMESTAMPTZ DEFAULT NOW(), updated_at TIMESTAMPTZ DEFAULT NOW() ); -- Soft deletes ALTER TABLE users ADD COLUMN deleted_at TIMESTAMPTZ; -- Indexes CREATE INDEX idx_users_email ON users(email); CREATE INDEX idx_users_created ON users(created_at DESC);
-- Pagination with cursor SELECT * FROM posts WHERE created_at < $cursor ORDER BY created_at DESC LIMIT 20; -- Efficient counting SELECT reltuples::bigint AS estimate FROM pg_class WHERE relname = 'users';
interface TokenPayload {
sub: string; // User ID
iat: number; // Issued at
exp: number; // Expiration
scope: string[]; // Permissions
}
function verifyToken(token: string): TokenPayload {
return jwt.verify(token, SECRET) as TokenPayload;
}async function authenticate(req: Request, res: Response, next: Next) {
const token = req.headers.authorization?.replace('Bearer ', '');
if (!token) {
return res.status(401).json({ error: 'Unauthorized' });
}
try {
req.user = verifyToken(token);
next();
} catch {
res.status(401).json({ error: 'Invalid token' });
}
}// Cache-aside pattern
async function getUser(id: string): Promise<User> {
const cached = await redis.get(`user:${id}`);
if (cached) return JSON.parse(cached);
const user = await db.users.findById(id);
await redis.setex(`user:${id}`, 3600, JSON.stringify(user));
return user;
}
// Cache invalidation
async function updateUser(id: string, data: Partial<User>) {
await db.users.update(id, data);
await redis.del(`user:${id}`);
}const limiter = rateLimit({
windowMs: 60 * 1000, // 1 minute
max: 100, // 100 requests per window
keyGenerator: (req) => req.ip,
handler: (req, res) => {
res.status(429).json({ error: 'Too many requests' });
}
});Universal skill installer and package manager for AI coding agents. One command, 12+ runtimes. npx ai-agent-skills
Clarify requirements before implementing. Do not use automatically, only when invoked explicitly.
Use when checking the overall health of a skills library. Run doctor, validate, check for stale skills, and verify generated docs…
Transforms vague prompts into optimized Claude Code prompts. Adds verification, specific context, constraints, and proper…
Use when exploring the ai-agent-skills catalog to find, compare, and evaluate skills before installing. Always use --fields to…
Use when regenerating README.md and WORK_AREAS.md in a managed library workspace. Always dry-run first to preview changes.
Automatically creates user-facing changelogs from git commits by analyzing commit history, categorizing changes, and transforming…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.