diff --git a/package-lock.json b/package-lock.json index f8895b9..c3e7962 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "astra", - "version": "2.2.230", + "version": "2.2.231", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "astra", - "version": "2.2.230", + "version": "2.2.231", "license": "MIT", "dependencies": { "@lmstudio/sdk": "^1.5.0", diff --git a/package.json b/package.json index bde6bdd..13d406d 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "astra", "displayName": "Astra", "description": "The personal intelligence layer for Antigravity and VS Code. A private cognitive partner for deep project context, memory, and proactive strategic decision-making.", - "version": "2.2.230", + "version": "2.2.231", "publisher": "g1nation", "license": "MIT", "icon": "assets/icon.png", diff --git a/src/lib/contextBuilders/localProjectIntent.ts b/src/lib/contextBuilders/localProjectIntent.ts index 1682d07..531cadd 100644 --- a/src/lib/contextBuilders/localProjectIntent.ts +++ b/src/lib/contextBuilders/localProjectIntent.ts @@ -127,8 +127,8 @@ export function buildLocalProjectIntentGuidance(intent: LocalProjectIntent): str return [ 'Intent operating contract — Code Review:', 'The user wants a real review, not a meta-plan of how to review.', - 'OUTPUT FORMAT: PLAIN TEXT only. Section labels are bare words on their own line (no "#", "##", "**", "__", "> "). Bullets use "- ". Long answers MUST start with a "핵심 요약" block (2~4 bullets) before any detail.', - 'Required sections in this exact order, in Korean (each label appears as a plain line, NOT a markdown heading):', + 'OUTPUT FORMAT: 선택적 마크다운 — 비교/수치는 표, 경고는 "> " 인용구, 파일/함수명은 인라인 코드, 장식 목적 사용 금지. Bullets use "- ". Long answers MUST start with a "핵심 요약" block (2~4 bullets) before any detail.', + 'Required sections in this exact order, in Korean (labels as "## " markdown headings):', ' 1) 한 줄 판단 — one sentence: would you rely on this today, and under what constraint?', ' 2) 잘된 점 — 2~4 concrete strengths. Each MUST cite a specific file path (and a function or section if you can name one) and explain WHY it works, not just that it exists.', ' 3) 부족한 점 — 2~4 concrete weaknesses or risks. Same rule: cite a specific file/area, name the actual problem (race condition, missing retry, coupling, etc.), and say what breaks because of it.', diff --git a/src/utils.ts b/src/utils.ts index 3c0572e..0609a2f 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -231,9 +231,9 @@ Then reply with one short line stating what was started and where. [STRICT GLOBAL RULES] 1. [NO EMOJIS - ABSOLUTE RULE] NEVER use ANY emojis, emoticons, Unicode pictorial symbols (including but not limited to emoji, kaomoji, Unicode icons), or decorative symbols anywhere in your response. NO EXCEPTIONS. Use plain text dashes (-) for bullets. This rule overrides ALL other formatting instructions. -2. [NO MARKDOWN MARKERS] PLAIN TEXT ONLY. Do NOT emit "#", "##", "###", "**", "__", "> ", "* " as formatting. Section labels are bare Korean words on their own line (e.g. a line that says just "핵심 요약" — no "#", no "**"). Bullets use "- " only. Inline code with backticks (e.g. \`src/agent.ts\`) and triple-backtick code blocks for actual code are fine. +2. [MARKDOWN — 정보 구조 매칭] 마크다운은 *정보의 구조가 요구할 때만* 사용한다 (장식 금지). 매칭 규칙: 비교/수치 데이터 → 표(|...|), 주의/경고/부가 참고 → "> " 인용구, 순서 있는 절차 → 번호 목록, 파일명/설정키/명령 → 인라인 코드(\`...\`), 진짜 핵심 단어 → 볼드(R4 한도 내). 평문으로 충분한 답은 평문으로 — 짧은 답에 표·헤딩을 만들지 마라. 헤딩(##)은 긴 구조화 답변에서 R2 섹션 한도 내에서만, 구분선(---)은 긴 답변의 논리 전환 1곳까지. 모든 문장에 강조가 붙으면 노이즈다 — 강조가 없는 문장이 기본값이다. 3. [NO INTERNAL LOGS] Never output
, "2nd Brain Trace", or "Debug JSON" blocks. -4. [NO SECTION LEAKAGE] Never output sections named "요청 요약", "사용자 의도 추론", "프로젝트 기록 대상 확인", "핵심 확인 질문", or "근거 파일 경로". +4. [NO SECTION LEAKAGE] Never output sections named "요청 요약", "사용자 의도 추론", "프로젝트 기록 대상 확인", "핵심 확인 질문", or "근거 파일 경로" — UNLESS the Project Record Guard for this turn explicitly requires those headings (then follow the guard). 5. [확인 불가 — 사실 날조 금지] 지식 베이스·제공된 컨텍스트·이번 세션에 읽은 파일에 근거가 없는 사실(수치, 날짜, 금액, 고유명사, 파일/함수/포트명, 결정 사항, "이미 ~다/~로 정해졌다" 류 단정)은 지어내지 마라. 근거가 없으면 추측으로 메우지 말고 "확인 불가" 또는 "근거 없음 — 확인 필요"라고 명시하라. 불확실하면 단정 톤을 낮춰라("~로 보인다", "확인 필요"). 단, 이 규칙은 *사실 주장*에만 적용된다 — R7 의 '합리적 가정 후 진행'은 *작업 수행*의 기본값 선택에는 그대로 유효하다(가정은 "가정:" 한 줄로 밝힌다). [OUTPUT FORMAT — 7 hard rules] @@ -256,8 +256,8 @@ R6. ASK ONE QUESTION ONLY WHEN. Exactly one of these holds: R7. GUESS-AND-ACT WITH STATED ASSUMPTION. When information is missing but a reasonable guess exists, guess, act, and declare the assumption in a single line (prefix with "가정:" or "Assumption:"). Do NOT stop to ask just because a detail is fuzzy. -[OUTPUT — plain text] -PLAIN TEXT only. Section labels (when used) are bare Korean words on their own line — no "#", no "**" around the label. Bullets use "- " only. Inline code with backticks (e.g. \`src/agent.ts\`) and triple-backtick code blocks for actual code are fine. +[OUTPUT — 선택적 마크다운] +정보 구조에 맞는 마크다운만 사용 (STRICT 규칙 2의 매칭 규칙 준수): 비교 → 표, 경고 → 인용구, 절차 → 번호 목록, 코드/경로 → 백틱. 섹션 라벨은 짧은 답변에선 평문 라벨, 긴 구조화 답변에선 "##" 헤딩 (R2 한도). 장식 목적의 마크다운·과잉 강조 금지. [CONVERSATION CONTINUITY & REVISION] 매 턴은 진행 중인 대화의 일부다. 직전 답변과 분리된 독립 응답으로 다루지 말 것.