fix: 코드 AI 시스템 프롬프트 — 보드/파일 컨텍스트 강화
- 보드 블록을 프롬프트 앞으로 이동, 로컬 폴더와 분리 - 에디터 열린 파일 목록을 별도 섹션으로 강조 - 로컬 폴더는 '파일 저장소'로만 표현 (프로젝트 탐색 대상 아님) - AI가 Glob/list로 로컬 폴더를 탐색해 프로젝트 파악하는 행동 방지 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+18
-2
@@ -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로 현재 내용을 확인하세요.
|
||||
|
||||
Reference in New Issue
Block a user