ワンクリックで
backend
Backend API coding standards — server file structure, response envelope, error handling, import rules, and route organization.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Backend API coding standards — server file structure, response envelope, error handling, import rules, and route organization.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Universal file and folder organization rules — naming conventions, refactoring, and when to split files.
Frontend React coding standards — component structure, hooks, Panda CSS styling, state management, usecase extraction, react-query usage, sub-component barrel imports, and strict import ordering.
Master index for project coding standards. Load this to get a summary; load individual skills below for detailed rules.
| name | backend |
| description | Backend API coding standards — server file structure, response envelope, error handling, import rules, and route organization. |
whatsapp.ts, auth.ts) MUST be in its own folder with the same kebab-case name.server/api/whatsapp/
index.ts # Router setup + exports
whatsapp.ts # Route handlers only
types.ts # Interface & type definitions
utils.ts # Local utility functions (client init, message sending, etc.)
index.ts — Creates the router, mounts sub-routes, exports default router.[name].ts — Only route handler functions (req → res logic). Imports types and utils.types.ts — All interfaces, types, enums for this module.utils.ts — Helper/utility functions (e.g. initializeWhatsAppClient, sendWhatsAppMessage).Imports MUST be grouped and ordered as follows (blank line between groups):
import express from "express";
import { Client, LocalAuth } from "whatsapp-web.js";
import type { Request, Response } from "express";
src/)Uses ../../src/... relative paths:
import { normalizePhoneNumber } from "../../../src/utils/phone/normalize-phone";
Sorted by path depth (../../ → ../ → ./), then within each depth: values → types → styles:
// Types come before values at the same depth
import type { EnhancedPhoneNumberEntry, BlastSession } from "./types";
import {
generateSessionId,
initializeWhatsAppClient,
sendWhatsAppMessage,
} from "./utils";
All API responses MUST follow this envelope. Do NOT return flat objects.
2xx){
"data": {}, // Required. What the user sees/consumes.
"meta": {} // Required. Flags, pagination, internal state — NOT shown to the user.
}
4xx / 5xx){
"errors": {}, // Required. Field validation: { fieldName: "message" } or { server: "message" }.
"meta": {}, // Required. Error code, flags, timestamp.
"data": {} // Optional. Context data shown on error.
}
200 success, 201 created400 bad request / validation error401 unauthorized, 403 forbidden404 not found409 conflict422 unprocessable entity500 internal server error200 for a failed operation.errors with the field name as key.500 with errors: { server: "Internal server error" }.src/ may use @/* absolute imports (resolved by Vite bundler).src/ (e.g. server/, scripts/) MUST use relative imports (../../src/...).