@su-record/vibe 2.4.34 → 2.4.35

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 (102) hide show
  1. package/CLAUDE.md +345 -351
  2. package/LICENSE +21 -21
  3. package/README.md +210 -210
  4. package/agents/compounder.md +261 -261
  5. package/agents/diagrammer.md +178 -178
  6. package/agents/e2e-tester.md +266 -266
  7. package/agents/explorer.md +48 -48
  8. package/agents/implementer.md +53 -53
  9. package/agents/research/best-practices-agent.md +139 -139
  10. package/agents/research/codebase-patterns-agent.md +147 -147
  11. package/agents/research/framework-docs-agent.md +178 -178
  12. package/agents/research/security-advisory-agent.md +164 -164
  13. package/agents/review/architecture-reviewer.md +107 -107
  14. package/agents/review/complexity-reviewer.md +116 -116
  15. package/agents/review/data-integrity-reviewer.md +88 -88
  16. package/agents/review/git-history-reviewer.md +103 -103
  17. package/agents/review/performance-reviewer.md +86 -86
  18. package/agents/review/python-reviewer.md +150 -150
  19. package/agents/review/rails-reviewer.md +139 -139
  20. package/agents/review/react-reviewer.md +144 -144
  21. package/agents/review/security-reviewer.md +80 -80
  22. package/agents/review/simplicity-reviewer.md +140 -140
  23. package/agents/review/test-coverage-reviewer.md +116 -116
  24. package/agents/review/typescript-reviewer.md +127 -127
  25. package/agents/searcher.md +54 -54
  26. package/agents/simplifier.md +119 -119
  27. package/agents/tester.md +49 -49
  28. package/agents/ui-previewer.md +129 -129
  29. package/commands/vibe.analyze.md +260 -260
  30. package/commands/vibe.reason.md +223 -223
  31. package/commands/vibe.review.md +213 -213
  32. package/commands/vibe.run.md +931 -931
  33. package/commands/vibe.spec.md +442 -442
  34. package/commands/vibe.utils.md +101 -101
  35. package/commands/vibe.verify.md +282 -282
  36. package/dist/cli/collaborator.js +52 -52
  37. package/dist/cli/detect.js +32 -32
  38. package/dist/cli/index.js +137 -137
  39. package/dist/cli/index.js.map +1 -1
  40. package/dist/cli/llm.js +147 -147
  41. package/dist/cli/llm.js.map +1 -1
  42. package/dist/cli/setup.d.ts +1 -1
  43. package/dist/cli/setup.d.ts.map +1 -1
  44. package/dist/cli/setup.js +48 -54
  45. package/dist/cli/setup.js.map +1 -1
  46. package/dist/lib/MemoryManager.d.ts +4 -0
  47. package/dist/lib/MemoryManager.d.ts.map +1 -1
  48. package/dist/lib/MemoryManager.js +21 -2
  49. package/dist/lib/MemoryManager.js.map +1 -1
  50. package/dist/lib/PythonParser.js +108 -108
  51. package/dist/lib/gemini-api.d.ts +13 -3
  52. package/dist/lib/gemini-api.d.ts.map +1 -1
  53. package/dist/lib/gemini-api.js +198 -7
  54. package/dist/lib/gemini-api.js.map +1 -1
  55. package/dist/lib/gpt-api.d.ts +5 -4
  56. package/dist/lib/gpt-api.d.ts.map +1 -1
  57. package/dist/lib/gpt-api.js +168 -12
  58. package/dist/lib/gpt-api.js.map +1 -1
  59. package/dist/tools/memory/saveMemory.js +1 -1
  60. package/dist/tools/memory/saveMemory.js.map +1 -1
  61. package/dist/tools/reasoning/applyReasoningFramework.js +56 -56
  62. package/hooks/hooks.json +195 -195
  63. package/languages/dart-flutter.md +509 -0
  64. package/languages/go.md +396 -0
  65. package/languages/java-spring.md +586 -0
  66. package/languages/kotlin-android.md +491 -0
  67. package/languages/python-django.md +371 -0
  68. package/languages/python-fastapi.md +386 -0
  69. package/languages/rust.md +425 -0
  70. package/languages/swift-ios.md +516 -0
  71. package/languages/typescript-nextjs.md +441 -0
  72. package/languages/typescript-node.md +375 -0
  73. package/languages/typescript-nuxt.md +521 -0
  74. package/languages/typescript-react-native.md +446 -0
  75. package/languages/typescript-react.md +525 -0
  76. package/languages/typescript-vue.md +353 -0
  77. package/package.json +88 -87
  78. package/skills/context7-usage.md +82 -82
  79. package/skills/git-worktree.md +181 -181
  80. package/skills/multi-llm-orchestration.md +92 -92
  81. package/skills/parallel-research.md +77 -77
  82. package/skills/priority-todos.md +239 -239
  83. package/skills/tool-fallback.md +126 -126
  84. package/skills/vibe-capabilities.md +129 -129
  85. package/{.claude/vibe → vibe}/config.json +3 -3
  86. package/{.claude/vibe → vibe}/constitution.md +184 -184
  87. package/{.claude/vibe → vibe}/rules/core/communication-guide.md +104 -104
  88. package/{.claude/vibe → vibe}/rules/core/development-philosophy.md +52 -52
  89. package/{.claude/vibe → vibe}/rules/core/quick-start.md +120 -120
  90. package/{.claude/vibe → vibe}/rules/quality/bdd-contract-testing.md +388 -388
  91. package/{.claude/vibe → vibe}/rules/quality/checklist.md +276 -276
  92. package/{.claude/vibe → vibe}/rules/quality/testing-strategy.md +437 -437
  93. package/{.claude/vibe → vibe}/rules/standards/anti-patterns.md +369 -369
  94. package/{.claude/vibe → vibe}/rules/standards/code-structure.md +291 -291
  95. package/{.claude/vibe → vibe}/rules/standards/complexity-metrics.md +312 -312
  96. package/{.claude/vibe → vibe}/rules/standards/naming-conventions.md +198 -198
  97. package/{.claude/vibe → vibe}/setup.sh +31 -31
  98. package/{.claude/vibe → vibe}/templates/constitution-template.md +184 -184
  99. package/{.claude/vibe → vibe}/templates/contract-backend-template.md +517 -517
  100. package/{.claude/vibe → vibe}/templates/contract-frontend-template.md +594 -594
  101. package/{.claude/vibe → vibe}/templates/feature-template.md +96 -96
  102. package/{.claude/vibe → vibe}/templates/spec-template.md +199 -199
@@ -1,10 +1,59 @@
1
1
  /**
2
- * GPT API 호출 (ChatGPT Codex Backend)
3
- * ChatGPT Plus/Pro 구독으로 GPT-5.2 Codex 모델 사용
2
+ * GPT API 호출 (ChatGPT Codex Backend + OpenAI API)
3
+ * - OAuth: ChatGPT Plus/Pro 구독으로 GPT-5.2 Codex 모델 사용
4
+ * - API Key: OpenAI API 직접 호출
4
5
  */
6
+ import path from 'path';
7
+ import fs from 'fs';
5
8
  import { getValidAccessToken } from './gpt-oauth.js';
6
9
  import { CHATGPT_BASE_URL } from './gpt-constants.js';
7
10
  import { sleep } from './utils.js';
11
+ // config에서 API Key 가져오기
12
+ function getApiKeyFromConfig() {
13
+ try {
14
+ const configPath = path.join(process.cwd(), '.claude', 'vibe', 'config.json');
15
+ if (fs.existsSync(configPath)) {
16
+ const config = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
17
+ if (config.models?.gpt?.apiKey) {
18
+ return config.models.gpt.apiKey;
19
+ }
20
+ }
21
+ }
22
+ catch { /* ignore */ }
23
+ return null;
24
+ }
25
+ // OAuth 토큰 없을 때 config에서 email 제거
26
+ function removeEmailFromConfigIfNoToken() {
27
+ try {
28
+ const configPath = path.join(process.cwd(), '.claude', 'vibe', 'config.json');
29
+ if (fs.existsSync(configPath)) {
30
+ const config = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
31
+ if (config.models?.gpt?.email) {
32
+ delete config.models.gpt.email;
33
+ fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
34
+ }
35
+ }
36
+ }
37
+ catch { /* ignore */ }
38
+ }
39
+ // 인증 방식 확인 (OAuth 우선, API Key 대체)
40
+ async function getAuthInfo() {
41
+ // 1. OAuth 토큰 확인 (우선)
42
+ try {
43
+ const { accessToken, email } = await getValidAccessToken();
44
+ return { type: 'oauth', accessToken, email };
45
+ }
46
+ catch {
47
+ // OAuth 실패 시 config에서 email 제거 (보안)
48
+ removeEmailFromConfigIfNoToken();
49
+ }
50
+ // 2. API Key 확인
51
+ const apiKey = getApiKeyFromConfig();
52
+ if (apiKey) {
53
+ return { type: 'apikey', apiKey };
54
+ }
55
+ throw new Error('GPT 인증 정보가 없습니다. vibe auth gpt (OAuth) 또는 vibe auth gpt --key <key> (API Key)로 설정하세요.');
56
+ }
8
57
  // Codex API 엔드포인트
9
58
  const CODEX_RESPONSES_URL = `${CHATGPT_BASE_URL}/codex/responses`;
10
59
  // GitHub에서 Codex instructions 가져오기 (캐시)
@@ -146,12 +195,83 @@ async function parseSSEStream(stream) {
146
195
  return result;
147
196
  }
148
197
  /**
149
- * GPT API 호출 (Codex Backend)
198
+ * OpenAI Chat Completions API 호출 (API Key 방식)
150
199
  */
151
- export async function chat(options) {
200
+ async function chatWithApiKey(apiKey, options) {
201
+ const { model = DEFAULT_MODEL, messages = [], maxTokens = 4096, temperature = 0.7, systemPrompt = '', } = options;
202
+ // API Key 방식은 표준 OpenAI 모델 사용 (gpt-4o, gpt-4-turbo 등)
203
+ // Codex 모델은 OAuth 전용이므로 대체 모델 매핑
204
+ const apiKeyModelMap = {
205
+ 'gpt-5.2': 'gpt-4o',
206
+ 'gpt-5.2-codex': 'gpt-4o',
207
+ 'gpt-5.1-codex': 'gpt-4-turbo',
208
+ 'gpt-5.1-codex-mini': 'gpt-4o-mini',
209
+ 'gpt-5.1-codex-max': 'gpt-4o',
210
+ };
211
+ const actualModel = apiKeyModelMap[model] || 'gpt-4o';
212
+ // 메시지 구성
213
+ const apiMessages = [];
214
+ if (systemPrompt) {
215
+ apiMessages.push({ role: 'system', content: systemPrompt });
216
+ }
217
+ for (const msg of messages) {
218
+ apiMessages.push({ role: msg.role, content: msg.content });
219
+ }
220
+ const retryCount = options._retryCount || 0;
221
+ const maxRetries = 3;
222
+ try {
223
+ const response = await fetch('https://api.openai.com/v1/chat/completions', {
224
+ method: 'POST',
225
+ headers: {
226
+ 'Authorization': `Bearer ${apiKey}`,
227
+ 'Content-Type': 'application/json',
228
+ },
229
+ body: JSON.stringify({
230
+ model: actualModel,
231
+ messages: apiMessages,
232
+ max_tokens: maxTokens,
233
+ temperature,
234
+ }),
235
+ });
236
+ if (!response.ok) {
237
+ const errorText = await response.text();
238
+ // 429 Rate Limit - 재시도
239
+ if (response.status === 429 && retryCount < maxRetries) {
240
+ const delay = Math.pow(2, retryCount) * 1000;
241
+ await sleep(delay);
242
+ return chatWithApiKey(apiKey, { ...options, _retryCount: retryCount + 1 });
243
+ }
244
+ let errorMessage = `OpenAI API 오류 (${response.status})`;
245
+ try {
246
+ const errorJson = JSON.parse(errorText);
247
+ if (errorJson.error?.message) {
248
+ errorMessage = errorJson.error.message;
249
+ }
250
+ }
251
+ catch { /* ignore */ }
252
+ throw new Error(errorMessage);
253
+ }
254
+ const result = await response.json();
255
+ return {
256
+ content: result.choices[0]?.message?.content || '',
257
+ model: result.model,
258
+ finishReason: result.choices[0]?.finish_reason || 'stop',
259
+ };
260
+ }
261
+ catch (error) {
262
+ if (error.name === 'TypeError' && retryCount < maxRetries) {
263
+ const delay = Math.pow(2, retryCount) * 1000;
264
+ await sleep(delay);
265
+ return chatWithApiKey(apiKey, { ...options, _retryCount: retryCount + 1 });
266
+ }
267
+ throw error;
268
+ }
269
+ }
270
+ /**
271
+ * GPT API 호출 (Codex Backend - OAuth 방식)
272
+ */
273
+ async function chatWithOAuth(accessToken, options) {
152
274
  const { model = DEFAULT_MODEL, messages = [], systemPrompt = '', webSearch = false, userLocation, } = options;
153
- // 토큰 가져오기
154
- const { accessToken } = await getValidAccessToken();
155
275
  // 모델 정보 가져오기
156
276
  const modelInfo = GPT_MODELS[model] || GPT_MODELS[DEFAULT_MODEL];
157
277
  // Codex instructions 가져오기
@@ -215,7 +335,7 @@ export async function chat(options) {
215
335
  if (response.status === 429 && retryCount < maxRetries) {
216
336
  const delay = Math.pow(2, retryCount) * 1000;
217
337
  await sleep(delay);
218
- return chat({ ...options, _retryCount: retryCount + 1 });
338
+ return chatWithOAuth(accessToken, { ...options, _retryCount: retryCount + 1 });
219
339
  }
220
340
  // 에러 파싱
221
341
  let errorMessage = `GPT API 오류 (${response.status})`;
@@ -235,9 +355,10 @@ export async function chat(options) {
235
355
  }
236
356
  // 스트리밍 응답 파싱
237
357
  const content = await parseSSEStream(response.body);
358
+ const modelInfo2 = GPT_MODELS[model] || GPT_MODELS[DEFAULT_MODEL];
238
359
  return {
239
360
  content,
240
- model: modelInfo.name,
361
+ model: modelInfo2.name,
241
362
  finishReason: 'stop',
242
363
  };
243
364
  }
@@ -246,17 +367,52 @@ export async function chat(options) {
246
367
  if (error.name === 'TypeError' && retryCount < maxRetries) {
247
368
  const delay = Math.pow(2, retryCount) * 1000;
248
369
  await sleep(delay);
249
- return chat({ ...options, _retryCount: retryCount + 1 });
370
+ return chatWithOAuth(accessToken, { ...options, _retryCount: retryCount + 1 });
250
371
  }
251
372
  throw error;
252
373
  }
253
374
  }
254
375
  /**
255
- * 스트리밍 Chat
376
+ * GPT API 호출 (OAuth 또는 API Key 자동 선택 + Fallback)
377
+ */
378
+ export async function chat(options) {
379
+ const authInfo = await getAuthInfo();
380
+ const apiKey = getApiKeyFromConfig();
381
+ // API Key 방식
382
+ if (authInfo.type === 'apikey' && authInfo.apiKey) {
383
+ return chatWithApiKey(authInfo.apiKey, options);
384
+ }
385
+ // OAuth 방식 (API Key fallback 지원)
386
+ if (authInfo.type === 'oauth' && authInfo.accessToken) {
387
+ try {
388
+ return await chatWithOAuth(authInfo.accessToken, options);
389
+ }
390
+ catch (error) {
391
+ // Rate Limit(429) 또는 인증 오류(401/403) 시 API Key로 fallback
392
+ const errorMsg = error.message;
393
+ if (apiKey && (errorMsg.includes('429') || errorMsg.includes('401') || errorMsg.includes('403'))) {
394
+ console.log('⚠️ OAuth 한도 초과/오류 → API Key로 전환');
395
+ return chatWithApiKey(apiKey, options);
396
+ }
397
+ throw error;
398
+ }
399
+ }
400
+ throw new Error('GPT 인증 정보가 없습니다.');
401
+ }
402
+ /**
403
+ * 스트리밍 Chat (OAuth 또는 API Key 자동 선택)
256
404
  */
257
405
  export async function* chatStream(options) {
406
+ const authInfo = await getAuthInfo();
407
+ // API Key 방식은 스트리밍 미지원 - 일반 chat 사용
408
+ if (authInfo.type === 'apikey') {
409
+ const result = await chat(options);
410
+ yield { type: 'delta', content: result.content };
411
+ yield { type: 'done' };
412
+ return;
413
+ }
414
+ // OAuth 방식 - Codex 스트리밍
258
415
  const { model = DEFAULT_MODEL, messages = [], systemPrompt = '', } = options;
259
- const { accessToken } = await getValidAccessToken();
260
416
  const modelInfo = GPT_MODELS[model] || GPT_MODELS[DEFAULT_MODEL];
261
417
  const instructions = await getCodexInstructions(modelInfo.id);
262
418
  const input = messages.map(msg => ({
@@ -280,7 +436,7 @@ export async function* chatStream(options) {
280
436
  const response = await fetch(CODEX_RESPONSES_URL, {
281
437
  method: 'POST',
282
438
  headers: {
283
- 'Authorization': `Bearer ${accessToken}`,
439
+ 'Authorization': `Bearer ${authInfo.accessToken}`,
284
440
  'Content-Type': 'application/json',
285
441
  'OpenAI-Beta': 'responses=experimental',
286
442
  'originator': 'codex_cli_rs',
@@ -1 +1 @@
1
- {"version":3,"file":"gpt-api.js","sourceRoot":"","sources":["../../src/lib/gpt-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gpt-api.js","sourceRoot":"","sources":["../../src/lib/gpt-api.ts"],"names":[],"mappings":"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"}
@@ -31,7 +31,7 @@ export async function saveMemory(args) {
31
31
  try {
32
32
  const memoryManager = MemoryManager.getInstance(projectPath);
33
33
  memoryManager.save(memoryKey, memoryValue, category);
34
- const location = projectPath ? `${projectPath}/memories/` : 'default';
34
+ const location = projectPath ? `${projectPath}/.claude/vibe/memories/` : 'default';
35
35
  return {
36
36
  content: [{ type: 'text', text: `✓ Saved: ${memoryKey}\nCategory: ${category}\nLocation: ${location}` }]
37
37
  };
@@ -1 +1 @@
1
- {"version":3,"file":"saveMemory.js","sourceRoot":"","sources":["../../../src/tools/memory/saveMemory.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAG3D,MAAM,CAAC,MAAM,oBAAoB,GAAmB;IAClD,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE;;;;mDAIoC;IACjD,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE;YAC7D,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,EAAE;YAC7D,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;YAC5G,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4DAA4D,EAAE;SAC3G;QACD,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;KAC3B;IACD,WAAW,EAAE;QACX,KAAK,EAAE,aAAa;QACpB,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC;QAC/B,YAAY,EAAE,KAAK;QACnB,eAAe,EAAE,KAAK;QACtB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,KAAK;KACrB;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAA6E;IAC5G,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,GAAG,SAAS,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAEvF,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,aAAa,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC7D,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;QAErD,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;QACtE,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,SAAS,eAAe,QAAQ,eAAe,QAAQ,EAAE,EAAE,CAAC;SACzG,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,EAAE,CAAC;SAC1G,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"saveMemory.js","sourceRoot":"","sources":["../../../src/tools/memory/saveMemory.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAG3D,MAAM,CAAC,MAAM,oBAAoB,GAAmB;IAClD,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE;;;;mDAIoC;IACjD,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE;YAC7D,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,EAAE;YAC7D,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;YAC5G,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4DAA4D,EAAE;SAC3G;QACD,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;KAC3B;IACD,WAAW,EAAE;QACX,KAAK,EAAE,aAAa;QACpB,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC;QAC/B,YAAY,EAAE,KAAK;QACnB,eAAe,EAAE,KAAK;QACtB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,KAAK;KACrB;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAA6E;IAC5G,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,GAAG,SAAS,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAEvF,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,aAAa,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC7D,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;QAErD,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,yBAAyB,CAAC,CAAC,CAAC,SAAS,CAAC;QACnF,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,SAAS,eAAe,QAAQ,eAAe,QAAQ,EAAE,EAAE,CAAC;SACzG,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,EAAE,CAAC;SAC1G,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -154,10 +154,10 @@ export async function applyReasoningFramework(args) {
154
154
  }
155
155
  // Helper methods
156
156
  function analyzeConstraints(problem, context) {
157
- return `**제약 조건 분석**:
158
- - 정책/규칙: ${context ? '프로젝트 컨텍스트 확인 필요' : 'CLAUDE.md, constitution.md 확인 필요'}
159
- - 작업 순서: 선행 작업 식별 필요 (DB → Backend → Frontend 패턴 고려)
160
- - 전제 조건: ${problem}을(를) 위한 필수 정보/도구 확인
157
+ return `**제약 조건 분석**:
158
+ - 정책/규칙: ${context ? '프로젝트 컨텍스트 확인 필요' : 'CLAUDE.md, constitution.md 확인 필요'}
159
+ - 작업 순서: 선행 작업 식별 필요 (DB → Backend → Frontend 패턴 고려)
160
+ - 전제 조건: ${problem}을(를) 위한 필수 정보/도구 확인
161
161
  - 사용자 제약: 명시적 요청사항 우선 적용`;
162
162
  }
163
163
  function assessRisks(problem, context) {
@@ -166,82 +166,82 @@ function assessRisks(problem, context) {
166
166
  problem.toLowerCase().includes('확인') ||
167
167
  problem.toLowerCase().includes('find') ||
168
168
  problem.toLowerCase().includes('analyze');
169
- return `**위험 평가**:
170
- - 작업 유형: ${isExploration ? '탐색 작업 (낮은 위험)' : '구현 작업 (높은 위험)'}
171
- - 롤백 가능성: ${isExploration ? '높음' : '확인 필요'}
172
- - 호환성 위험: 기존 코드와의 충돌 가능성 검토
173
- - 보안 위험: SQL Injection, XSS, 민감 정보 노출 검토
169
+ return `**위험 평가**:
170
+ - 작업 유형: ${isExploration ? '탐색 작업 (낮은 위험)' : '구현 작업 (높은 위험)'}
171
+ - 롤백 가능성: ${isExploration ? '높음' : '확인 필요'}
172
+ - 호환성 위험: 기존 코드와의 충돌 가능성 검토
173
+ - 보안 위험: SQL Injection, XSS, 민감 정보 노출 검토
174
174
  - 성능 위험: N+1 쿼리, 메모리 누수, 불필요한 리렌더 검토`;
175
175
  }
176
176
  function generateHypotheses(problem, context) {
177
- return `**가설 생성**:
178
- 1. **가설 1** (가능성: 높음)
179
- - 근거: ${problem}의 가장 직접적인 원인
180
- - 검증: [도구/파일]을 통해 확인
181
- 2. **가설 2** (가능성: 중간)
182
- - 근거: 간접적 요인 또는 환경 차이
183
- - 검증: 추가 정보 수집 필요
184
- 3. **가설 3** (가능성: 낮음)
185
- - 근거: 엣지 케이스 또는 드문 상황
186
- - 검증: 다른 가설 반증 시 검토
187
-
177
+ return `**가설 생성**:
178
+ 1. **가설 1** (가능성: 높음)
179
+ - 근거: ${problem}의 가장 직접적인 원인
180
+ - 검증: [도구/파일]을 통해 확인
181
+ 2. **가설 2** (가능성: 중간)
182
+ - 근거: 간접적 요인 또는 환경 차이
183
+ - 검증: 추가 정보 수집 필요
184
+ 3. **가설 3** (가능성: 낮음)
185
+ - 근거: 엣지 케이스 또는 드문 상황
186
+ - 검증: 다른 가설 반증 시 검토
187
+
188
188
  **우선순위**: 가능성 높은 순으로 검증하되, 낮은 가능성도 완전히 배제하지 않음`;
189
189
  }
190
190
  function evaluateAdaptability(problem, context) {
191
- return `**적응성 평가**:
192
- - 관찰 결과 반영: 새로운 정보에 따라 계획 수정 필요 여부 확인
193
- - 가설 업데이트: 반증된 가설 폐기, 새 가설 생성
194
- - 백트래킹: 막다른 길 도달 시 이전 단계로 돌아가 다른 경로 탐색
191
+ return `**적응성 평가**:
192
+ - 관찰 결과 반영: 새로운 정보에 따라 계획 수정 필요 여부 확인
193
+ - 가설 업데이트: 반증된 가설 폐기, 새 가설 생성
194
+ - 백트래킹: 막다른 길 도달 시 이전 단계로 돌아가 다른 경로 탐색
195
195
  - 계획 재평가: 전체 접근법이 유효한지 주기적으로 검토`;
196
196
  }
197
197
  function identifyInformationSources(problem, context) {
198
- return `**정보 소스**:
199
- 1. **도구**:
200
- - vibe 내장 도구 (36개)
201
- - 파일 시스템 (Read, Write, Edit, Glob, Grep)
202
- - Git, 패키지 관리자
203
- 2. **정책/규칙**:
204
- - CLAUDE.md (기술 스택, 아키텍처)
205
- - .claude/vibe/constitution.md (프로젝트 규칙)
206
- - skills/ 폴더 (품질 기준, 코딩 표준)
207
- 3. **메모리**:
208
- - recall_memory (이전 세션 정보)
209
- - restore_session_context (컨텍스트 복원)
210
- 4. **사용자 확인**:
211
- - 비즈니스 로직 세부사항
212
- - 디자인 선호도
198
+ return `**정보 소스**:
199
+ 1. **도구**:
200
+ - vibe 내장 도구 (36개)
201
+ - 파일 시스템 (Read, Write, Edit, Glob, Grep)
202
+ - Git, 패키지 관리자
203
+ 2. **정책/규칙**:
204
+ - CLAUDE.md (기술 스택, 아키텍처)
205
+ - .claude/vibe/constitution.md (프로젝트 규칙)
206
+ - skills/ 폴더 (품질 기준, 코딩 표준)
207
+ 3. **메모리**:
208
+ - recall_memory (이전 세션 정보)
209
+ - restore_session_context (컨텍스트 복원)
210
+ 4. **사용자 확인**:
211
+ - 비즈니스 로직 세부사항
212
+ - 디자인 선호도
213
213
  - 우선순위 결정`;
214
214
  }
215
215
  function ensurePrecision(problem, context) {
216
- return `**정밀성 확보**:
217
- - 정책 인용: "CLAUDE.md:12에 따르면..." 형식으로 명시
218
- - 코드 참조: "users.py:45의 User 모델" 형식으로 파일명:라인 포함
219
- - 숫자 정확성: 복잡도, 커버리지, 성능 지표를 정확한 수치로 표현
216
+ return `**정밀성 확보**:
217
+ - 정책 인용: "CLAUDE.md:12에 따르면..." 형식으로 명시
218
+ - 코드 참조: "users.py:45의 User 모델" 형식으로 파일명:라인 포함
219
+ - 숫자 정확성: 복잡도, 커버리지, 성능 지표를 정확한 수치로 표현
220
220
  - 근거 제시: 모든 주장에 대해 출처와 근거 명확히`;
221
221
  }
222
222
  function ensureCompleteness(problem, context) {
223
- return `**완전성 확보**:
224
- - 충돌 해결: 정책 → 작업 순서 → 전제 조건 → 사용자 선호도 순
225
- - 옵션 탐색: 단일 해결책에 조기 고정하지 않고 여러 대안 검토
226
- - 정보 검토: 모든 관련 정보 소스(#5) 철저히 검토
223
+ return `**완전성 확보**:
224
+ - 충돌 해결: 정책 → 작업 순서 → 전제 조건 → 사용자 선호도 순
225
+ - 옵션 탐색: 단일 해결책에 조기 고정하지 않고 여러 대안 검토
226
+ - 정보 검토: 모든 관련 정보 소스(#5) 철저히 검토
227
227
  - 사용자 확인: 불확실한 부분은 가정하지 말고 확인`;
228
228
  }
229
229
  function demonstratePersistence(problem, context) {
230
- return `**끈기 전략**:
231
- - 일시적 오류: 지수 백오프로 재시도 (예: 1초, 2초, 4초...)
232
- - 한계 인식: 명확한 재시도 제한, 타임아웃 도달 시 중단
233
- - 전략 변경: 같은 실패 반복 X → 다른 접근법 시도
230
+ return `**끈기 전략**:
231
+ - 일시적 오류: 지수 백오프로 재시도 (예: 1초, 2초, 4초...)
232
+ - 한계 인식: 명확한 재시도 제한, 타임아웃 도달 시 중단
233
+ - 전략 변경: 같은 실패 반복 X → 다른 접근법 시도
234
234
  - 철저한 분석: 시간이 걸리더라도 모든 추론 단계 완료`;
235
235
  }
236
236
  function planExecution(problem, context) {
237
- return `**실행 계획**:
238
- 1. **추론 문서화**: 복잡한 결정의 경우 추론 과정 간략히 설명
239
- 2. **단계별 실행**: 한 번에 하나의 주요 행동만 수행
240
- 3. **결과 확인**: 각 행동의 결과를 확인한 후 다음 단계로 진행
237
+ return `**실행 계획**:
238
+ 1. **추론 문서화**: 복잡한 결정의 경우 추론 과정 간략히 설명
239
+ 2. **단계별 실행**: 한 번에 하나의 주요 행동만 수행
240
+ 3. **결과 확인**: 각 행동의 결과를 확인한 후 다음 단계로 진행
241
241
  4. **롤백 대비**: 문제 발생 시 이전 상태로 복구 가능하도록 준비`;
242
242
  }
243
243
  function generateSummary(problem, steps) {
244
- return `9단계 추론 프레임워크를 "${problem}"에 적용했습니다.
244
+ return `9단계 추론 프레임워크를 "${problem}"에 적용했습니다.
245
245
  총 ${steps.length}개 단계를 체계적으로 분석하여 논리적 종속성, 위험, 가설, 정보 소스를 포괄적으로 검토했습니다.`;
246
246
  }
247
247
  function formatOutput(result) {