From 1eb4674303d40c48f624bbe3d15b95fa6e1580ab Mon Sep 17 00:00:00 2001 From: kim Date: Tue, 30 Jun 2026 17:06:15 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EC=BD=94=EB=93=9C=20AI=20=EC=8B=9C?= =?UTF-8?q?=EC=8A=A4=ED=85=9C=20=ED=94=84=EB=A1=AC=ED=94=84=ED=8A=B8=20?= =?UTF-8?q?=E2=80=94=20=EB=B3=B4=EB=93=9C/=ED=8C=8C=EC=9D=BC=20=EC=BB=A8?= =?UTF-8?q?=ED=85=8D=EC=8A=A4=ED=8A=B8=20=EA=B0=95=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 보드 블록을 프롬프트 앞으로 이동, 로컬 폴더와 분리 - 에디터 열린 파일 목록을 별도 섹션으로 강조 - 로컬 폴더는 '파일 저장소'로만 표현 (프로젝트 탐색 대상 아님) - AI가 Glob/list로 로컬 폴더를 탐색해 프로젝트 파악하는 행동 방지 Co-Authored-By: Claude Sonnet 4.6 --- web-ui/code.js | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) 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로 현재 내용을 확인하세요.