Back to list
AsiaOstrich

error-code-guide

by AsiaOstrich

Universal, language-agnostic development standards for software projects. Includes coding standards, git workflows, testing guidelines, documentation structure, and AI collaboration rules.

20🍴 3📅 Jan 23, 2026

SKILL.md


name: error-code-guide description: | Design consistent error codes following the PREFIX_CATEGORY_NUMBER format. Use when: defining error codes, creating error handling, designing APIs. Keywords: error code, error handling, error format, API errors, 錯誤碼, 錯誤處理.

Error Code Guide

Language: English | 繁體中文

Version: 1.0.0 Last Updated: 2025-12-30 Applicability: Claude Code Skills


Purpose

This skill helps design consistent error codes following the standard format, enabling better debugging, monitoring, and user experience.

Quick Reference

Error Code Format

<PREFIX>_<CATEGORY>_<NUMBER>
ComponentDescriptionExample
PREFIXApplication/service identifierAUTH, PAY, USR
CATEGORYError categoryVAL, SYS, BIZ
NUMBERUnique numeric identifier001, 100, 404

Examples

AUTH_VAL_001    → Authentication validation error
PAY_SYS_503     → Payment system unavailable
USR_BIZ_100     → User business rule violation
API_NET_408     → API network timeout

Error Categories

CategoryFull NameDescriptionHTTP Status
VALValidationClient input validation failures400
BIZBusinessBusiness rule violations422
SYSSystemInternal system failures500
NETNetworkCommunication failures502/503/504
AUTHAuthSecurity-related errors401/403

Category Code Ranges

RangeDescriptionExample
*_VAL_001-099Field validationMissing required field
*_VAL_100-199Format validationInvalid email format
*_VAL_200-299Constraint validationPassword too short
*_BIZ_001-099State violationsOrder already cancelled
*_BIZ_100-199Rule violationsCannot return after 30 days
*_BIZ_200-299Limit violationsDaily limit exceeded
*_AUTH_001-099AuthenticationInvalid credentials
*_AUTH_100-199AuthorizationInsufficient permissions
*_AUTH_200-299Token/sessionToken expired

HTTP Status Code Mapping

CategoryHTTP StatusDescription
VAL400Bad Request
BIZ422Unprocessable Entity
AUTH (001-099)401Unauthorized
AUTH (100-199)403Forbidden
SYS500Internal Server Error
NET502/503/504Gateway errors

Detailed Guidelines

For complete standards, see:

AI-Optimized Format (Token-Efficient)

For AI assistants, use the YAML format files for reduced token usage:

  • Base standard: ai/standards/error-codes.ai.yaml

Error Response Format

Single Error

{
  "success": false,
  "error": {
    "code": "AUTH_VAL_001",
    "message": "Email is required",
    "field": "email",
    "requestId": "req_abc123"
  }
}

Multiple Errors

{
  "success": false,
  "errors": [
    {
      "code": "AUTH_VAL_001",
      "message": "Email is required",
      "field": "email"
    },
    {
      "code": "AUTH_VAL_201",
      "message": "Password must be at least 8 characters",
      "field": "password"
    }
  ],
  "requestId": "req_abc123"
}

Internal Error Object

interface ApplicationError {
  // Core fields
  code: string;          // "AUTH_VAL_001"
  message: string;       // Technical message for logs

  // User-facing
  userMessage: string;   // Localized user message
  userMessageKey: string; // i18n key: "error.auth.val.001"

  // Context
  field?: string;        // Affected field: "email"
  details?: object;      // Additional context

  // Debugging
  timestamp: string;     // ISO 8601
  requestId: string;     // Correlation ID
}

Internationalization (i18n)

Message Key Format

error.<prefix>.<category>.<number>

Example Translation Files

# en.yaml
error:
  auth:
    val:
      001: "Email is required"
      101: "Invalid email format"
    auth:
      001: "Invalid credentials"

# zh-TW.yaml
error:
  auth:
    val:
      001: "電子郵件為必填欄位"
      101: "電子郵件格式無效"
    auth:
      001: "帳號或密碼錯誤"

Examples

✅ Good Error Codes

AUTH_VAL_001  // Missing required field: email
AUTH_VAL_101  // Invalid email format
ORDER_BIZ_001 // Order already cancelled
ORDER_BIZ_201 // Daily purchase limit exceeded
DB_SYS_001    // Database query failed
SEC_AUTH_001  // Invalid credentials
SEC_AUTH_201  // Token expired

❌ Bad Error Codes

ERR_001       // Too vague, no prefix or category
INVALID       // Not descriptive
error         // Not a code
AUTH_ERROR    // Missing number

Checklist

  • Unique code for each error
  • Category matches error type
  • User message is localized
  • HTTP status is correct
  • Error is documented
  • Code is in registry

Configuration Detection

This skill supports project-specific configuration.

Detection Order

  1. Check for existing error code patterns in codebase
  2. Check CONTRIBUTING.md for error code guidelines
  3. If not found, default to PREFIX_CATEGORY_NUMBER format

First-Time Setup

If no error code standard found:

  1. Suggest: "This project hasn't configured error code standards. Would you like to set up an error code registry?"
  2. Suggest creating errors/registry.ts:
export const ErrorCodes = {
  AUTH_VAL_001: {
    code: 'AUTH_VAL_001',
    httpStatus: 400,
    messageKey: 'error.auth.val.001',
    description: 'Email field is required',
  },
  // ... more codes
} as const;


Version History

VersionDateChanges
1.0.02025-12-30Initial release

License

This skill is released under CC BY 4.0.

Source: universal-dev-standards

Score

Total Score

75/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

+10
人気

GitHub Stars 100以上

0/15
最近の活動

1ヶ月以内に更新

+10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

+5

Reviews

💬

Reviews coming soon