업데이트: 2026-04-14 19:50 (KST) 업데이트: 2026-04-14 21:25 (KST) - 문서 생성 고도화 2차를 반영했습니다. `src/AxCopilot/Services/Agent/ArtifactQualityReviewService.cs`를 추가해 HTML/DOCX/XLSX 산출물에 대해 로컬 품질 점수와 보완 포인트를 계산하고, `HtmlSkill`, `DocxSkill`, `ExcelSkill`이 같은 리뷰 모델을 공유하도록 맞췄습니다. - `src/AxCopilot/Services/Agent/DocxSkill.cs`는 `template_path`, `cover_subtitle`, `cover_meta`, `toc`를 지원하도록 확장했습니다. DOCX 템플릿 복제 후 본문을 재구성하고, 커버 페이지와 TOC 필드를 삽입한 뒤 structured review 결과를 함께 반환합니다. - `src/AxCopilot/Services/Agent/ExcelSkill.cs`는 executive summary sheet에 detail sheet 링크를 자동 생성하고, KPI/highlights/actions 구조를 workbook quality review와 연결하도록 보강했습니다. - `src/AxCopilot/Services/Agent/HtmlSkill.cs`는 로컬 품질 리뷰를 결과 요약에 포함하도록 바꿨고, 문서형 번들 스킬로 `executive-brief`, `kpi-workbook`, `board-report-html`을 추가했습니다. - 테스트: `ArtifactQualityReviewServiceTests`, `DocxSkillTemplateFeaturesTests`, `ExcelSkillExecutiveSummaryLinkTests` 추가 - 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_doc_phase2\\ -p:IntermediateOutputPath=obj\\verify_doc_phase2\\` 경고 0 / 오류 0 - 검증: `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "ArtifactQualityReviewServiceTests|DocxSkillTemplateFeaturesTests|ExcelSkillExecutiveSummaryLinkTests|DocumentAssemblerSemanticTests|DocumentPlannerBusinessDocumentTests|HtmlSkillConsultingSectionsTests|ExcelSkillSummarySheetTests" -p:OutputPath=bin\\verify_doc_phase2_tests\\ -p:IntermediateOutputPath=obj\\verify_doc_phase2_tests\\` 통과 9 업데이트: 2026-04-14 19:50 (KST) - Agent loop/queue/context 품질을 보강했습니다. `src/AxCopilot/Services/Agent/AgentCommandQueue.cs`로 실행 중 추가 입력을 우선순위와 interrupt 여부까지 포함해 관리하고, `AgentLoopService`는 이를 안전하게 반영합니다. - `AgentToolResultBudget`, `AgentQueryContextBuilder`, `ChatModels`는 tool result preview를 메시지에 캐시해 긴 세션과 재질문에서도 같은 축약 결과를 재사용하도록 정리했습니다. - 코드 탭의 내장 언어 지원을 `src/AxCopilot/Services/CodeLanguageCatalog.cs`로 통합했고, 설정의 코드 탭에 지원 언어(LSP)와 코드 탭 기본 지원 언어를 명시적으로 표시합니다. - `PptxSkill`에 `executive_summary`, `recommendation`, `roadmap`, `comparison`, `kpi_dashboard` 레이아웃을 추가했고, `DocumentPlannerTool`은 발표 자료 계획을 `Executive Summary -> Situation & Imperative -> Key Findings -> Options & Recommendation -> Implementation Roadmap -> Impact & Ask` 구조로 생성합니다. `pptx-creator.skill.md`도 AX native `pptx_create` 중심으로 재작성했습니다. - 테스트: `CodeLanguageCatalogTests`, `AgentCommandQueueTests`, `AgentToolResultBudgetTests`, `DocumentPlannerPresentationTests`, `PptxSkillConsultingDeckTests` 추가 및 기존 `WorkspaceContextGeneratorTests.cs(76)` nullable 경고 수정 - 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_impl\\ -p:IntermediateOutputPath=obj\\verify_impl\\` 경고 0 / 오류 0 - 검증: `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "CodeLanguageCatalogTests|AgentCommandQueueTests|AgentToolResultBudgetTests|DocumentPlannerPresentationTests|PptxSkillConsultingDeckTests" -p:OutputPath=bin\\verify_impl_tests\\ -p:IntermediateOutputPath=obj\\verify_impl_tests\\` 통과 15 --- # AX Copilot - 媛쒕컻 臾몄꽌 > 理쒖쥌 ?낅뜲?댄듃: 2026-04-14 19:13 (KST) 쨌 踰꾩쟾 0.7.3 ## ?낅뜲?댄듃 濡쒓렇 - ?낅뜲?댄듃: 2026-04-14 19:13 (KST) - `claude-code` 湲곗? Phase 4瑜??댁뼱??諛섏쁺?덉뒿?덈떎. `src/AxCopilot/Services/Agent/McpSkillCatalog.cs`瑜?異붽???MCP ?쒕쾭 硫뷀??곗씠?곕? `mcp` source scope??synthetic skill濡?蹂€?섑븯怨? `ToolRegistry.RegisterMcpToolsAsync()` ?댄썑 snapshot??媛깆떊?섎룄濡??곌껐?덉뒿?덈떎. - `src/AxCopilot/Services/Agent/SkillService.cs`??source policy瑜?`managed/user/additional/project/plugin/mcp/legacy` ?⑥쐞濡??먮떒?섎룄濡??뺤옣?덇퀬, source ?곗꽑?쒖쐞 湲곕컲 dedupe?€ inline shell trust boundary瑜??④퍡 ?곸슜?⑸땲?? plugin-only mode媛€ 耳쒖졇 ?덉쑝硫?managed/plugin/bundled留??좎??섍퀬 ?섎㉧吏€ source???④퉩?덈떎. - ?щ옒??紐낅졊 ?⑹꽦?€ `src/AxCopilot/Views/SlashCommandCatalog.cs`?€ `src/AxCopilot/Views/ChatWindow.xaml.cs`?먯꽌 ?ш뎄?깊뻽?듬땲?? builtin command?€ skill??怨듯넻 priority濡??⑹꽦??異⑸룎 ??????ぉ留??몄텧?섍퀬, builtin `/review` 媛숈? ?덉빟 紐낅졊??project skill蹂대떎 ?덉젙?곸쑝濡??곗꽑?⑸땲?? - ?ㅼ젙/UI??`src/AxCopilot/Views/SettingsWindow.xaml`, `src/AxCopilot/Views/AgentSettingsWindow.xaml`, `src/AxCopilot/Views/AgentSettingsWindow.xaml.cs`, `src/AxCopilot/Views/SkillGalleryWindow.xaml.cs`???곌껐?덉뒿?덈떎. MCP ?ㅽ궗 source ?좉?, plugin-only mode, source蹂?inline shell ?덉슜 踰붿쐞, MCP 移댄뀒怨좊━/諛곗?, synthetic skill???뚯씪 ?≪뀡 李⑤떒???④퍡 諛섏쁺?덉뒿?덈떎. - ?뚯뒪?몃뒗 `src/AxCopilot.Tests/Services/SkillServiceRuntimePolicyTests.cs`, `src/AxCopilot.Tests/Services/McpSkillCatalogTests.cs`, `src/AxCopilot.Tests/Views/SlashCommandCatalogTests.cs`??異붽??덉뒿?덈떎. - 寃€利? `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_phase4\\ -p:IntermediateOutputPath=obj\\verify_phase4\\` 寃쎄퀬 0 / ?ㅻ쪟 0 - 寃€利? `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "SkillServiceRuntimePolicyTests|SlashCommandCatalogTests|McpSkillCatalogTests" -p:OutputPath=bin\\verify_phase4_tests\\ -p:IntermediateOutputPath=obj\\verify_phase4_tests\\` ?듦낵 17 - 李멸퀬: ?뚯뒪??鍮뚮뱶 以?湲곗〈 ?뚯씪 `src/AxCopilot.Tests/Services/WorkspaceContextGeneratorTests.cs(76)`??nullable 寃쎄퀬 1嫄댁? ?좎??⑸땲?? - ?낅뜲?댄듃: 2026-04-14 17:46 (KST) - ?꾧뎄 ?대쫫 ?뺥빀??臾몄젣瑜?以꾩씠湲??꾪빐 `src/AxCopilot/Services/Agent/AgentToolCatalog.cs`瑜?異붽??덉뒿?덈떎. canonical id, legacy alias, ???몄텧, ?ㅼ젙 移댄뀒怨좊━, 蹂묐젹 read-only 遺꾨쪟瑜??쒓납?먯꽌 愿€由ы븯?꾨줉 ?뺣━?덉뒿?덈떎. - `ToolRegistry`, `AgentLoopService`, `AgentLoopParallelExecution`, `IAgentTool`, `AgentHookRunner`, `SkillService`媛€ 紐⑤몢 媛숈? 移댄깉濡쒓렇瑜??ъ슜?섎룄濡??곌껐?덉뒿?덈떎. ?댁뿉 ?곕씪 `git/lsp/zip/project_rule/snippet_run` 媛숈? ?덉쟾 ?대쫫???고??꾩뿉???먮룞 ?뺢퇋?붾맗?덈떎. - ?대??ㅼ젙 ?곕룞???④퍡 諛섏쁺?덉뒿?덈떎. `AgentSettingsWindow`?€ `SettingsWindow`???꾧뎄 移대뱶, ???몄쭛湲? 鍮꾪솢???꾧뎄 ?€?? ?꾧뎄 沅뚰븳 ?€?μ씠 canonical ?대쫫 湲곗??쇰줈 ?숈옉?섎ʼn 湲곗〈 ?€?κ컪?€ alias ?명솚?쇰줈 ?≪닔?⑸땲?? - ?ㅽ궗 愿€???ㅻ챸?€ ?꾩옱 援ъ“??留욊쾶 ?꾪솕?덉뒿?덈떎. 湲곕낯 ?ㅽ궗 ?대뜑?€ 異붽? ?대뜑瑜??④퍡 濡쒕뱶?섎뒗 ?먮쫫, 吏곸젒 ?몄텧 ?ㅽ궗怨??고????뺤콉 ?곌껐 ?ㅽ궗??媛숈씠 蹂댁뿬二쇰뒗 諛⑺뼢?쇰줈 ?ㅼ젙/?ы봽 臾멸뎄瑜?蹂댁젙?덉뒿?덈떎. - 寃€利? `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_toolcat\\ -p:IntermediateOutputPath=obj\\verify_toolcat\\` 寃쎄퀬 0 / ?ㅻ쪟 0 - 寃€利? `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter AgentToolCatalogTests -p:OutputPath=bin\\verify_toolcat_tests\\ -p:IntermediateOutputPath=obj\\verify_toolcat_tests\\` ?듦낵 8 - 李멸퀬: ?뚯뒪??鍮뚮뱶 以?湲곗〈 ?뚯씪 `src/AxCopilot.Tests/Services/WorkspaceContextGeneratorTests.cs`??nullable 寃쎄퀬 1嫄댁씠 ?④퍡 ?쒖떆?섏뿀?쇰굹, ?대쾲 蹂€寃쎌뿉????寃쎄퀬瑜?異붽??섏????딆븯?듬땲?? --- ## 1. ?꾨줈?앺듃 媛쒖슂 AX Copilot?€ Windows???앹궛???곗쿂 + AI ?먯씠?꾪듃 ?곗뒪?ы넲 ?깆엯?덈떎. - **?곗쿂**: Alfred/Raycast ?ㅽ??쇱쓽 ?쇱? 寃€?? 紐낅졊 ?ㅽ뻾, ?꾩젽 - **?먯씠?꾪듃**: LLM 湲곕컲 ?€?뷀삎 肄붾뱶/臾몄꽌 ?묒뾽 ?먮룞??(?꾧뎄 ?몄텧 猷⑦봽) - **??諛?*: ?쒖뒪??由ъ냼?? ?대┰蹂대뱶, ?ㅽ겕由곗꺑 ??鍮좊Ⅸ ?묎렐 --- ## 2. 湲곗닠 ?ㅽ깮 | ??ぉ | 媛?| |------|-----| | ?꾨젅?꾩썙??| .NET 8 (net8.0-windows10.0.17763.0) | | UI | WPF + Windows Forms (?섏씠釉뚮━?? | | ?몄뼱 | C# 12 | | ?⑦꽩 | MVVM, ?대깽??湲곕컲, ?깃????쒕퉬??| | ?뚯뒪??| xUnit 2.9 + FluentAssertions 6.12 | | 鍮뚮뱶 | dotnet CLI, PublishSingleFile | ### 二쇱슂 NuGet ?⑦궎吏€ | ?⑦궎吏€ | ?⑸룄 | |--------|------| | DocumentFormat.OpenXml 3.2.0 | DOCX/XLSX/PPTX ?앹꽦 | | Markdig 0.37.0 | Markdown ??HTML ?뚮뜑留?| | Microsoft.Data.Sqlite 8.0 | SQLite (?€???€?μ냼) | | Microsoft.Web.WebView2 | HTML 誘몃━蹂닿린, 媛€?대뱶 酉곗뼱 | | QRCoder 1.6.0 | QR 肄붾뱶 ?앹꽦 | | System.Security.Cryptography.ProtectedData | DPAPI ?뷀샇??| | UglyToad.PdfPig | PDF ?쎄린 | --- ## 3. ?붾(??援ъ“ ``` src/ ?쒋??€ AxCopilot/ # 硫붿씤 WPF ??(v0.7.3) ?? ?쒋??€ Assets/ # ?꾩씠肄? ?꾨━??JSON, ?뷀샇?붾맂 媛€?대뱶, 留덉뒪肄뷀듃 ?? ?쒋??€ Core/ # FuzzyEngine, CommandResolver, InputListener, PluginHost ?? ?쒋??€ Handlers/ # 136媛?鍮뚰듃??紐낅졊 ?몃뱾???? ?쒋??€ Models/ # AppSettings, ChatModels, McpSettings ?? ?쒋??€ Security/ # AntiTamper (?붾쾭嫄??붿뺨?뚯씪???먯?) ?? ?쒋??€ Services/ # 60媛??쒕퉬???? ?? ?붴??€ Agent/ # ?먯씠?꾪듃 猷⑦봽 + 114媛??꾧뎄 ?? ?쒋??€ Themes/ # 9媛??뚮쭏 (Dark, Light, OLED, Nord, Monokai ?? ?? ?쒋??€ ViewModels/ # LauncherViewModel, SettingsViewModel, StatisticsViewModel ?? ?붴??€ Views/ # 30媛?XAML ?덈룄???쒋??€ AxCopilot.SDK/ # ?뚮윭洹몄씤 SDK (IActionHandler ?명꽣?섏씠?? ?쒋??€ AxCopilot.Installer/ # Windows Forms ?ㅼ튂 ?꾨줈洹몃옩 (.NET Framework 4.8) ?쒋??€ AxCopilot.Tests/ # xUnit ?⑥쐞/?듯빀 ?뚯뒪???붴??€ AxKeyEncryptor/ # API ??DPAPI ?뷀샇???좏떥由ы떚 ``` --- ## 4. ???쒖옉 ?먮쫫 (App.xaml.cs) ``` OnStartup() ?쒋? AntiTamper ?붾쾭嫄?媛먯? (Release 鍮뚮뱶) ?쒋? ?⑥씪 ?몄뒪?댁뒪 裕ㅽ뀓???뺤씤 ?쒋? SettingsService 珥덇린??+ ?ㅼ젙 濡쒕뱶 ?쒋? ChatStorageService 蹂닿? ?뺤콉 ?ㅽ뻾 (留뚮즺 ?€???뺣━) ?쒋? L10n ?몄뼱 珥덇린?? ?쒋? ?쒕퉬??珥덇린?? ?? ?쒋? AgentMemoryService ?? ?쒋? ChatSessionStateService ?? ?쒋? AppStateService ?? ?쒋? IndexService (諛깃렇?쇱슫???뚯씪 ?몃뜳?? ?? ?쒋? FuzzyEngine + CommandResolver ?? ?쒋? ContextManager ?? ?쒋? SessionTrackingService ?? ?쒋? WorktimeReminderService ?? ?붴? ClipboardHistoryService ?쒋? 鍮뚰듃???몃뱾???깅줉 (136媛? ?쒋? SchedulerService + PluginHost 珥덇린?? ?쒋? InputListener ?쒖옉 (湲€濡쒕쾶 ?ロ궎) ?붴? ?곗쿂/?ㅼ젙/?몃젅???덈룄???앹꽦 ``` --- ## 5. ?듭떖 ?꾪궎?띿쿂 ### 5.1 ?곗쿂 (Launcher) **寃€???뚯씠?꾨씪??*: ?ъ슜???낅젰 ??`CommandResolver` (?묐몢??留ㅼ묶) ??`FuzzyEngine` (?쇱? 寃€?? ??寃곌낵 ?뺣젹 ??UI ?뚮뜑留? - `FuzzyEngine`: ?뚯씪 ?몃뜳??湲곕컲 ?쇱? 留ㅼ묶, ?먯닔 ?쒖쐞 - `CommandResolver`: ?몃뱾???쇱슦??(?묐몢??`@`, `!`, `#`, `~`, `>`, `$` ?? - `IndexService`: 諛깃렇?쇱슫???뚯씪 ?몃뜳??(`.git`, `node_modules` ???쒖쇅) **?꾩젽**: ?깅뒫 紐⑤땲?? ?щえ?꾨줈, 硫붾え, ?좎뵪, 罹섎┛?? 諛고꽣由? ### 5.2 ?먯씠?꾪듃 (Agent Loop) ``` ?ъ슜??硫붿떆吏€ ??LlmService.StreamAsync() (LLM API ?몄텧) ???묐떟 ?ㅽ듃由щ컢 ?섏떊 ???꾧뎄 ?몄텧 媛먯? ?? ??ToolRegistry?먯꽌 ?꾧뎄 議고쉶 ??沅뚰븳 ?뺤씤 (AskPermissionCallback) ???꾧뎄 ?ㅽ뻾 ??寃곌낵瑜?而⑦뀓?ㅽ듃??異붽? ??LLM ?ы샇異?(諛섎났) ??理쒖쥌 ?띿뒪???묐떟 諛섑솚 ``` **?듭떖 ?대옒??*: - `AgentLoopService` ??猷⑦봽 ?붿쭊 (諛섎났, ?쇱떆?뺤?/?ш컻, ?대깽??諛쒗뻾) - `AxAgentExecutionEngine` ???꾧뎄 ?ㅽ뻾 議곗쑉 - `AgentLoopParallelExecution` ??蹂묐젹 ?꾧뎄 ?ㅽ뻾 - `AgentLoopTransitions` / `.Execution` ???곹깭 ?꾩씠 濡쒖쭅 - `ToolRegistry` ???꾧뎄 ?깅줉/議고쉶 - `ContextCondenser` ??而⑦뀓?ㅽ듃 ?뺤텞 (?좏겙 愿€由? **?꾧뎄 移댄뀒怨좊━** (114媛?: | 移댄뀒怨좊━ | ?덉떆 | |---------|------| | ?뚯씪 I/O | FileReadTool, FileEditTool, FileManageTool, FileWriteTool | | 寃€??| GlobTool, GrepTool, CodeSearchTool, FileSearchTool | | 臾몄꽌 | DocumentReaderTool, ExcelSkill, DocxSkill, PptxSkill, CsvSkill, HtmlSkill | | 肄붾뱶 | BuildRunTool, SnippetRunnerTool, CodeReviewTool, TestLoopTool, LspTool | | ?곗씠??| JsonTool, XmlTool, SqlTool, DataPivotTool, RegexTool | | ?쒖뒪??| ProcessTool, EnvTool, ZipTool, ClipboardTool | | 怨꾪쉷/異붿쟻 | TodoWriteTool, TaskTrackerTool, CheckpointTool, PlaybookTool | | ?ъ슜??| UserAskTool, SuggestActionsTool, NotifyTool | | MCP | McpTool, McpListResourcesTool, McpReadResourceTool | **??퀎 ?꾧뎄 ?꾪꽣留?* (`ToolRegistry.ToolTabOverrides`): `IAgentTool.TabCategory` ?먮뒗 `ToolTabOverrides` ?뺤뀛?덈━濡??꾧뎄瑜???퀎濡?遺꾨쪟?⑸땲?? `GetActiveToolsForTab(activeTab)` 硫붿꽌?쒓? ?꾩옱 ??뿉 留욌뒗 ?꾧뎄留?LLM???꾩넚?섏뿬 ?좏겙???덉빟?⑸땲?? | ??| ?쒖꽦 ?꾧뎄 踰붿쐞 | ?ㅻ챸 | |------|--------------|------| | **Chat** | 0媛?| ?쒖닔 ?€?? ?꾧뎄 ?놁씠 LLM留??묐떟 | | **Cowork** | ~50媛?| ?뚯씪/寃€??+ 臾몄꽌?앹꽦(xlsx, docx, pptx...) + ?곗씠???좏떥 | | **Code** | ~50媛?| ?뚯씪/寃€??+ 媛쒕컻(git, build, lsp...) + ?쒖뒪???뚰겕?몃━ + ?좏떥 | - Chat ???좏겙 ?덉빟: ~14,400?좏겙 ??0 (?꾧뎄 ?뺤쓽 ?꾩쟾 ?쒓굅) - Cowork/Code: 援먯감 ?쒖쇅濡?媛?~3,600?좏겙 異붽? ?덉빟 ### 5.3 LLM ?쒕퉬?? **吏€??怨듦툒??*: | ?쒕퉬??| ?ㅻ챸 | |--------|------| | `claude` / `sigmoid` | Anthropic Claude (Sigmoid API 寃쎌쑀) | | `gemini` | Google Gemini API | | `vllm` | OpenAI ?명솚 vLLM (IBM CP4D 吏€???ы븿) | | `ollama` | 濡쒖뺄 Ollama 紐⑤뜽 | **紐⑤뜽 ?쇱슦??*: `ModelRouterService`瑜??듯븳 ?ㅻ쾭?쇱씠???ㅽ깮 ???€??以?紐⑤뜽/?쒕퉬?ㅻ? ?숈쟻?쇰줈 ?꾪솚 媛€?? **?좏겙 愿€由?*: `TokenEstimator`濡?而⑦뀓?ㅽ듃 湲몄씠 異붿젙, ?ㅻ쾭?뚮줈????`ContextCondenser`媛€ ?먮룞 ?뺤텞 - `EstimateBaseOverhead(systemPromptLength, toolCount)`: ?쒖뒪???꾨\?꾪듃 + ?꾧뎄 ?뺤쓽 ?ㅻ쾭?ㅻ뱶 異붿젙 - `_tool_use_blocks` 硫붿떆吏€ 0.6x, `tool_result` 硫붿떆吏€ 0.7x ?좎씤 ?곸슜 - 而⑦뀓?ㅽ듃 ?ъ슜???쒖떆???쒖뒪???꾨\?꾪듃 + ?꾧뎄 ?ㅻ쾭?ㅻ뱶 ?ы븿 ### 5.4 ?€???€?μ냼 - `ChatStorageService`: SQLite 湲곕컲 ?€???곸냽??- `ChatSessionStateService`: 硫붾え由????몄뀡 ?곹깭 愿€由?- `ChatConversation`: 硫붿떆吏€ 紐⑸줉 + ?ㅽ뻾 ?대깽???€?꾨씪??+ `Archived` ?꾩뭅?대툕 ?뚮옒洹? --- ## 6. UI 怨꾩링 ### 二쇱슂 ?덈룄?? | ?덈룄??| ??븷 | |--------|------| | `LauncherWindow` | 硫붿씤 ?곗쿂 (寃€?? ?꾩젽, 寃곌낵 紐⑸줉) | | `ChatWindow` | AI ?먯씠?꾪듃 ?€??(梨꾪똿/Cowork/肄붾뱶 ?? | | `DockBarWindow` | ??諛?(?쒖뒪??由ъ냼?? 鍮좊Ⅸ ?묎렐) | | `SettingsWindow` | ?ㅼ젙 愿€由?| | `AgentSettingsWindow` | ?먯씠?꾪듃 ?꾩슜 ?ㅼ젙 | | `AgentStatsDashboardWindow` | ?먯씠?꾪듃 ?듦퀎 ?€?쒕낫??| | `SkillEditorWindow` | ?ㅽ궗 ?몄쭛湲?| | `SkillGalleryWindow` | ?ㅽ궗 媛ㅻ윭由?| | `TrayMenuWindow` | ?쒖뒪???몃젅??硫붾돱 | | `PreviewWindow` | 臾몄꽌 誘몃━蹂닿린 (WebView2) | ### ChatWindow 遺꾪븷 援ъ“ `ChatWindow.xaml.cs`??partial class濡?湲곕뒫蹂?遺꾪븷: | ?뚯씪 | ??븷 | |------|------| | `ChatWindow.xaml.cs` | 硫붿씤 ?ㅼ??ㅽ듃?덉씠?? ?ㅽ듃由щ컢, ?낅젰 泥섎━ | | `ChatWindow.AgentEventProcessor.cs` | ?먯씠?꾪듃 ?대깽???섏떊/?쇱슦??| | `ChatWindow.AgentEventRendering.cs` | ?먯씠?꾪듃 ?대깽??諛곕꼫/移대뱶 ?뚮뜑留?(SessionStart/UserPromptSubmit ?④?) | | `ChatWindow.AgentStatusPresentation.cs` | ?먯씠?꾪듃 ?ㅼ떆媛??곹깭 ?쒖떆 | | `ChatWindow.ComposerQueuePresentation.cs` | ?묒꽦湲???UI | | `ChatWindow.ContextUsagePresentation.cs` | 而⑦뀓?ㅽ듃 ?ъ슜??留??앹뾽 | | `ChatWindow.ConversationFilterPresentation.cs` | ?€???꾪꽣留?| | `ChatWindow.ConversationListPresentation.cs` | ?ъ씠?쒕컮 ?€??紐⑸줉 | | `ChatWindow.ConversationManagementPresentation.cs` | ?€???앹꽦/??젣/愿€由?| | `ChatWindow.FileBrowserPresentation.cs` | ?뚯씪 釉뚮씪?곗? UI | | `ChatWindow.FooterPresentation.cs` | ?섎떒 諛?(?대뜑, 沅뚰븳) | | `ChatWindow.GitBranchPresentation.cs` | Git 釉뚮옖移??쒖떆/?꾪솚 | | `ChatWindow.LiveProgressPresentation.cs` | ?ㅼ떆媛?吏꾪뻾 ?곹깭 | | `ChatWindow.MessageBubblePresentation.cs` | 硫붿떆吏€ 踰꾨툝 ?뚮뜑留?| | `ChatWindow.MessageInteractions.cs` | 硫붿떆吏€ 蹂듭궗/?몄쭛/?ъ쟾??| | `ChatWindow.PermissionPresentation.cs` | 沅뚰븳 ?앹뾽/諛곕꼫 UI | | `ChatWindow.PlanApprovalPresentation.cs` | 怨꾪쉷 ?뱀씤 移대뱶 | | `ChatWindow.PopupPresentation.cs` | 怨듯넻 ?앹뾽 援ъ꽦 | | `ChatWindow.PreviewPresentation.cs` | ?뚯씪 誘몃━蹂닿린 ??| | `ChatWindow.SelectionPopupPresentation.cs` | ?뚰겕?몃━ ?좏깮 ?앹뾽 | | `ChatWindow.SidebarInteractionPresentation.cs` | ?ъ씠?쒕컮 ?곹샇?묒슜 | | `ChatWindow.StatusPresentation.cs` | ?곹깭 諛곗?/?ㅽ듃由?| | `ChatWindow.SurfaceVisualPresentation.cs` | ?쒓컖 ?④낵 (湲€濡쒖슦, ?꾩뒪 ?? | | `ChatWindow.TaskSummary.cs` | ?묒뾽 ?붿빟 移대뱶 | | `ChatWindow.TimelinePresentation.cs` | ?€?꾨씪???뺣젹, 罹먯떆, ?대깽???꾪꽣留?| | `ChatWindow.TopicPresetPresentation.cs` | 二쇱젣 ?꾨━??UI | | `ChatWindow.TranscriptHost.cs` | ?몃옖?ㅽ겕由쏀듃 ?몄뒪??而⑦뀒?대꼫 | | `ChatWindow.TranscriptPolicy.cs` | ?몃옖?ㅽ겕由쏀듃 ?쒖떆 ?뺤콉 | | `ChatWindow.TranscriptRenderExecution.cs` | ?몃옖?ㅽ겕由쏀듃 ?뚮뜑 ?ㅽ뻾 | | `ChatWindow.TranscriptRenderPlanner.cs` | ?몃옖?ㅽ겕由쏀듃 ?뚮뜑 怨꾪쉷 | | `ChatWindow.TranscriptRendering.cs` | ?몃옖?ㅽ겕由쏀듃 ?뚮뜑留?| | `ChatWindow.TranscriptVirtualization.cs` | ?몃옖?ㅽ겕由쏀듃 媛€?곹솕 (?€洹쒕え ?€?? | | `ChatWindow.SystemPromptBuilder.cs` | ?쒖뒪???꾨\?꾪듃 ?숈쟻 議곕┰ (???꾨━??而⑦뀓?ㅽ듃 二쇱엯) | | `ChatWindow.OverlaySettingsPresentation.cs` | ?몃씪???ㅼ젙 ?앹뾽 (紐⑤뜽, 鍮좊Ⅸ?≪뀡) | | `ChatWindow.UserAskPresentation.cs` | ?ъ슜??吏덈Ц ?몃씪??移대뱶 | | `ChatWindow.VisualInteractionHelpers.cs` | ?쒓컖 ?곹샇?묒슜 ?ы띁 | ### ?뚮쭏 ?쒖뒪?? 9媛??뚮쭏 XAML 由ъ냼???뺤뀛?덈━: `Dark`, `Light`, `OLED`, `Nord`, `Monokai`, `Catppuccin`, `Sepia`, `Alfred`, `AlfredLight` ?고????뚮쭏 ?꾪솚: `SettingsService.Settings.Launcher.Theme` 蹂€寃???由ъ냼???뺤뀛?덈━ 援먯껜 --- ## 7. ?ㅼ젙 援ъ“ (AppSettings) ### 理쒖긽???ㅼ젙 | ?띿꽦 | 湲곕낯媛?| ?ㅻ챸 | |------|--------|------| | `AiEnabled` | true | AI 湲곕뒫 ?쒖꽦??| | `OperationMode` | "internal" | ?댁쁺 紐⑤뱶 (internal/external) | | `Hotkey` | "Alt+Space" | ?곗쿂 ?⑥텞??| | `CleanupPeriodDays` | 30 | ?€??蹂닿? 湲곌컙 (?? | | `InternalModeEnabled` | true | ?щ궡 紐⑤뱶 ?щ? | ### LauncherSettings (以묒꺽) | 洹몃9 | 二쇱슂 ?띿꽦 | |------|----------| | ?쒖떆 | `Theme`, `Opacity`, `Position`, `Width`, `MaxResults` | | 湲€濡쒖슦 | `EnableRainbowGlow`, `EnableSelectionGlow`, `ShowLauncherBorder` | | ?꾩젽 | `ShowWidgetPerf`, `ShowWidgetPomo`, `ShowWidgetNote`, `ShowWidgetWeather`, `ShowWidgetCalendar`, `ShowWidgetBattery` | | ??諛?| `DockBarItems`, `DockBarAutoShow`, `DockBarOpacity`, `DockBarRainbowGlow` | | 湲곕뒫 | `EnableFavorites`, `EnableRecent`, `EnableActionMode`, `EnableClipboardAutoCategory` | ### LlmSettings (以묒꺽) ?먯씠?꾪듃??LLM ?곌껐 ?ㅼ젙: ?쒕퉬???좏깮, 紐⑤뜽, API ??(DPAPI ?뷀샇??, ?붾뱶?ъ씤?? ?⑤룄, 理쒕? ?좏겙 ?? | ?띿꽦 | 湲곕낯媛?| ?ㅻ챸 | |------|--------|------| | `UseAutomaticProfileTemperature` | true | ?깅줉 紐⑤뜽 ?꾨줈?뚯씪???먮룞 temperature ?뺤콉 | | `EnableDetailedLog` | false | ?뚰겕?뚮줈???곸꽭 濡쒓렇 (LLM ?붿껌/?묐떟, ?꾧뎄 ?대젰) | | `DetailedLogRetentionDays` | 3 | ?곸꽭 濡쒓렇 蹂닿? 湲곌컙 (?? | | `EnableRawLlmLog` | false | LLM ?붿껌/?묐떟 ?먮Ц 湲곕줉 (?붾쾭源낆슜) | ### RegisteredModel ?ㅽ뻾 ?꾨줈?뚯씪 紐⑤뜽蹂?`ExecutionProfile`濡??꾧뎄 ?몄텧 媛뺣룄, ?ъ떆?? 硫붾え由??뺤텞 二쇱엯?됱쓣 議곗젅: | ?꾨줈?뚯씪 | ?ㅻ챸 | |---------|------| | `balanced` | 湲곕낯 洹좏삎 紐⑤뱶 | | `tool_call_strict` | ?꾧뎄 ?몄텧 媛뺤젣/?꾧꺽 紐⑤뱶 | | `reasoning_first` | 異붾줎 ?곗꽑 紐⑤뱶 | | `fast_readonly` | 鍮좊Ⅸ ?쎄린 ?꾩슜 紐⑤뱶 | | `document_heavy` | 臾몄꽌 泥섎━ 吏묒쨷 紐⑤뱶 | --- ## 8. ?뚮윭洹몄씤 ?쒖뒪?? ### SDK (AxCopilot.SDK) ```csharp public interface IActionHandler { string? Prefix { get; } // ?묐몢??(null?대㈃ ?쇱? 寃€?됰쭔) PluginMetadata Metadata { get; } Task> GetItemsAsync(string query, CancellationToken ct); Task ExecuteAsync(LauncherItem item, CancellationToken ct); } ``` ### 媛쒕컻 諛⑸쾿 1. `AxCopilot.SDK` 李몄“?섏뿬 `IActionHandler` 援ы쁽 2. 鍮뚮뱶??`.dll`??`settings.json`??`Plugins` 諛곗뿴??寃쎈줈 ?깅줉 3. `PluginHost`媛€ ???쒖옉 ???숈쟻 濡쒕뱶 --- ## 9. 鍮뚮뱶 諛??ㅽ뻾 ### 媛쒕컻 鍮뚮뱶 ```bash dotnet build src/AxCopilot/AxCopilot.csproj ``` ### 鍮좊Ⅸ 鍮뚮뱶 (?뷀샇???ㅼ튂?꾨줈洹몃옩 ?앸왂) ```bash ./build-quick.sh ``` 硫붿씤 ?깅쭔 self-contained ?⑥씪 ?뚯씪濡?鍮뚮뱶?⑸땲?? AxKeyEncryptor/Installer/?쒕룆?붾? 嫄대꼫?곗뼱 鍮좊Ⅸ 媛쒕컻 諛섎났???곹빀?⑸땲?? ### 由대━??鍮뚮뱶 (?⑥씪 ?뚯씪) ```bash dotnet publish src/AxCopilot/AxCopilot.csproj -c Release -r win-x64 --self-contained ``` 由대━??鍮뚮뱶 ?듭뀡: - `PublishSingleFile`: ?⑥씪 ?ㅽ뻾 ?뚯씪 - `EnableCompressionInSingleFile`: ?뺤텞 ?곸슜 - `PublishReadyToRun`: AOT ?꾨━而댄뙆??- `DebugType=none`: ?붾쾭洹??щ낵 ?쒓굅 - `TrimMode=partial`: IL ?몃━諛? ### ?뚯뒪?? ```bash dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj ``` --- ## 10. 踰꾩쟾 愿€由? - `AxCopilot.csproj`??`` ?쒓렇 ?섎굹留?蹂€寃쏀븯硫????꾩껜??諛섏쁺 - ?ㅼ젙 ?ㅽ궎留?踰꾩쟾?€ `SettingsService.cs` ??`CurrentSettingsVersion`?먯꽌 蹂꾨룄 愿€由?- 留덉씠洹몃젅?댁뀡: `SettingsService`媛€ ?댁쟾 踰꾩쟾 ?ㅼ젙 ?뚯씪???먮룞 ?낃렇?덉씠?? --- ## 11. 蹂댁븞 | ??ぉ | 援ы쁽 | |------|------| | API ???€??| DPAPI ?뷀샇??(System.Security.Cryptography.ProtectedData) | | ??愿€由??꾧뎄 | AxKeyEncryptor (蹂꾨룄 ?좏떥由ы떚) | | ?덊떚 ?ы띁 | ?붾쾭嫄??붿뺨?뚯씪??媛먯? (Release 鍮뚮뱶, `Security/AntiTamper.cs`) | | Unsafe 肄붾뱶 | `AllowUnsafeBlocks=true` (ScreenCaptureHandler ?ъ씤???곗궛?? | --- ## 12. ?깅뒫 理쒖쟻???댁뿭 ### ?좏쑕 CPU 理쒖쟻??(2026-04-09) | ?€??| 蹂€寃???| 蹂€寃???| |------|---------|---------| | PerformanceMonitorService ?대쭅 | 2珥?| 5珥?| | ?꾩젽 ?€?대㉧ | 1珥?| 3珥?| | ?덉씤蹂댁슦 湲€濡쒖슦 ?€?대㉧ | 150ms | 300ms | | ServerStatusService ??| 15珥?| 60珥?| ### ?ㅽ듃由щ컢 ?뚮뜑留?理쒖쟻??(2026-04-09) - **TypingTimer**: 50ms ??80ms, `string.Concat` ??`char[]` 踰꾪띁 ?ъ궗??- **CursorTimer**: ?꾩껜 臾몄옄???ъ깮????留덉?留?臾몄옄留?援먯껜 - **StringBuilder.ToString()**: 30ms 理쒖냼 媛꾧꺽 ?곕줈?€留?- **RenderMessages**: ?ㅽ듃由щ컢 以?遺덊븘?뷀븳 ?꾩껜 ?щ젋?붾쭅 諛⑹? (議곌린 諛섑솚) - **?€?꾨씪???대깽??*: ?묓엺 紐⑤뱶?먯꽌 ?곗냽 ?숈씪 ToolCall 蹂묓빀 ### ?고????덉젙???섏젙 (2026-04-09) | ?뚯씪 | ?섏젙 ?댁슜 | |------|----------| | `CsvSkill.cs` | JSON 諛곗뿴 泥??붿냼 `ValueKind` 寃€利?異붽? | | `HtmlSkill.cs` | gradient `Split(',')` 寃곌낵 `Length >= 2` 媛€??異붽? | | `ChatWindow.xaml.cs` | `ParseGenericAction` 鍮?諛곗뿴 媛€?? `ShowDropActionMenu` null 媛€?? `GetAgentLoop` `.FirstOrDefault()` ?꾪솚 | | `ChatWindow.GitBranchPresentation.cs` | async void ?몃뱾??try/catch 蹂댄샇 | | `ChatWindow.xaml.cs` (BtnGitBranch_Click) | async void ?몃뱾??try/catch 蹂댄샇 | ### UI ?ㅻ젅??遺€??理쒖쟻??2李?(2026-04-09) | ?€??| 蹂€寃???| 蹂€寃???| ?④낵 | |------|---------|---------|------| | ?ㅽ겕濡??좊땲硫붿씠??| 留ㅻ쾲 ??16ms ?€?대㉧ ?앹꽦 | ?ъ궗??32ms ?€?대㉧ 1媛?| GC ?뺣젰 + ?€?대㉧ ?꾩쟻 ?댁냼 | | ?ъ씠?쒕컮 ?좊땲硫붿씠??| 留ㅻ쾲 ??10ms ?€?대㉧ ?앹꽦 | ?ъ궗??32ms ?€?대㉧ 1媛?| ?숈씪 | | Git 釉뚮옖移?UI | `Dispatcher.Invoke` (釉붾줈?? | `Dispatcher.InvokeAsync` (?쇰툝濡쒗궧) | UI ?ㅻ젅??李⑤떒 ?댁냼 | | ?좏겙 ?ъ슜????| 留?250ms PathGeometry ?ъ깮??| 1% 誘몃쭔 蹂€?????뚮뜑留??앸왂 | 遺덊븘?뷀븳 ?덉씠?꾩썐 ?곗궛 ?쒓굅 | | ?€??寃€???€?대㉧ | 140ms | 300ms | 珥덈떦 7????3??| | ?먯씠?꾪듃 ?대깽???€?대㉧ | 140ms (?ㅽ듃由щ컢: 300/420) | 200ms (?ㅽ듃由щ컢: 350/500) | ?대깽??泥섎━ 鍮덈룄 ?꾪솕 | | 諛섏쓳???덉씠?꾩썐 ?€?대㉧ | 120ms | 250ms | 由ъ궗?댁쫰 ?붾컮?댁뒪 媛뺥솕 | | ?€??紐⑸줉 LINQ | Where횞2 + Count횞3 = 由ъ뒪??5???쒗쉶 | Where 1??蹂묓빀 + ?⑥씪 猷⑦봽 移댁슫??| ?좊떦/?쒗쉶 ?€??媛먯냼 | ### 援ъ“??硫붾え由??덉젙???섏젙 (2026-04-09) | 臾몄젣 | ?꾩튂 | ?섏젙 | |------|------|------| | Events 而щ젆??臾댄븳 ?깆옣 | `AgentLoopService.cs` | 500媛?珥덇낵 ???ㅻ옒???대깽???먮룞 ?쒓굅 | | ?뚯씪 釉뚮씪?곗? ?€?대㉧ 醫€鍮?| `ChatWindow.FileBrowserPresentation.cs` | 留ㅻ쾲 ???€?대㉧ ?앹꽦 ???ъ궗???⑦꽩 | | ?섎━癒쇳듃 罹먯떆 誘몄젙由?| `ChatWindow.TranscriptVirtualization.cs` | 蹂댁쑀 ?쒕룄 240??20, 1.5諛?珥덇낵 ???뺣━ | | WorkflowAnalyzer UI 釉붾줈??| `WorkflowAnalyzerWindow.xaml.cs` | `Dispatcher.Invoke` ??`InvokeAsync` | ### 援ъ“??由ы뙥?좊쭅 P1 (2026-04-09) | ?€??| ?뚯씪 | 蹂€寃?| |------|------|------| | ?명겕由щ찘???뚮뜑 hiddenCount ?덉젙??| `ChatWindow.TranscriptRenderPlanner.cs` | ?ㅽ듃由щ컢 以?hiddenCount 媛먯냼 李⑤떒 ??prefix ??遺덉씪移섎줈 ?명븳 ?꾩껜 ?щ퉴???대갚 諛⑹? | | 鍮꾧????뚮뜑 李⑤떒 | `ChatWindow.TranscriptRendering.cs` | 理쒖냼???④? ?곹깭?먯꽌 RenderMessages 利됱떆 諛섑솚 ??遺덊븘?뷀븳 UI ?ш뎄異??쒓굅 | | ConversationList ?대깽???꾩엫 | `ChatWindow.ConversationListPresentation.cs` | ??ぉ??5媛??뚮떎 ?몃뱾????ConversationPanel???⑥씪 ?꾩엫 ?몃뱾??(Tag 湲곕컲 遺꾧린). ???꾪솚 ??250媛??몃뱾???꾩쟻 ?댁냼 | | TopicPreset ?대깽???꾩엫 | `ChatWindow.TopicPresetPresentation.cs` | 移대뱶??3媛??뚮떎 ?몃뱾????TopicButtonPanel???⑥씪 ?꾩엫 ?몃뱾?? ???꾪솚 ??45媛??몃뱾???꾩쟻 ?댁냼 | | 怨듯넻 VisualTree ?ы띁 | `ChatWindow.VisualInteractionHelpers.cs` | `FindAncestorWithTag`, `FindAncestor` ?좏떥 異붽? | ### 援ъ“??由ы뙥?좊쭅 P2 (2026-04-09) | ?€??| ?뚯씪 | 蹂€寃?| |------|------|------| | _agentLiveContainer ?명겕由щ찘???덉슜 | `TranscriptRenderPlanner.cs`, `TranscriptRenderExecution.cs` | ?쇱씠釉?而⑦뀒?대꼫瑜?expectedChildCount???ы븿, ?명겕由щ찘?????꾩떆 遺꾨━/?ъ궫????`hasExternalChildren` 李⑤떒 ?댁냼 | | ?ㅽ듃由щ컢 append-only ?뚮뜑 | `TranscriptRenderExecution.cs`, `TranscriptRendering.cs` | prefix 鍮꾧탳 ?고쉶?섎뒗 `TryApplyStreamingAppendRender` 異붽? ??stable ??遺€遺꾩쭛??愿€怨꾨쭔 ?뺤씤, ????ぉ留?異붽? | | Permission ?대깽???꾩엫 | `ChatWindow.PermissionPresentation.cs` | ?됰떦 4媛??뚮떎 ??PermissionItems???⑥씪 ?꾩엫 ?몃뱾??+ `PermissionItemTag` | | Preview ???대깽???꾩엫 | `ChatWindow.PreviewPresentation.cs` | ??떦 7媛??뚮떎 ??PreviewTabPanel???⑥씪 ?꾩엫 ?몃뱾??+ `PreviewTabTag` | | GitBranch ?대깽???꾩엫 | `ChatWindow.GitBranchPresentation.cs`, `SelectionPopupPresentation.cs` | `CreateFlatPopupRow`/`CreatePopupMenuRow` ?됱쓽 ?뚮떎 ??GitBranchItems???⑥씪 ?꾩엫 + `PopupRowTag` | ### 援ъ“??由ы뙥?좊쭅 P3 (2026-04-09) | ?€??| ?뚯씪 | 蹂€寃?| |------|------|------| | FileBrowser 紐낆떆???댁젣 | `ChatWindow.FileBrowserPresentation.cs` | TreeViewItem ?뚮떎?믩챸紐?硫붿꽌??`FileTreeItem_Expanded/DoubleClick/RightClick`) ?꾪솚. `BuildFileTree()` ??`DetachFileTreeHandlers()` ?ш? ?몄텧濡?Clear ???몃뱾???댁젣. ?몃━ ?ш뎄異뺣떦 300媛??몃뱾???꾩쟻 ?댁냼 | > ?꾩껜 怨꾪쉷 ?꾨즺. `docs/STRUCTURAL_REFACTORING_PLAN.md` 李몄“. ### ?곗쿂 쨌 ?먯씠?꾪듃 由ъ냼???덉젙???섏젙 (2026-04-09) | ?€??| ?뚯씪 | 蹂€寃?| |------|------|------| | LauncherWindow ?대깽???꾩닔 | `LauncherWindow.xaml.cs` | `vm.CloseRequested`, `vm.PropertyChanged`, `app.IndexService.IndexRebuilt` ?몃뱾?щ? ?꾨뱶 ?€????`OnClosed`?먯꽌 `-=` ?댁젣. ViewModel蹂대떎 Window媛€ 癒쇱? ?ロ옄 ??GC ?꾩닔 諛⑹? | | ChatWindow ?€?대㉧ ?뺣━ | `ChatWindow.xaml.cs` | `Closed` ?몃뱾?ъ뿉 ?꾨씫??8媛??€?대㉧ 紐낆떆??`Stop()` 異붽? + `StopAgentEventProcessor()` ?몄텧 | | Events ?ㅻ젅???덉쟾 | `AgentLoopService.cs` | Dispatcher ?놁쓣 ??`Events` ?묎렐??`lock(Events)` 異붽? ???숈떆 EmitEvent ?몄텧 ??IndexOutOfRange ?щ옒??諛⑹? | | NotifyTool ?€?대㉧ ?꾩쟻 | `NotifyTool.cs` | ?뚮┝??`new DispatcherTimer` ??`DoubleAnimation.Completed` 肄쒕갚?쇰줈 ?€泥? 100媛??뚮┝ ??100媛??€?대㉧ ?숈떆 議댁옱 ?댁냼 | | LauncherWindow ?좎뒪???€?대㉧ | `LauncherWindow.xaml.cs` | `ShowToast()` 留??몄텧 `new DispatcherTimer` ???ъ궗???⑦꽩 + 紐낅챸 硫붿꽌??`ToastTimer_Tick`) | | LauncherWindow ?€?대㉧ ?뺣━ | `LauncherWindow.xaml.cs` | `OnClosed`??`_toastTimer?.Stop()`, `_indexStatusTimer?.Stop()` 異붽? | ### Hot path 쨌 由ъ냼??異붽? 理쒖쟻??(2026-04-09) | ?€??| ?뚯씪 | 蹂€寃?| |------|------|------| | GetRuntimeActiveTools 罹먯떆 | `AgentLoopService.cs` | 諛섎났??1~4???몄텧 ??`cachedActiveTools` 濡쒖뺄 蹂€?섎줈 1??罹먯떆. foreach ??`activeToolNames` 怨꾩궛??猷⑦봽 諛뽰쑝濡??몄씠?ㅽ듃 | | SubAgentTool 痍⑥냼 ?꾪뙆 | `SubAgentTool.cs` | `CancellationTokenSource.CreateLinkedTokenSource(ct)` ?곕룞. Task.Run + loop.RunAsync???좏겙 ?꾨떖. 遺€紐?以묒? ???먯떇 利됱떆 痍⑥냼 | | ?꾩씠肄??좊땲硫붿씠???ш? ?쒖뼱 | `LauncherWindow.xaml.cs` | `sb.Completed`?먯꽌 利됱떆 ?ш? ??`_iconAnimationDelayTimer` 8珥??쒕젅?? ?좊떦 鍮덈룄 75% 媛먯냼. ?대┃ ???쒕젅??痍⑥냼 ??利됱떆 ?꾪솚 | | JsonSerializerOptions 怨듭쑀 | `AgentLoopService.cs` | `s_jsonOpts` ?뺤쟻 ?꾨뱶 異붽?, 4媛?`JsonSerializer.Serialize` ?몄텧???곸슜. L4096 `System.Text.Json.` ?묐몢???뺢퇋??| ### Claude Desktop ?ㅽ???UI 媛쒖꽑 (2026-04-09) | ??ぉ | ?뚯씪 | ?섏젙 ?댁슜 | |------|------|----------| | 誘몃━蹂닿린 Split Button | `ChatWindow.xaml` | 湲곗〈 `BtnPreviewToggle` (Ellipse ??+ "?꾨━酉?) ??`[??誘몃━蹂닿린 | ??` Split Button?쇰줈 援먯껜. 醫뚯륫 ?좉?, ?곗륫 ?곕툕濡??쒕∼?ㅼ슫 | | 誘몃━蹂닿린 ?쒕∼?ㅼ슫 | `ChatWindow.PreviewPresentation.cs` | `ShowPreviewTabDropdown()` ???대┛ ??紐⑸줉 ?앹뾽, ?뚯씪 ?뺤옣?먮퀎 ?꾩씠肄? ?쒖꽦 ???섏씠?쇱씠??| | PreviewDot ??PreviewIcon | `ChatWindow.PreviewPresentation.cs` | `PreviewDot.Fill` 4怨???`PreviewIcon.Foreground` (AccentColor/SecondaryText) ?꾪솚 | | ?곕툕濡??숆린??| `ChatWindow.PreviewPresentation.cs` | `UpdatePreviewChevronState()` ??`_previewTabs.Count` 湲곕컲 IsHitTestVisible/Opacity ?쒖뼱 | | 怨꾪쉷 踰꾪듉 ?대룞 | `ChatWindow.xaml` | MoodIconPanel ?숈쟻 二쇱엯 ??StatusBar XAML ?좎뼵 ?붿냼 `BtnPlanViewer`濡??대룞 | | ShowPlanButton 由ы뙥?좊쭅 | `ChatWindow.PlanApprovalPresentation.cs` | ?숈쟻 Add/Remove ??`Visibility` ?좉? ?⑥닚??+ ?덇굅???뺣━ ?좎? | ### UX 媛쒖꽑 諛???퀎 ?꾧뎄 ?꾪꽣留?(2026-04-09) | ??ぉ | ?뚯씪 | ?섏젙 ?댁슜 | |------|------|----------| | ??퀎 ?꾧뎄 ?꾪꽣留?| `IAgentTool.cs`, `ToolRegistry.cs`, `AgentLoopService.cs` | `TabCategory` ?띿꽦 + `ToolTabOverrides` ?뺤뀛?덈━濡?Chat/Cowork/Code ??퀎 ?꾧뎄 遺꾨쪟. Chat=0媛? Cowork=臾몄꽌/?곗씠?? Code=媛쒕컻/?쒖뒪??| | FolderMapTool 湲곕낯媛?蹂€寃?| `FolderMapTool.cs` | `include_files` 湲곕낯媛?`false` ??`true`. Description???ъ슜 ?쒗븳 媛€?대뱶 異붽? | | ?먯씠?꾪듃 ?대깽???④? | `AgentEventRendering.cs`, `TimelinePresentation.cs` | `SessionStart`/`UserPromptSubmit` ?대? ?대깽???€?꾨씪??鍮꾪몴??| | ?ъ슜??硫붿떆吏€ ?뚮뜑留?| `ChatWindow.xaml.cs` | ?꾩넚 ??`InvalidateTimelineCache()` + `preserveViewport:false`濡?利됱떆 ?쒖떆 蹂댁옣 | | ?꾩뭅?대툕 湲곕뒫 | `ChatModels.cs`, `ConversationManagementPresentation.cs`, `ConversationFilterPresentation.cs`, `ConversationListPresentation.cs` | `Archived` ?띿꽦, 而⑦뀓?ㅽ듃 硫붾돱 ?꾩뭅?대툕 ?좉?, ?ъ씠?쒕컮 ?꾪꽣 踰꾪듉 | | 而ㅼ뒪?€ ?щ┝ ?ㅽ겕濡ㅻ컮 | `ChatWindow.xaml` | 6px ?щ┝ ScrollBar + Thumb ?쇱슫?? ScrollViewer 留덉슦???ㅻ쾭 fade in/out ?좊땲硫붿씠??| | ?ㅽ듃由щ컢 硫뷀듃由??덉씠釉?| `ChatWindow.xaml`, `StatusPresentation.cs` | ?낅젰 諛뺤뒪 ?꾩뿉 `StreamMetricsLabel` (寃쎄낵?쒓컙 쨌 ???좏겙 ?? ?ㅼ떆媛??쒖떆 | | ?꾨━??移대뱶 ?대┃ ?덉젙??| `ChatWindow.xaml`, `ChatWindow.xaml.cs` | WrapPanel `Background="Transparent"` + Dispatcher ?곗꽑?쒖쐞 `Loaded`濡??곹뼢 | | 而⑦뀓?ㅽ듃 ?좏겙 ?뺥솗??| `TokenEstimator.cs`, `ContextUsagePresentation.cs`, `ILlmService.cs` | ?쒖뒪???꾨\?꾪듃 + ?꾧뎄 ?ㅻ쾭?ㅻ뱶 異붿젙, `_tool_use_blocks`/`tool_result` ?좎씤 | | UI ?꾨━吏?諛⑹? | `ChatWindow.xaml.cs` | `SaveLastConversations()`/`PersistConversationSnapshot()` ???뚮뜑留???`Task.Run()` 鍮꾨룞湲??ㅽ뻾 | | 鍮좊Ⅸ 鍮뚮뱶 ?ㅽ겕由쏀듃 | `build-quick.sh` | ?뷀샇???쒕룆???ㅼ튂?꾨줈洹몃옩 嫄대꼫?곕뒗 媛쒕컻??鍮뚮뱶 ?ㅽ겕由쏀듃 | ### ?먯씠?꾪듃 猷⑦봽 臾몄꽌 ?앹꽦 ?먮쫫 ?섏젙 (2026-04-09) | ?뚯씪 | ?섏젙 ?댁슜 | |------|----------| | `AgentLoopTransitions.Documents.cs` | `TryHandleTerminalDocumentCompletionTransitionAsync`?먯꽌 `document_plan` ?놁씠 諛붾줈 臾몄꽌 ?꾧뎄 ?몄텧 ??議곌린 醫낅즺 諛⑹? ??LLM??異붽? 諛섎났?쇰줈 ?댁슜??蹂닿컯?????덈룄濡??덉슜 | | `HtmlSkill.cs` | `MarkdownToHtml`?먯꽌 LLM???쎌엯??`
` ?쒓렇媛€ ?댁뒪耳€?댄봽?섎뒗 踰꾧렇 ?섏젙 ???댁뒪耳€?댄봽 ???뚮젅?댁뒪?€?붾줈 蹂댁〈 ??蹂듭썝 | ### Cowork 臾몄꽌 誘몄깮??쨌 ?ㅽ겕濡?쨌 ?꾩넚 ??10珥?硫덉땄 ?섏젙 (2026-04-09) #### 臾몄꽌 ?앹꽦 ?먯깋 ?뺤콉 ?섏젙 | ?뚯씪 | ?섏젙 ?댁슜 | |------|----------| | `AgentLoopExplorationPolicy.cs` | `ExplorationScope.DirectCreation` ?좉퇋 ?ㅼ퐫??異붽?. `HasDocumentCreationIntent()`濡?"?묒꽦?댁쨾/留뚮뱾?댁쨾/?⑥쨾" ???앹꽦 ?숈궗 + 臾몄꽌/蹂닿퀬???€???ㅼ썙??媛먯? | | `AgentLoopExplorationPolicy.cs` | `DirectCreation` ?ㅼ퐫?꾩뿉??glob/grep/folder_map ?먯깋 李⑤떒 ??`document_plan ??docx_create/html_create` 諛붾줈 ?대룞 | | `AgentLoopExplorationPolicy.cs` | `FilterExplorationToolsForCurrentIteration`?먯꽌 臾몄꽌 ?앹꽦 ?꾧뎄瑜?理쒖슦???쒖쐞濡?諛곗튂 | | `AgentLoopExplorationPolicy.cs` | `ShouldInjectExplorationCorrection`?먯꽌 DirectCreation ???먯깋 ?꾧뎄 1???몄텧留뚯쑝濡?利됱떆 援먯젙 二쇱엯 | | `TaskTypePolicy.cs` | docs 媛€?대뜕?ㅻ? ?앹꽦 vs ?쎄린濡?遺꾧린 ???앹꽦 ??"諛섎뱶???ㅼ젣 ?뚯씪??留뚮뱾?대씪" 紐낆떆 | | `AgentLoopService.cs` | DirectCreation ?ㅼ퐫???대깽??硫붿떆吏€: "臾몄꽌 ?앹꽦 紐⑤뱶 쨌 諛붾줈 臾몄꽌瑜?留뚮뱶??以? | #### ?ㅽ겕濡?踰꾧렇 ?섏젙 | ?뚯씪 | ?섏젙 ?댁슜 | |------|----------| | `ChatWindow.xaml.cs` | 硫붿떆吏€ ?꾩넚/?щ옒??而ㅻ㎤??而댄뙥????`RenderMessages(preserveViewport: true)` + `ForceScrollToEnd()` 議고빀 ??`RenderMessages(preserveViewport: false)`濡?蹂€寃? viewport 蹂듭썝怨?ForceScrollToEnd 寃쏀빀 ?쒓굅 | **?먯씤**: `preserveViewport: true`???뚮뜑留????댁쟾 ?ㅽ겕濡??꾩튂瑜?蹂듭썝?섎뒗 肄붾뱶瑜?`DispatcherPriority.Background`濡??덉빟. `ForceScrollToEnd()`??媛숈? ?곗꽑?쒖쐞濡??섎떒 ?ㅽ겕濡ㅼ쓣 ?덉빟?섏뿬 ??肄붾뱶媛€ 寃쏀빀, ?ㅽ겕濡ㅼ씠 ?섎떒?쇰줈 ??媛€??臾몄젣 諛쒖깮. #### ?꾩넚 ??10珥?硫덉땄 ?섏젙 (Critical Performance Fix) | ?뚯씪 | ?섏젙 ?댁슜 | |------|----------| | `ChatWindow.AgentStatusPresentation.cs` | `BuildFeedbackContext()` ??`_storage.LoadAllMeta()` (紐⑤뱺 .axchat ?뚯씪 蹂듯샇?? + `_storage.Load()` x20?뚮? 留??꾩넚留덈떎 ?숆린 ?ㅽ뻾 ??1遺?罹먯떆 + ?꾩옱 ?€???쇰뱶諛깅쭔 利됱떆 諛섏쁺 + ?꾩껜 媛깆떊?€ 諛깃렇?쇱슫??| | `ChatWindow.xaml.cs` | `Dispatcher.Invoke()` (?숆린 釉붾줈?? ??`Dispatcher.InvokeAsync()` (鍮꾨룞湲?. background task?먯꽌 UI ?ㅻ젅??釉붾줈???쒓굅 | | `ChatWindow.xaml.cs` | `PrepareExecutionForConversation()` (?쒖뒪???꾨\?꾪듃 鍮뚮뱶: ?꾨줈?앺듃 洹쒖튃/硫붾え由??쇰뱶諛??붿뒪??I/O) ??`await Task.Run()`?쇰줈 諛깃렇?쇱슫???ㅽ뻾. UI ?ㅻ젅??利됱떆 ?대갑 | **?먯씤 遺꾩꽍**: `BuildFeedbackContext()`媛€ `LoadAllMeta()` (紐⑤뱺 `.axchat` ?뚯씪 蹂듯샇?붋룻뙆?? + `Load()` x20 (20媛??€???꾩껜 濡쒕뱶쨌蹂듯샇?? 瑜?UI ?ㅻ젅?쒖뿉???숆린 ?ㅽ뻾. ?€??30媛??댁긽?대㈃ 5~10珥?釉붾줈??諛쒖깮. ### ?ㅽ듃由щ컢 以?UI 踰꾨쾮???€??媛쒖꽑 (2026-04-09) Claude Desktop(React)?€ ?꾧뎄 ?몄텧???섏떗 嫄댁씠?대룄 留ㅻ걚?ъ슫 諛섎㈃, WPF ?깆? ?ы븯寃?踰꾨쾮?대뒗 臾몄젣???먯씤 遺꾩꽍 諛??섏젙. **洹쇰낯 ?먯씤**: React virtual DOM?€ 蹂€寃쎈맂 遺€遺꾨쭔 diff/patch?섏?留? WPF??留??뚮뜑留덈떎 ?꾩껜 ?쒓컖???몃━瑜??뚭눼 ???ъ깮?? | ?먯씤 | ?뚯씪 | ?섏젙 | |------|------|------| | `ItemsSource = null/?ъ뿰寃? ???꾩껜 ?쒓컖???몃━ ?뚭눼 + VirtualizingStackPanel 而⑦뀒?대꼫 ?ъ깮??| `TranscriptRenderExecution.cs` | ?ㅽ듃由щ컢 以묒뿉??ItemsSource 遺꾨━/?ъ뿰寃?嫄대꼫?€ ??ObservableCollection 吏곸젒 蹂€寃쎌쑝濡??덉씠?꾩썐 ?⑥뒪 理쒖냼??| | ?쇱씠釉?吏꾪뻾 移대뱶 留ㅻ쾲 ?ъ깮?????ㅻ뜑/援щ텇???ㅽ뀦 ?꾩껜瑜?0遺€???ㅼ떆 ?앹꽦 + ?좊땲硫붿씠???ъ쟻??| `AgentEventRendering.cs` | `_liveProgressCard` 罹먯떆 + `UpdateLiveProgressStepsInPlace()` ??移대뱶 1???앹꽦 ?????ㅽ뀦留?異붽?, 湲곗〈 ?ㅽ뀦?€ ?곗튂 ????| | ?뚮뜑 ?€?대㉧ 媛꾧꺽 1.5~2.2珥???WPF ?꾩껜 ?щ퉴?쒖뿉 鍮꾪빐 ?덈Т 怨듦꺽??| `ChatWindow.xaml.cs` | lightweight: 2.2s??s, normal: 1.5s??s ???뚮뜑 媛?異⑸텇???ъ쑀 ?뺣낫 | | 留??뚮뜑留덈떎 3媛??좊땲硫붿씠??Opacity + ScaleX + ScaleY) ?ъ쟻??| `AgentEventRendering.cs` | ?쇱씠釉?移대뱶 in-place ?낅뜲?댄듃濡?湲곗〈 ?좊땲硫붿씠??蹂댁〈, ???ㅽ뀦?먮쭔 ?좊땲硫붿씠???곸슜 | **鍮꾧탳**: | ??ぉ | ?섏젙 ??(WPF) | ?섏젙 ??| Claude Desktop (React) | |------|-------------|---------|----------------------| | ?낅뜲?댄듃 ?꾨왂 | ?꾩껜 ?몃━ ?뚭눼?믪옱?앹꽦 | 4?④퀎: StreamingAppend ??Incremental ??**DiffRender** ??FullRender | Virtual DOM diff | | ?뚮뜑 媛꾧꺽 | 1.5~2.2珥?| 3~4珥?| ~16ms (requestAnimationFrame) | | ?붿냼 ?ъ궗??| Clear?믪옱?앹꽦 | 罹먯떆?믪옱?ъ슜 + ??湲곕컲 diff | Recycled/Memoized | | ?좊땲硫붿씠??| 留ㅻ쾲 ?ъ쟻??(3媛??붿냼) | 1???곸슜 ??蹂댁〈 | CSS transform (GPU) | --- ### 12-3. Virtual DOM Diff ?뚮뜑 (`TryApplyDiffRender`) React??reconciliation怨??숈씪???먮━瑜?WPF???곸슜????湲곕컲 diff ?뚮뜑?낅땲?? **?뚮뜑 泥댁씤 (?곗꽑?쒖쐞 ??:** ``` StreamingAppend ??Incremental(prefix-match) ??DiffRender(key-based) ??FullRender ``` | ?④퀎 | 議곌굔 | ?숈옉 | |------|------|------| | StreamingAppend | ?ㅽ듃由щ컢 以?+ 湲곗〈 stable ?ㅺ? 遺€遺꾩쭛??| ???ㅻ쭔 append | | Incremental | prefix媛€ ?꾩쟾 ?쇱튂 | 瑗щ━ 遺€遺꾨쭔 異붽? | | **DiffRender** | hiddenCount ?숈씪 + ??吏묓빀 蹂€???덉쓬 | old?먮쭔 ?덈뒗 ????젣(?ㅲ넂?? + new?먮쭔 ?덈뒗 ??異붽? | | FullRender | ??3媛?紐⑤몢 ?ㅽ뙣 | ?꾩껜 Clear?믪옱?앹꽦 | **?듭떖 ?뚭퀬由ъ쬁:** 1. `oldKeys` ??index ?뺤뀛?덈━ / `newKeys` ??HashSet 援ъ텞 2. ?쇱씠釉?而⑦뀒?대꼫 ?꾩떆 遺꾨━ 3. `oldKeys` ?ㅼ뿉?쒕????쒗쉶?섎ʼn `newKeySet`???녿뒗 ??ぉ ?쒓굅 (?몃뜳???덉젙?? 4. `renderPlan.VisibleTimeline`?먯꽌 `oldKeyIndex`???녿뒗 ??ぉ留?`Render()` 5. ?쇱씠釉?而⑦뀒?대꼫 ?ъ궫?? **?뚯씪:** `ChatWindow.TranscriptRenderExecution.cs`, `ChatWindow.TranscriptRendering.cs` (泥댁씤 ?쎌엯) --- ### 12-4. LSP 肄붾뱶 ?명뀛由ъ쟾???꾧뎄 ?뺤옣 `lsp_code_intel` ?꾧뎄瑜?6媛??≪뀡?먯꽌 9媛쒕줈 ?뺤옣?섏뿬 援ъ“??肄붾뱶 ?먯깋???€??媛뺥솕?덉뒿?덈떎. | ?≪뀡 | ?⑸룄 | ?좉퇋 | |------|------|------| | `goto_definition` | ?щ낵 ?뺤쓽 ?꾩튂 | | | `find_references` | ?щ낵 ?ъ슜 ?꾩튂 | | | `hover` | ?€??臾몄꽌 ?뺣낫 | ??| | `goto_implementation` | ?명꽣?섏씠??異붿긽 援ы쁽 ?꾩튂 | ??| | `symbols` | ?뚯씪 ???щ낵 紐⑸줉 | | | `workspace_symbols` | ?뚰겕?ㅽ럹?댁뒪 ?꾩껜 ?щ낵 寃€??| ??| | `prepare_call_hierarchy` | ?몄텧 怨꾩링 湲곗? ?щ낵 | ??| | `incoming_calls` | ?곸쐞 ?몄텧??| ??| | `outgoing_calls` | ?섏쐞 ?몄텧 ?€??| ??| **二쇱슂 蹂€寃?** - `line`/`character` ?낅젰: 1-based 湲곕? ???대??먯꽌 0-based ?먮룞 蹂€??(`NormalizePosition`) - `query` ?뚮씪誘명꽣 異붽? (workspace_symbols?? - 寃곌낵???뚯씪 ?? ?€???꾩튂, 泥?寃곌낵 ?붿빟 ?ы븿 - LSP ?꾨줈?좎퐳: `textDocument/implementation`, `textDocument/hover`, `workspace/symbol`, `textDocument/prepareCallHierarchy`, `callHierarchy/incomingCalls`, `callHierarchy/outgoingCalls` **?뚯씪:** `LspTool.cs`, `LspClientService.cs` --- ### 12-5. IBM/Qwen ?꾧뎄 ?대젰 ?됲깂?? IBM watsonx + Qwen 諛고룷?뺤뿉??`tool_calls`/`role=tool` ?대젰 寃€?ш? ?꾧꺽??臾몄젣瑜??닿껐?⑸땲?? **蹂€寃???** ``` assistant { tool_calls: [...] } ?? tool { tool_call_id, content } ``` **蹂€寃???(?됲깂 transcript):** ``` assistant: "?띿뒪??n\n{name,arguments}\n" user: "[Tool Result: tool_name] (id=xxx)\ncontent" ``` **?듭떖 硫붿꽌??** - `BuildIbmAssistantTranscript()` ??tool_use 釉붾줉 ??`` ?쒓렇 吏곷젹??- `BuildIbmToolResultTranscript()` ??tool_result ??`[Tool Result]` ?ㅻ뜑 + ?댁슜 - `TryExtractTextContent()` ??string/array/nested ?뺥깭 紐⑤몢 ?띿뒪??異붿텧 - `TryParseContentArrayToolBlock()` ??content 諛곗뿴 ??tool_use/tool_call 釉붾줉 ?뚯떛 **?뚯씪:** `LlmService.ToolUse.cs` --- ### 12-6. ?꾧뎄 ?몄텧 ?쒖꽌 ?뺣젹 諛??꾨\?꾪듃 ?꾪솕 **?꾧뎄 ?쒖꽌 (`ToolRegistry.OrderToolsForExposure`):** | 踰꾪궥 | ?꾧뎄 | |------|------| | 0 (理쒖슦?? | file_read, file_edit, glob, grep, lsp_code_intel, build_run, document_plan, ?앹꽦 ?꾧뎄 ??| | 1 | document_review, format_convert, tool_search, code_search | | 2 | mcp_*, spawn_agent, wait_agents | | 3 | task_* | **?꾨\?꾪듃 ?꾪솕 (SystemPromptBuilder):** - "Tools First, Always" ??"Tools First When Needed" - `tool_search`: ?꾨낫?먯꽌 諛붾줈 ?좏깮 媛€?ν븯硫?吏곸젒 ?몄텧, 紐⑦샇???뚮쭔 ?ъ슜 - `spawn_agent`: 蹂묐젹 議곗궗媛€ ?ㅼ젣濡??꾩??????뚮쭔 ?ъ슜 - `document_review`: ??臾몄꽌/紐낆떆???붿껌 ?쒖뿉留?沅뚯옣 - Code ?먯깋: ?뺤쓽/李몄“/援ы쁽/?몄텧愿€怨???`lsp_code_intel` ?곗꽑 **?뚯씪:** `ToolRegistry.cs`, `ChatWindow.SystemPromptBuilder.cs`, `AgentLoopService.cs`, `TaskTypePolicy.cs`, `AgentLoopExplorationPolicy.cs` --- ## 13. ?붾젆?좊━蹂?媛€?대뱶 | ?붾젆?좊━ | ?섏젙 ??二쇱쓽?ы빆 | |---------|----------------| | `Core/` | `FuzzyEngine` ?먯닔 怨듭떇 蹂€寃???寃€???덉쭏??吏곸젒 ?곹뼢 | | `Handlers/` | ???몃뱾??異붽? ??`App.xaml.cs`???깅줉 ?꾩슂 | | `Services/Agent/` | ???꾧뎄 異붽? ??`ToolRegistry`???깅줉 + ?ㅽ궗 ?뚯씪(`.skill.md`) ?묒꽦 + `ToolTabOverrides`????移댄뀒怨좊━ 吏€??| | `Themes/` | 由ъ냼????蹂€寃???紐⑤뱺 ?뚮쭏???숈씪?섍쾶 ?곸슜 ?꾩슂 | | `Models/AppSettings.cs` | ?띿꽦 異붽? ??`SettingsService` 留덉씠洹몃젅?댁뀡 怨좊젮 | | `Views/ChatWindow.*` | partial class 遺꾪븷 ??愿€??湲곕뒫?€ ?대떦 ?뚯씪?먯꽌 ?섏젙 | --- ### 12-7. PPT 怨좏뭹吏??쒗뵆由??쒖뒪?? `template` ?뚮씪誘명꽣濡?8媛?怨좏뭹吏??묒떇???됱긽/?덉씠?꾩썐???ъ슜?????덉뒿?덈떎. **?꾩옱 援ы쁽 (諛⑸쾿 1 ???댁옣 硫뷀??곗씠??:** - 媛??쒗뵆由우쓽 ?뚮쭏 ?됱긽??`FullThemes` ?뺤뀛?덈━???섎뱶肄붾뵫 (0KB 異붽?) - ?먮낯 .pptx ?놁씠???숈씪 ?됱긽+?덉씠?꾩썐?쇰줈 PPT ?앹꽦 媛€??- ?먮낯 .pptx媛€ `Assets/ppt/` ?먮뒗 `%APPDATA%/AXCopilot/templates/ppt/`???덉쑝硫?留덉뒪??蹂듭젣(怨좏뭹吏? ?먮룞 ?낃렇?덉씠?? | ?쒗뵆由??대쫫 | ?먮낯 ?뚯씪 | ?됱긽 ?뱀쭠 | |------------|----------|----------| | `basic100` | BASIC100 湲곗? ?쒗뵆由?V1.pptx (67MB) | 紐⑤뜕 釉붾( (#2572EF) | | `core100` | CORE100 湲곗??쒗뵆由?V1.pptx (141MB) | ??釉붾( (#266DF1) | | `frame_blue` | ?꾨젅?꾨뵒?먯씤 釉붾( (19MB) | ?꾨젅??釉붾( (#126BF6) + 移대뱶 | | `mr_ppt_01` | 誘몄뒪???쇳뵾??01 (18MB) | ?ㅽ겕 ?ㅼ씠鍮?+ 釉붾( (#0049F0) | | `mr_ppt_02` | 誘몄뒪???쇳뵾??02 (24MB) | 釉붾( + 洹몃젅??移대뱶 (#2269F7) | | `mr_ppt_03` | 誘몄뒪???쇳뵾??03 (5.5MB) | ?ㅼ씠鍮?+ 怨⑤뱶 (#F4BB05) | | `mr_ppt_04` | 誘몄뒪???쇳뵾??04 (8.8MB) | ???몃뵒怨?+ ?ㅼ뭅?대툝猷?(#0583F2) | | `mr_ppt_05` | 誘몄뒪???쇳뵾??05 (16MB) | 紐⑤뜕 釉붾옓 + 釉붾( (#007AF9) | **?ν썑 援ы쁽 ?듭뀡:** #### 諛⑸쾿 2 ???먮룞 ?ㅼ슫濡쒕뱶 (沅뚯옣) ``` 泥??ъ슜 ???щ궡 NAS/?쒕쾭?먯꽌 ?쒗뵆由??먮룞 ?ㅼ슫濡쒕뱶 ??%APPDATA%/AXCopilot/templates/ppt/ 罹먯떆 援ы쁽 ?ъ씤?? - AppSettings??TemplateServerUrl ?ㅼ젙 異붽? (?? https://nas.internal/ax-templates/) - ResolveTemplatePath?먯꽌 ?뚯씪 誘몃컻寃????ㅼ슫濡쒕뱶 ?몃━嫄?- ?ㅼ슫濡쒕뱶 吏꾪뻾瑜?UI (ChatWindow ?먮뒗 ?ㅼ젙 ?붾㈃) - ?ㅽ봽?쇱씤 ?대갚: ?댁옣 硫뷀??곗씠??諛⑸쾿 1)濡??먮룞 ?꾪솚 - 踰꾩쟾 愿€由? ?쒕쾭??manifest.json ??濡쒖뺄 罹먯떆 踰꾩쟾怨?鍮꾧탳 ?덉긽 ?묒뾽?? 以?(?ㅼ슫濡쒕뱶 ?쒕퉬??+ UI + ?ㅼ젙) ?뚯씪: PptxSkill.cs, AppSettings.cs, SettingsService.cs ``` #### 諛⑸쾿 3 ??鍮뚮뱶???ы븿 ``` csproj??Content濡??깅줉?섏뿬 諛고룷 ?⑦궎吏€???ы븿 援ы쁽: 1. AxCopilot.csproj???꾨옒 異붽?: PreserveNewest 2. ?ㅼ튂?뚯씪 ?⑸웾 ?곹뼢: +~200MB (?뺤텞 ?? - ?꾩옱 ?ㅼ튂?뚯씪 ~107MB ??~307MB ?덉긽 3. ?좏깮???ы븿 (?⑸웾 ?덉땐): - 寃쎈웾 ?쒗뵆由용쭔 ?ы븿 (mr_ppt_03: 5.5MB, mr_ppt_04: 8.8MB ?? - ?€???쒗뵆由?(core100: 141MB)?€ 諛⑸쾿 2濡??ㅼ슫濡쒕뱶 PreserveNewest 二쇱쓽: build.bat??payload.zip ?뺤텞 ?④퀎?먯꽌 ?먮룞 ?ы븿??``` --- ## 14. 吏€?ν삎 ?먯씠?꾪듃 怨좊룄??(oh-my-openagent 李몄“) > ?곸꽭 怨꾪쉷: `docs/AGENT_ROADMAP.md` 8??李몄“ ### 利됱떆 媛쒕컻 (P1~P5) | ?쒖쐞 | 湲곕뒫 | ?듭떖 ?뚯씪 | ?ㅻ챸 | |------|------|----------|------| | P1 | **IntentGate** (?섎룄 遺꾨쪟湲? | `IntentGateService.cs`(?좉퇋) | ?ъ슜???낅젰 ???묒뾽 ?좏삎 ?먮룞 遺꾨쪟 ??理쒖쟻 ?ㅽ뻾 ?꾨줈?뚯씪(temperature/tool 沅뚰븳/諛섎났 ?곹븳) ?먮룞 ?곸슜. 湲곗〈 `ClassifyTaskType` + `IntentDetector` ?듯빀 ?뺤옣 | | P2 | **移댄뀒怨좊━ ?쒕툕?먯씠?꾪듃 ?꾨줈?뚯씪** | `SubAgentProfile.cs`(?좉퇋), `SubAgentTool.cs` | ?⑥씪 紐⑤뜽 + ?ㅻⅨ system prompt/tool 沅뚰븳/temperature 議고빀?쇰줈 媛€??硫€?곗뿉?댁쟾?? researcher/coder/writer/reviewer/planner 5媛??꾨줈?뚯씪 | | P3 | **?꾩쟻 ?숈뒿** | `SessionLearningCollector.cs`(?좉퇋) | ?몄뀡 ??諛쒓껄?ы빆(鍮뚮뱶 ?먮윭, ?뚯씪 援ъ“, ?⑦꽩)???먮룞 ?섏쭛?섏뿬 ?꾩냽 諛섎났??而⑦뀓?ㅽ듃濡?二쇱엯. 諛섎났 ?ㅼ닔 諛⑹? | | P4 | **?뚰겕?ㅽ럹?댁뒪 而⑦뀓?ㅽ듃 ?먮룞 ?앹꽦** | `WorkspaceContextGenerator.cs`(?좉퇋) | ?묒뾽 ?대뜑 援ъ“/湲곗닠?ㅽ깮??`.ax-context.md`濡??먮룞 ?앹꽦. ?쒕툕?먯씠?꾪듃 而⑦뀓?ㅽ듃 ?⑥쑉??| | P5 | **蹂묐젹 ?쒕툕?먯씠?꾪듃 ?뺤옣** | `SpawnAgentsTool.cs`(?좉퇋) | ?щ윭 ?쒕툕?먯씠?꾪듃瑜???踰덉뿉 ?앹꽦/?ㅽ뻾. IntentGate ?곕룞?쇰줈 蹂듯빀 ?붿껌 ?먮룞 遺꾪빐 | ### 異뷀썑 媛쒕컻 (P6~P7) | ?쒖쐞 | 湲곕뒫 | ?좏뻾 議곌굔 | ?ㅻ챸 | |------|------|----------|------| | P6 | **?대갚 泥댁씤** | P1 + P2 | ?ㅽ뻾 ?ㅽ뙣 ???ㅻⅨ ?꾨줈?뚯씪/?꾨왂?쇰줈 ?먮룞 ?ъ떆??(理쒕? 2?? | | P7 | **紐⑤뜽 ?깃꺽 留ㅼ묶** | P1 + 硫€?곕え??| ?묒뾽 ?좏삎蹂?理쒖쟻 紐⑤뜽 ?먮룞 ?좏깮 (RegisteredModel.strengths 留ㅼ묶) | ### 援ы쁽 ?섏〈 愿€怨? ``` P1 (IntentGate) ?€?€?€?€?€?р??€??P2 (移댄뀒怨좊━ ?꾨줈?뚯씪) ?€?€??P5 (蹂묐젹 ?뺤옣) ?쒋??€??P3 (?꾩쟻 ?숈뒿) [?낅┰] ?붴??€??P4 (?뚰겕?ㅽ럹?댁뒪 而⑦뀓?ㅽ듃) [?낅┰] P1 + P2 ?꾨즺 ???€?€??P6 (?대갚 泥댁씤) P1 + 硫€?곕え?????€?€??P7 (紐⑤뜽 ?깃꺽 留ㅼ묶) ``` --- ## 15. 蹂듭썝 泥댄겕?ъ씤?? UI ?붿옄???€洹쒕え 由ы뙥?좊쭅 ???꾪뿕 ?묒뾽 ??湲곕줉???덉쟾 蹂듭썝 吏€?먯엯?덈떎. | ?좎쭨 | 而ㅻ컠 ?댁떆 | ?ㅻ챸 | 蹂듭썝 紐낅졊 | |------|-----------|------|-----------| | 2026-04-13 | `4d1d160` | UI ?붿옄??媛쒖꽑 吏곸쟾 ???뚮쭏 援먯젙, IBM 吏꾨떒 濡쒓퉭, 酉곗뼱 紐낆묶 蹂€寃??꾨즺 (704 tests pass) | `git checkout 4d1d160 -- src/AxCopilot/` | > **?꾩껜 濡ㅻ갚**: `git revert <而ㅻ컠>` ?먮뒗 `git reset --hard 4d1d160` (二쇱쓽: ?댄썑 ?묒뾽 紐⑤몢 ?뚯떎) > **遺€遺?蹂듭썝**: `git checkout 4d1d160 -- ` 濡??뱀젙 ?뚯씪留??섎룎由ш린 --- ## 16. 愿€??臾몄꽌 | 臾몄꽌 | ?댁슜 | |------|------| | `docs/AGENT_ROADMAP.md` | ?먯씠?꾪듃 湲곕뒫 濡쒕뱶留?(吏€?ν삎 怨좊룄??P1~P7 ?곸꽭 ?ы븿) | | `docs/LAUNCHER_ROADMAP.md` | ?곗쿂 湲곕뒫 濡쒕뱶留?| | `docs/OPENCODE_PARITY_PLAN.md` | OpenCode 湲곕뒫 ?€??怨꾪쉷 | | `docs/TOOL_PARITY_REPORT.md` | ?꾧뎄 ?명솚??由ы룷??| | `docs/AX_AGENT_UI_CHECKLIST.md` | ?먯씠?꾪듃 UI 泥댄겕由ъ뒪??| | `docs/UI_UX_CHECKLIST.md` | UI/UX 泥댄겕由ъ뒪??| > ?낅뜲?댄듃: 2026-04-14 18:08 (KST) > - ?ㅽ궗 ?쒖뒪??Phase 2 1~6踰덉쓣 諛섏쁺?덉뒿?덈떎. `SkillService`???꾨줈?앺듃 `.claude/skills` ?ш? 濡쒕뱶, namespaced `SKILL.md`, 踰덈뱾 ?ㅽ궗 二쇱엯, `$ARGUMENTS`/named args/?ㅽ궗 ?대뜑 蹂€??移섑솚, inline shell block ?ㅽ뻾源뚯? 吏€?먰븯?꾨줉 ?뺤옣?덉뒿?덈떎. > - `ChatWindow` ?고???寃쎈줈???④퍡 ?뺣━?덉뒿?덈떎. ?щ옒???몄텧?€ `BuildSlashInvocationAsync`瑜??듯빐 而댄뙆?쇰맂 ?ㅽ궗 ?꾨\?꾪듃瑜??ъ슜?섍퀬, ?쇰컲 ?€?붾뒗 `when_to_use`/`paths`/`user-invocable` 硫뷀??곗씠?곕? 諛뷀깢?쇰줈 ?좏깮???먮룞 ?ㅽ궗 媛€?대뱶瑜?蹂댁“ ?쒖뒪???꾨\?꾪듃濡?遺숈엯?덈떎. > - ?ㅼ젙/UI ?곌껐?????ㅽ궗 紐⑤뜽 湲곗??쇰줈 留욎톬?듬땲?? Agent ?ㅼ젙, ?쇰컲 ?ㅼ젙, ?ㅻ쾭?덉씠, ?ㅽ궗 愿€由ъ옄 ?꾧뎄??踰덈뱾/?꾨줈?앺듃/?ъ슜???ㅽ궗 遺꾨쪟?€ ?꾨줈?앺듃 `.claude/skills` 寃쎈줈瑜?諛섏쁺???ㅻ챸怨?由ъ뒪?몃? 援ъ꽦?⑸땲?? > - ?꾧뎄 ?몄텧 ?④퀎??`AgentLoopService.GetRuntimeActiveTools()`?먯꽌 blanket deny 沅뚰븳??癒쇱? ?곸슜?섎룄濡?蹂닿컯?덉뒿?덈떎. ?⑦꽩 湲곕컲 洹쒖튃?€ call-time 寃€?щ? ?좎??섍퀬, ?⑥닚 deny ?꾧뎄??紐⑤뜽 ?몄텧 ???꾪꽣留곸쑝濡??뺣━?덉뒿?덈떎. > - 寃€利? `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_phase2\\ -p:IntermediateOutputPath=obj\\verify_phase2\\` 寃쎄퀬 0 / ?ㅻ쪟 0 > - 寃€利? `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "AgentToolCatalogTests|SkillServiceRuntimePolicyTests" -p:OutputPath=bin\\verify_phase2_tests\\ -p:IntermediateOutputPath=obj\\verify_phase2_tests\\` ?듦낵 16 > - 李멸퀬: ?뚯뒪???꾨줈?앺듃??湲곗〈 nullable 寃쎄퀬 `src/AxCopilot.Tests/Services/WorkspaceContextGeneratorTests.cs(76)` 1嫄댁? ?좎??⑸땲?? > ?낅뜲?댄듃: 2026-04-14 18:22 (KST) > - ?ㅽ궗 ?뚯뒪 ?뺤옣 Phase 3??諛섏쁺?덉뒿?덈떎. `SkillService`???곸쐞 ?붾젆?곕━源뚯? ?ы븿???꾨줈?앺듃 `.claude/skills` ?먯깋, ?뚮윭洹몄씤 ?ㅽ궗 ?대뜑 ?먯깋, 異붽? 怨듭슜 ?대뜑 紐⑸줉, `.claude/commands` markdown command瑜?legacy skill濡?蹂€?섑븯??寃쎈줈瑜??④퍡 吏€?먰빀?덈떎. > - ?뚯씪???ㅽ궗?€ body瑜?利됱떆 硫붾え由ъ뿉 ?щ━吏€ ?딄퀬 ?꾩슂 ?쒖젏?먮쭔 ?쎈뒗 lazy prompt body 罹먯떆瑜?異붽??덉뒿?덈떎. `SkillManagerTool`, `SkillEditorWindow`, `SkillGalleryWindow`????寃쎈줈瑜??듯빐 ?ㅼ젣 蹂몃Ц???쒖떆?⑸땲?? > - ?몄옄 紐⑤뜽???뺤옣?덉뒿?덈떎. `arguments`?€ `argument-hint`瑜??④퍡 ?댁꽍??named placeholder 移섑솚??媛뺥솕?덇퀬, ?몄옄媛€ 遺€議깊븯硫?usage 媛€?대뱶瑜??꾨\?꾪듃 ?욎뿉 遺숈뿬 ?ㅽ뻾 ?덉쭏??蹂댁셿?⑸땲?? > - ?꾧뎄 deny ?꾪꽣??`AgentToolCatalog` 怨듯넻 硫붿꽌?쒕줈 ?대룞???고??꾧낵 ?ㅼ젙 UI媛€ 媛숈? blanket deny 洹쒖튃??怨듭쑀?섎룄濡??뺣━?덉뒿?덈떎. > - ?ㅼ젙 ?€?μ뿉??`additionalSkillFolders`瑜?異붽??덇퀬, ?쇰컲 ?ㅼ젙/AX Agent ?ㅼ젙 UI??以??⑥쐞 ?낅젰 ?꾨뱶瑜??l뼱 ?щ윭 怨듭슜 ?ㅽ궗 ?대뜑瑜??곌껐?????덇쾶 ?덉뒿?덈떎. > - 寃€利? `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_phase3\\ -p:IntermediateOutputPath=obj\\verify_phase3\\` 寃쎄퀬 0 / ?ㅻ쪟 0 > - 寃€利? `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "AgentToolCatalogTests|SkillServiceRuntimePolicyTests" -p:OutputPath=bin\\verify_phase3_tests\\ -p:IntermediateOutputPath=obj\\verify_phase3_tests\\` ?듦낵 18 > - 李멸퀬: ?뚯뒪???꾨줈?앺듃??湲곗〈 nullable 寃쎄퀬 `src/AxCopilot.Tests/Services/WorkspaceContextGeneratorTests.cs(76)` 1嫄댁? ?좎??⑸땲?? > ?낅뜲?댄듃: 2026-04-14 18:33 (KST) > - ?ㅽ궗 ?뺤콉 ?쒖뼱瑜?異붽??덉뒿?덈떎. `LlmSettings`??`enableProjectSkillDiscovery`, `enablePluginSkillDiscovery`, `enableLegacyCommandSkills`, `enableSkillInlineShell`, `skillInlineShellTimeoutSeconds`, `skillInlineShellMaxOutputChars`瑜?異붽??섍퀬 ?쇰컲 ?ㅼ젙/AX Agent ?ㅼ젙 UI???곌껐?덉뒿?덈떎. > - ?ㅽ궗 濡쒕뱶 ?쒓렇?덉쿂???댁젣 ?뚯뒪 ?붾젆?곕━ 紐⑸줉肉??꾨땲???ㅼ젣 ?ㅽ궗 ?뚯씪 ?섏? 理쒓렐 ?섏젙 ?쒓컖???④퍡 諛섏쁺?⑸땲?? 媛숈? ?대뜑 援ъ꽦?대씪???뚯씪 ?댁슜??諛붾€뚮㈃ ?ㅼ쓬 濡쒕뱶 ?붿껌?먯꽌 ?ы깘?됰맗?덈떎. > - inline shell ?ㅽ뻾湲곕뒗 ?ㅼ젙 湲곕컲 鍮꾪솢?깊솕, timeout, 異쒕젰 湲몄씠 ?쒗븳???곸슜?섎룄濡?蹂닿컯?덉뒿?덈떎. 鍮꾪솢???곹깭???쒓컙 珥덇낵???꾨\?꾪듃 ?덉뿉???앸퀎 媛€?ν븳 ?덈궡 臾몄옄?대줈 諛섑솚?⑸땲?? > - `SkillEditorWindow`?€ `SkillGalleryWindow`??lazy prompt body 寃쎈줈瑜??ъ슜?섎룄濡?留욎톬怨? ?ㅼ젙 蹂€寃???`ReloadFromCurrentSettings()`瑜??듯빐 ?꾩옱 ?ㅽ궗 ?뚯뒪瑜??ㅼ떆 ?쎈룄濡??뺣━?덉뒿?덈떎. > - 寃€利? `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_phase4b\\ -p:IntermediateOutputPath=obj\\verify_phase4b\\` 寃쎄퀬 0 / ?ㅻ쪟 0 > - 寃€利? `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "AgentToolCatalogTests|SkillServiceRuntimePolicyTests" -p:OutputPath=bin\\verify_phase4b_tests\\ -p:IntermediateOutputPath=obj\\verify_phase4b_tests\\` ?듦낵 18 > - 李멸퀬: ?뚯뒪???꾨줈?앺듃??湲곗〈 nullable 寃쎄퀬 `src/AxCopilot.Tests/Services/WorkspaceContextGeneratorTests.cs(76)` 1嫄댁? ?좎??⑸땲?? - ?낅뜲?댄듃: 2026-04-14 18:37 (KST) - claude-code 濡쒖뺄 ?ㅻ깄?룹쓣 ?ㅼ떆 ?뺤씤?덉?留? ?꾩옱 ?ㅻ깄?룹뿉??PPT/臾몄꽌 ?꾩슜 踰덈뱾 ?ㅽ궗???쒕졆?섏? ?딆븯?듬땲?? ?€??AX媛€ 湲곕낯 ?ы븿?섍퀬 ?덈뒗 臾몄꽌??managed skill ?명듃瑜?以묒떖?쇰줈 諛고룷 ?먯궛 ?덉쭏???ㅻ벉?덉뒿?덈떎. - pptx-creator, docx-creator, report-writer, prd-generator, meeting-minutes, weekly-report, markdown-to-doc??when_to_use?€ argument-hint 硫뷀?瑜?異붽???proactive skill ?좏깮怨??щ옒???몄텧 媛€?대뱶瑜?蹂닿컯?덉뒿?덈떎. - ?쇰컲 ?ㅼ젙怨?AX Agent ?ㅼ젙???ㅽ궗 紐⑸줉?€ managed ?ㅼ퐫?꾨? 蹂꾨룄 湲곕낯 ?쒓났 ?ㅽ궗 洹몃9?쇰줈 遺꾨━?덇퀬, ?ㅽ궗 媛ㅻ윭由щ룄 湲곕낯 ?쒓났 / ?꾨줈?앺듃 / ?뚮윭洹몄씤 / ?ъ슜??/ 怨좉툒 ?꾪꽣?€ 諛곗?瑜??ъ슜?섎룄濡??뺣━?덉뒿?덈떎. - ??蹂€寃쎌쑝濡?臾몄꽌쨌?꾨젅?좏뀒?댁뀡 ?ㅽ궗?€ 鍮뚮뱶 異쒕젰 skills ?대뜑瑜??듯빐 湲곕낯 諛고룷?섎㈃?쒕룄, UI?먯꽌 ?ъ슜???ㅽ궗怨?援щ텇???곹깭濡??뺤씤?????덉뒿?덈떎. - 寃€利? dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_docskills\\ -p:IntermediateOutputPath=obj\\verify_docskills\\ 寃쎄퀬 0 / ?ㅻ쪟 0 - ?낅뜲?댄듃: 2026-04-14 18:45 (KST) - AX Agent ?대? ?ㅼ젙???ㅽ궗 ???덈궡 釉붾줉??而ㅼ뒪?€ ?쇰꺼??異붽??덉뒿?덈떎. ?댁젣 .claude/skills/.../SKILL.md ?꾨줈?앺듃 ?명솚 寃쎈줈媛€ ?ㅽ궗 ??泥??붾㈃?먯꽌 諛붾줈 蹂댁뿬, ?뚰겕?ㅽ럹?댁뒪??媛숈? 援ъ“媛€ ?덉쑝硫?AX媛€ ?④퍡 ?쎈뒗?ㅻ뒗 ?먯쓣 UI?먯꽌???뺤씤?????덉뒿?덈떎. - 寃€利? dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_skilllabel\\ -p:IntermediateOutputPath=obj\\verify_skilllabel\\ 寃쎄퀬 0 / ?ㅻ쪟 0 - ?낅뜲?댄듃: 2026-04-14 19:02 (KST) - 肄붿썙??肄붾뱶???묒뾽 ?대뜑 ?좏깮 ??UI媛€ 2~3珥?硫덉텛???먮쫫???먭??? ?대뜑 蹂€寃?吏곹썑 ?ㅽ뻾?섎뜕 ?ㅽ궗 ?뚯뒪 ?ы깘?됱쓣 UI ?ㅻ젅??諛뽰쑝濡?遺꾨━?덉뒿?덈떎. ?댁젣 ?묒뾽 ?대뜑 蹂€寃? ???꾪솚, ?€??蹂듭썝 ???꾩슂???ㅽ궗 ?щ줈?쒕뒗 諛깃렇?쇱슫?쒖뿉???섑뻾?섍퀬, 議곌굔遺€ ?ㅽ궗 ?쒖꽦?붾쭔 UI???ㅼ떆 諛섏쁺?⑸땲?? - 泥⑤? ?뚯씪 異붽?/?쒓굅泥섎읆 ?묒뾽 ?대뜑媛€ 諛붾€뚯? ?딅뒗 寃쎈줈??湲곗〈 ?ㅽ궗 吏묓빀留?湲곗??쇰줈 議곌굔遺€ ?ㅽ궗??媛깆떊?섎룄濡?遺꾨━??遺덊븘?뷀븳 ?ы깘?됰룄 以꾩??듬땲?? - 寃€利? dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_folderpick\\ -p:IntermediateOutputPath=obj\\verify_folderpick\\ 寃쎄퀬 0 / ?ㅻ쪟 0 - ?낅뜲?댄듃: 2026-04-14 19:16 (KST) - 遺꾩꽍??濡쒓렇 ?€??諛⑹떇??濡ㅻ쭅 ?뺥깭濡??뺣━?덉뒿?덈떎. app, perf, audit, workflow 濡쒓렇???좎쭨蹂??뚯씪???좎??섎릺 媛??뚯씪??理쒕? 1MB瑜??섏? ?딅룄濡??ㅻ옒???댁슜遺€??諛€?대궡硫???濡쒓렇瑜??댁뼱 遺숈엯?덈떎. - 怨듯넻 ?좏떥 RollingTextLogStore瑜?異붽??섍퀬 LogService, AgentPerformanceLogService, AuditLogService, WorkflowLogService???④퍡 ?곸슜?덉뒿?덈떎. - 怨듯넻 濡쒓렇/?깅뒫 濡쒓렇/媛먯궗 濡쒓렇??14?쇨퉴吏€留??좎??섍퀬, ?뚰겕?뚮줈???곸꽭 濡쒓렇??湲곗〈 ?ㅼ젙媛믪쓣 ?곕Ⅴ??理쒕? 14?쇱쓣 ?섏? ?딅룄濡?App ?쒖옉 ???곹븳???곸슜?덉뒿?덈떎. - RollingTextLogStoreTests 3嫄댁쓣 異붽????뚯씪 ?ш린 ?곹븳 ?좎?, ?ㅻ옒???뚯씪 ??젣, ?좎쭨 ?붾젆?곕━ ??젣 ?숈옉??寃€利앺뻽?듬땲?? - 寃€利? dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_logroll\\ -p:IntermediateOutputPath=obj\\verify_logroll\\ 寃쎄퀬 0 / ?ㅻ쪟 0 - 寃€利? dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter RollingTextLogStoreTests -p:OutputPath=bin\\verify_logroll_tests\\ -p:IntermediateOutputPath=obj\\verify_logroll_tests\\ ?듦낵 3 - 李멸퀬: ?뚯뒪???꾨줈?앺듃??湲곗〈 nullable 寃쎄퀬 src/AxCopilot.Tests/Services/WorkspaceContextGeneratorTests.cs(76) 1嫄댁? ?좎??⑸땲?? 업데이트: 2026-04-14 21:00 (KST) - Word/Excel/HTML 문서 생성 고도화 1차를 반영했습니다. `DocumentPlannerTool`은 제안서/보고서/분석 문서를 `Executive Summary`, `Business Case`, `Decision Ask`, `Appendix`까지 포함한 업무형 아웃라인으로 확장합니다. - `DocumentAssemblerTool`은 DOCX 조립 시 HTML/Markdown 구조를 더 보존하도록 손봤습니다. 표, 목록, 콜아웃, 소제목을 평문으로만 밀어버리지 않고 Word 블록으로 다시 조립합니다. - `ExcelSkill`에 `summary_sheet`를 추가해 KPI/핵심 인사이트/후속 과제를 담은 요약 시트를 상세 데이터 시트 앞에 함께 생성할 수 있게 했습니다. - `HtmlSkill`은 `comparison`, `roadmap`, `matrix` 구조화 섹션을 지원하고, 함수 스키마의 `body` 필수 조건을 완화해 `sections` 중심 호출도 자연스럽게 받도록 정리했습니다. - `docx-creator.skill.md`, `csv-to-xlsx.skill.md`, `markdown-to-doc.skill.md`, `report-writer.skill.md`는 Python 우회 경로보다 AX 네이티브 문서 도구를 우선 사용하도록 재작성했습니다. - 테스트: `DocumentAssemblerSemanticTests`, `ExcelSkillSummarySheetTests`, `HtmlSkillConsultingSectionsTests`, `DocumentPlannerBusinessDocumentTests` 추가 - 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_doc_phase1\\ -p:IntermediateOutputPath=obj\\verify_doc_phase1\\` 경고 0 / 오류 0 - 검증: `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "DocumentAssemblerSemanticTests|ExcelSkillSummarySheetTests|HtmlSkillConsultingSectionsTests|DocumentPlannerBusinessDocumentTests|DocumentPlannerPresentationTests" -p:OutputPath=bin\\verify_doc_phase1_tests\\ -p:IntermediateOutputPath=obj\\verify_doc_phase1_tests\\` 통과 5