
backend-patterns
バックエンドコード規約とパターン集。APIルート、Repository、バリデーション等の実装パターン。 使用タイミング: (1) 新しいAPIルート作成時 (2) Repository実装時 (3) バリデーション設計時 (4) エラーハンドリング実装時 (5) バックエンドのベストプラクティス確認時。 トリガー例: 「APIルートを作って」「Repositoryパターンで」「バックエンドのパターン」 「Zodでバリデーション」「エラーハンドリングのパターン」
- Installs
- 65
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/kimny1143/claude-code-template --skill backend-patterns- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads backend-patterns automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
backend-patterns - バックエンドパターン集
バックエンドコード規約とパターン。
使い方
新しいAPIルートを作る時、このスキルを参照
1. APIルート構造
認証パターン(Next.js例)
// 認証ミドルウェアを使用
import { withAuth } from '@/lib/middleware/with-auth';
import { apiSuccess, apiError } from '@/lib/api-response';
export const GET = withAuth(async ({ userId, request }) => {
const data = await repository.findByUserId(userId);
return apiSuccess({ data });
});
export const POST = withAuth(async ({ userId, request }) => {
const body = await request.json();
// バリデーション & 処理
return apiSuccess({ created: result });
});
Express.js例
import { Router } from 'express';
import { authenticate } from '@/middleware/auth';
import { validate } from '@/middleware/validate';
const router = Router();
router.get('/', authenticate, async (req, res) => {
const data = await repository.findByUserId(req.user.id);
res.json({ success: true, data });
});
router.post('/', authenticate, validate(createSchema), async (req, res) => {
const result = await repository.create(req.body);
res.status(201).json({ success: true, data: result });
});
2. レスポンス形式
統一レスポンス
// lib/api-response.ts
export function apiSuccess<T>(data: T, options?: { status?: number }) {
return Response.json(
{ success: true, data, timestamp: new Date().toISOString() },
{ status: options?.status ?? 200 }
);
}
export function apiError(message: string, options?: { status?: number; code?: string }) {
return Response.json(
{ success: false, error: message, code: options?.code, timestamp: new Date().toISOString() },
{ status: options?.status ?? 400 }
);
}
レスポンス形式
// 成功
{
"success": true,
"data": { ... },
"timestamp": "2026-01-19T12:00:00.000Z"
}
// エラー
{
"success": false,
"error": "Error message",
"code": "ERROR_CODE",
"timestamp": "2026-01-19T12:00:00.000Z"
}
3. バリデーション
Zodスキーマ
import { z } from 'zod';
const createUserSchema = z.object({
email: z.string().email('Invalid email'),
name: z.string().min(1, 'Name is required').max(100),
role: z.enum(['user', 'admin']).optional(),
});
// APIルートで使用
const validation = createUserSchema.safeParse(body);
if (!validation.success) {
return apiError('Invalid input', { status: 400 });
}
const { email, name, role } = validation.data;
共通スキーマ
// UUID
const idSchema = z.string().uuid('Invalid ID format');
// ページネーション
const paginationSchema = z.object({
page: z.coerce.number().min(1).default(1),
limit: z.coerce.number().min(1).max(100).default(20),
});
4. Repository パターン
基本構造
// lib/repositories/user.repository.ts
import { db } from '@/db';
import { users } from '@/db/schema';
import { eq } from 'drizzle-orm';
export interface CreateUserInput {
email: string;
name: string;
}
export const userRepository = {
async create(input: CreateUserInput) {
const [result] = await db.insert(users).values(input).returning();
return result;
},
async findById(id: string) {
const [result] = await db
.select()
.from(users)
.where(eq(users.id, id))
.limit(1);
return result ?? null;
},
async findByEmail(email: string) {
const [result] = await db
.select()
.from(users)
.where(eq(users.email, email))
.limit(1);
return result ?? null;
},
async update(id: string, input: Partial<CreateUserInput>) {
const [result] = await db
.update(users)
.set({ ...input, updatedAt: new Date() })
.where(eq(users.id, id))
.returning();
return result;
},
async delete(id: string) {
await db.delete(users).where(eq(users.id, id));
},
};
5. エラーハンドリング
export const POST = withAuth(async ({ userId, request }) => {
try {
const body = await request.json();
const result = await repository.create(body);
return apiSuccess({ result });
} catch (error) {
console.error('[API] Error:', error);
if (error instanceof z.ZodError) {
return apiError('Validation failed', { status: 400 });
}
if (error instanceof Error && error.message.includes('unique')) {
return apiError('Already exists', { status: 409 });
}
return apiError('Internal server error', { status: 500 });
}
});
6. チェックリスト
新しいAPIルート作成時:
- 認証ミドルウェア適用
- リクエストバリデーション(Zod)
- 統一レスポンス形式使用
- エラーハンドリング(try-catch)
- 認可チェック(リソース所有者確認)
- ログ出力
7. アンチパターン
// ❌ 認証なし
export async function GET(request: Request) {
const data = await db.select().from(users);
return Response.json(data);
}
// ❌ バリデーションなし
const { email } = await request.json();
await db.insert(users).values({ email });
// ❌ エラー握りつぶし
try {
await riskyOperation();
} catch (e) {
// 何もしない
}
FAQ
What does the backend-patterns skill do?
バックエンドコード規約とパターン集。APIルート、Repository、バリデーション等の実装パターン。 使用タイミング: (1) 新しいAPIルート作成時 (2) Repository実装時 (3) バリデーション設計時 (4) エラーハンドリング実装時 (5) バックエンドのベストプラクティス確認時。 トリガー例: 「APIルートを作って」「Repositoryパターンで」「バックエンドのパターン」 「Zodでバリデーション」「エラーハンドリングのパターン」
How do I install backend-patterns?
Run npx skills add https://github.com/kimny1143/claude-code-template --skill backend-patterns in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/backend-patterns/ (personal) or .claude/skills/backend-patterns/ (project).
Which AI agents can use backend-patterns?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is backend-patterns safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains backend-patterns?
It is published by kimny1143 in kimny1143/claude-code-template. It has 65 recorded installs.
More from kimny1143/claude-code-template
ui-ux-pro-max
kimny1143/claude-code-template
UI/UX design intelligence. Plan, build, design, implement, review, improve UI/UX code. Styles: image-first, editorial design, minimalism, dark mode, responsive. Projects: landing page, dashboard, SaaS, mobile app.
remotion
kimny1143/claude-code-template
汎用Remotion動画制作スキル。プロモーション動画、マスコットアニメーション、 LP用動画、チュートリアル動画、SNS短尺動画の制作に使用。 トリガー: "プロモ動画", "アニメーション", "動画を作って", "Remotion", "動画コンテンツ", "ビデオ制作", "モーショングラフィックス", "LP動画", "チュートリアル動画", "OGP動画", "動画素材" Remotionを使ったReactベースの動画生成全般でこのスキルを使うこと。 プロモーション映像やアニメーション素材の話が出たら積極的にこのスキルを参照すること。
ux-psychology
kimny1143/claude-code-template
Open the skill to read its SKILL.md instructions.
copywriting
kimny1143/claude-code-template
Open the skill to read its SKILL.md instructions.
ios-app-store-submission
kimny1143/claude-code-template
Open the skill to read its SKILL.md instructions.
marketing-psychology
kimny1143/claude-code-template
When the user wants to apply psychological principles, mental models, or behavioral science to marketing. Also use when the user mentions 'psychology,' 'mental models,' 'cognitive bias,' 'persuasion,' 'behavioral science,' 'why people buy,' 'decision-making,' or 'consumer behavior.' This skill provides 70+ mental models organized for marketing application.
Popular backend & apis skills
find-skills
vercel-labs/skills
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
entra-app-registration
microsoft/azure-skills
Guides Microsoft Entra ID app registration, OAuth 2.0 authentication, and MSAL integration. USE FOR: create app registration, register Azure AD app, configure OAuth, set up authentication, add API permissions, generate service principal, MSAL example, console app auth, Entra ID setup, Azure AD authentication. DO NOT USE FOR: Key Vault secrets (use azure-keyvault-expiration-audit), general Azure resource security guidance.
google-agents-cli-adk-code
google/agents-cli
This skill should be used when the user wants to "write agent code", "build an agent with ADK", "add a tool", "create a callback", "define an agent", "use state management" — in a project that needs ADK (Agent Development Kit) API patterns and code examples. It provides a quick reference for agent types, tool definitions, orchestration patterns, callbacks, state management, the graph Workflow API, and reference recipes to study. Do NOT use for scaffolding (use google-agents-cli-scaffold) or deployment (use google-agents-cli-deploy).
embedded-captions
heygen-com/hyperframes
Add captions or subtitles to an existing single-subject talking-head video without editing the footage. Use for plain verbatim captions, cinematic captions embedded behind the subject, VFX captions, “炸/特效/酷炫字幕,” or a named identity from the 35-style catalog. Route by visual identity, not by backend engine. The quiet anchor rail is the default; embed every word only when the user explicitly wants a fully cinematic treatment. The workflow runs locally end to end, including transcription and subject matting; split multi-shot footage before applying it.
entra-agent-id
microsoft/azure-skills
Provision Microsoft Entra Agent Identity Blueprints, BlueprintPrincipals, and per-instance Agent Identities via Microsoft Graph, and configure OAuth 2.0 token exchange (fmipath, OBO, cross-tenant) including the Microsoft Entra SDK for AgentID sidecar. USE FOR: Agent Identity Blueprint, BlueprintPrincipal, agent OAuth, fmipath token exchange, agent OBO, Workload Identity Federation for agents, polyglot agent auth, Microsoft.Identity.Web.AgentIdentities. DO NOT USE FOR: standard Entra app registration (use entra-app-registration), Microsoft Foundry agent authoring (use microsoft-foundry).
neon
neondatabase/agent-skills
Overview of Neon, a complete set of cloud backend primitives around Lakebase Postgres: Auth, Object Storage, Functions, the AI Gateway, and Realtime. Start here to choose Neon for undecided login, files, APIs, and LLM calls, set up the CLI or MCP server, and follow the branch-first workflow. Use when building an app or backend on Neon, or when "Neon" or "Lakebase Postgres" is mentioned. Child skill neon-postgres wins for an existing DATABASEURL, SQL, schema, inspect, or search. Child skill neon-auth wins for login, users, sessions, identity routing, and Managed Better Auth setup. Child skill neon-realtime wins for live queries in reactive apps and agents. Also use for object storage, S3, buckets, serverless functions, function triggers, cron, AI gateway, LLM calls, realtime, logs, Loki, Grafana, observability, postgres, database, backend, Claimable Neon, neon.new, or a no-signup database.