원클릭으로
code-style
Biome formatting, import style, strict TypeScript, naming (including React file names), or generated files.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Biome formatting, import style, strict TypeScript, naming (including React file names), or generated files.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Adding or changing routes in `apps/api`. One source of truth (`defineApiEndpoint` + a Zod schema) becomes an HTTP endpoint, an OpenAPI operation, an MCP tool, and a TS SDK method — descriptions and contracts must be written with all four readers in mind.
Layering and boundaries, web vs public API, app layout (clients, routes, logging), ports/adapters, runtime-portable domain/shared/utils code, multi-tenancy, DDD layout, or anti-patterns.
Preparing a production release, pushing a vX.Y.Z release tag, running scripts/release.sh, or updating CHANGELOG.md with the changes that are about to be deployed to production.
Enables or disables Latitude production maintenance mode by redirecting all publicly exposed production services to the Better Stack status page. Use when asked to start, stop, toggle, verify, or prepare a maintenance window.
Adding or reading env vars, updating .env.example, or validating config at startup with parseEnv / parseEnvOptional.
ClickHouse queries, Goose migrations, chdb test schema, or telemetry storage paths.
| name | code-style |
| description | Biome formatting, import style, strict TypeScript, naming (including React file names), or generated files. |
When to use: Biome formatting, import style, strict TypeScript, naming (including React file names), or generated files. For where domain code lives, see architecture-boundaries.
Biome config (biome.json) is the source of truth:
dist/**, coverage/**, .turbo/**, node_modules/**, **/*.gen.ts, **/models.dev.jsonpnpm --filter @app/api formatimport type { ... } for type-only importsindex.ts re-exporting from the same directory); import from the specific module.ts/.tsx extensions in relative imports (not .js). The codebase uses TypeScript source extensions for module resolutionBase config: tsconfig.base.json. Typechecking runs under tsgo (TypeScript 7 beta, via @typescript/native-preview) — use tsgo -p tsconfig.json --noEmit in typecheck scripts, never tsc.
strict: true is enabled; keep code strict-cleanNodeNext + ESM ("type": "module" in packages/apps)src/entities/<entity>.ts as the canonical domain contract. Schemas and types elsewhere in the same domain or at app/platform boundaries should derive from or reuse those entity shapes whenever practical instead of restating identical fields.id, createdAt, and updatedAt as core entity fields. Do not split an entity into a business payload plus an appended "persistence" wrapper unless there is a truly distinct boundary/input DTO that needs that separation.as const objects, not TypeScript enums.readonly fields for immutable domain data shapesany; use unknown + narrowingas { ... }); prefer relying on inferred types from librariesAGENTS.md. Only traps (code that looks removable or wrong but isn't), non-obvious external constraints, and sibling-complete contract docs (e.g. port JSDoc) earn a comment; never what-narration or design rationalesrc/entities/<entity>.ts.src/constants.ts.src/errors.ts.src/helpers.ts.PascalCasecamelCaseUPPER_SNAKE_CASE only for true constants; otherwise camelCase + as constbaseXxxSchema / BaseXxx naming rather than xxxCommonSchema / XxxCommon.src/index.ts, src/server.ts, src/main.tsx)my-component.tsx or my-component/index.tsx — never PascalCase file names (e.g. MyComponent.tsx). This matches the @repo/ui convention (table-skeleton.tsx, form-field.tsx, etc.)@app/*, @domain/*, etc.)apps/web/src/routeTree.gen.ts is auto-generated by TanStack Router — do not manually edit