chore(brain): ASTRA 성장 자산 동기화 — 기능 인벤토리·growth(약점프로필/학습큐)·일화기억·장기기억·회의록 원문

This commit is contained in:
2026-06-12 16:37:41 +09:00
parent a97fc7be07
commit 89fb05a28a
781 changed files with 138546 additions and 47 deletions
@@ -0,0 +1,4 @@
{"ts":"2026-06-11T05:36:04.218Z","taskId":"meeting-minutes","taskLabel":"회의록","confidenceScore":66,"confidenceBand":"low","missing":["참석자","기한"],"escalated":true,"criticIssues":null,"promptPreview":"너가 작성한 회의록에 대한 나의 평가는 아래와 같아. 평가부터 하면, **생성 품질은 생각보다 괜찮은 편(70~80점 수준)** 입니다. 특히 AI 회의록이 흔히 하는 실수인: * 존재하지 않는 내용 추가 * 참석자","factors":["검색 근거 8건(강) (+25)","출처 인용 있음 (+8)","요청 모호성 감지 (-10)","필수 요소 2개 누락 가능 (-12)"],"usedSources":["Long-Term Memory (사용자 취향 / 규칙 / 결정)","AI_and_ML\\Hallucination (환각).md","Project Memory (Wiki)","사진 정리 앱 기획문서 작성해줘. 40-50대 남성 기준이고, 컴퓨터 모르는 사람들이 대상...","Visual_Effects\\Graphics\\3D_Gaussian_Splatting.md"],"retrieval":{"chunkCount":8,"topScore":0.9199999999999999},"weakGrounding":false,"gapSeverity":"medium"}
{"ts":"2026-06-11T05:39:49.248Z","taskId":"meeting-minutes","taskLabel":"회의록","confidenceScore":64,"confidenceBand":"low","missing":["참석자"],"escalated":true,"criticIssues":null,"promptPreview":"이번 회의록을 참고해서 이전 회의록과 비교했을때 많은 부분이 개선된 것이 확인이 되었어. 그렇지만 아래와 같이 지금 만든 회의록에 대한 피드백을 공유할께. 이번 회의록은 이전 회의록보다 확실히 좋아졌습니다. 점수로 ","factors":["검색 근거 7건(강) (+25)","출처 인용 있음 (+8)","요청 모호성 감지 (-10)","필수 요소 1개 누락 가능 (-6)","불확실 표시 2곳 (-8)"],"usedSources":["너는 스스로 생각하고 결과물에 대한 평가를 하고 개선 할 수 잇는 방법을 찾기 위해 노력하...","Long-Term Memory (사용자 취향 / 규칙 / 결정)","Architecture\\소프트웨어 아키텍처 평가 (Software Architecture Evaluation).md","DevOps_and_Security\\20260429_스포티앤리치_개발일정_회의록.md","Project Memory (Wiki)"],"retrieval":{"chunkCount":7,"topScore":0.97773},"weakGrounding":false,"gapSeverity":"medium"}
{"ts":"2026-06-11T05:45:20.430Z","taskId":"meeting-minutes","taskLabel":"회의록","confidenceScore":72,"confidenceBand":"medium","missing":["참석자"],"escalated":false,"criticIssues":null,"promptPreview":"이번 결과는 이전 두 번보다 **확실히 개선되었습니다.** 점수로 보면: * 1차 회의록: 83점 * 2차 회의록: 88~90점 * 이번 회의록: 91~93점 특히 제가 지적했던 문제 중 일부는 눈에 띄게 줄었습니다","factors":["검색 근거 5건(강) (+25)","출처 인용 있음 (+8)","요청 모호성 감지 (-10)","필수 요소 1개 누락 가능 (-6)"],"usedSources":["Long-Term Memory (사용자 취향 / 규칙 / 결정)","AI_and_ML\\SDLC (소프트웨어 개발 수명 주기).md","AI_and_ML\\SDLC_(소프트웨어_개발_수명_주기).md","Project Memory (Wiki)","너는 스스로 생각하고 결과물에 대한 평가를 하고 개선 할 수 잇는 방법을 찾기 위해 노력하..."],"retrieval":{"chunkCount":5,"topScore":0.9199999999999999},"weakGrounding":false,"gapSeverity":"medium"}
{"ts":"2026-06-11T09:23:26.644Z","taskId":"schedule","taskLabel":"일정 관리","confidenceScore":44,"confidenceBand":"very-low","missing":[],"escalated":true,"criticIssues":null,"promptPreview":"캘린더를 보면 오늘 날짜로 2개 테스크가 있는데 ? 롯데 자이언츠 이머시브 현황 확인과 즐겨찾기 UI 수정이 있자나.","factors":["검색 근거 2건 (+12)","모델 지식만 사용 명시 (-5)","출처 간 충돌 1건 (-8)","요청 모호성 감지 (-10)"],"usedSources":["Project Memory (Wiki)","Coding\\React_Headless_UI_Patterns.md"],"retrieval":{"chunkCount":2,"topScore":0.9265},"weakGrounding":false,"gapSeverity":"none"}
+220
View File
@@ -0,0 +1,220 @@
---
type: reference
title: "ASTRA 기능 인벤토리 (자동 생성)"
version: "2.2.231"
generated_at: 2026-06-12T06:35:15.353Z
aliases: ["ASTRA 기능 목록", "ASTRA 명령어", "내 기능", "ASTRA가 할 수 있는 것", "기능 인벤토리", "ASTRA capabilities"]
---
# ASTRA 기능 인벤토리 — v2.2.231 (자동 생성)
> ⚙️ 이 문서는 Astra 활성화 시 **소스 코드(package.json)에서 기계 생성**됩니다 — 수동 편집 금지 (버전 변경 시 덮어씀).
> 자기 기능에 대한 질문·자기 개선 제안은 이 문서가 **항상 현행** 근거입니다. 서사적 설명은 [[ASTRA 자기 아키텍처]] 참고.
## 사용자 명령 (39개)
- Astra: New Chat
- Astra: 검색 평가 실행 (recall@k / MRR)
- Astra: 업무 평가 실행 (회의록 골든셋)
- Astra: 성장 리포트 (Reflection 추이)
- Astra: 학습 큐 갱신 (Need Engine)
- Astra: 지식 노후 점검 (Knowledge Decay)
- Astra: 학습 실행 (Research Agent — 승인된 큐 항목)
- Astra: 주간 성장 사이클 지금 실행 (평가→학습큐→노후점검→승인분 실행)
- Astra: 두뇌 임베딩 전체 색인
- Astra: 지식 사전 소화 지금 실행 (Sleep-time Digest)
- Astra: 지식 충돌 스캔 지금 실행 (신규 문서 ↔ 기존 지식)
- Astra: Export Chat as Markdown
- Astra: Explain Selected Code
- Astra: Focus Chat Input
- Astra: Show Brain Topology
- Astra: Focus Approval Panel
- Astra: Scaffold New Project
- Astra: Set Telegram Bot Token
- Astra: Clear Telegram Bot Token
- Astra: Test Telegram Connection
- Astra: Open Settings Panel
- Astra: Edit Agent ↔ Knowledge Map
- Astra: Open Chat (Editor Column)
- Astra: Setup Datacollect Dependencies (yt-dlp, youtube-transcript-api)
- Astra: New Lesson (Experience Memory)
- Astra: New Lesson from Current Conversation
- Astra: Browse / Manage Lessons
- Astra: Refresh Project Architecture Context
- Astra: Detach Project Architecture Context
- Astra: Attach Project Architecture Context
- Astra: Open Project Architecture Doc
- Astra: Toggle 1인 기업 Mode
- Astra: Manage 1인 기업 Agents
- Astra: Open 1인 기업 Sessions Folder
- Astra: Open Pixel Office (Full Screen)
- Astra: Google Calendar (iCal) 연결 📅
- Astra: Google Calendar 새로고침 📅
- Astra: Google Calendar OAuth 연결 (쓰기) 🔐
- Astra: Toggle Devil Agent 🎭
## 설정으로 제어되는 동작·자동화 (146개)
- `multiAgentEnabled` — Enable Multi-Agent Workflow (Planner -> Researcher -> Writer) for complex tasks.
- `datacollectBridgeTarget` — Datacollect 백엔드(Bridge)를 어디로 보낼지 선택.
- `datacollectBridgeUrl` — local 타깃 Wiki/Datacollect MCP Bridge URL.
- `datacollectBridgeNasUrl` — nas 타깃 NAS에서 도는 경량 Bridge URL (예: https://your-nas-domain 또는 http://nas-ip:3002).
- `datacollectBridgeNasToken` — nas 타깃 NAS Bridge가 요구하는 x-bridge-token 값(Bridge의 BRIDGE_AUTH_TOKEN과 일치).
- `datacollectSavePath` — /benchmark 등 Datacollect slash 명령 결과물(markdown)을 저장할 폴더.
- `datacollectCrawlDepth` — /benchmark 사이트맵 크롤 깊이 기본값.
- `datacollectMaxPages` — /benchmark 스캔 최대 페이지 수 기본값.
- `datacollectSynthesisTemperature` — /benchmark LLM 4-렌즈 합성의 temperature.
- `chatTemperature` — 채팅 응답 생성의 temperature.
- `meetUsesTasks` — /meet 액션 아이템을 Google Tasks 에도 등록할지 여부.
- `meetUsesCalendar` — /meet 액션 아이템을 Google Calendar 일정(all-day)으로도 등록할지 여부.
- `meetVerifyPass` — /meet 회의록 생성 후 검증 패스 실행 여부.
- `dailyBriefing.enabled` — 데일리 브리핑 — 평일(월~금) 지정 시각에 오늘의 캘린더 일정 + Google Tasks(오늘 마감·기한 경과·조건부 대기)를 텔레그램으로 발송.
- `dailyBriefing.time` — 데일리 브리핑 발송 시각 (KST, HH:MM).
- `sleepDigest.enabled` — Sleep-time 지식 사전 소화 — 매일 지정 시각(유휴 시간)에 최근 7일 내 변경된 두뇌 지식을 폴더별 '소화 노트'(<두뇌>/Digests/)로 변환합니다
- `sleepDigest.time` — 사전 소화 실행 시각 (KST, HH:MM).
- `growthCycle.enabled` — 주간 성장 사이클 — 매주 지정 요일·시각에 검색 평가(골든셋)→학습 큐 갱신(Need Engine)→지식 노후 점검→성장 리포트→승인된 학습 자동 실행(Research Agent, 사이클당 최대 3건)을 자동 수행하고 요약을 알림(+텔레그램).
- `growthCycle.day` — 주간 성장 사이클 실행 요일 (0=일 … 6=토).
- `growthCycle.time` — 주간 성장 사이클 실행 시각 (KST, HH:MM).
- `growthCycle.autoRunApproved` — 사이클에서 approved 상태의 학습 큐 항목을 Research Agent 로 자동 실행할지 (사이클당 최대 3건).
- `teamVoiceGuide` — /draft 외부 커뮤니케이션 초안 작성 시 모든 생성에 적용되는 팀 보이스 가이드.
- `memoryEnabled` — Enable layered memory injection before each model response.
- `memoryShortTermMessages` — Number of recent conversation messages included as short-term memory.
- `memoryMediumTermSessions` — Number of recent saved chat sessions included as medium-term memory.
- `memoryLongTermFiles` — Number of relevant Second Brain markdown files included as long-term memory.
- `ollamaUrl` — Base URL for Ollama or LM Studio.
- `defaultModel` — Default model name to use for chat requests.
- `requestTimeout` — Request timeout in seconds.
- `contextLength` — Model context window in tokens (prompt + generation combined).
- `maxOutputTokens` — Upper bound on tokens generated per response.
- `contextSafetyMargin` — Tokens kept free as a safety buffer for token-count estimation error.
- `contextOverflowPolicy` — Fallback behavior (LM Studio) if the prompt still exceeds the context window after Astra's own budgeting.
- `autoCompactHistory` — Automatically drop the oldest conversation messages from the request when the prompt would exceed the context budget (the on-screen chat history is unaffected).
- `smallModelContextCap` — Optional safety knob, OFF by default (0).
- `autoContinueOnOutputLimit` — When a reply is cut off because it hit the output-token limit, Astra continues it internally (compressed request — original question + the answer so far, not th
- `maxAutoContinuations` — Maximum number of automatic continuation rounds per reply (prevents runaway loops).
- `finalOnlyRetryOnThoughtLeak` — If the model emits only hidden reasoning (<think>, <|channel|>thought, "Thinking Process:" …) and no user-visible answer, Astra silently re-asks it for the fina
- `lmStudio.idleTimeoutMs` — Auto-eject the loaded LM Studio model after this many milliseconds of inactivity.
- `lmStudio.autoLoadOnSelect` — Automatically load LM Studio models into memory when selected from the Astra sidebar.
- `lmStudio.sampling.topP` — Nucleus sampling cutoff.
- `lmStudio.sampling.topK` — Top-K sampling cutoff.
- `lmStudio.sampling.minP` — Min-P floor — discards tokens with probability below this fraction of the top token.
- `lmStudio.sampling.repeatPenalty` — Repeat / frequency penalty to curb stutter (것입니다서입니다…).
- `lmStudio.statsInBudget` — Show token/s and time-to-first-token from LM Studio prediction stats in the context-budget badge after each turn (SDK path only).
- `lmStudio.draftModel` — Speculative decoding LM Studio model key of a small draft model (e.g.
- `lmStudio.load.flashAttention` — Load option Enable Flash Attention when loading models.
- `lmStudio.load.gpuOffloadRatio` — Load option How much of the model to offload to GPU.
- `lmStudio.load.offloadKVCacheToGpu` — Load option Keep KV cache on GPU memory.
- `lmStudio.load.keepModelInMemory` — Load option Prevent the model from being swapped out of system memory.
- `lmStudio.load.useFp16ForKVCache` — Load option Store KV cache in FP16 (halves cache memory).
- `lmStudio.load.evalBatchSize` — Load option Token batch size during evaluation.
- `localBrainPath` — Folder path for your local Second Brain knowledge base.
- `brainProfiles` — Multiple brain profiles.
- `activeBrainId` — Active brain profile id used for the current chat context.
- `secondBrainRepo` — Optional GitHub repository URL used for Second Brain sync.
- `autoPushBrain` — Automatically commit and push Second Brain changes after updates.
- `maxContextSize` — Maximum character count for active file context.
- `maxAutoSteps` — Maximum autonomous steps the agent can take per request.
- `dryRun` — If enabled, the agent will ask for approval before committing any file changes.
- `telegram.enabled` — Enable the Telegram bot integration.
- `telegram.allowedChatIds` — Optional allowlist of Telegram chat IDs that may message the bot.
- `telegram.defaultAgent` — Agent name (matches an entry in the Agent ↔ Knowledge map) used to scope Second Brain retrieval for Telegram replies.
- `telegram.agentByChatId` — Per-chat override of the Telegram agent.
- `telegram.contextChunks` — How many Second Brain excerpts to inject into Telegram replies.
- `skillKnowledgeMapPath` — Absolute path to the agent ↔ knowledge mapping JSON.
- `skillKnowledgeMap` — Inline fallback for the agent ↔ knowledge mapping.
- `agentSkillsPath` — Absolute path to the agent skills folder (.agent/skills/*.md).
- `embeddingModel` — Embedding model registered in LM Studio / Ollama (e.g.
- `embeddingBlendAlpha` — Hybrid score blend: 0 = pure TF-IDF (sparse / keyword), 1 = pure embedding cosine (dense / semantic), 0.5 = balanced.
- `chunkLevelRetrieval` — 섹션 청크 단위 검색 (Phase 1-가).
- `chunkTargetChars` — 섹션 청크의 목표 길이(문자).
- `conflictHighlightingEnabled` — Conflict Surface — 검색된 출처에서 충돌/논란 신호 감지 시 CONFLICT WARNINGS 블록을 시스템 프롬프트에 주입.
- `conflictSeverityThreshold` — Conflict 자기-신호 surface 시 최소 severity 임계.
- `conflictCrossDocEnabled` — 교차-문서 발산 감지 — 같은 주제 ≥2 chunks 의 본문 Jaccard < 0.30 인 잠재 모순 쌍을 CONFLICT WARNINGS 에 함께 표시.
- `coveEnabled` — Chain-of-Verification (CoVe) — 답변 *작성 전* 그라운딩 체크리스트를 시스템 프롬프트에 주입해 모델이 self-verify 하도록.
- `requirementGraphEnabled` — Requirement Graph — 업무 유형(회의록/시장조사/업무조사/일정) 감지 시 필수 요소 체크리스트를 시스템 프롬프트에 주입.
- `requirementCoverageEnabled` — Requirement Coverage Check — 답변 완료 후 업무 필수 요소 커버리지를 결정론적(정규식)으로 검사, 누락 가능 요소를 footer 한 줄로 표시.
- `epistemicGuardEnabled` — Epistemic Guard — 모름/추정/확실 3분류를 강제하는 시스템 프롬프트 블록.
- `confidenceEngineEnabled` — Confidence Engine — 답변 확신도 0~100 을 검색 그라운딩·출처 인용·충돌·커버리지 신호로 결정론적 산출, 업무 답변 아래 footer 표시.
- `escalationEnabled` — Escalation Engine — 확신도 낮음/출처 충돌/조사 출처 누락 시 footer 로 사람 검토를 명시적으로 요청.
- `criticLoopEnabled` — Critic Loop — 커버리지 누락 또는 확신도<70 인 업무 답변에만 LLM 검수 1회 실행, 발견 이슈와 보완 제안을 footer 카드로 표시.
- `reflectionEnabled` — Reflection — 업무 turn 회고(확신도·누락 요소·에스컬레이션)를 두뇌 .astra/growth/reflections.jsonl 에 기록.
- `orgMemoryEnabled` — Organizational Memory — 두뇌 .astra/organization.md 의 조직 규칙·업무 방식·선호를 시스템 프롬프트에 항상 주입.
- `coveTopSourcesCount` — CoVe 체크리스트에 나열할 상위 출처 개수.
- `coveStrictMode` — CoVe Strict 모드 — 모든 사실 주장 뒤에 출처 ID S1 형식으로 inline 인용 강제.
- `actionabilityEnabled` — Actionability Scoring — '현재 작업 상태' 신호(최근 슬래시 명령 + 열린 파일) 로 검색 결과를 재가중.
- `distillationEnabled` — Distillation Loop — stale Episodic Memory 를 LongTerm 'episode-digest' 로 승급해 검색 노이즈 방지.
- `distillationAgeThresholdDays` — 며칠 이상 지난 episode 를 distill 대상으로 할지.
- `distillationIntervalDays` — 자동 distillation 의 최소 간격 (일).
- `distillationArchiveMode` — Distillation 후 원본 episode 처리: 'mark-promoted'=플래그만 (파일 보존, 기본), 'archive-file'=memory/episodes/archive/ 로 파일 이동.
- `hierarchicalReweightEnabled` — Hierarchical Context Window — 질의·문서 추상도(concrete/operational/strategic) 매칭으로 검색 결과 재가중.
- `semanticRerankEnabled` — Semantic Re-ranking — 검색된 selectedChunks 의 순서를 LLM 한 번 호출로 의도-부합도 순 재정렬.
- `semanticRerankModel` — Semantic Re-ranking 전용 모델 ID.
- `semanticRerankCandidateK` — Re-rank 대상 상위 후보 개수.
- `semanticRerankTimeoutSec` — Re-rank LLM 호출 타임아웃 (초).
- `intentClarificationEnabled` — Intent Clarification — 모호 질의(환경/대상/범위/포맷/마감 누락) 감지 시 LLM 에게 추측 답변보다
- `intentClarificationStrictness` — 모호 판정 임계.
- `citationTraceEnabled` — Citation Trace — 답변 끝에 사용된 출처를 *출처:* 한 줄로 정리 지시.
- `selfCheckEnabled` — Post-hoc Self-Check — 답변 완료 후 별도 LLM 호출 1회로 검증 (답변 직접도/그라운딩/논리 모순).
- `selfCheckModel` — Self-check 전용 모델 ID.
- `selfCheckTimeoutSec` — Self-check LLM 호출 타임아웃 (초).
- `glossaryEnabled` — Terminology Dictionary — 사용자 편집 글로서리(.astra/glossary.md) 를 시스템 프롬프트에 주입.
- `glossaryPath` — Glossary 파일 상대 경로 (workspace root 기준).
- `glossaryMaxBodyLength` — Glossary 본문 시스템 프롬프트 cap (chars).
- `termValidatorEnabled` — Post-gen Term Validator — 답변 완료 후 글로서리 forbidden 단어 결정론적 정규식 스캔.
- `knowledgeMix.secondBrainWeight` — Knowledge Mix (0100): how heavily the assistant should lean on Second Brain evidence vs.
- `workflow.multiAgentMode` — Multi-Agent(5단계) 파이프라인 발동 모드.
- `workflow.autoCtxFractionThreshold` — workflow.multiAgentMode = auto 일 때, prompt 토큰이 효과적 context window 의 이 비율(0~1)을 넘으면 5단계 파이프라인을 강제 발동.
- `chunkedSwitchTokens` — 입력 prompt 가 이 토큰 수 *미만* 이면 Multi-Agent(chunked) 파이프라인 발동 안 함 — 모델이 단일 호출로 처리.
- `chunkedMaxSections` — Chunked 파이프라인이 답변을 쪼갤 수 있는 최대 섹션 수.
- `polishPersonaOverride` — ChunkedWriter 의 polish 단계 system prompt 를 직접 정의 — 답변 톤·구조를 도메인에 맞게 커스텀.
- `liveStreamTokens` — 모델 토큰을 받는 즉시 채팅 버블에 흘려보낼지 여부.
- `outputFormat` — 최종 답변 표시 방식.
- `chronicleAutoRecord` — 자동 기록 (Project Chronicle Auto-Record).
- `company.intentClassifierModel` — Model used to classify whether an incoming chat message in 1인 기업 모드 is a (a) casual chat / question, (b) follow-up on the previous round, or (c) a brand-new tas
- `company.disableIntentClassifier` — Bypass the intent classifier and always run the full work pipeline on every chat message in 1인 기업 모드 (legacy behaviour).
- `company.autoSelectPipeline` — Let the intent classifier *automatically switch* to the pipeline it recommends for this turn (e.g.
- `company.intentAlignmentMode` — Intent Alignment — turn user prompts into an explicit Requirement Contract (C-G-C-F-Q) before dispatching a pipeline.
- `company.intentAlignmentMaxRounds` — Maximum back-and-forth rounds the Intent Alignment analyzer is allowed to ask before forcing a 'confirm or cancel' card (it stops asking new questions and shows
- `selfReflector.enabled` — Self-Reflector Phase A — append a Self-Reflector Check block at the end of every substantive LLM answer (Consistency / Completeness / Accuracy, plus References
- `hollowCheck.enabled` — Hollow Code Check — <create_file> 등 action-tag 로 만든 파일이 *빈 깡통* (empty class, stub-only function, imports-only) 인지 정규식 스캔.
- `hollowCheck.autoRetry` — Hollow 감지 시 1회 자동 재작업 — Phase B (externalVerification) 와 분리.
- `selfReflector.externalVerification` — Self-Reflector Phase B — after every 1인 기업 specialist response, run a *separate* LLM call to verify the output from an outside-context perspective (catches the
- `selfReflector.executionVerification` — Self-Reflector Phase C — after a code file is created via <create_file>, automatically run the language's syntax check (Python: py_compile, JS: node --check, TS
- `company.pixelOffice.enabled` — Show the Pixel Office visualisation panel above the chat — a small pixel-office-style display that mirrors the agent's current pipeline status (analyzing, need_
- `company.pixelOffice.bubbles` — Show short comic-style speech bubbles above the Pixel Office character on status changes / key events (e.g.
- `google.clientId` — Google OAuth Client ID — console.cloud.google.com/apis/credentials → OAuth 2.0 Client ID (Desktop app) 생성 후 복사.
- `google.clientSecret` — Google OAuth Client Secret — Client ID 와 같은 페이지에서 발급.
- `google.calendarId` — 일정을 등록할 Google Calendar 식별자.
- `google.defaultEventDurationMinutes` — end / duration 둘 다
- `google.icalUrl` — Google Calendar 비공개 iCal URL — 읽기 전용 모드용.
- `google.icalDaysAhead` — iCal 캐시에 포함할 다가오는 일정 기간 (일).
- `providers.openrouter.enabled` — OpenRouter cloud provider 활성화 — Claude/Gemini/GPT 등 100+ 모델을 OpenAI 호환 API 로 사용.
- `providers.openrouter.defaultModel` — OpenRouter 의 기본 모델 (예: 'anthropic/claude-3.5-sonnet').
- `providers.anthropic.enabled` — Anthropic Claude 직접 API 활성화.
- `providers.anthropic.defaultModel` — Anthropic 의 기본 모델.
- `providers.gemini.enabled` — Google Gemini 직접 API 활성화.
- `providers.gemini.defaultModel` — Gemini 의 기본 모델.
- `devilAgent.enabled` — Devil's Advocate (도현) 활성화 — 매 답변 직후 별도 LLM 호출로 *비판적 sparring partner* 가 한 문단 반박.
- `stocks.watcherEnabled` — 주식 자동 모니터링 활성화 — VS Code 시작 시 watcher 가동.
- `stocks.spreadsheetId` — Stocks Google Sheets ID — https://docs.google.com/spreadsheets/d/<여기>/...
- `stocks.sheetSwing` — 스윙/중기 종목 시트 탭 이름.
- `stocks.sheetLong` — 장기투자 종목 시트 탭 이름.
- `stocks.sheetUltraLow` — 저평가우량주 시트 탭 이름.
- `stocks.telegramChatId` — Stocks 보고서 전용 텔레그램 chatId — fallback.
## 답변 후 자동 검증 훅 (6단계 — 매 답변 후 실행)
- `devil-rebuttal` — Devil Agent 반박 카드 (활성화 시)
- `self-check` — 답변 검증 LLM 호출 — 검색 근거 대조 (opt-in)
- `term-validator` — 글로서리 금지 용어 결정론적 검사
- `requirement-coverage` — 업무 필수 요소 커버리지 결정론적 검사
- `confidence-escalation` — 확신도 산출 + 인간 검토 에스컬레이션 + Reflection 기록
- `critic-loop` — 문제 신호(요소 누락/저확신/근거 약함+단정) 턴만 Critic LLM 검수 1회
## ⚠️ 개선 제안 전 필독 — 학술 개념 ↔ 구현 매핑
아래 개념들은 명칭이 달라도 **이미 구현되어 있다**. 이들을 "도입/추가하라"고 제안하면 오답이다:
- **CoVe / Chain-of-Verification / Self-Critique**: 구현됨 — coveEnabled(답변 전 그라운딩 체크리스트) + critic-loop 훅(문제 신호 턴 LLM 검수) + citationTrace(출처 역추적)
- **지식 노후 점검 자동화 / Automated Decay Audit**: 구현됨 — 주간 성장 사이클이 매주 자동 실행 (decay-report.md)
- **지식 충돌 감지/해결 / Conflict Resolver**: 구현됨 — 검색 시점 [CONFLICT WARNING] + 일일 충돌 스캔 + 신뢰도(trust·confidence·최신성) 비교 우선 권고. 최종 결정만 사람
- **피드백 태깅 / 오류 분류 / Feedback Tagging**: 구현됨 — Correction Loop가 사용자 정정을 자동 분류(사실오류/근거누락/맥락누락/추론오류/지시불이행/형식오류)해 레슨+회귀 케이스로 저장
- **멀티스텝 플래닝 / Multi-Step Planning / CoT 강제**: 구현됨 — multiAgentEnabled(Planner→Researcher→Writer, 기본 OFF) + 1인 기업 모드 디스패처
- **골든셋 자동 평가 / Regression Test**: 구현됨 — 주간 사이클 자동 평가 + 직전 대비 회귀 경보(regression-alert.md) + 정정 회귀 재검사
- **Sleep-time / 유휴 시간 학습**: 구현됨 — 일일 지식 사전 소화 (Digests/)
- **확신도 게이팅 / 환각 방지 표명**: 구현됨 — [GROUNDING] 강함/보통/약함 + 약함 시 표명 강제 + 학습큐 자동 등록
@@ -0,0 +1,27 @@
{
"id": "2db3baa8-e98b-42e2-8ce6-1d3ec8b18c06",
"sessionId": "task_1781153731847",
"title": "야",
"summary": "시작: 야 → 최종: 지금 1차 개발이 완료되었거든. 다시 새롭게 분석해줘.",
"keyDecisions": [
"수정: 현재 구조는 프로토타입으로는 작동하지만, 실제 서비스나 협업 환경을 고려한다면 OAuth 2.0 흐름 도입과 JWT를 통한 세션 관리 체계 구축이 반드시 필요합니다.",
"(iPhone 13/14/15, Galaxy S22/S23 등).",
"속도 향수: 수많은 종목 중 'Astra 매력도 Top 5'처럼 즉각적으로 유효한 후보를 골라내어 사용자의 리서치 시간을 극단적으로 단기화합니다.",
"엔진(Decision Engine)\"으로 격상시키는 과정입니다.",
"수정: 개발 완료 시점에서의 분석은 '무엇을 만들 것인가'가 아니라, '만들어진 것이 얼마나 견고하며(Robust), 어떻게 신뢰할 수 있는가(Reliable)'로 초점이 이동해야 합니다."
],
"topics": [
"네트워크",
"즐겨찾기",
"이벤트",
"주제를",
"하지만",
"어떠한",
"그래프가",
"구글이"
],
"projectContext": "e:\\Wiki",
"timestamp": 1781154102196,
"duration": 0,
"messageCount": 38
}
@@ -0,0 +1,27 @@
{
"id": "cc7b35dd-ad01-4185-963c-072641d63de2",
"sessionId": "task_1781165391416",
"title": "이 이메일을 읽어줘. 지금까지 이메일 내용 모두 포함되어 있어. 이제 회신을 해야하는데 어떠한 부분을 ...",
"summary": "시작: 이 이메일을 읽어줘. 지금까지 이메일 내용 모두 포함되어 있어. 이제 회신을 해야하는데 어떠한 부분을 회신해야하는지와, 너가 회신에 맞게 이메일도 써주면 좋겠어. \n\nHi Jaso → 최종: E:\\Wiki\\connectai 프로젝트의 코딩, 설계가 잘되어 있는지, 유지 보수가 쉽게 되어 있는지 검토해줄 수 있어?",
"keyDecisions": [
"수정: Astra의 성장 목표는 '자율적 실행'이 아닌, '고도화된 컨텍스트 제공을 통한 의사결정 보조(Decision Support)'로 재설정되어야 합니다.",
"사항을 반영한 것입니다\"라고 근거를 제시할 수 있어야 합니다.",
"폭을 넓혀주는 능력입니다.",
"Valentin의 기술적 의구심(Key Rotation 관련)을 해소하고, iOS SDK 구현을 위한 구체적인 요구사항(Player 종류, Audio 포함 여부 등)을 확정 지어주는 방향으로 회신해야 합니다.",
"수정: 이 정보는 직전 결론의 '상대방의 확인 질문에 대한 답변 필요성'을 강화합니다. 단순한 기술 검토를 넘어 사업적 규모와 비즈니스 모델까지 확정하여 전달해야 하는 단계로 전환되었습니다."
],
"topics": [
"you",
"the",
"and",
"for",
"your",
"this",
"ios",
"칼리버스"
],
"projectContext": "e:\\Wiki",
"timestamp": 1781167677726,
"duration": 0,
"messageCount": 41
}
@@ -0,0 +1,22 @@
{
"id": "f75b0276-ebf3-40be-9788-63d19802f047",
"sessionId": "task_1781243923272",
"title": "E:\\Wiki\\connectai 의 기능 중 astra의 업무 능력이나 지식 self-envolving...",
"summary": "시작: E:\\Wiki\\connectai 의 기능 중 astra의 업무 능력이나 지식 self-envolving 혹은 대화 방법이라거나 답변 관련하여 개선 할 수 있는 방법이 있는지 확인해 → 최종: 우리 개발실은 \n가우시안 스필리터, 그리고 월마트에서 이머시브 스토어, 그리고 ai로 영상, 사운드 제작팀이 있어. 인원은 30명정도야. 여기에는 사업도 포함되어 있고. \n\n이 ",
"keyDecisions": [
"시각적 위계 강화를 통해 인지 부하를 줄여야 합니다.",
"사항에만 집중적으로 배치)",
"수정: Astra의 답변 전략을 '텍스트 압축'에서 '시각적 구조화(Visual Structuring)'로 전환하며, 이를 통해 사용자의 인지 부하를 줄이고 정보 전달력을 극대화한다."
],
"topics": [
"wiki",
"connectai",
"있는지",
"있을지",
"그리고"
],
"projectContext": "e:\\Wiki",
"timestamp": 1781246179586,
"duration": 0,
"messageCount": 10
}
@@ -0,0 +1,19 @@
{
"id": "62cae40c-edea-432a-89f3-99ecad59b5c6",
"sessionId": "task_1781246326350",
"title": "https://koritips.com 블로그에 대한 조사, 내용 평가를 해줘.",
"summary": "https://koritips.com 블로그에 대한 조사, 내용 평가를 해줘. 어? 블로그 글 쓰기에 대한 블로그 아니야? 아마 넌 예전 블로그 내용을 보는데? 최근 블로그 초기화 하고 다시 만들었거든 그니깐, https://koritips.com 홈페이지에 들어가서 홈페이지 분석 후 다시 분석해줘",
"keyDecisions": [
"수정: 블로그가 초기화되었다면, 기존의 콘텐츠 구조나 SEO 성과를 논하는 것은 무의미하며 새로운 '콘텐츠 전략(Content Strategy)'과 '기초 설계(Foundation)'에 집중해야 합니다."
],
"topics": [
"블로그",
"https",
"koritips",
"com"
],
"projectContext": "e:\\Wiki",
"timestamp": 1781248283913,
"duration": 0,
"messageCount": 6
}
@@ -0,0 +1,27 @@
{
"id": "619c132f-5180-4da7-8e64-226b9c206924",
"sessionId": "task_1781233877174",
"title": "오늘 업무 목록 줘.",
"summary": "시작: 오늘 업무 목록 줘. → 최종: E:\\Wiki\\connectai 의 기능 중 astra의 업무 능력이나 지식 self-envolving 혹은 대화 방법이라거나 답변 관련하여 개선 할 수 있는 방법이 있는지 확인해",
"keyDecisions": [
"수정: 캘린더에 6월 12일자 태스크가 4개 존재함을 확인했습니다. 저의 이전 답변은 잘못되었으며, 즉시 정확한 데이터로 브리핑을 정정하겠습니다.",
"수정: 사용자의 지적을 통해 제가 6월 12일의 데이터를 여전히 누락하고 있음을 확인했습니다. 캘린더 데이터에 4개의 태스크가 존재한다는 사실을 인지했으므로, 이를 무시한 채 \"없다\"고 답변한 것은 명백한 오류입니다",
"수정: 현재 제가 가진 정보로는 \"6월 12일에 4개의 태스크가 있다\"는 사실까지만 확인 가능하며, 각 태스크의 구체적인 제목(예: 'OO 프로젝트 회의' 등)은 읽어올 수 없습니다.",
"사항들을 '골든셋(Golden Set)'으로 관리하고, 제가 새로운 지식을 학습하거나 로직이 변경될 때마다 이 골든셋에 대한 응답 정확도를 측정하여 성능 지표(Recall, MRR 등)를 대시보드화하는 것입니다.",
"사항(Decision Record)을 찾아볼까요?\"와 같이 다음 행동을 제안하는 '능동적 인터페이스'를 강화해야 합니다."
],
"topics": [
"기능이",
"stocks",
"스스로",
"자신이",
"성장할",
"analysis",
"self",
"041190"
],
"projectContext": "e:\\Wiki",
"timestamp": 1781234632233,
"duration": 0,
"messageCount": 41
}
+135 -47
View File
@@ -8,8 +8,8 @@
"source": "session:task_1778642741077",
"confidence": 0.7,
"createdAt": 1778655981978,
"lastReferencedAt": 1780969391169,
"referenceCount": 8
"lastReferencedAt": 1781246359390,
"referenceCount": 27
},
{
"id": "5d44cb85-e018-468c-a7be-dbfa44546fce",
@@ -18,8 +18,8 @@
"source": "session:task_1778642741077",
"confidence": 0.7,
"createdAt": 1778655981979,
"lastReferencedAt": 1780969391169,
"referenceCount": 8
"lastReferencedAt": 1781246359390,
"referenceCount": 29
},
{
"id": "4cb93674-fd06-4cf4-96f9-9ac2008a6b49",
@@ -28,8 +28,8 @@
"source": "session:task_1778642741077",
"confidence": 0.7,
"createdAt": 1778655981979,
"lastReferencedAt": 1780969391169,
"referenceCount": 7
"lastReferencedAt": 1781246359390,
"referenceCount": 24
},
{
"id": "acb8373d-3a17-4266-9f7e-608349add88c",
@@ -38,8 +38,8 @@
"source": "session:task_1778642741077",
"confidence": 0.7,
"createdAt": 1778655981986,
"lastReferencedAt": 1780969391169,
"referenceCount": 7
"lastReferencedAt": 1781246359390,
"referenceCount": 24
},
{
"id": "64b1c34d-64a0-493a-82ee-298c0fd1900f",
@@ -48,8 +48,8 @@
"source": "session:task_1778642741077",
"confidence": 0.7,
"createdAt": 1778655981992,
"lastReferencedAt": 1780969391169,
"referenceCount": 8
"lastReferencedAt": 1781246359390,
"referenceCount": 25
},
{
"id": "2e323e3f-bd37-4b25-8cd7-d21ddee58728",
@@ -58,8 +58,8 @@
"source": "session:task_1778642741077",
"confidence": 0.7,
"createdAt": 1778655981997,
"lastReferencedAt": 1780969391169,
"referenceCount": 7
"lastReferencedAt": 1781246359390,
"referenceCount": 21
},
{
"id": "e54c9135-67ac-4a46-b337-95af5bce61bb",
@@ -78,8 +78,8 @@
"source": "session:task_1778642741077",
"confidence": 0.7,
"createdAt": 1778655981998,
"lastReferencedAt": 1779074803033,
"referenceCount": 1
"lastReferencedAt": 1781161736816,
"referenceCount": 2
},
{
"id": "1438ba42-23b4-4751-bb64-aa583bbf43e0",
@@ -88,8 +88,8 @@
"source": "session:task_1778642741077",
"confidence": 0.7,
"createdAt": 1778655982004,
"lastReferencedAt": 1779074803033,
"referenceCount": 1
"lastReferencedAt": 1781161507133,
"referenceCount": 3
},
{
"id": "8f248ce7-e9f8-42a9-bc4a-eadfd3534419",
@@ -108,8 +108,8 @@
"source": "session:task_1778642741077",
"confidence": 0.7,
"createdAt": 1778655982017,
"lastReferencedAt": 1778655982017,
"referenceCount": 0
"lastReferencedAt": 1781156701781,
"referenceCount": 1
},
{
"id": "a4523890-ed55-4c8a-b9db-65c3f527c83e",
@@ -118,8 +118,8 @@
"source": "session:task_1778642741077",
"confidence": 0.7,
"createdAt": 1778655982022,
"lastReferencedAt": 1778655982022,
"referenceCount": 0
"lastReferencedAt": 1781246359390,
"referenceCount": 10
},
{
"id": "b17c37b8-7190-4455-a0a4-348d648bf88b",
@@ -138,8 +138,8 @@
"source": "session:task_1778642741077",
"confidence": 0.7,
"createdAt": 1778655982023,
"lastReferencedAt": 1778655982023,
"referenceCount": 0
"lastReferencedAt": 1781156146635,
"referenceCount": 3
},
{
"id": "07db9935-bb18-4b92-aa94-9411e2106f8d",
@@ -158,8 +158,8 @@
"source": "session:task_1778642741077",
"confidence": 0.7,
"createdAt": 1778655982028,
"lastReferencedAt": 1779074803033,
"referenceCount": 1
"lastReferencedAt": 1781161257912,
"referenceCount": 2
},
{
"id": "1a3671d5-1300-4a26-a9d1-3469c705a927",
@@ -168,8 +168,8 @@
"source": "session:task_1778642741077",
"confidence": 0.7,
"createdAt": 1778655982028,
"lastReferencedAt": 1779106389633,
"referenceCount": 2
"lastReferencedAt": 1781246359390,
"referenceCount": 7
},
{
"id": "2b5867b3-6842-4bd5-ab71-79e54d94beb8",
@@ -258,8 +258,8 @@
"source": "session:task_1778819919539",
"confidence": 0.7,
"createdAt": 1778840072791,
"lastReferencedAt": 1779074803033,
"referenceCount": 1
"lastReferencedAt": 1781161257912,
"referenceCount": 2
},
{
"id": "a85600e4-0991-4803-83d4-e414ec5f2eef",
@@ -368,8 +368,8 @@
"source": "session:task_1778819919539",
"confidence": 0.7,
"createdAt": 1778840072838,
"lastReferencedAt": 1779074612073,
"referenceCount": 1
"lastReferencedAt": 1781155087989,
"referenceCount": 3
},
{
"id": "0a257ba3-b320-48e4-bec0-e0bef68b6069",
@@ -378,8 +378,8 @@
"source": "session:task_1778819919539",
"confidence": 0.7,
"createdAt": 1778840072838,
"lastReferencedAt": 1778840072838,
"referenceCount": 0
"lastReferencedAt": 1781233879537,
"referenceCount": 5
},
{
"id": "947dd1e0-a369-4023-8829-381d72a6fefd",
@@ -388,8 +388,8 @@
"source": "session:task_1778819919539",
"confidence": 0.7,
"createdAt": 1778840072839,
"lastReferencedAt": 1780969391169,
"referenceCount": 6
"lastReferencedAt": 1781246359390,
"referenceCount": 20
},
{
"id": "e0cdc235-8907-4934-b9f8-24c9f36f8e0d",
@@ -398,8 +398,8 @@
"source": "session:task_1778819919539",
"confidence": 0.7,
"createdAt": 1778840072845,
"lastReferencedAt": 1779510397889,
"referenceCount": 2
"lastReferencedAt": 1781246359390,
"referenceCount": 13
},
{
"id": "d4804a31-585e-49bc-b6a3-4c1751dcf312",
@@ -408,8 +408,8 @@
"source": "session:task_1778819919539",
"confidence": 0.7,
"createdAt": 1778840072850,
"lastReferencedAt": 1780969391169,
"referenceCount": 6
"lastReferencedAt": 1781233879537,
"referenceCount": 22
},
{
"id": "19d285cc-70c5-49e5-8abf-6f25a8f2b924",
@@ -418,8 +418,8 @@
"source": "session:task_1778819919539",
"confidence": 0.7,
"createdAt": 1778840072855,
"lastReferencedAt": 1780969391169,
"referenceCount": 6
"lastReferencedAt": 1781161581494,
"referenceCount": 14
},
{
"id": "e7056c41-7a01-4e1c-b3c8-64480cd95077",
@@ -438,8 +438,8 @@
"source": "session:task_1779619484222",
"confidence": 0.7,
"createdAt": 1779619946611,
"lastReferencedAt": 1779619946611,
"referenceCount": 0
"lastReferencedAt": 1781246294750,
"referenceCount": 12
},
{
"id": "9b7b2ff2-a9b0-4fce-b26e-f2dba942a29a",
@@ -448,8 +448,8 @@
"source": "episodic:585dd6d9-1308-44a3-b4ca-2a7c803687b1",
"confidence": 0.7,
"createdAt": 1780969449853,
"lastReferencedAt": 1780969449853,
"referenceCount": 0
"lastReferencedAt": 1781246294750,
"referenceCount": 14
},
{
"id": "25530cbf-6913-4784-8d7d-c189be33ec51",
@@ -458,9 +458,97 @@
"source": "episodic:a4e4d26e-4fe6-4882-bf78-90a8f1c5a618",
"confidence": 0.7,
"createdAt": 1780969449854,
"lastReferencedAt": 1780969449854,
"referenceCount": 0
"lastReferencedAt": 1781246294750,
"referenceCount": 19
},
{
"id": "6f215df5-9cc4-4bc2-be65-9f417f98dfb4",
"category": "preference",
"content": "prefer a model in which a unique, one-time decryption key is issued per playback sessio",
"source": "session:task_1781165391416",
"confidence": 0.7,
"createdAt": 1781167677720,
"lastReferencedAt": 1781167677720,
"referenceCount": 0,
"expiresAt": 1782377277720
},
{
"id": "4143f62c-b644-4758-b158-6c432182e867",
"category": "decision",
"content": "결정\n\n정확합니다.",
"source": "session:task_1781165391416",
"confidence": 0.7,
"createdAt": 1781167677721,
"lastReferencedAt": 1781167677721,
"referenceCount": 0,
"expiresAt": 1782377277720
},
{
"id": "88cb7af1-a7a4-4339-b44d-fff1968abcdd",
"category": "decision",
"content": "결정\n\n실제 녹취",
"source": "session:task_1781165391416",
"confidence": 0.7,
"createdAt": 1781167677721,
"lastReferencedAt": 1781167677721,
"referenceCount": 0,
"expiresAt": 1782377277720
},
{
"id": "3a745cb3-13ff-41fe-9be6-0b49bff4b776",
"category": "decision",
"content": "결정\n\n은 맞는데",
"source": "session:task_1781165391416",
"confidence": 0.7,
"createdAt": 1781167677721,
"lastReferencedAt": 1781167677721,
"referenceCount": 0,
"expiresAt": 1782377277720
},
{
"id": "a202f2ef-1679-46a7-904b-0ea7ea741c0e",
"category": "decision",
"content": "결정\n\n\"기존 칼리버스 계정 재사용 금지\"",
"source": "session:task_1781165391416",
"confidence": 0.7,
"createdAt": 1781167677722,
"lastReferencedAt": 1781167677722,
"referenceCount": 0,
"expiresAt": 1782377277720
},
{
"id": "97c10831-403a-4e37-ac22-97939aa16ae8",
"category": "decision",
"content": "결정\n\n처럼 추론이 과했음.",
"source": "session:task_1781165391416",
"confidence": 0.7,
"createdAt": 1781167677722,
"lastReferencedAt": 1781167677722,
"referenceCount": 0,
"expiresAt": 1782377277720
},
{
"id": "3aa081c5-3def-4327-8921-4568ea8dbc8f",
"category": "decision",
"content": "결론 하나 누락",
"source": "session:task_1781165391416",
"confidence": 0.7,
"createdAt": 1781167677723,
"lastReferencedAt": 1781167677723,
"referenceCount": 0,
"expiresAt": 1782377277720
},
{
"id": "22137ca3-3cca-4c8f-9f92-637ceae9c84d",
"category": "decision",
"content": "결정 관점에서는",
"source": "session:task_1781165391416",
"confidence": 0.7,
"createdAt": 1781167677723,
"lastReferencedAt": 1781167677723,
"referenceCount": 0,
"expiresAt": 1782377277720
}
],
"lastUpdated": 1780969449854
"lastUpdated": 1781247183731
}