- Alignment Self-Learning: 자가 조사(질문 전 두뇌 검색)·사용자 답변 두뇌 저장·핵심메시지/프로젝트 컨텍스트 주입 (alignmentResearch.ts 신규)
- 웹 접근: Bridge 폴백 직접 fetch(webFetch.ts 신규)·<fetch_url> 액션 태그·기업 모드 URL/아키텍처 컨텍스트 주입·bare 도메인 인식
- 트리거 버그 수정: startsWith('/') 가 절대경로를 슬래시 명령으로 오인 — 분석 지시·URL 주입 전멸 원인 (회귀 테스트 고정)
- 자기지식 접지: 기능 인벤토리 lazy 재생성·학습 메커니즘 정본 섹션·[인벤토리 대조] 태그 의무화·결정론적 재구현 제안 정정 훅(featureConceptMap.ts 신규)
- 환경 자가점검: HealthCheckMonitor 에 Bridge/두뇌 볼륨/git 자격증명/확장 버전 검사 4종 + readyBar ⚠ 표시
- 두뇌 동기화: 원격 미설정 시 로컬 새로고침 모드·staged 기준 commit 판정·인증 부재 안내
- 기타: outputFormat 기본 markdown(제목 렌더 복구)·레슨/행동제약 truncation 보호 구역 이동·[CONTEXT] 절단 우선순위 재정렬
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
근본 문제: 웹뷰는 marked.js 로 마크다운을 완전 렌더링하는데, 시스템 프롬프트는
"PLAIN TEXT ONLY"(utils 규칙 2)와 "## 헤딩 써라"(Chronicle 가드)가 동시 주입돼
턴마다 포맷이 널뛰었음. ASTRA UX 제안 검토 후 카운터 설계로 채택:
- 규칙 2 교체: 마크다운은 정보 구조가 요구할 때만 — 비교/수치→표,
주의/경고→인용구, 절차→번호 목록, 파일/설정키→인라인 코드, 핵심→볼드(R4 ≤3 유지).
장식 금지·짧은 답은 평문·과잉 강조 금지("강조 없는 문장이 기본값").
- 채택 안 한 원안: TL;DR 박스(R1 결론 첫 문장과 중복 — R3 위반),
볼드 극대화(원안 스스로 Risk 에서 모순 지적), 구분선 남용(전환 1곳 한도).
- 규칙 4 에 Chronicle 가드 예외 명시 (가드 턴의 헤딩 요구와 충돌 해소).
- 코드리뷰 계약(localProjectIntent)도 같은 정책으로 정렬.
- 텔레그램 경로는 별도 프롬프트라 영향 없음 (표 미지원 환경 분리 유지).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
[포맷 통일 — Datacollect 가 정본]
/wikify 와 Datacollect research 가 각자 포맷 사본을 들고 어긋났던 문제.
더 최신인 Datacollect 포맷을 wiki_format.mjs 정본으로 추출(브리지 측)하고,
/wikify 는 GET /api/wiki/template 로 받아 소비. 구버전 브리지면 내장 사본
fallback (정본 v3.1과 동일 내용). 포맷 수정은 이제 wiki_format.mjs 한 곳.
/wikify 가 정본을 따르며 고쳐진 것:
- category "10_Wiki/Topics"(물리 경로 버그) → 논리 도메인 규칙
- 고정 신뢰도 B/0.8 → 소스 평가 동적 부여 (충돌 신뢰도 권고의 입력 품질)
- aliases 빈 배열 → 동의어 3-8개 강제 (어휘갭 검색 보완)
- "## 🔗 관련 문서 링크" → "## 🔗 지식 그래프" + 고아 방지 up-link
- 인라인 [S#] 출처 인용 + 📚 출처 섹션, 비교표·코드 패턴 조건 섹션
[채팅 URL 접근 — 강제 주입 패턴 4번째 적용]
일반 채팅에 URL 을 주면 "접근 불가"라고 답하던 공백: urlContext 가 URL 감지
시 브리지 /api/web-extract(기존 /wikify 인프라 재사용)로 본문 추출 →
컨텍스트 주입 (8K 캡, 잘림 시 /wikify 안내). 실패 시 정직 블록 (브리지 확인
안내 + 추측 금지). 슬래시 명령은 제외 (자체 처리). 주입 성공 로그 포함.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
v2.2.226 후에도 동일 구식 제안("CoVe 도입하라" 등 + 출처: 모델 지식) 재현.
이번 보강의 핵심은 실패를 *관측 가능*하게 만드는 것 — "주입이 안 됨" vs
"주입됐는데 무시"를 구분 못 해 같은 버그를 3번 쫓았다.
- 개념 매핑 갭 봉쇄: 인벤토리에 "학술 개념 ↔ 구현 매핑" 섹션 자동 생성
(CoVe/Self-Critique↔coveEnabled+critic-loop, 노후점검 자동화↔주간 사이클,
충돌 해결↔일일 스캔+신뢰도 권고, 피드백 태깅↔Correction Loop 등 8건).
모델이 학술 명칭으로 제안할 때 설정 키와 같은 것임을 모르는 갭 제거.
- 관측성: 주입 성공 logInfo + 모델에게 "출처: ASTRA 기능 인벤토리 v<버전>"
표기 지시 — 답변만 봐도 인벤토리가 도달했는지 판별 가능.
- 감지 확대: SELF_RE 에 connectai/프로젝트/업무 능력 추가, 길이 상한 600→1500
(배경 설명 붙은 실사용 질문 포착).
- 앵커 차단: "직전 대화의 본인 제안 반복 금지 — 인벤토리가 우선" 지시
(같은 세션 재질문 시 이전 답변 히스토리에 끌려가는 것 방지).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
[자기 지식 구식화 — 마지막 구멍 봉쇄]
인벤토리를 자동 생성해도(v2.2.225) 모델이 검색 없이 기억으로 답하면 무용
— 실사례: 답변 말미 "출처: 모델 지식 (검색 미사용)" 후 이미 있는 기능
(CoVe·멀티스텝 플래닝·노후점검 자동화)을 신규 제안. 프롬프트 규칙은 검색을
강제할 수 없으므로 scheduleContext 와 동일 패턴으로 해결:
- selfAssessContext: "기능 개선/고도화/self-evolving/무슨 기능" 류 질의 감지
시 인벤토리 전문을 RAG 경쟁 없이 결정론적 주입 + "이미 있는 기능 신규 제안
금지, '현재 X 있음 — 빠진 증분 Y' 형태" 지시. 인벤토리 미생성 시 정직 안내.
[충돌 해결사 — 권고까지만, 자동 결정은 안 함]
- conflictScan 에 신뢰도 비교 추가: 양쪽 frontmatter(source_trust_level S~D,
confidence_score) + 최신성으로 "신규/기존 우선 권고" 생성. 메타데이터 없거나
비등하면 권고 보류 (근거 없는 권고 금지). 삭제·덮어쓰기는 여전히 사람 결정.
테스트 17건 추가 (질의 감지·인벤토리 주입·신뢰 파싱·권고 분기).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
[근본 수정 — 자가검증 구식 정보 버그]
ASTRA 자기 지식이 사람이 쓴 스냅샷(selfIdentity 블록·아키텍처 위키 문서)에
의존해 릴리스마다 구식이 됐고, 자기 개선 제안에서 이미 있는 기능을 신규
제안하는 오류가 반복됨. 수정:
- featureInventory.ts: 활성화 시 package.json(contributes.commands/configuration)
+ POST_ANSWER_HOOKS 레지스트리에서 "ASTRA 기능 인벤토리" 문서를 두뇌에
기계 생성 (버전 변경 시 자동 재생성 — 사람이 갱신을 잊을 수 없는 구조).
- selfIdentity: "자기 기능 평가·제안 전 인벤토리와 대조, 기억 의존 서술 금지" 규칙.
[검증-피드백-재설계 파이프라인 보강 — 의견 검토 후 역제안 3건]
- A-1 골든셋 회귀 경보: 주간 사이클이 metrics-history.jsonl 적립 + 직전 대비
recall@1 -10%p 또는 MRR -0.08 하락 시 ⚠️ + 그 기간 추가된 문서를 용의자로
제시(regression-alert.md). 자동 롤백 없음 — 판단은 사람.
- A-2 신규 지식 충돌 스캔(conflictScan.ts): 일일(사전 소화와 같은 슬롯) 신규/변경
문서를 기존 유사 top-2와 LLM 모순 비교 → 충돌 시 conflict-report.md +
"기존 A vs 신규 B" 알림. 쓰기 주체(Datacollect/수동/Research) 무관 포착.
런당 비교 ≤5건·최초 실행 24h 한정 (폭주 방지).
- A-3 criticLoop 게이트 확장: 업무 turn 외에도 "근거 약함(top<0.25) + 단정
표현(수치·날짜·확언)" 트리거 추가. 전 답변 강제 2-pass 는 기각 — intrinsic
self-correction 은 외부 신호 없이 효과 없음(arXiv 2310.01798).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
self-evolving 고도화: 사용자 정정이 곧 Ground Truth — 정답지를 사람이 따로
만들지 않고, 태그 통계가 리포트에 머물지 않고 다음 턴의 행동을 바꾼다.
① 정정 감지·태깅 (correctionLoop.ts + agent.ts 훅, fire-and-forget):
- "아니야/틀렸어/~가 아니라" 류 정정 발화 감지 (보수적 — 추임새 "아니"는 제외)
- LLM 오류 분류 (사실오류/근거누락/맥락누락/추론오류/지시불이행/형식오류,
실패 시 휴리스틱 fallback) → error-tag frontmatter 레슨(lessons/) 저장
- 동시에 회귀 케이스 적립: .astra/eval/corrections.jsonl {질문, 틀린답, 정정}
② 주간 성장 사이클 확장 (1.5단계):
- 정정 회귀 테스트: 정정받은 질문을 두뇌 검색 컨텍스트와 함께 재실행 →
LLM-judge "같은 실수 반복?" 판정 → growth/regression-report.md (사이클당 ≤8건)
- 약점 프로필: 최근 60일 태그 통계 → growth/weakness-profile.json
③ 결핍의 행동화 (memoryContext):
- GROUNDING 약함 + agent scope 적용 중 → 전체 두뇌 1회 재검색 (scope 가
정답 문서를 가리는 경우 구제, 더 강한 근거일 때만 채택)
- 그래도 약함 → 학습 큐에 지식 공백 자동 proposed 등록 (질문 해시 중복 차단,
20건 폭주 방지, 승인은 사람 — Permission Based Learning 유지)
- 약점 프로필 → [자기검토] 블록 주입 (태그 2회 이상만): "너는 최근 X 정정을
N회 받았다 — <유형별 자기검토 지시>"
테스트 25건 추가 (감지 패턴·프로필 집계·큐 등록·영속화·fallback 분류).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
"오늘 업무 목록 알려줘" 류 질문에 채팅이 캘린더를 못 읽던 문제 수정.
채팅 경로(RAG)는 두뇌·기억만 검색해 캘린더가 연결돼 있어도 일정 질의에
모른다고 하거나 지어내던 구조적 공백.
- scheduleContext.ts: 일정/할일 질의 감지(isScheduleRequest) 시
iCal 캐시 새로고침 + 기간 내 일정 + Tasks(기간 마감/기한 경과/조건부)
실데이터 블록을 contextBlock 에 주입. "데이터에 없으면 없다고 답하라"
지시 포함 (환각 방지). 기간 해석: 기본 오늘 · "내일" · "이번 주".
- 미연결이면 연결 명령 안내 블록 — 지어내지 않고 정직하게 안내.
- Tasks 조회 실패(토큰 만료 등) 시 에러를 그대로 사용자에게 전달.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
P1 — 섹션 청크 검색 기본 활성화:
- 골든셋 24질의 A/B 측정: 파일 단위 → 섹션 청크에서
recall@1 12.5%→75.0% · recall@3 33.3%→83.3% · recall@5 37.5%→87.5%
· MRR 0.217→0.802. 18질의 개선·악화 0건.
- Phase 1-가 구현은 완성돼 있었으나 chunkLevelRetrieval 기본값이 false 라
실전 채팅이 열등한 파일 모드로 동작 — package.json·config 기본값 true 로.
- tests/retrievalEvalCompare.test.ts: 환경변수(ASTRA_EVAL_BRAIN) 게이트형
A/B 회귀 측정 도구 (평소 skip — CI/패키징 무영향).
P2 — 확신도 전역화 (/meet 원칙을 모든 대화로):
- memoryContext 에 [GROUNDING] 블록 — 두뇌 근거 강도(강/보통/약)를 점수로
평가해 답변 정책 주입: 약함 → "⚠️ 두뇌 근거 약함" 표기+단정 금지,
강함 → 근거 문서 제목 인용, 보통 → 사실/추론 구분 서술.
P3 — 회의 용어집 자동화 + 출력 위생:
- /meet 실행마다 담당자 이름·사용자 메타데이터 용어를 .astra/meet_glossary.json
에 누적, 다음 실행 때 자동 주입 (STT 보정 용어집 — 반복 회의 표기 일관성).
- selfIdentity 블록에 한·영 혼합 깨진 표기 금지 규칙 (전 대화, 무비용).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
사용자 대화 분석에서 발견된 3개 결함:
1) 자기 오보고 — 자기 지식 블록이 Astra 모드에만 있어 Agent 모드는 미적용.
selfIdentity.ts 공용 모듈로 추출해 양 모드 system prompt 에 주입.
2) 3인칭 화법 — "Astra는~"처럼 남 얘기하듯 답하던 문제. 공용 블록에
"너는 ASTRA 본인, 반드시 1인칭" 규칙 명시.
3) 앵무새 반복 — [PRIOR TURN CONCLUSION]의 "…결론으로 다시 말해라" 지시를
소형 모델이 문자 그대로 해석, 직전 답변 첫 문장을 턴마다 서두에 복창.
지시문을 "인용 받아쓰기 금지 + 자신의 새 문장으로 재평가"로 교체.
근본 보강: 두뇌(2nd)에 정본 자기 기술서 'ASTRA 자기 아키텍처' 문서 생성
(별도 커밋) — 자기 기능/성장 질문 시 RAG 가 실제 사실을 검색하게 함.
self-identity 블록도 해당 문서를 근거로 답하라고 연결.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
신뢰성 코어 (P1~P2):
- Requirement Graph: 업무 유형(회의록/시장조사/업무조사/일정) 필수 요소 주입 + 커버리지 hook
- Confidence Engine(0~100 결정론적) / Escalation Engine(검토 요청) / Epistemic Guard(모름·추정·확실 3분류)
- Provenance: citationTrace 에 출처 수정일·오래됨 경고
- Critic Loop: 문제 신호 turn 만 LLM 검수 1회 + 보완 카드
성장 루프 (P3):
- Gap Detector(Requirement-Knowledge) / Need Engine(30/25/20/15/10 공식) / Knowledge Inventory
- Learning Queue(proposed 전용 병합 — 승인은 사람만) / Decision Journal / Reflection 기록
- 반복 누락 요소(3회+)는 다음 turn 체크리스트에 자동 강조 (T5 루프)
지식 운영 (P4) + 기억 (P5) + 학습 실행 (P6):
- Knowledge Validation + Belief Revision(중복 reject·충돌 시 update/add 권고)
- Knowledge Decay(분야별 반감기 감사) / Knowledge Debt(blocked x impact)
- Organizational Memory(.astra/organization.md 상시 주입)
- Research Agent(approved 큐 -> 조사 브리프+추정 라벨 초안+Validation 게이트 -> proposals/)
- Skill Score(전/후반 추세) + Success Pattern DB(전요소충족+확신도90+ 자동 적재)
병렬 트랙:
- 캘린더 충돌 게이트: conflictCheck + 구조화 이벤트 캐시 + create_calendar_event 차단(force 는 사용자 승인 후)
- Task Eval Harness: 회의록 골든셋 자동 채점 명령 + 성장 리포트/학습 큐/노후 점검 명령
신규 모듈 17종(src/intelligence/), VS Code 명령 5종, 설정 11종, 테스트 +89건(전체 508 통과).
설계 문서: docs/SELF_EVOLVING_OS_MASTER_PLAN.md
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- src/retrieval/chunker.ts: 문서 청킹 로직 추가
- src/retrieval/evalHarness.ts + src/extension/evalCommands.ts: 검색 품질 평가 하니스
- brainIndex.ts / retrieval/index.ts / memoryContext.ts: 인덱싱·컨텍스트 빌더 개선
- config.ts / extension.ts / sidebarProvider.ts / package.json 갱신
- ADR-0030~0032 및 개발 기록, .astra 런타임 상태 동기화
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>