@mandujs/cli 0.2.0 → 0.2.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.
Files changed (2) hide show
  1. package/README.md +170 -0
  2. package/package.json +1 -1
package/README.md ADDED
@@ -0,0 +1,170 @@
1
+ # @mandujs/cli
2
+
3
+ Agent-Native Fullstack Framework CLI - 에이전트가 코딩해도 아키텍처가 무너지지 않는 개발 OS
4
+
5
+ ## 설치
6
+
7
+ ```bash
8
+ # Bun 필수
9
+ bun add -D @mandujs/cli
10
+ ```
11
+
12
+ ## 빠른 시작
13
+
14
+ ```bash
15
+ # 새 프로젝트 생성
16
+ bunx @mandujs/cli init my-app
17
+ cd my-app
18
+
19
+ # 개발 서버 시작
20
+ bun run dev
21
+ ```
22
+
23
+ ## 명령어
24
+
25
+ ### `mandu init <project-name>`
26
+
27
+ 새 Mandu 프로젝트를 생성합니다.
28
+
29
+ ```bash
30
+ bunx @mandujs/cli init my-app
31
+ ```
32
+
33
+ 생성되는 구조:
34
+ ```
35
+ my-app/
36
+ ├── apps/
37
+ │ ├── server/main.ts # 서버 진입점
38
+ │ └── web/entry.tsx # 클라이언트 진입점
39
+ ├── spec/
40
+ │ └── routes.manifest.json # SSOT - 라우트 정의
41
+ ├── tests/ # 테스트 템플릿
42
+ ├── package.json
43
+ └── tsconfig.json
44
+ ```
45
+
46
+ ### `mandu dev`
47
+
48
+ 개발 서버를 시작합니다 (HMR 지원).
49
+
50
+ ```bash
51
+ bun run dev
52
+ # 또는
53
+ bunx mandu dev
54
+ ```
55
+
56
+ ### `mandu spec`
57
+
58
+ spec 파일을 검증하고 lock 파일을 갱신합니다.
59
+
60
+ ```bash
61
+ bun run spec
62
+ ```
63
+
64
+ ### `mandu generate`
65
+
66
+ spec 기반으로 코드를 생성합니다.
67
+
68
+ ```bash
69
+ bun run generate
70
+ ```
71
+
72
+ ### `mandu guard`
73
+
74
+ 아키텍처 규칙을 검사하고 위반 사항을 자동 수정합니다.
75
+
76
+ ```bash
77
+ bun run guard
78
+
79
+ # 자동 수정 비활성화
80
+ bunx mandu guard --no-auto-correct
81
+ ```
82
+
83
+ 자동 수정 가능한 규칙:
84
+ - `SPEC_HASH_MISMATCH` → lock 파일 갱신
85
+ - `GENERATED_MANUAL_EDIT` → 코드 재생성
86
+ - `SLOT_NOT_FOUND` → slot 파일 생성
87
+
88
+ ## Spec 파일 작성
89
+
90
+ `spec/routes.manifest.json`이 모든 라우트의 단일 진실 공급원(SSOT)입니다.
91
+
92
+ ```json
93
+ {
94
+ "version": "1.0.0",
95
+ "routes": [
96
+ {
97
+ "id": "getUsers",
98
+ "pattern": "/api/users",
99
+ "kind": "api",
100
+ "module": "apps/server/api/users.ts"
101
+ },
102
+ {
103
+ "id": "homePage",
104
+ "pattern": "/",
105
+ "kind": "page",
106
+ "module": "apps/server/pages/home.ts",
107
+ "componentModule": "apps/web/pages/Home.tsx"
108
+ }
109
+ ]
110
+ }
111
+ ```
112
+
113
+ ### Slot 시스템 (v0.2.0+)
114
+
115
+ 비즈니스 로직을 분리하려면 `slotModule`을 추가합니다:
116
+
117
+ ```json
118
+ {
119
+ "id": "getUsers",
120
+ "pattern": "/api/users",
121
+ "kind": "api",
122
+ "module": "apps/server/api/users.generated.ts",
123
+ "slotModule": "apps/server/api/users.slot.ts"
124
+ }
125
+ ```
126
+
127
+ - `*.generated.ts` - 프레임워크가 관리 (수정 금지)
128
+ - `*.slot.ts` - 개발자가 작성하는 비즈니스 로직
129
+
130
+ ## 개발 워크플로우
131
+
132
+ ```bash
133
+ # 1. spec 수정
134
+ # 2. spec 검증 및 lock 갱신
135
+ bun run spec
136
+
137
+ # 3. 코드 생성
138
+ bun run generate
139
+
140
+ # 4. 아키텍처 검사
141
+ bun run guard
142
+
143
+ # 5. 테스트
144
+ bun test
145
+
146
+ # 6. 개발 서버
147
+ bun run dev
148
+ ```
149
+
150
+ ## 테스트
151
+
152
+ Bun 테스트 프레임워크를 기본 지원합니다.
153
+
154
+ ```bash
155
+ bun test # 테스트 실행
156
+ bun test --watch # 감시 모드
157
+ ```
158
+
159
+ ## 요구 사항
160
+
161
+ - Bun >= 1.0.0
162
+ - React >= 18.0.0
163
+
164
+ ## 관련 패키지
165
+
166
+ - [@mandujs/core](https://www.npmjs.com/package/@mandujs/core) - 핵심 런타임
167
+
168
+ ## 라이선스
169
+
170
+ MIT
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mandujs/cli",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Agent-Native Fullstack Framework - 에이전트가 코딩해도 아키텍처가 무너지지 않는 개발 OS",
5
5
  "type": "module",
6
6
  "main": "./src/main.ts",