@gaonjs/cli 0.10.0 → 0.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -98,6 +98,10 @@ Gaon 의 제1 설계 목표는 **"AI 가 개발을 가장 잘하는 프레임웍
98
98
  - 다단어 테이블의 스키마 **파일명**은 camelCase (`posts_tags` →
99
99
  `postsTags.ts`) — 파일 **안**의 `table('posts_tags', …)` 문자열은
100
100
  스네이크 그대로.
101
+ - **식별자** (결정 43): 함수·변수·메서드 = camelCase · 타입·Vue 컴포넌트 =
102
+ PascalCase · 상수·환경 변수 = UPPER_SNAKE. **DB 네이밍**(테이블명 ·
103
+ 컬럼명 · 스키마 파일 ↔ 테이블 ↔ `tables.d.ts` 키 변환 규칙)은
104
+ `agents/data.md` "DB 네이밍" 표가 정본이다 — 먼저 읽는다.
101
105
 
102
106
  ### 2.2 `gaon doctor` 검사 9종
103
107
 
@@ -150,7 +154,7 @@ Gaon 의 제1 설계 목표는 **"AI 가 개발을 가장 잘하는 프레임웍
150
154
  ```bash
151
155
  gaon check # .gaon 재생성 → typecheck + vue-tsc + build (+doctor)
152
156
  gaon test # vitest — DB·NATS 는 실 인프라 (agents/testing.md)
153
- gaon doctor # 정적 검사 8종 (§2.2)
157
+ gaon doctor # 정적 검사 9종 (§2.2)
154
158
  ```
155
159
 
156
160
  ### 4.1 CLI 명령 (전 명령 `--json` 지원)
@@ -76,6 +76,30 @@ import 하면 순환 참조가 생기므로, 실제 연결은 부팅 시 프레
76
76
  - doctor 가 **대상·조인 테이블의 존재**와 **커넥션 경계**(§7)를
77
77
  검사한다 (`unknown-relation-target` · `cross-connection-relation`).
78
78
 
79
+ ### 1.2 DB 네이밍 (결정 43)
80
+
81
+ 테이블명·컬럼명·파일명 사이의 표기와 변환은 아래가 전부다 — 추측하지 않는다.
82
+
83
+ | 대상 | 표기 | 예시 |
84
+ |---|---|---|
85
+ | 테이블명 (`table('...')` 문자열) | 소문자 · **복수** · 다단어 `snake_case` | `posts` · `posts_tags` |
86
+ | 컬럼명 (스키마 키 · Row 타입) | **camelCase** | `title` · `authorId` · `createdAt` |
87
+ | FK 컬럼 | 단수 테이블 + `Id` | `posts` → `postId` · `tags` → `tagId` |
88
+ | 타임스탬프 | `createdAt` · `updatedAt` (`...t.timestamps()`) | — |
89
+ | 스키마 파일명 | 테이블명을 **camelCase** 로 | `posts.ts` · `posts_tags` → `postsTags.ts` |
90
+ | export 심볼 | 파일명과 같은 camelCase | `export const postsTags = table('posts_tags', …)` |
91
+ | 모델 파일·심볼 | **PascalCase 단수** | `domain/models/Post.ts` · `export const Post` |
92
+ | `tables.d.ts` 키 · DB 실 테이블 | **테이블명 그대로**(snake_case) | `posts_tags: RowOf<typeof postsTags>` |
93
+
94
+ **변환 규칙은 하나** — 다단어 테이블 `posts_tags` 는:
95
+
96
+ - 스키마 **파일명**·**export 심볼** = camelCase `postsTags`,
97
+ - `table()` 문자열 · `tables.d.ts` 키 · DB 테이블 = snake_case `posts_tags`.
98
+
99
+ 컬럼은 어느 경우에도 camelCase 다(스네이크 컬럼 리터럴 금지 · `createdAt`
100
+ 이지 `created_at` 아님). 파일명 casing 은 doctor `schema-filename` 이
101
+ 강제한다(단수/복수는 대상 밖 · 결정 38).
102
+
79
103
  ### 2. 컬럼 타입 전체 (실 구현 · `packages/data/src/schema.ts:394-445`)
80
104
 
81
105
  | 빌더 | SQL 타입 | TS 타입 | 비고 |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gaonjs/cli",
3
- "version": "0.10.0",
3
+ "version": "0.10.1",
4
4
  "description": "Gaon CLI 구현: 제너레이터·스캐폴딩·로드맵 출력 (M1 스텁)",
5
5
  "type": "module",
6
6
  "license": "MIT",