@su-record/vibe 2.2.2 → 2.2.4

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 (81) hide show
  1. package/.claude/settings.json +152 -152
  2. package/.claude/vibe/constitution.md +184 -184
  3. package/.claude/vibe/rules/core/communication-guide.md +104 -104
  4. package/.claude/vibe/rules/core/development-philosophy.md +52 -52
  5. package/.claude/vibe/rules/core/quick-start.md +120 -120
  6. package/.claude/vibe/rules/quality/bdd-contract-testing.md +388 -388
  7. package/.claude/vibe/rules/quality/checklist.md +276 -276
  8. package/.claude/vibe/rules/quality/testing-strategy.md +437 -437
  9. package/.claude/vibe/rules/standards/anti-patterns.md +369 -369
  10. package/.claude/vibe/rules/standards/code-structure.md +291 -291
  11. package/.claude/vibe/rules/standards/complexity-metrics.md +312 -312
  12. package/.claude/vibe/rules/standards/naming-conventions.md +198 -198
  13. package/.claude/vibe/setup.sh +31 -31
  14. package/CLAUDE.md +323 -323
  15. package/LICENSE +21 -21
  16. package/README.md +724 -721
  17. package/agents/explorer.md +48 -0
  18. package/agents/implementer.md +53 -0
  19. package/agents/research/best-practices-agent.md +139 -0
  20. package/agents/research/codebase-patterns-agent.md +147 -0
  21. package/agents/research/framework-docs-agent.md +181 -0
  22. package/agents/research/security-advisory-agent.md +167 -0
  23. package/agents/review/architecture-reviewer.md +107 -0
  24. package/agents/review/complexity-reviewer.md +116 -0
  25. package/agents/review/data-integrity-reviewer.md +88 -0
  26. package/agents/review/git-history-reviewer.md +103 -0
  27. package/agents/review/performance-reviewer.md +86 -0
  28. package/agents/review/python-reviewer.md +152 -0
  29. package/agents/review/rails-reviewer.md +139 -0
  30. package/agents/review/react-reviewer.md +144 -0
  31. package/agents/review/security-reviewer.md +80 -0
  32. package/agents/review/simplicity-reviewer.md +140 -0
  33. package/agents/review/test-coverage-reviewer.md +116 -0
  34. package/agents/review/typescript-reviewer.md +127 -0
  35. package/agents/searcher.md +54 -0
  36. package/agents/simplifier.md +119 -0
  37. package/agents/tester.md +49 -0
  38. package/commands/vibe.analyze.md +239 -0
  39. package/commands/vibe.compound.md +261 -0
  40. package/commands/vibe.continue.md +88 -0
  41. package/commands/vibe.diagram.md +178 -0
  42. package/commands/vibe.e2e.md +266 -0
  43. package/commands/vibe.reason.md +306 -0
  44. package/commands/vibe.review.md +324 -0
  45. package/commands/vibe.run.md +836 -0
  46. package/commands/vibe.setup.md +97 -0
  47. package/commands/vibe.spec.md +383 -0
  48. package/commands/vibe.ui.md +137 -0
  49. package/commands/vibe.verify.md +238 -0
  50. package/dist/cli/index.js +395 -395
  51. package/dist/cli/index.js.map +1 -1
  52. package/dist/lib/MemoryManager.js +92 -92
  53. package/dist/lib/PythonParser.js +108 -108
  54. package/dist/lib/gemini-mcp.js +15 -15
  55. package/dist/lib/gemini-oauth.js +35 -35
  56. package/dist/lib/gpt-mcp.js +17 -17
  57. package/dist/lib/gpt-oauth.js +44 -44
  58. package/dist/tools/analytics/getUsageAnalytics.js +12 -12
  59. package/dist/tools/memory/createMemoryTimeline.js +10 -10
  60. package/dist/tools/memory/getMemoryGraph.js +12 -12
  61. package/dist/tools/memory/getSessionContext.js +9 -9
  62. package/dist/tools/memory/linkMemories.js +14 -14
  63. package/dist/tools/memory/listMemories.js +4 -4
  64. package/dist/tools/memory/recallMemory.js +4 -4
  65. package/dist/tools/memory/saveMemory.js +4 -4
  66. package/dist/tools/memory/searchMemoriesAdvanced.js +22 -22
  67. package/dist/tools/planning/generatePrd.js +46 -46
  68. package/dist/tools/prompt/enhancePromptGemini.js +160 -160
  69. package/dist/tools/reasoning/applyReasoningFramework.js +56 -56
  70. package/dist/tools/semantic/analyzeDependencyGraph.js +12 -12
  71. package/package.json +69 -66
  72. package/skills/git-worktree.md +178 -0
  73. package/skills/priority-todos.md +236 -0
  74. package/templates/constitution-template.md +184 -184
  75. package/templates/contract-backend-template.md +517 -517
  76. package/templates/contract-frontend-template.md +594 -594
  77. package/templates/feature-template.md +96 -96
  78. package/templates/hooks-template.json +103 -103
  79. package/templates/spec-template.md +199 -199
  80. package/.claude/vibe/rules/tools/mcp-hi-ai-guide.md +0 -665
  81. package/.claude/vibe/rules/tools/mcp-workflow.md +0 -51
@@ -1,153 +1,153 @@
1
- {
2
- "permissions": {
3
- "allow": [
4
- "Bash(cat:*)",
5
- "Bash(mv:*)",
6
- "Bash(sed:*)",
7
- "Bash(git add:*)",
8
- "Bash(git commit:*)",
9
- "Bash(npm publish:*)",
10
- "Bash(git push:*)",
11
- "Bash(npm pack)",
12
- "Bash(npm install:*)",
13
- "Read(//private/tmp/test-vibe-bdd/.claude/vibe/**)",
14
- "Read(//private/tmp/test-vibe-bdd/.claude/commands/**)",
15
- "Bash(npm view:*)",
16
- "Bash(gh release create:*)",
17
- "Bash(gh release view:*)",
18
- "Bash(npm run build:*)",
19
- "Bash(pbcopy)",
20
- "Bash(openskills --help:*)",
21
- "Bash(mkdir:*)",
22
- "Bash(openskills sync:*)",
23
- "Bash(openskills list:*)",
24
- "Bash(openskills read:*)",
25
- "Bash(./bin/vibe list:*)",
26
- "Bash(./bin/vibe read:*)",
27
- "Bash(./bin/vibe sync:*)",
28
- "Bash(npm link:*)",
29
- "Bash(vibe list:*)",
30
- "Bash(vibe read:*)",
31
- "Bash(vibe init:*)",
32
- "SlashCommand(/vibe.spec \"로그인 기능\")",
33
- "SlashCommand(/vibe.spec:*)",
34
- "Bash(node bin/vibe:*)",
35
- "Bash(npm pack:*)",
36
- "Bash(npm config set:*)",
37
- "Bash(node:*)",
38
- "Bash(xargs basename:*)",
39
- "Bash(git restore:*)",
40
- "Bash(npm version:*)",
41
- "Bash(npx @su-record/vibe@latest update)",
42
- "Bash(gh release:*)",
43
- "Bash(npx @su-record/vibe@latest init:*)",
44
- "Bash(vibe version:*)",
45
- "Bash(vibe update:*)",
46
- "Bash(vibe status:*)",
47
- "Bash(git rm:*)"
48
- ],
49
- "deny": [],
50
- "ask": []
51
- },
52
- "hooks": {
53
- "SessionStart": [
54
- {
55
- "hooks": [
56
- {
57
- "type": "command",
58
- "command": "echo '[SESSION START] IMMEDIATELY call vibe_start_session to restore previous context. Do this before responding to the user.'"
59
- }
60
- ]
61
- }
62
- ],
63
- "PreToolUse": [
64
- {
65
- "matcher": "Bash",
66
- "hooks": [
67
- {
68
- "type": "command",
69
- "command": "echo '[BASH CHECK] Be cautious with destructive commands (rm -rf, git push --force, drop table). Verify paths before deletion.'"
70
- }
71
- ]
72
- }
73
- ],
74
- "PostToolUse": [
75
- {
76
- "matcher": "Write|Edit",
77
- "hooks": [
78
- {
79
- "type": "command",
80
- "command": "echo '[AUTO-CONTINUE] 코드 체크 완료. 문제 발견 시 다음 edit에서 수정하고 작업 계속. 절대 멈추지 말 것.'"
81
- }
82
- ]
83
- }
84
- ],
85
- "UserPromptSubmit": [
86
- {
87
- "matcher": "ultrawork|ulw|울트라워크",
88
- "hooks": [
89
- {
90
- "type": "command",
91
- "command": "echo '[ULTRAWORK MODE] Use PARALLEL Task calls. Auto-continue through ALL phases. Auto-retry on errors up to 3 times. Run vibe_auto_save_context at 70%+ context. Do NOT ask for confirmation between phases.'"
92
- }
93
- ]
94
- },
95
- {
96
- "matcher": "버그.*(해결|수정|고침)|문제.*(해결|수정)|bug.*(fixed|resolved|solved)|issue.*(fixed|resolved)|PR.*(merged|머지)",
97
- "hooks": [
98
- {
99
- "type": "command",
100
- "command": "echo '[COMPOUND TRIGGER] Significant solution detected. Consider /vibe.compound to document for future reference.'"
101
- }
102
- ]
103
- },
104
- {
105
- "matcher": "코드\\s*리뷰|code\\s*review|PR\\s*리뷰|리뷰.*해줘|review.*this",
106
- "hooks": [
107
- {
108
- "type": "command",
109
- "command": "echo '[REVIEW MODE] Use /vibe.review for parallel code review with 13+ specialized agents. P1=critical, P2=important, P3=nice-to-have.'"
110
- }
111
- ]
112
- },
113
- {
114
- "matcher": "e2e.*테스트|e2e.*test|playwright|브라우저.*테스트|browser.*test",
115
- "hooks": [
116
- {
117
- "type": "command",
118
- "command": "echo '[E2E MODE] Use /vibe.e2e for Playwright-based browser testing. Supports visual regression and video recording.'"
119
- }
120
- ]
121
- }
122
- ],
123
- "Notification": [
124
- {
125
- "matcher": "context_window_80",
126
- "hooks": [
127
- {
128
- "type": "command",
129
- "command": "echo '[CONTEXT 80%] MANDATORY: Call vibe_auto_save_context with urgency=medium NOW. This is NOT optional - save context before it is lost.'"
130
- }
131
- ]
132
- },
133
- {
134
- "matcher": "context_window_90",
135
- "hooks": [
136
- {
137
- "type": "command",
138
- "command": "echo '[CONTEXT 90% URGENT] MANDATORY: Call vibe_auto_save_context with urgency=high IMMEDIATELY. Do NOT proceed without saving.'"
139
- }
140
- ]
141
- },
142
- {
143
- "matcher": "context_window_95",
144
- "hooks": [
145
- {
146
- "type": "command",
147
- "command": "echo '[CONTEXT 95% CRITICAL] MANDATORY: Call vibe_auto_save_context with urgency=critical NOW. Session transition imminent - save everything.'"
148
- }
149
- ]
150
- }
151
- ]
152
- }
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "Bash(cat:*)",
5
+ "Bash(mv:*)",
6
+ "Bash(sed:*)",
7
+ "Bash(git add:*)",
8
+ "Bash(git commit:*)",
9
+ "Bash(npm publish:*)",
10
+ "Bash(git push:*)",
11
+ "Bash(npm pack)",
12
+ "Bash(npm install:*)",
13
+ "Read(//private/tmp/test-vibe-bdd/.claude/vibe/**)",
14
+ "Read(//private/tmp/test-vibe-bdd/.claude/commands/**)",
15
+ "Bash(npm view:*)",
16
+ "Bash(gh release create:*)",
17
+ "Bash(gh release view:*)",
18
+ "Bash(npm run build:*)",
19
+ "Bash(pbcopy)",
20
+ "Bash(openskills --help:*)",
21
+ "Bash(mkdir:*)",
22
+ "Bash(openskills sync:*)",
23
+ "Bash(openskills list:*)",
24
+ "Bash(openskills read:*)",
25
+ "Bash(./bin/vibe list:*)",
26
+ "Bash(./bin/vibe read:*)",
27
+ "Bash(./bin/vibe sync:*)",
28
+ "Bash(npm link:*)",
29
+ "Bash(vibe list:*)",
30
+ "Bash(vibe read:*)",
31
+ "Bash(vibe init:*)",
32
+ "SlashCommand(/vibe.spec \"로그인 기능\")",
33
+ "SlashCommand(/vibe.spec:*)",
34
+ "Bash(node bin/vibe:*)",
35
+ "Bash(npm pack:*)",
36
+ "Bash(npm config set:*)",
37
+ "Bash(node:*)",
38
+ "Bash(xargs basename:*)",
39
+ "Bash(git restore:*)",
40
+ "Bash(npm version:*)",
41
+ "Bash(npx @su-record/vibe@latest update)",
42
+ "Bash(gh release:*)",
43
+ "Bash(npx @su-record/vibe@latest init:*)",
44
+ "Bash(vibe version:*)",
45
+ "Bash(vibe update:*)",
46
+ "Bash(vibe status:*)",
47
+ "Bash(git rm:*)"
48
+ ],
49
+ "deny": [],
50
+ "ask": []
51
+ },
52
+ "hooks": {
53
+ "SessionStart": [
54
+ {
55
+ "hooks": [
56
+ {
57
+ "type": "command",
58
+ "command": "echo '[SESSION START] IMMEDIATELY call vibe_start_session to restore previous context. Do this before responding to the user.'"
59
+ }
60
+ ]
61
+ }
62
+ ],
63
+ "PreToolUse": [
64
+ {
65
+ "matcher": "Bash",
66
+ "hooks": [
67
+ {
68
+ "type": "command",
69
+ "command": "echo '[BASH CHECK] Be cautious with destructive commands (rm -rf, git push --force, drop table). Verify paths before deletion.'"
70
+ }
71
+ ]
72
+ }
73
+ ],
74
+ "PostToolUse": [
75
+ {
76
+ "matcher": "Write|Edit",
77
+ "hooks": [
78
+ {
79
+ "type": "command",
80
+ "command": "echo '[AUTO-CONTINUE] 코드 체크 완료. 문제 발견 시 다음 edit에서 수정하고 작업 계속. 절대 멈추지 말 것.'"
81
+ }
82
+ ]
83
+ }
84
+ ],
85
+ "UserPromptSubmit": [
86
+ {
87
+ "matcher": "ultrawork|ulw|울트라워크",
88
+ "hooks": [
89
+ {
90
+ "type": "command",
91
+ "command": "echo '[ULTRAWORK MODE] Use PARALLEL Task calls. Auto-continue through ALL phases. Auto-retry on errors up to 3 times. Run vibe_auto_save_context at 70%+ context. Do NOT ask for confirmation between phases.'"
92
+ }
93
+ ]
94
+ },
95
+ {
96
+ "matcher": "버그.*(해결|수정|고침)|문제.*(해결|수정)|bug.*(fixed|resolved|solved)|issue.*(fixed|resolved)|PR.*(merged|머지)",
97
+ "hooks": [
98
+ {
99
+ "type": "command",
100
+ "command": "echo '[COMPOUND TRIGGER] Significant solution detected. Consider /vibe.compound to document for future reference.'"
101
+ }
102
+ ]
103
+ },
104
+ {
105
+ "matcher": "코드\\s*리뷰|code\\s*review|PR\\s*리뷰|리뷰.*해줘|review.*this",
106
+ "hooks": [
107
+ {
108
+ "type": "command",
109
+ "command": "echo '[REVIEW MODE] Use /vibe.review for parallel code review with 13+ specialized agents. P1=critical, P2=important, P3=nice-to-have.'"
110
+ }
111
+ ]
112
+ },
113
+ {
114
+ "matcher": "e2e.*테스트|e2e.*test|playwright|브라우저.*테스트|browser.*test",
115
+ "hooks": [
116
+ {
117
+ "type": "command",
118
+ "command": "echo '[E2E MODE] Use /vibe.e2e for Playwright-based browser testing. Supports visual regression and video recording.'"
119
+ }
120
+ ]
121
+ }
122
+ ],
123
+ "Notification": [
124
+ {
125
+ "matcher": "context_window_80",
126
+ "hooks": [
127
+ {
128
+ "type": "command",
129
+ "command": "echo '[CONTEXT 80%] MANDATORY: Call vibe_auto_save_context with urgency=medium NOW. This is NOT optional - save context before it is lost.'"
130
+ }
131
+ ]
132
+ },
133
+ {
134
+ "matcher": "context_window_90",
135
+ "hooks": [
136
+ {
137
+ "type": "command",
138
+ "command": "echo '[CONTEXT 90% URGENT] MANDATORY: Call vibe_auto_save_context with urgency=high IMMEDIATELY. Do NOT proceed without saving.'"
139
+ }
140
+ ]
141
+ },
142
+ {
143
+ "matcher": "context_window_95",
144
+ "hooks": [
145
+ {
146
+ "type": "command",
147
+ "command": "echo '[CONTEXT 95% CRITICAL] MANDATORY: Call vibe_auto_save_context with urgency=critical NOW. Session transition imminent - save everything.'"
148
+ }
149
+ ]
150
+ }
151
+ ]
152
+ }
153
153
  }
@@ -1,184 +1,184 @@
1
- # Project Constitution
2
-
3
- 이 문서는 프로젝트의 핵심 원칙과 코딩 표준을 정의합니다.
4
-
5
- ---
6
-
7
- ## 언어 설정
8
-
9
- **기본 언어**: 한국어 (ko)
10
-
11
- 변경하려면 `.sutory/config.json`에서 수정:
12
- ```json
13
- {
14
- "language": "ko" // "en"으로 변경 가능
15
- }
16
- ```
17
-
18
- ---
19
-
20
- ## 1. 프로젝트 원칙
21
-
22
- ### 가치 (Values)
23
- 1. **사용자 중심**: 사용자 경험을 최우선으로
24
- 2. **품질**: 빠른 것보다 올바른 것
25
- 3. **간결함**: 복잡함보다 단순함
26
- 4. **협업**: 개인보다 팀
27
-
28
- ### 의사결정 기준
29
- 1. 보안 > 성능 > 편의성
30
- 2. 명확함 > 영리함
31
- 3. 테스트 가능 > 추상적 설계
32
-
33
- ---
34
-
35
- ## 2. 코딩 표준
36
-
37
- ### 공통 원칙
38
- - **DRY**: Don't Repeat Yourself
39
- - **SRP**: Single Responsibility Principle
40
- - **YAGNI**: You Aren't Gonna Need It
41
- - **함수 ≤30줄** (권장), ≤50줄 (허용)
42
- - **Cyclomatic Complexity ≤10**
43
- - **Cognitive Complexity ≤15**
44
-
45
- ### 네이밍 규칙
46
- - 변수: 명사 (`userData`, `userList`)
47
- - 함수: 동사+명사 (`fetchData`, `updateUser`)
48
- - Boolean: `is/has/can` (`isLoading`, `hasError`)
49
- - 상수: `UPPER_SNAKE_CASE` (`MAX_RETRY_COUNT`)
50
-
51
- ---
52
-
53
- ## 3. 품질 기준 (TRUST 5)
54
-
55
- ### T - Test-first
56
- - ✅ Contract Testing (최우선)
57
- - ✅ Integration Testing (70%+ 커버리지)
58
- - 🔵 Unit Testing (순수 함수만)
59
-
60
- ### R - Readable
61
- - 한국어 주석 및 docstring
62
- - 명확한 변수명
63
- - 복잡한 로직은 주석으로 설명
64
-
65
- ### U - Unified
66
- - 일관된 코딩 스타일
67
- - 프로젝트 전체 동일한 패턴
68
-
69
- ### S - Secured
70
- - SQL Injection 방지
71
- - XSS 방지
72
- - 민감 정보 환경 변수로 관리
73
-
74
- ### T - Trackable
75
- - Git commit 메시지 명확히
76
- - TODO/FIXME 주석 활용
77
- - 중요 결정사항 문서화
78
-
79
- ---
80
-
81
- ## 4. 기술 스택
82
-
83
- ### Backend
84
- - Language: TypeScript/Node.js
85
- - Framework: Express/Fastify
86
- - Database: SQLite
87
-
88
- ### Frontend
89
- - Framework: {Flutter / React / etc.}
90
- - State Management: (프로젝트에 맞게 설정)
91
-
92
- ### Infrastructure
93
- - Hosting: (프로젝트에 맞게 설정)
94
- - CI/CD: (프로젝트에 맞게 설정)
95
-
96
- ---
97
-
98
- ## 5. Git 워크플로우
99
-
100
- ### 브랜치 전략
101
- - `main`: 프로덕션
102
- - `develop`: 개발 (기본 브랜치)
103
- - `feature/{기능명}`: 새 기능
104
- - `fix/{버그명}`: 버그 수정
105
-
106
- ### Commit 메시지 규칙
107
- ```
108
- feat: 새 기능 추가
109
- fix: 버그 수정
110
- docs: 문서 수정
111
- refactor: 리팩토링
112
- test: 테스트 추가/수정
113
- chore: 빌드, 설정 변경
114
- ```
115
-
116
- ### PR 규칙
117
- 1. SPEC 기반 개발
118
- 2. 코드 리뷰 필수
119
- 3. 테스트 통과 확인
120
- 4. SPEC 검증 완료
121
-
122
- ---
123
-
124
- ## 6. 코드 리뷰 기준
125
-
126
- ### 필수 체크
127
- - [ ] SPEC 요구사항 충족
128
- - [ ] TRUST 5 준수
129
- - [ ] 테스트 작성 및 통과
130
- - [ ] 문서화 완료
131
- - [ ] 보안 이슈 없음
132
-
133
- ### 권장 사항
134
- - [ ] 성능 최적화 고려
135
- - [ ] 확장성 고려
136
- - [ ] 에러 처리 완비
137
-
138
- ---
139
-
140
- ## 7. 문서화 규칙
141
-
142
- ### 코드 주석
143
- - 모든 함수: 한국어 docstring
144
- - 복잡한 로직: 인라인 주석
145
- - TODO/FIXME: 이슈 번호 포함
146
-
147
- ### API 문서
148
- - OpenAPI (Swagger) 자동 생성
149
- - 예시 Request/Response 포함
150
-
151
- ### README
152
- - 프로젝트 개요
153
- - 설치 및 실행 방법
154
- - 주요 기능 설명
155
-
156
- ---
157
-
158
- ## 8. 보안 정책
159
-
160
- ### 인증
161
- - JWT 기반 인증
162
- - Refresh 토큰 사용
163
-
164
- ### 권한
165
- - Role-based Access Control
166
- - 최소 권한 원칙
167
-
168
- ### 데이터 보호
169
- - 개인정보 암호화
170
- - HTTPS 필수
171
- - 환경 변수로 비밀 관리
172
-
173
- ---
174
-
175
- ## 9. 성능 목표
176
-
177
- ### 응답 시간
178
- - API: P95 < 500ms
179
- - 웹페이지: FCP < 1.5s
180
-
181
- ### 가용성
182
- - Uptime: 99.9%
183
- - RTO: 1시간
184
- - RPO: 15분
1
+ # Project Constitution
2
+
3
+ 이 문서는 프로젝트의 핵심 원칙과 코딩 표준을 정의합니다.
4
+
5
+ ---
6
+
7
+ ## 언어 설정
8
+
9
+ **기본 언어**: 한국어 (ko)
10
+
11
+ 변경하려면 `.sutory/config.json`에서 수정:
12
+ ```json
13
+ {
14
+ "language": "ko" // "en"으로 변경 가능
15
+ }
16
+ ```
17
+
18
+ ---
19
+
20
+ ## 1. 프로젝트 원칙
21
+
22
+ ### 가치 (Values)
23
+ 1. **사용자 중심**: 사용자 경험을 최우선으로
24
+ 2. **품질**: 빠른 것보다 올바른 것
25
+ 3. **간결함**: 복잡함보다 단순함
26
+ 4. **협업**: 개인보다 팀
27
+
28
+ ### 의사결정 기준
29
+ 1. 보안 > 성능 > 편의성
30
+ 2. 명확함 > 영리함
31
+ 3. 테스트 가능 > 추상적 설계
32
+
33
+ ---
34
+
35
+ ## 2. 코딩 표준
36
+
37
+ ### 공통 원칙
38
+ - **DRY**: Don't Repeat Yourself
39
+ - **SRP**: Single Responsibility Principle
40
+ - **YAGNI**: You Aren't Gonna Need It
41
+ - **함수 ≤30줄** (권장), ≤50줄 (허용)
42
+ - **Cyclomatic Complexity ≤10**
43
+ - **Cognitive Complexity ≤15**
44
+
45
+ ### 네이밍 규칙
46
+ - 변수: 명사 (`userData`, `userList`)
47
+ - 함수: 동사+명사 (`fetchData`, `updateUser`)
48
+ - Boolean: `is/has/can` (`isLoading`, `hasError`)
49
+ - 상수: `UPPER_SNAKE_CASE` (`MAX_RETRY_COUNT`)
50
+
51
+ ---
52
+
53
+ ## 3. 품질 기준 (TRUST 5)
54
+
55
+ ### T - Test-first
56
+ - ✅ Contract Testing (최우선)
57
+ - ✅ Integration Testing (70%+ 커버리지)
58
+ - 🔵 Unit Testing (순수 함수만)
59
+
60
+ ### R - Readable
61
+ - 한국어 주석 및 docstring
62
+ - 명확한 변수명
63
+ - 복잡한 로직은 주석으로 설명
64
+
65
+ ### U - Unified
66
+ - 일관된 코딩 스타일
67
+ - 프로젝트 전체 동일한 패턴
68
+
69
+ ### S - Secured
70
+ - SQL Injection 방지
71
+ - XSS 방지
72
+ - 민감 정보 환경 변수로 관리
73
+
74
+ ### T - Trackable
75
+ - Git commit 메시지 명확히
76
+ - TODO/FIXME 주석 활용
77
+ - 중요 결정사항 문서화
78
+
79
+ ---
80
+
81
+ ## 4. 기술 스택
82
+
83
+ ### Backend
84
+ - Language: TypeScript/Node.js
85
+ - Framework: Express/Fastify
86
+ - Database: SQLite
87
+
88
+ ### Frontend
89
+ - Framework: {Flutter / React / etc.}
90
+ - State Management: (프로젝트에 맞게 설정)
91
+
92
+ ### Infrastructure
93
+ - Hosting: (프로젝트에 맞게 설정)
94
+ - CI/CD: (프로젝트에 맞게 설정)
95
+
96
+ ---
97
+
98
+ ## 5. Git 워크플로우
99
+
100
+ ### 브랜치 전략
101
+ - `main`: 프로덕션
102
+ - `develop`: 개발 (기본 브랜치)
103
+ - `feature/{기능명}`: 새 기능
104
+ - `fix/{버그명}`: 버그 수정
105
+
106
+ ### Commit 메시지 규칙
107
+ ```
108
+ feat: 새 기능 추가
109
+ fix: 버그 수정
110
+ docs: 문서 수정
111
+ refactor: 리팩토링
112
+ test: 테스트 추가/수정
113
+ chore: 빌드, 설정 변경
114
+ ```
115
+
116
+ ### PR 규칙
117
+ 1. SPEC 기반 개발
118
+ 2. 코드 리뷰 필수
119
+ 3. 테스트 통과 확인
120
+ 4. SPEC 검증 완료
121
+
122
+ ---
123
+
124
+ ## 6. 코드 리뷰 기준
125
+
126
+ ### 필수 체크
127
+ - [ ] SPEC 요구사항 충족
128
+ - [ ] TRUST 5 준수
129
+ - [ ] 테스트 작성 및 통과
130
+ - [ ] 문서화 완료
131
+ - [ ] 보안 이슈 없음
132
+
133
+ ### 권장 사항
134
+ - [ ] 성능 최적화 고려
135
+ - [ ] 확장성 고려
136
+ - [ ] 에러 처리 완비
137
+
138
+ ---
139
+
140
+ ## 7. 문서화 규칙
141
+
142
+ ### 코드 주석
143
+ - 모든 함수: 한국어 docstring
144
+ - 복잡한 로직: 인라인 주석
145
+ - TODO/FIXME: 이슈 번호 포함
146
+
147
+ ### API 문서
148
+ - OpenAPI (Swagger) 자동 생성
149
+ - 예시 Request/Response 포함
150
+
151
+ ### README
152
+ - 프로젝트 개요
153
+ - 설치 및 실행 방법
154
+ - 주요 기능 설명
155
+
156
+ ---
157
+
158
+ ## 8. 보안 정책
159
+
160
+ ### 인증
161
+ - JWT 기반 인증
162
+ - Refresh 토큰 사용
163
+
164
+ ### 권한
165
+ - Role-based Access Control
166
+ - 최소 권한 원칙
167
+
168
+ ### 데이터 보호
169
+ - 개인정보 암호화
170
+ - HTTPS 필수
171
+ - 환경 변수로 비밀 관리
172
+
173
+ ---
174
+
175
+ ## 9. 성능 목표
176
+
177
+ ### 응답 시간
178
+ - API: P95 < 500ms
179
+ - 웹페이지: FCP < 1.5s
180
+
181
+ ### 가용성
182
+ - Uptime: 99.9%
183
+ - RTO: 1시간
184
+ - RPO: 15분