SOC 직업 분류 기준
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/wrtnlabs/autobe --skill fix-interface명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SKILL.md 표시 중
| name | fix-interface |
| description | Fix Interface and Controller compilation errors |
| allowed-tools | Read, Edit, Write, Bash, Grep, Glob |
Fix interface and controller compilation errors according to code conventions.
NEVER use:
as keyword (type assertion)any typeFix type issues by properly defining interfaces.
Leave as-is:
console.log in Controller catch blocksconsole.error in Controller catch blocksThese are intentional and should not be changed to NestJS Logger.
Fix compilation errors in interface and controller files to ensure npm run build:main passes.
┌─────────────────────────────────────┐
│ Step 1: Run Build │
│ npm run build:main │
└───────────────┬─────────────────────┘
│
▼
┌─────────────────────────────────────┐
│ Step 2: Parse Interface Errors │
│ - Empty interfaces {} │
│ - Type mismatches │
│ - Missing properties │
└───────────────┬─────────────────────┘
│
▼
┌─────────────────────────────────────┐
│ Step 3: Fix by Convention │
│ - Fill empty interfaces │
│ - Add typia tags │
│ - Fix nullable types │
└───────────────┬─────────────────────┘
│
▼
┌─────────────────────────────────────┐
│ Step 4: Re-run Build │
│ Loop until 0 errors │
└─────────────────────────────────────┘
npm run build:main 2>&1 | head -100
Capture interface-related errors.
Common error patterns:
Type '{}' is not assignable → Empty interfaceProperty 'X' does not exist on type '{}' → Empty interfaceType 'string' is not assignable to type 'string & Format<"uuid">' → Missing typia tagRead Prisma schema and fill interface:
// Before
export type IEntity = {};
// After
import { tags } from "typia";
export type IEntity = {
id: string & tags.Format<"uuid">;
name: string;
status: "active" | "inactive";
created_at: string & tags.Format<"date-time">;
updated_at: string & tags.Format<"date-time">;
deleted_at: (string & tags.Format<"date-time">) | null;
};
export namespace IEntity {
export type ICreate = {
name: string;
status?: "active" | "inactive"; // optional with default
};
}
export namespace IEntity {
export type IUpdate = {
name?: string;
status?: "active" | "inactive";
};
}
export namespace IEntity {
export type ISummary = {
id: string & tags.Format<"uuid">;
name: string;
status: "active" | "inactive";
created_at: string & tags.Format<"date-time">;
};
}
export namespace IEntity {
export type IRequest = {
page?: number & tags.Minimum<1>;
limit?: number & tags.Minimum<1> & tags.Maximum<100>;
search?: string;
status?: "active" | "inactive";
};
}
// UUID
id: string & tags.Format<"uuid">;
// Email
email: string & tags.Format<"email">;
// URL
url: string & tags.Format<"uri">;
// DateTime
created_at: string & tags.Format<"date-time">;
// Numeric constraints
page: number & tags.Minimum<1>;
limit: number & tags.Minimum<1> & tags.Maximum<100>;
// Nullable field
deleted_at: (string & tags.Format<"date-time">) | null;
// Optional nullable field
description?: string | null;
Fix redundant path segments where the same word repeats:
// Before - redundant word in path: /{word}/{word}s
@Controller("{prefix}/{word}/{word}s")
export class {Word}{Word}sController { ... }
// After - remove redundant segment
@Controller("{prefix}/{word}s")
export class {Word}sController { ... }
Pattern to fix:
/{word}/{word}s → /{word}s/{word}/{word}-* → /{word}-* or /{word}/*When fixing paths, also update:
@Controller() decoratornpm run build:main
Repeat Steps 2-4 until no interface errors.
| Error Pattern | Fix |
|---|---|
Empty interface {} | Read Prisma schema, define all fields |
| Missing typia tag | Add appropriate tags.Format<> |
| Nullable mismatch | Add | null for nullable fields |
| Missing namespace | Add namespace with ICreate, IUpdate, etc. |
Redundant path /{word}/{word}s | Remove duplication: /{word}s |
npm run build:main completes with no interface errors/{word}/{word}s pattern)