docs(10_Wiki): W3Schools 위키화 — HTML/CSS/JavaScript(core)

W3Schools 튜토리얼을 P-Reinforce v3.1 포맷으로 위키화(영어 본문, 한/영 섹션 헤더).
- Topic_HTML: 59문서 (튜토리얼+예제, 레퍼런스/메타 제외)
- Topic_CSS: 190문서 (메인 + Advanced/Flexbox/Grid/RWD 전체)
- Topic_JavaScript: 120문서 (코어 언어; Temporal/DOM상세/BOM/WebAPI/AJAX/jQuery/Graphics 등은 후속)
각 폴더 00_INDEX.md(MOC) 포함. 코드 verbatim, 미확인분은 "Not found in source" 표기.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-23 19:21:18 +09:00
parent 8957890d13
commit 9609c04755
379 changed files with 54618 additions and 6 deletions
@@ -1 +1 @@
{"lastScanMs":1781805707217}
{"lastScanMs":1782151271579}
+199 -5
View File
@@ -1,19 +1,213 @@
---
type: reference
title: "ASTRA 기능 인벤토리 (자동 생성)"
version: "0.0.78"
generated_at: 2026-06-17T09:58:45.959Z
version: "2.2.259"
generated_at: 2026-06-23T05:57:03.547Z
aliases: ["ASTRA 기능 목록", "ASTRA 명령어", "내 기능", "ASTRA가 할 수 있는 것", "기능 인벤토리", "ASTRA capabilities"]
---
# ASTRA 기능 인벤토리 — v0.0.78 (자동 생성)
# ASTRA 기능 인벤토리 — v2.2.259 (자동 생성)
> ⚙️ 이 문서는 Astra 활성화 시 **소스 코드(package.json)에서 기계 생성**됩니다 — 수동 편집 금지 (버전 변경 시 덮어씀).
> 자기 기능에 대한 질문·자기 개선 제안은 이 문서가 **항상 현행** 근거입니다. 서사적 설명은 [[ASTRA 자기 아키텍처]] 참고.
## 사용자 명령 (0개)
## 사용자 명령 (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 🎭
## 설정으로 제어되는 동작·자동화 (0개)
## 설정으로 제어되는 동작·자동화 (155개)
- `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 회의록 생성 후 검증 패스 실행 여부(기본 ON).
- `meetTeamRoster` — /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).
- `largeInputMapReduce` — When a single message is too large to fit the model's context window, split it into chunks, extract only the request-relevant facts from each (no hallucination/
- `mapReduceTriggerRatio` — Map-reduce kicks in when a single message exceeds (effective context window × this ratio).
- `mapReduceConcurrency` — How many chunk extractions run in parallel.
- `mapReduceMaxDepth` — Maximum hierarchical-integration depth when the combined extractions still overflow the window.
- `mapReduceShowProvenance` — Tag each extracted block with its source chunk (조각 k) so the final answer can be traced back to the part of the input it came from.
- `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
- `web.autoFetchUrls` — URL 자동 수집 — 메시지에 http(s) 링크가 있으면 답변 생성 전에 페이지 본문을 가져와 모델에게 전달합니다
- `company.alignmentSelfResearch` — Alignment 자가 조사 — 분석기가 만든 질문을 사용자에게 보여주기 전에 두뇌(지식 폴더)를 먼저 검색해 스스로 답할 수 있는 질문을 걸러냅니다.
- `company.alignmentKnowledgeSave` — Alignment 학습 루프 — 사용자가 alignment 라운드에서 직접 답해준 Q/A를 두뇌의 'Alignment Knowledge' 폴더에 노트로 저장합니다.
- `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.
## 답변 후 자동 검증 훅 (7단계 — 매 답변 후 실행)
- `devil-rebuttal` — Devil Agent 반박 카드 (활성화 시)
@@ -0,0 +1,27 @@
---
type: digest
title: "소화 노트: Topic_Programming/Architecture"
generated_at: 2026-06-22T18:00:44.986Z
sources: ["의존성_주입과_서비스_인터페이스", "이벤트_소싱_스토어_패턴", "동시성_제어_Lock_Queue_Transaction", "ConnectAI_아키텍처_개요"]
---
# 소화 노트: Topic_Programming/Architecture
> ⚙️ 자동 생성 (sleep-time 사전 소화) — **원문이 항상 우선**입니다. 소스가 바뀌면 자동 재생성되며, 이 파일은 삭제해도 안전합니다.
## 예상 질문과 답
- **Q: ConnectAI의 전체적인 아키텍처 구조는 어떻게 구성되어 있나요?** — A: ConnectAI는 기능별 폴더 경계를 가진 **계층형 모듈 아키텍처**를 따릅니다. `core/lib` (인프라) → `memory/intelligence` (역량) → `features` (도메인 기능) 순으로 계층이 구성되며, 하위 계층은 상위 계층을 알지 못하는 구조입니다. [ConnectAI 아키텍처 개요]
- **Q: 의존성 주입(DI)을 통해 얻는 이점과 구체적인 방법은 무엇인가요?** — A: 객체가 협력자를 직접 만들지 않고 외부에서 받게 함으로써 모듈의 순수성을 유지하고 테스트 가능성을 높입니다. 생성자 옵션 객체나 함수 타입을 통해 구현을 주방하며, `IAIService`와 같은 인터페이스로 계약을 정의합니다. [의존성 주입과 서비스 인터페이스]
- **Q: 이벤트 소싱 스토어 패턴은 어떤 방식으로 데이터를 관리하나요?** — A: 현재 상태를 덮어쓰는 대신, 발생한 이벤트를 **Append-only(추가만 가능)** 방식으로 JSONL 파일에 기록합니다. 현재 상태는 저장된 이벤트들을 재생(`computeStates`)하여 도출합니다. [이벤트 소싱 스토어 패턴]
- **Q: 자바스크립트 환경에서 비동기 작업 시 발생할 수 있는 경쟁 상태(Race Condition)를 어떻게 방지하나요?** — A: 세 가지 장치를 사용합니다. 첫째, 자원별 **비동기 락(AsyncLock)**을 통해 작업의 직렬화를 보장하고, 둘째, **동시성 제한 큐**로 I/O 폭주를 막으며, 셋째, 파일 변경 시 **보상 트랜잭션**을 통해 실패 시 원복할 수 있도록 합니다. [동시성 제어 Lock Queue Transaction]
## 핵심 사실
- **ConnectAI 아키텍처:** 308개의 TypeScript 파일로 구성된 VS Code 확장형 지식 OS이며, `extension.ts`는 조립과 등록 역할만 수행하는 얇은 entry point를 가집니다. [ConnectAI 아키텍처 개요]
- **이벤트 소싱 구현:** JSONL 형식을 사용하며, 제네릭 팩토리(`createEventStore<E>`)를 통해 중복된 I/O 로직을 통합 관리합니다. [이벤트 소싱 스토어 패턴]
- **동시성 제어 전략:** `AsyncLock`은 Promise 체인을 활용하며, `Symbol` 토큰을 사용하여 락 해제 시 발생할 수 있는 race condition을 방지합니다. [동시성 제어 Lock Queue Transaction]
## 문서 간 연결
- **공통 주제 (Architecture):** 모든 문서는 ConnectAI의 확장 가능하고 안정적인 시스템 구축을 위한 소프트웨어 설계 패턴(Dependency Injection, Event Sourcing, Concurrency Control)을 다루고 있습니다.
- **상호 작용:**
- `의존성 주입` 패턴은 `아키텍처 개요`에서 언급된 계층 간 결합도를 낮추는 핵심 기술로 사용됩니다.
- `이벤트 소싱``동시성 제어`는 파일 시스템 기반의 데이터 영속화 및 안정적인 자원 관리를 위한 구체적인 구현 방법론을 제시합니다.
@@ -0,0 +1,26 @@
---
type: digest
title: "소화 노트: Topic_Programming/Conventions"
generated_at: 2026-06-22T18:01:03.587Z
sources: ["코딩_컨벤션과_주석_철학", "프롬프트_엔지니어링_패턴"]
---
# 소화 노트: Topic_Programming/Conventions
> ⚙️ 자동 생성 (sleep-time 사전 소화) — **원문이 항상 우선**입니다. 소스가 바뀌면 자동 재생성되며, 이 파일은 삭제해도 안전합니다.
## 예상 질문과 답
- **Q: 코딩 컨벤션에서 주석을 작성할 때 가장 중요하게 고려해야 할 원칙은 무엇인가요?** — A: '무엇'을 하는지가 아니라, 왜 그렇게 했는지(**Why**)와 왜 다른 방법이 아니었는지(대안 기각 이유), 그리고 과거의 버그 사례를 남기는 **Post-mortem 주석**을 작성하는 것이 핵심입니다. [코딩 컨벤션과 주석 철학]
- **Q: 프롬프트 엔지니어링에서 '블록 조립' 방식이란 무엇인가요?** — A: 시스템 프롬프트를 역할, 규칙, 컨텍스트, 출력 형식 등 독립적인 요소로 나누어 `[EPISTEMIC GUARD]`와 같이 명명된 블록 형태로 만들고, 필요에 따라 이를 조합하여 사용하는 방식입니다. [프롬프트 엔지니어링 패턴]
- **Q: 작은 규모의 LLM(예: Gemma)을 사용할 때 발생할 수 있는 문제와 대응 방안은?** — A: System 프롬프트가 없으면 환각(Hallucination) 현상을 일으키며 답변을 거절할 수 있으므로, 반드시 **System 메시지를 통해 강하게 Grounding**해야 합니다. 또한 규칙을 번호로 매겨 명시하고 부정적 제약(Negative Constraint)을 활용해야 합니다 *합니다*. [프롬프트 엔지니어링 패턴]
- **Q: 코드에서 `??` (Nullish coalescing operator)를 사용하는 권장 패턴이 있나요?** — A: `0`이나 `''`(빈 문자열)처럼 유효한 값이 의미가 있는 경우, `||` 대신 `??`를 사용하여 의미 있는 기본값을 보존해야 합니다. [코딩 컨벤션과 주석 철학]
- **Q: 프롬프트에서 JSON 출력을 강제할 때 발생할 수 있는 위험과 해결책은?** — A: 모델이 JSON 외의 잡설(예: `## 마커`)을 섞어 출력할 수 있으므로, 균형 괄호 `{}`를 스캔하여 추출하는 **강건한 파서(Robust Parser)**와 사후 정제 로직을 함께 설계해야 합니다. [프롬프트 엔지니어링 패턴]
## 핵심 사실
- **코딩 컨벤션의 핵심 가치:** 주석은 코드의 의도(Why)와 과거의 실수(Post-mortem)를 학습시켜, LLM이 코드의 논리적 함정까지 이해하도록 돕는 최고의 학습 신호입니다. [코딩 컨벤션과 주석 철학]
- **프롬프트 설계 전략:** 프롬프트는 조립 가능한 블록 형태여야 하며, 출력 형식은 파싱 가능한 JSON/템플릿으로 강제하고, 검색 근거가 없을 때는 가드 지시를 강화하는 동적 조절이 필요합니다. [프롬프트 엔지니어링 패턴]
- **코드 작성 패턴:** 함수명은 동사구로, Boolean은 `is*`/`should*` 접두사를 사용하며, 내부 전용 메서드는 `_` 접두사를 사용하는 것이 권장됩니다. [코딩 컨벤션과 주석 철학]
## 문서 간 연결
- **공통 주제:** 두 문서 모두 **"예측 가능성과 신뢰성 확보"**를 공통 주제로 합니다. 코딩 컨벤션은 개발자와 LLM이 실수하지 않도록 '의도'와 '근거'를 남기는 것을 강조하며, 프롬프트 패턴은 모델이 정해진 규칙을 벗어나지 않도록 '구조화된 블록'과 '강한 제약'을 설계하는 것을 다룹니다.
- **상호 보완성:** 코딩 컨벤션에서 언급된 "LLM이 의도까지 학습하게 하는 주석"은 프롬프트 엔지니어링 패턴에서 말하는 "작은 모델의 Grounding 및 규칙 준수"를 구현하기 위한 기초 데이터(학습 신호) 역할을 합니다.
@@ -0,0 +1,29 @@
---
type: digest
title: "소화 노트: Topic_Programming/Language"
generated_at: 2026-06-22T18:00:36.586Z
sources: ["에러_처리와_커스텀_에러", "모듈_시스템과_프로젝트_구성", "비동기_프로그래밍_Promise_async_await", "TypeScript_고급_타입"]
---
# 소화 노트: Topic_Programming/Language
> ⚙️ 자동 생성 (sleep-time 사전 소화) — **원문이 항상 우선**입니다. 소스가 바뀌면 자동 재생성되며, 이 파일은 삭제해도 안전합니다.
## 예상 질문과 답
- **Q: 에러 발생 시 시스템의 본 흐름을 유지하기 위해 어떤 전략을 사용하나요?** — A: 부가 기능(메모리 추출, 텔레메이트리 등)의 실패는 `catch {}`를 통해 의도적으로 삼키고, 이를 통해 "Graceful degradation"을 구현하여 본 흐름이 깨지지 않도록 합니다. [에러 처리와 커스텀 에러]
- **Q: 비동기 작업 중 사용자가 'Stop'을 눌렀을 때 어떻게 중단시키나요?** — A: `AbortSignal``AbortController`를 사용하여 외부에서 비동기 작업을 취소할 수 있는 표준 메커니즘을 활용합니다. 특히 타임아웃과 사용자 취소를 결합하여 즉각적인 중단을 구현합니다. [비동기 프로그래밍 Promise async await]
- **Q: 모듈 시스템에서 `named export`를 주로 사용하는 이유는 무엇인가요?** — A: 자동완성, 일관된 이름 유지, 리팩터링의 안전성을 확보하기 위해서입니다. ConnectAI는 `default export`를 사실상 배제하고 이 방식을 채택합니다. [모듈 시스템과 프로젝트 구성]
- **Q: TypeScript에서 런타임 검증을 컴파일 타입 좁히기로 연결하는 방법은?** — A: `x is T` 형태의 '타입 가드'를 사용하여, 함수 내에서 런타임 검증이 성공하면 컴파일러가 해당 타입을 특정 타입으로 인식하도록(Type Narrowing) 만듭니다. [TypeScript 고급 타입]
- **Q: 에러 클래스를 설계할 때 어떤 정보를 포함해야 하나요?** — A: `Error`를 상속받아 도메인별로 분기하며, 경로, 엔진, 상태 코드와 같은 추가적인 컨텍스트(Context)를 담아 잡는 쪽에서 실패 원인을 명확히 알 수 있게 합니다. [에러 처리와 커스텀 에러]
## 핵심 사실
- **에러 처리:** `Error` 상속 계층을 통해 `instanceof`로 분기하며, 기술적 에러를 사용자 행동 지침(title/message/action)으로 번역하는 프로세스를 갖춤. [에름 처리와 커스텀 에러]
- **모듈 구조:** 308개의 파일을 `esbuild` 단일 번들로 통합하며, `barrel(index.ts)`을 통해 외부 진입점을 단일화함. [모듈 시스템과 프로젝트 구성]
- **비동기 제어:** `Promise.race`를 이용해 '작업 vs 타임아웃' 경쟁 구조를 만들고, 큐(Queue)를 통해 동시 실행 수를 CPU 코어 수에 맞춰 제한함. [비异步 프로그래밍 Promise async await]
- **타입 안전성:** 판별 유니온(Discriminated union)을 사용하여 결과값의 성공/실패(`{ ok: true } | { ok: false }`)를 명확히 분기 처리함. [TypeScript 고급 타입]
## 문서 간 연결
- **공통 주제 (Robustness & Reliability):** 모든 문서는 단순히 기능을 구현하는 것을 넘어, 에러를 예측하고(에러 처리), 취소 가능한 비동기를 만들며(비동기), 타입을 통해 런타임 오류를 방지하는(TypeScript 고급 타입) 등 **'견고한 소프트웨어 설계'**라는 공통된 지향점을 공유합니다.
- **상호 작용:**
- **에러 처리 + TypeScript:** 에러 클래스의 구조와 판별 유니온을 이용한 결과값 분기 처리는 서로 연결되어 안정적인 예외 처리를 완성합니다.
- **모듈 시스템 + 비동기:** 모듈의 `dynamic import`는 비동기 프로그래밍의 `await` 패턴과 결합하여 초기 로딩 속도를 최적화하는 데 사용됩니다.
+31
View File
@@ -0,0 +1,31 @@
---
type: digest
title: "소화 노트: lessons"
generated_at: 2026-06-22T18:00:54.121Z
sources: ["2026-06-16-correction-ccoc가-아니라-sisihosi야", "2026-06-15-correction-대화의-주제-기간-오차범위-와-다른-내용-영상-길이-을-놓침", "2026-06-15-correction-수치-오류를-바로잡기-위한-논리적-근거-재검토-필요", "2026-06-12-correction-요구한-구성-요소-기대-효과-를-누락하고-다른-포맷으로-작성함"]
---
# 소화 노트: lessons
> ⚙️ 자동 생성 (sleep-time 사전 소화) — **원문이 항상 우선**입니다. 소스가 바뀌면 자동 재생성되며, 이 파일은 삭제해도 안전합니다.
## 예상 질문과 답
- **Q: 회의록 내용 중 'CCCOC'가 아닌 올바른 프로젝트 명칭은 무엇인가요?** — A: SISIHOSI입니다. [2026-06-16-correction-ccoc가-아니라-sisihosi야]
- **Q: 영상 제작 공정에서 3주~5주라는 오차 범위가 발생한 이유는 무엇인가요?** — A: 기획은 완료되었으나 소스(VFX, 사운드 등) 제작 여부에 따라 작업 기간이 달라지기 때문입니다. [2026-06-15-correction-대화의-주제-기간-오차범위-와-다른-내용-영상-길이-을-놓침]
- **Q: 영상 길이가 1분 30초로 고정될 경우, 제작 기간은 어떻게 변동되나요?** — A: 리소스가 준비된 상태(편집/합성만 남은 경우)라면 약 3주, 리소스 제작이 추가로 필요한 경우에는 약 5주가 소요됩니다. [2026-06-15-correction-수치-오류를-바로잡기-위한-논리적-근거-재검토-필요]
- **Q: 계열사가 프로젝트 참여를 꺼리는 상황에서 취해야 할 전략적 방향은 무엇인가요?** — A: 프로젝트의 정체성을 '업무 전달'이 아닌, 비용 절감, 수익 창출, 리소스 최적화와 같은 '가치 증폭기(Value Multiplier)'로 전환하여 계열사의 이득을 강조해야 합니다. [2026-06-12-correction-요구한-구성-요소-기대-효과-를-누락하고-다른-포맷으로-작성함]
## 핵심 사실
- **프로젝트 현황**: iOS 기기의 메모리 부족 문제 해결을 위해 PlayCanvas, Babylon.js 등 웹GL 플랫폼 조사가 필요하며, 가우시안 스플래팅 R&D가 진행 중입니다. [2026-06-16-correction-ccoc가-아니라-sisihosiya]
- **제작 공정 기준**: 영상 제작 기간은 '리소스 준비 여부'에 따라 3주(준비 완료) 또는 5주(제작 필요)로 구분하여 관리하는 것이 효율적입니다. [2나 2026-06-15-correction-대화의-주제-기간-오차범위-와-다른-내용-영상-길이-을-놓침]
- **전략적 포지셔닝**: 계열사의 추가 업무 부담을 줄이기 위해 '비용 절감형', '수익 창출형', '리소스 최적화형' 모델을 제안해야 합니다. [2026-06-12-correction-요구한-구성-요소-기대-효과-를-누락하고-다른-포맷으로-작성함]
## 문서 간 연결
- **기술적 이슈와 프로젝트 관리**: iOS 메모리 문제(기술적 이슈)와 영상 제작 기간 관리(프로젝트 스케줄링)는 모두 '예측 불가능한 리스크'를 줄이기 위한 검증과 기준 확립을 공통적으로 다루고 있습니다.
- **논리적 정정의 흐름**: 모든 문서는 사용자의 정정 사항(Ground Truth)을 바탕으로, 기존 AI 답변의 오류(수치 오류, 맥락 누락, 지시 불이행)를 바로잡고 새로운 논리적 근거를 재구축하는 과정을 보여줍니다.
+29
View File
@@ -0,0 +1,29 @@
---
type: digest
title: "소화 노트: (두뇌 루트)"
generated_at: 2026-06-22T18:01:11.571Z
sources: ["ASTRA 기능 인벤토리"]
---
# 소화 노트: (두뇌 루트)
> ⚙️ 자동 생성 (sleep-time 사전 소화) — **원문이 항상 우선**입니다. 소스가 바뀌면 자동 재생성되며, 이 파일은 삭제해도 안전합니다.
## 예상 질문과 답
- **Q: ASTRA의 '주간 성장 사이클'은 어떤 과정으로 진행되나요?** — A: 검색 평가(골든셋) $\rightarrow$ 학습 큐 갱신(Need Engine) $\rightarrow$ 지식 노후 점검 $\rightarrow$ 성장 리포트 $\rightarrow$ 승인된 학습 자동 실행(Research Agent, 사이당 최대 3건) 순으로 진행됩니다. [ASTRA 기능 인벤토리]
- **Q: '지식 사전 소화(Sleep-time Digest)' 기능의 역할은 무엇인가요?** — A: 매일 지정된 시각(유휴 시간)에 최근 7일 내에 변경된 두뇌 지식을 찾아 폴더별 '소화 노트'(`<두뇌>/Digests/`)로 변환하는 자동화 기능입니다. [ASTRA 기능 인벤토리]
- **Q: ASTRA의 데일리 브리핑은 어떤 정보를 제공하나요?** — A: 평일(월~금) 지정된 시각에 오늘의 캘린더 일정과 Google Tasks(오늘 마감, 기한 경과, 조건부 대기 항목 포함)를 정리하여 텔레그램으로 발송합니다. [ASTRA 기능 인벤토리]
- **Q: ASTRA의 메모리 시스템은 어떻게 구성되어 있나요?** — A: 최근 대화 메시지를 사용하는 단기 메모리(`memoryShortTermMessages`), 최근 저장된 채팅 세션을 활용하는 중기 메모리(`memoryMediumTermSessions`), 그리고 관련 Markdown 파일을 활용하는 장기 메모리(`memoryLong‌ترFiles`)로 계층화되어 있습니다. [ASTRA 기능 인벤토리]
- **Q: 텔레그램 봇 설정 시 필요한 요소는 무엇인가요?** — A: `telegram.enabled` 활성화, `telegram.allowedChatIds`(허용할 ID 목록), 그리고 특정 에이전트 범위를 지정하기 위한 `telegram.defaultAgent` 설정 등이 필요합니다. [ASTRA 기능 인벤토리]
## 핵심 사실
- **문서의 성격**: 이 문서는 ASTRA의 기능 목록을 담은 '기능 인벤토리'이며, 소스 코드(`package.json`)에서 자동 생성되는 참조용 문서입니다. [ASTRA 기능 인벤토리]
- **주요 자동화 프로세스**:
- **성장 사이클**: 주간 단위로 평가와 학습을 자동 수행합니다.
- **지식 관리**: 지식 노후 점검, 충돌 스캔, 사전 소화(Digest) 기능을 통해 지식의 최신성을 유지합니다.
- **알림 서비스**: 데일리 브리핑 및 텔레그램 연동을 통한 일정/업무 관리를 지원합니다. [ASTRA 기능 인벤토리]
- **기술적 특징**: LLM 활용을 위한 다양한 파라미터(Temperature, Context Window, Map-Reduce 전략 등)와 멀티 에이전트 워크플로우(`multiAgentEnabled`) 제어 옵션을 포함하고 있습니다. [ASTRA 기능 인벤토리]
## 문서 간 연결
- **자동 생성 및 현행화**: 이 문서는 `package.json`을 통해 기계적으로 생성되므로, ASTRA의 실제 기능과 일치하는 '항상 현행' 상태를 유지해야 하는 근거 문서입니다. [ASTRA 기능 인벤토리]
- **기능적 연관성**: '사용자 명령(명령어)' 섹션은 사용자가 직접 실행할 수 있는 액션을 나타내며, '설정으로 제어되는 동작' 섹션은 그 명령어들이 작동하는 환경과 자동화 로직을 정의합니다. [ASTRA 기능 인벤토리]
@@ -0,0 +1,22 @@
{
"id": "a53bbdac-0455-4779-9efa-c22a39885c1e",
"sessionId": "task_1781834834717",
"title": "/meet D:\\Meet\\r.txt",
"summary": "시작: /meet D:\\Meet\\r.txt → 최종: /meet D:\\Meet\\t.txt",
"keyDecisions": [
"- AI 호출 시 클라이언트와 파일명을 동일하게 유지하는 것을 최우선 원칙으로 설정",
"- 제품 명칭(냉동/냉장 도어 포키 등)의 통일성 있는 수정 작업 진행 합의",
"## 3. 결정 사항",
"- 드라이기 제외 시 레이아웃 재배치에 따른 추가 작업 공정 발생 가능성",
"(담당: 참석자 1)"
],
"topics": [
"meet",
"confirm",
"txt"
],
"projectContext": "e:\\Wiki",
"timestamp": 1782202399138,
"duration": 0,
"messageCount": 28
}