원클릭으로
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 직업 분류 기준
| 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 librariessrc/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 editLayering 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.
Review the current conversation context and git changes, then persist durable repository knowledge into `dev-docs/*.md` by domain and into `AGENTS.md` for cross-cutting repo rules. Use after features, fixes, refactors, architecture changes, schema changes, or when the user mentions docs, documentation, design, architecture, business logic, conventions, or `AGENTS.md`.
Writing or debugging tests, choosing unit vs integration style, Postgres/ClickHouse tests, regenerating ClickHouse test schema, or exporting test helpers from packages without pulling test code into production bundles.
Queues and workers, domain event publishers, async notifications or projections, or not doing that work inside HTTP handlers.
apps/web UI — routes, @repo/ui, TanStack Start server functions and collections, forms (useForm + createFormSubmitHandler + fieldErrorsAsStrings for Zod field errors), Tailwind layout rules, design-system updates, and useEffect / useMountEffect policy.
ClickHouse queries, Goose migrations, chdb test schema, Weaviate collections/migrations, or telemetry storage paths.