diff --git a/web-ui/code.js b/web-ui/code.js index cb69343..c592287 100644 --- a/web-ui/code.js +++ b/web-ui/code.js @@ -2869,13 +2869,29 @@ async function _codeAiOneRound(messages, onToken) { } function _buildCodeSystemPrompt() { - const localNote = localDirHandle ? `로컬 폴더 "${localDirHandle.name}"이 연결되어 있습니다.` : '로컬 폴더가 연결되지 않았습니다.'; + // 현재 에디터에 열린 파일 목록 + const openFiles = codeFiles.map(f => f.name).filter(Boolean); + const activeFile = (() => { try { return codeFiles.find(f => f.id === activeCodeFileId)?.name || ''; } catch { return ''; } })(); const summaryBlock = _historySummary ? `\n[이전 대화 요약]\n${_historySummary}\n` : ''; const _activeCode = (() => { try { const f = codeFiles.find(f => f.id === activeCodeFileId); return f?.model?.getValue() || f?.content || ''; } catch { return ''; } })(); const boardHints = _boardSpecificHints(_activeCode); const boardBlock = _csbSelBoard?.fqbn ? `\n## 대상 보드: ${_csbSelBoard.name} (${_csbSelBoard.fqbn})${boardHints}\n` : ''; + + // 에디터 파일 컨텍스트 — 로컬 폴더와 분리하여 강조 + let editorNote = ''; + if (openFiles.length) { + editorNote = `\n## 에디터 파일 (작업 대상) +현재 에디터에 열린 파일: ${openFiles.join(', ')}${activeFile ? `\n현재 활성 파일: **${activeFile}**` : ''} +⚠️ 코드 작업은 이 파일들을 대상으로 하세요. 로컬 폴더를 Glob/list해서 프로젝트를 파악하려 하지 마세요.\n`; + } + + // 로컬 폴더 노트 (파일 저장 경로) + const localNote = localDirHandle + ? `로컬 폴더 "${localDirHandle.name}"이 파일 저장소로 연결되어 있습니다.` + : '로컬 폴더가 연결되지 않았습니다.'; + const karpathyBlock = _karpathyMode ? ` ## Karpathy 코딩 가이드라인 (필수) 1. Think Before Coding — 가정을 명시하고, 모호하면 질문하세요. 여러 해석 가능 시 제시 후 선택하세요. @@ -2883,7 +2899,7 @@ function _buildCodeSystemPrompt() { 3. Surgical Changes — 사용자 요청과 직접 관련 없는 코드는 건드리지 마세요. 기존 스타일을 그대로 따르세요. 내 변경으로 인한 고아 코드만 제거하세요. 4. Goal-Driven Execution — 작업을 검증 가능한 목표로 변환하세요. "버그 수정" → "재현 테스트 작성 → 통과". ` : ''; - return `당신은 전문 코드 어시스턴트입니다. ${localNote}${summaryBlock}${boardBlock}${karpathyBlock} + return `당신은 전문 코드 어시스턴트입니다. ${localNote}${boardBlock}${editorNote}${summaryBlock}${karpathyBlock} ## 툴 사용 지침 - 파일을 수정하기 전에 반드시 Read로 현재 내용을 확인하세요.