sentix 2.0.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.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 JANUS
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,627 @@
1
+ # Sentix
2
+
3
+ **AI가 알아서 코드를 짜고, 검사하고, 배포까지 하는 개발·배포 총괄 프레임워크.**
4
+
5
+ > 당신은 "뭐 해줘" 한 마디만 하면 됩니다. 나머지는 Sentix가 합니다.
6
+
7
+ ---
8
+
9
+ ## 이게 뭔가요?
10
+
11
+ 프로그래밍 프로젝트에서, AI에게 일을 시킬 때 이런 과정이 필요합니다:
12
+
13
+ ```
14
+ 보통의 방법 (사람이 다 해야 함):
15
+ 1. 무엇을 만들지 정리한다 ← 사람
16
+ 2. 코드를 짠다 ← AI한테 시킴
17
+ 3. 코드가 맞는지 검토한다 ← 사람
18
+ 4. 서버에 올린다 ← 사람
19
+ 5. 보안에 문제 없는지 확인한다 ← 사람
20
+ 6. 다음에 뭘 할지 생각한다 ← 사람
21
+ ```
22
+
23
+ Sentix를 쓰면:
24
+
25
+ ```
26
+ Sentix 방법 (사람은 첫 줄만):
27
+ 1. "로그인에 세션 만료 추가해줘" ← 사람 (이것만!)
28
+ 2. 무엇을 만들지 정리한다 ← planner (AI)
29
+ 3. 코드를 짠다 ← dev (AI)
30
+ 4. 코드가 맞는지 검토한다 ← pr-review (AI)
31
+ 5. 서버에 올린다 ← devops (자동 스크립트)
32
+ 6. 보안에 문제 없는지 확인한다 ← security (AI)
33
+ 7. 다음에 뭘 할지 제안한다 ← roadmap (AI)
34
+ 8. "완료됐습니다" 보고 ← 사람에게 결과만 전달
35
+ ```
36
+
37
+ **한 줄 요약: AI 에이전트들이 따라야 할 "업무 규칙서"입니다.**
38
+
39
+ ---
40
+
41
+ ## 어떻게 작동하나요?
42
+
43
+ Governor라는 "총감독"이 있고, 6명의 "직원(에이전트)"이 있습니다.
44
+
45
+ ```
46
+ 당신: "이거 해줘"
47
+
48
+
49
+ ┌──────────────────────────┐
50
+ │ 총감독 (Governor) │ ← 전체 상황을 파악하고 지시
51
+ └────────────┬─────────────┘
52
+
53
+ ┌─────────┼─────────┬──────────┬──────────┐
54
+ ▼ ▼ ▼ ▼ ▼
55
+ 기획자 개발자 검토자 보안관 전략가
56
+ (planner) (dev) (pr-review) (security) (roadmap)
57
+
58
+ 각 직원은 자기 일만 하고, 결과를 총감독에게 보고합니다.
59
+ 직원끼리 직접 대화하지 않습니다.
60
+ ```
61
+
62
+ 실패하면? 자동으로 수정합니다 (dev-fix).
63
+ 또 실패하면? 재시도합니다 (심각하면 3회, 보통이면 10회).
64
+ 그래도 안 되면? 사람에게 알립니다.
65
+
66
+ ---
67
+
68
+ ## 설치 방법
69
+
70
+ ### 필요한 것
71
+
72
+ - [Node.js](https://nodejs.org/) 18 이상
73
+ - Git
74
+ - Claude 접근 (아래 중 하나):
75
+ - [Claude Code](https://docs.anthropic.com/en/docs/claude-code) — 완전 자동
76
+ - [claude.ai](https://claude.ai) 웹/모바일 — 안내 모드
77
+ - Claude API — 도구 연결 시 완전 자동
78
+
79
+ ### 방법 1: 명령어 한 줄 (가장 쉬움)
80
+
81
+ ```bash
82
+ # 당신의 프로젝트 폴더에서:
83
+ npx sentix init
84
+ ```
85
+
86
+ 이것만 하면 됩니다. 필요한 파일이 자동으로 만들어집니다.
87
+
88
+ ### 방법 2: 설치 스크립트
89
+
90
+ ```bash
91
+ # Mac / Linux
92
+ bash install-sentix.sh /path/to/your-project
93
+
94
+ # Windows PowerShell
95
+ .\install-sentix.ps1 -Target C:\path\to\your-project
96
+ ```
97
+
98
+ ### 방법 3: 수동 복사
99
+
100
+ ```bash
101
+ # 1. 규칙서 2개 복사
102
+ cp FRAMEWORK.md CLAUDE.md /path/to/your-project/
103
+
104
+ # 2. 설정 폴더 복사
105
+ cp -r .sentix/ /path/to/your-project/.sentix/
106
+
107
+ # 3. 학습 폴더 생성
108
+ mkdir -p /path/to/your-project/tasks/tickets
109
+ ```
110
+
111
+ ### 설치 확인
112
+
113
+ ```bash
114
+ cd /path/to/your-project
115
+ npx sentix doctor
116
+ ```
117
+
118
+ 모든 항목이 ✓ 이면 성공입니다.
119
+
120
+ ---
121
+
122
+ ## 사용 방법
123
+
124
+ Sentix는 **어디서든** 작동합니다. 환경에 따라 자동으로 모드가 결정됩니다.
125
+
126
+ ### 환경별 사용법
127
+
128
+ | 환경 | 방법 | 자동화 수준 |
129
+ |---|---|---|
130
+ | **Claude Code / Cursor / Windsurf** | CLAUDE.md가 있는 프로젝트에서 대화하면 자동 작동 | 완전 자동 |
131
+ | **claude.ai 웹** | CLAUDE.md를 Project Knowledge에 업로드하고 대화 | 반자동 (실행은 사용자) |
132
+ | **Claude 모바일 앱** | CLAUDE.md 내용을 대화에 붙여넣고 요청 | 안내 모드 |
133
+ | **Claude API** | system prompt에 CLAUDE.md 포함 | 완전 자동 (도구 제공 시) |
134
+
135
+ ### 1. Claude Code / Cursor / Windsurf (완전 자동)
136
+
137
+ **설정:** 없음. CLAUDE.md가 있는 프로젝트 폴더에서 대화를 시작하면 자동으로 Governor 모드가 됩니다.
138
+
139
+ ```
140
+ 당신: "로그인에 세션 만료 추가해줘"
141
+
142
+ Claude (Governor):
143
+ 1. 요청 분석 → FEATURE 파이프라인 선택
144
+ 2. node bin/sentix.js feature add "세션 만료 추가" → 티켓 생성
145
+ 3. 코드 직접 구현
146
+ 4. 테스트 실행
147
+ 5. node bin/sentix.js version bump minor → 버전 올림
148
+ 6. "완료됐습니다" 보고
149
+ ```
150
+
151
+ ### 2. claude.ai 웹 (반자동)
152
+
153
+ **설정 방법:**
154
+
155
+ 1. [claude.ai](https://claude.ai)에서 프로젝트를 생성합니다
156
+ 2. 프로젝트 설정 → **Project Knowledge**에 아래 파일들을 업로드합니다:
157
+ - `CLAUDE.md` (필수)
158
+ - `FRAMEWORK.md` (권장)
159
+ - `tasks/lessons.md` (있다면)
160
+ 3. 대화를 시작하면 Claude가 자동으로 Governor로서 행동합니다
161
+
162
+ ```
163
+ 당신: "로그인에 세션 만료 추가해줘"
164
+
165
+ Claude (Governor):
166
+ 1. [SENTIX:FEATURE] feat-001: 세션 만료 추가 (complexity: medium)
167
+ 2. 코드 변경을 코드 블록으로 제시
168
+ 3. "npm run test를 실행해서 결과를 공유해주세요"
169
+ 4. [SENTIX:VERSION] "이 명령어를 실행하세요: node bin/sentix.js version bump minor"
170
+ 5. 완료 보고
171
+ ```
172
+
173
+ > 코드 실행은 사용자가 직접 합니다. Claude는 무엇을 어디에 적용할지 안내합니다.
174
+
175
+ ### 3. Claude 모바일 앱 (안내 모드)
176
+
177
+ **설정 방법:**
178
+
179
+ 1. CLAUDE.md 파일의 내용을 복사합니다
180
+ 2. 새 대화를 시작하고, 첫 메시지에 CLAUDE.md 내용을 붙여넣습니다:
181
+ ```
182
+ 아래 CLAUDE.md를 읽고 Governor로서 행동해줘.
183
+
184
+ [CLAUDE.md 내용 붙여넣기]
185
+ ```
186
+ 3. 그 다음부터 평소처럼 요청하면 됩니다
187
+
188
+ > 파일 접근이 불가능하므로, 모든 코드는 코드 블록으로 제시되고 실행은 사용자가 합니다.
189
+
190
+ ### 4. Claude API (완전 자동)
191
+
192
+ ```python
193
+ # system prompt에 CLAUDE.md 내용을 포함시킵니다
194
+ import anthropic
195
+
196
+ client = anthropic.Anthropic()
197
+
198
+ with open("CLAUDE.md") as f:
199
+ claude_md = f.read()
200
+
201
+ response = client.messages.create(
202
+ model="claude-sonnet-4-20250514",
203
+ system=claude_md,
204
+ messages=[{"role": "user", "content": "로그인에 세션 만료 추가해줘"}],
205
+ # tools를 제공하면 파일 읽기/쓰기, 명령 실행도 가능
206
+ )
207
+ ```
208
+
209
+ > `tools`에 파일시스템/터미널 도구를 제공하면 CLI 모드처럼 완전 자동화됩니다.
210
+
211
+ ### 상태 확인 (CLI 모드)
212
+
213
+ ```bash
214
+ sentix status
215
+ ```
216
+
217
+ 현재 어떤 단계를 실행 중인지, 티켓 상태, 학습 데이터가 얼마나 쌓였는지 보여줍니다.
218
+
219
+ ---
220
+
221
+ ## CLI 명령어 전체 목록
222
+
223
+ ### 기본
224
+
225
+ | 명령어 | 하는 일 |
226
+ |---|---|
227
+ | `sentix init` | 프로젝트에 Sentix 설치 (자동으로 기술 스택 감지) |
228
+ | `sentix run "요청"` | AI 파이프라인 실행 |
229
+ | `sentix status` | 현재 상태 보기 (Governor + 티켓 + 학습) |
230
+ | `sentix doctor` | 설치가 제대로 됐는지 확인 |
231
+ | `sentix metrics` | AI 성공률/재시도 통계 보기 |
232
+ | `sentix update` | 프레임워크 파일을 최신 sentix로 업데이트 |
233
+ | `sentix update --dry` | 업데이트 미리보기 (변경 없이 확인만) |
234
+ | `sentix context` | 연동 프로젝트 컨텍스트 가져오기 |
235
+ | `sentix context --list` | 연동 프로젝트 접근 상태 확인 |
236
+
237
+ ### 버전 관리
238
+
239
+ | 명령어 | 하는 일 |
240
+ |---|---|
241
+ | `sentix version current` | 현재 버전 + git tag 확인 |
242
+ | `sentix version bump [major\|minor\|patch]` | 버전 올림 + CHANGELOG + git tag |
243
+ | `sentix version changelog` | CHANGELOG 미리보기 |
244
+
245
+ ### 버그/이슈 티켓
246
+
247
+ | 명령어 | 하는 일 |
248
+ |---|---|
249
+ | `sentix ticket create "설명"` | 버그 티켓 생성 (severity 자동 분류) |
250
+ | `sentix ticket list` | 티켓 목록 (필터링 가능) |
251
+ | `sentix ticket debug <id>` | AI가 자동으로 디버깅 |
252
+
253
+ ### 기능 추가
254
+
255
+ | 명령어 | 하는 일 |
256
+ |---|---|
257
+ | `sentix feature add "설명"` | 기능 티켓 + 복잡도 평가 + 영향 분석 |
258
+ | `sentix feature list` | 기능 목록 |
259
+ | `sentix feature impact "설명"` | 영향 분석만 실행 |
260
+
261
+ ### 플러그인
262
+
263
+ | 명령어 | 하는 일 |
264
+ |---|---|
265
+ | `sentix plugin list` | 플러그인 목록 보기 |
266
+ | `sentix plugin create 이름` | 나만의 플러그인 만들기 |
267
+
268
+ 각 명령어에 `--help`를 붙이면 상세 설명이 나옵니다:
269
+
270
+ ```bash
271
+ sentix version --help
272
+ ```
273
+
274
+ ---
275
+
276
+ ## 설치하면 생기는 파일들
277
+
278
+ ```
279
+ 내 프로젝트/
280
+ ├── FRAMEWORK.md ← 설계 문서 (사람이 읽는 전체 구조 설명)
281
+ ├── CLAUDE.md ← AI가 읽는 실행 인덱스 (환경 자동 적응 + 상세는 docs/ 참조)
282
+ ├── INTERFACE.md ← 다른 프로젝트와 연결할 때 쓰는 계약서
283
+ ├── registry.md ← 연결된 프로젝트 목록
284
+
285
+ ├── docs/ ← 상세 규칙 (CLAUDE.md에서 참조, 필요할 때만 로드)
286
+ │ ├── governor-sop.md ← 파이프라인별 SOP 상세 + 실행 예시
287
+ │ ├── agent-scopes.md ← 에이전트별 파일 범위 매트릭스
288
+ │ ├── severity.md ← severity 분기 로직
289
+ │ └── architecture.md ← Mermaid 아키텍처 다이어그램
290
+
291
+ ├── .sentix/ ← 설정 폴더
292
+ │ ├── config.toml ← 기능 켜기/끄기 + 자동 버전 범프 설정
293
+ │ ├── providers/ ← AI 선택 (Claude, OpenAI, Ollama)
294
+ │ └── rules/ ← 절대 어기면 안 되는 규칙 6개
295
+
296
+ ├── tasks/ ← AI가 학습하는 폴더 (자동으로 채워짐)
297
+ │ ├── lessons.md ← 실패에서 배운 것
298
+ │ ├── patterns.md ← 사용자 행동 패턴
299
+ │ ├── roadmap.md ← 앞으로 할 일 계획
300
+ │ └── tickets/ ← 작업 티켓 + index.json (자동 관리)
301
+
302
+ └── (기존 프로젝트 파일들은 그대로)
303
+ ```
304
+
305
+ **기존 프로젝트 파일은 건드리지 않습니다.** 새 파일만 추가됩니다.
306
+
307
+ ---
308
+
309
+ ## AI는 어떤 걸 쓸 수 있나요?
310
+
311
+ `.sentix/providers/` 폴더에서 설정합니다:
312
+
313
+ | AI | 파일 | 특징 |
314
+ |---|---|---|
315
+ | **Claude** (기본) | `claude.toml` | 가장 정확함. Claude Code 필요 |
316
+ | **OpenAI** | `openai.toml` | GPT-4o 사용. API 키 필요 |
317
+ | **Ollama** | `ollama.toml` | 인터넷 없이 로컬에서 실행 가능 |
318
+
319
+ ---
320
+
321
+ ## 배포는 어떻게 하나요?
322
+
323
+ `env-profiles/` 폴더에 환경을 설정하면, AI가 알아서 배포합니다.
324
+
325
+ | 환경 | 설정값 | 설명 |
326
+ |---|---|---|
327
+ | AWS EC2 | `method = "ssm"` | AWS 명령어로 자동 배포 |
328
+ | NAS/서버 | `method = "ssh"` | SSH로 자동 배포 |
329
+ | VPN 내부 | `method = "manual"` | 스크립트만 만들어줌 (직접 실행) |
330
+ | 내 컴퓨터 | `method = "local"` | Docker로 바로 실행 |
331
+
332
+ ```bash
333
+ # 환경 전환은 이것만:
334
+ cd env-profiles
335
+ ln -sf local-dev.toml active.toml # 로컬 개발용
336
+ # ln -sf nas-onprem.toml active.toml # NAS 배포용
337
+ ```
338
+
339
+ ---
340
+
341
+ ## 절대 어기면 안 되는 규칙 6개
342
+
343
+ AI도 이 규칙은 무시할 수 없습니다:
344
+
345
+ | # | 규칙 | 왜? |
346
+ |---|---|---|
347
+ | 1 | 작업 전에 테스트 결과를 저장해둬야 한다 | 나중에 비교하려고 |
348
+ | 2 | 맡은 범위 밖의 파일은 건드리면 안 된다 | 다른 기능이 망가질 수 있어서 |
349
+ | 3 | 이미 있는 API를 삭제하면 안 된다 | 다른 곳에서 쓰고 있을 수 있어서 |
350
+ | 4 | 이미 있는 테스트를 삭제하면 안 된다 | 테스트가 실패하면 코드를 고쳐야지, 테스트를 지우면 안 됨 |
351
+ | 5 | 한 번에 50줄 넘게 삭제하면 안 된다 | 큰 삭제는 별도 작업으로 분리 |
352
+ | 6 | **이미 있는 기능을 삭제하면 안 된다** | 버그는 고치는 거지, 없애는 게 아님 |
353
+
354
+ ### 검증 게이트 — AI가 아닌 코드가 강제합니다
355
+
356
+ 위 규칙 중 2~5번은 `sentix run` 실행 후 **코드가 자동으로 검증**합니다.
357
+ AI에게 "지켜줘"라고 부탁하는 것이 아니라, git diff를 분석하는 결정론적 코드가 위반 여부를 판단합니다.
358
+
359
+ ```
360
+ AI 작업 완료
361
+
362
+ 검증 게이트 (코드가 판단)
363
+ ✓ 변경 파일이 허용 범위 안에 있는가?
364
+ ✓ 기존 export가 삭제되지 않았는가?
365
+ ✓ 테스트가 삭제되지 않았는가?
366
+ ✓ 순삭제가 50줄 이내인가?
367
+ → 위반 시 경고 + 상세 출력
368
+ ```
369
+
370
+ 검증 결과는 `sentix metrics`에서 확인할 수 있습니다.
371
+
372
+ ---
373
+
374
+ ## 학습 기능
375
+
376
+ Sentix는 사용할수록 똑똑해집니다:
377
+
378
+ | 뭘 배우나? | 어디에 저장? | 예시 |
379
+ |---|---|---|
380
+ | 실패에서 배운 것 | `tasks/lessons.md` | "이 라이브러리는 이렇게 쓰면 에러남" |
381
+ | 사용자 행동 패턴 | `tasks/patterns.md` | "매주 월요일마다 보안 스캔을 요청함" |
382
+ | 다음에 할 것 예측 | `tasks/predictions.md` | "이번에도 테스트 커버리지 올려달라고 할 것 같음" |
383
+
384
+ **"이거 기억해"라고 말할 필요 없습니다.** 자동으로 기억합니다.
385
+
386
+ ---
387
+
388
+ ## 컨텍스트 관리
389
+
390
+ Sentix는 AI의 토큰 낭비를 줄이기 위해 **Lazy Loading** 구조를 사용합니다.
391
+
392
+ ```
393
+ CLAUDE.md (경량 인덱스, ~100줄)
394
+ ├── "상세 SOP → docs/governor-sop.md" ← 필요할 때만 로드
395
+ ├── "에이전트 범위 → docs/agent-scopes.md" ← 필요할 때만 로드
396
+ ├── "severity → docs/severity.md" ← 필요할 때만 로드
397
+ └── "아키텍처 → docs/architecture.md" ← Mermaid 다이어그램
398
+ ```
399
+
400
+ 또한 주요 폴더에 **폴더별 CLAUDE.md**를 두어, AI가 해당 디렉토리에 진입했을 때 필요한 컨텍스트만 로드합니다:
401
+
402
+ | 폴더 | CLAUDE.md 내용 |
403
+ |------|---------------|
404
+ | `src/` | 모듈 구조, registry 패턴, context API |
405
+ | `src/commands/` | 명령어 추가법, 기존 명령어 목록 |
406
+ | `.github/workflows/` | 워크플로우 개요, 공급망 보안 정책 |
407
+ | `agent-profiles/` | TOML 포맷, 에이전트 설정 |
408
+
409
+ ---
410
+
411
+ ## 테스트
412
+
413
+ ```bash
414
+ npm test
415
+ ```
416
+
417
+ Node.js 내장 테스트 러너를 사용합니다. `__tests__/` 디렉토리에 테스트 파일이 있습니다.
418
+
419
+ ---
420
+
421
+ ## 업데이트 방법
422
+
423
+ Sentix가 업데이트되면 (보안 강화, 워크플로우 개선 등), 이미 설치된 프로젝트에도 적용해야 합니다.
424
+
425
+ ### 방법 1: sentix update (최신 sentix 설치 시)
426
+
427
+ ```bash
428
+ sentix update # 실제 적용
429
+ sentix update --dry # 미리보기만
430
+ ```
431
+
432
+ ### 방법 2: 독립 스크립트 (구형 sentix에서도 동작)
433
+
434
+ ```bash
435
+ # sentix 버전에 관계없이 항상 동작합니다
436
+ curl -sL https://raw.githubusercontent.com/kgg1226/sentix/main/scripts/update-downstream.sh | bash
437
+
438
+ # 미리보기
439
+ curl -sL https://raw.githubusercontent.com/kgg1226/sentix/main/scripts/update-downstream.sh | bash -s -- --dry
440
+ ```
441
+
442
+ ### 방법 3: 자동 동기화 (registry 등록 시)
443
+
444
+ sentix의 `registry.md`에 등록된 프로젝트는 프레임워크 파일 변경 시 자동으로 PR을 받습니다.
445
+
446
+ ### 무엇이 업데이트되나요?
447
+
448
+ | 업데이트 됨 (프레임워크 공통) | 안 됨 (프로젝트 고유) |
449
+ |---|---|
450
+ | `.github/workflows/deploy.yml` | `CLAUDE.md` |
451
+ | `.github/workflows/security-scan.yml` | `.sentix/config.toml` |
452
+ | `.sentix/rules/hard-rules.md` | `.sentix/providers/` |
453
+ | `FRAMEWORK.md` | `env-profiles/`, `tasks/` |
454
+ | `docs/*.md` (SOP, scopes, severity, architecture) | 폴더별 `CLAUDE.md` |
455
+
456
+ **프로젝트 고유 설정은 절대 덮어쓰지 않습니다.**
457
+
458
+ ---
459
+
460
+ ## 여러 프로젝트를 연결하면?
461
+
462
+ 프로젝트 A의 API를 바꿀 때, 프로젝트 B가 그 API를 쓰고 있으면:
463
+
464
+ ```
465
+ 프로젝트 A: "인증 API 바꿔줘"
466
+
467
+ Sentix: "잠깐, 프로젝트 B가 이 API 쓰고 있네."
468
+
469
+ Sentix: "프로젝트 B가 안 망가지게 호환되는 방식으로 바꿀게."
470
+
471
+ 배포 후: 프로젝트 B에도 자동으로 테스트 실행
472
+ ```
473
+
474
+ 이걸 위해 `INTERFACE.md` (API 계약서)와 `registry.md` (연결 목록)가 있습니다.
475
+
476
+ ### 다른 프로젝트 파일 읽기
477
+
478
+ ```bash
479
+ # 연동 프로젝트 목록 + 접근 상태 확인
480
+ sentix context --list
481
+
482
+ # 프로젝트 컨텍스트 가져오기 (INTERFACE.md, README.md)
483
+ sentix context asset-manager
484
+
485
+ # 스키마까지 포함 (package.json, config, lessons.md)
486
+ sentix context asset-manager --full
487
+ ```
488
+
489
+ 로컬(`../asset-manager/`)에 있으면 파일시스템으로, 없으면 GitHub에서 가져옵니다.
490
+ 가져온 파일은 `tasks/context/asset-manager/`에 캐시되어 AI가 바로 참조할 수 있습니다.
491
+
492
+ 또한 sentix 프레임워크 자체가 업데이트되면:
493
+
494
+ ```
495
+ sentix: 보안 워크플로우 강화 (Trivy 추가, SHA 핀 고정)
496
+
497
+ sync-framework: registry.md에 등록된 프로젝트 감지
498
+
499
+ 프로젝트 A, B, C: 자동 PR 생성 (변경 내역 + diff 포함)
500
+
501
+ 각 프로젝트 담당자: 리뷰 후 병합
502
+ ```
503
+
504
+ ---
505
+
506
+ ## 개발 서버 (개발자용)
507
+
508
+ 대시보드를 만들 때 쓰는 테스트 서버입니다:
509
+
510
+ ```bash
511
+ npm run dev # http://localhost:4400 에서 실행
512
+ ```
513
+
514
+ | 주소 | 내용 |
515
+ |---|---|
516
+ | `/api/status` | 전체 상태 요약 |
517
+ | `/api/governor` | 현재 실행 중인 작업 |
518
+ | `/api/tickets` | 전체 티켓 목록 (버그 + 기능) |
519
+ | `/api/features` | 기능 티켓만 필터링 |
520
+ | `/api/version` | 현재 버전 정보 |
521
+ | `/api/lessons` | 학습한 실패 패턴 |
522
+ | `/api/patterns` | 사용자 행동 패턴 |
523
+ | `/api/predictions` | 다음 요청 예측 |
524
+ | `/api/metrics` | AI 성공률 통계 |
525
+ | `/api/pattern-log` | 최근 이벤트 로그 (100건) |
526
+ | `/api/security` | 보안 리포트 |
527
+ | `/api/roadmap` | 로드맵 |
528
+ | `/health` | 서버 정상 여부 |
529
+
530
+ ---
531
+
532
+ ## FAQ
533
+
534
+ **Q: 기존 프로젝트에 Sentix를 설치하면 기존 코드가 바뀌나요?**
535
+ A: 아닙니다. 새 파일만 추가됩니다. 기존 코드는 그대로입니다.
536
+
537
+ **Q: Claude Code가 없으면 쓸 수 없나요?**
538
+ A: 아닙니다. Sentix는 환경에 맞게 자동 적응합니다:
539
+ - **Claude Code / Cursor** — 완전 자동 (파이프라인 직접 실행)
540
+ - **claude.ai 웹/모바일** — 안내 모드 (코드 블록 + 실행 지시)
541
+ - **Claude API** — 도구(tool) 제공 시 완전 자동
542
+ CLAUDE.md를 읽은 Claude는 어떤 환경이든 Governor로서 동작합니다.
543
+
544
+ **Q: 무료인가요?**
545
+ A: Sentix 자체는 무료(MIT). AI 사용 비용은 AI 제공자(Anthropic, OpenAI 등)에 따라 다릅니다.
546
+
547
+ **Q: 어떤 프로그래밍 언어를 지원하나요?**
548
+ A: 자동 감지: Node.js, Python, Go, Rust. 그 외 언어도 CLAUDE.md를 수동으로 편집하면 사용 가능합니다.
549
+
550
+ **Q: 위험하지 않나요? AI가 마음대로 코드를 바꾸면?**
551
+ A: 6개 하드 룰이 있습니다. 기존 기능 삭제 금지, 범위 밖 수정 금지, 테스트 삭제 금지 등.
552
+ 이 규칙은 AI도 무시할 수 없습니다.
553
+
554
+ ---
555
+
556
+ ## 런타임 모드
557
+
558
+ Sentix는 두 가지 모드로 작동합니다. 용도에 따라 전환하세요.
559
+
560
+ | | Framework Mode (기본) | Engine Mode |
561
+ |---|---|---|
562
+ | **AI 호출** | Claude Code/Cursor가 담당 | sentix가 직접 API 호출 |
563
+ | **비용** | $0 추가 (구독만) | API 토큰 비용 |
564
+ | **파이프라인** | 체인 실행 (PLAN→DEV→GATE→REVIEW→FINALIZE) | 상태 머신 오케스트레이션 |
565
+ | **검증 게이트** | 각 phase 사이에 실행 + pre-commit hook | 블로킹 + 자동 재시도 |
566
+ | **멀티 프로바이더** | 불가 (Claude Code만) | Claude + OpenAI + Ollama 선택 |
567
+ | **퓨전 리뷰** | 불가 | 여러 AI 동시 리뷰 → Best-of-N |
568
+ | **Headless CI** | Claude Code CLI 필요 | API 키만 있으면 어디서든 |
569
+ | **필요 조건** | Claude Code 설치 | API 키 환경변수 |
570
+
571
+ ### 모드 전환
572
+
573
+ ```bash
574
+ # config.toml에서 기본값 설정
575
+ # .sentix/config.toml → [runtime] mode = "framework" 또는 "engine"
576
+
577
+ # CLI 플래그로 즉시 전환
578
+ sentix run "요청" # config 기본 모드
579
+ sentix run "요청" --engine # 이번만 engine 모드
580
+ sentix run "요청" --single # 이번만 단일 호출 (legacy)
581
+ ```
582
+
583
+ ### Engine mode 설정
584
+
585
+ ```bash
586
+ # 1. .sentix/config.toml 에서 모드 변경
587
+ # [runtime]
588
+ # mode = "engine"
589
+
590
+ # 2. API 키 환경변수 설정
591
+ export ANTHROPIC_API_KEY=sk-ant-... # Claude API
592
+ # 또는
593
+ export OPENAI_API_KEY=sk-... # OpenAI
594
+
595
+ # 3. 확인
596
+ sentix doctor # → Runtime: engine, Provider: claude, API key: set
597
+ ```
598
+
599
+ ---
600
+
601
+ ## 정리
602
+
603
+ ```
604
+ 1. sentix init ← 설치 (1분)
605
+ 2. CLAUDE.md 기술 스택 확인 ← 확인 (1분)
606
+ 3. sentix doctor ← 검증 (10초)
607
+ 4. sentix run "하고 싶은 것" ← 사용 (끝!)
608
+ ```
609
+
610
+ ---
611
+
612
+ ## Contributing
613
+
614
+ - **env-profiles**: 새 배포 환경 추가 (AWS ECS, GCP, k8s 등)
615
+ - **providers**: 새 AI 추가 (Gemini, Mistral 등)
616
+ - **plugins**: 커스텀 플러그인 (`sentix plugin create`로 시작)
617
+
618
+ ---
619
+
620
+ ## License
621
+
622
+ MIT
623
+
624
+ ---
625
+
626
+ *Sentix — 한 마디면 충분합니다.*
627
+ *by JANUS*