Files
AX-Copilot-Codex/docs/DEVELOPMENT.md
lacvet 91c4dc74c3 에이전트 루프 반복 준비 단계와 tool_result preview 복원 경로를 안정화한다
- AgentLoopIterationPreparationService를 추가해 queued command 투영, tool_result 대기 요약, query view 생성 책임을 AgentLoopService.RunAsync의 반복 진입부에서 분리함
- AgentMessageInvariantHelper의 preview 스냅샷을 explicit id/fingerprint와 synthetic id로 나눠 저장된 preview 우선, fingerprint 재바인딩 차선, synthetic preview 마지막 순서로 복원하도록 정리함
- AgentToolResultBudget이 source query view 기준 snapshot을 먼저 사용하도록 바꿔 source preview가 local synthetic preview에 가려지지 않게 하고 첫 축약 결과도 source message에 다시 저장함
- AgentToolResultBudgetTests와 AgentLoopIterationPreparationServiceTests를 추가/확장해 같은 tool_result의 장기 세션 재사용과 반복 준비 단계 분리를 회귀로 고정함
- README.md와 docs/DEVELOPMENT.md에 2026-04-15 10:34 (KST) 기준 작업 이력과 검증 명령을 반영함

검증 결과
- dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_loop_pipeline\\ -p:IntermediateOutputPath=obj\\verify_loop_pipeline\\ : 경고 0 / 오류 0
- dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter AgentQueuedCommandProjectorTests|AgentLoopIterationPreparationServiceTests|AgentMessageInvariantHelperTests|AgentToolResultBudgetTests|AgentQueryContextBuilderTests|ChatStorageServiceTests -p:OutputPath=bin\\verify_loop_pipeline_tests\\ -p:IntermediateOutputPath=obj\\verify_loop_pipeline_tests\\ : 통과 14
2026-04-15 10:35:56 +09:00

120 KiB
Raw Blame History

업데이트: 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.cstemplate_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 22:52 (KST)

  • 문서 포맷 고도화와 PPTX 확장 포인트를 함께 반영했습니다. src/AxCopilot/Services/Agent/ExcelSkill.csconditional_formats를 지원해 색상 스케일과 데이터 바 조건부서식을 OpenXML로 직접 생성하고, workbook quality review에도 조건부서식 개수를 반영합니다.
  • src/AxCopilot/Services/Agent/DocxSkill.csstyle_map을 지원하도록 확장했습니다. 템플릿에 정의된 제목/헤딩/본문 스타일을 실제 문단의 ParagraphStyleId로 연결해 사내 템플릿 기반 문서 품질을 높였습니다.
  • src/AxCopilot/Services/Agent/HtmlSkill.csprint_header, print_footer를 받아 인쇄용 헤더/푸터 프레임을 렌더링하고, src/AxCopilot/Services/Agent/ArtifactQualityReviewService.cs는 HTML/DOCX/XLSX 품질 리뷰 문자열과 판정 로직을 공통 형식으로 정리했습니다.
  • PPTX는 src/AxCopilot/Services/Agent/PptxTemplatePackRegistry.cs를 새로 추가해 strategy, board, pmo, finance, sales, operating_model 템플릿 팩을 정의했습니다. src/AxCopilot/Services/Agent/PptxSkill.cstemplate_pack 파라미터와 objective/audience 기반 pack suggestion을 받아 이후 목적형 deck 고도화를 이어가기 쉬운 구조가 됐습니다.
  • 테스트: ArtifactQualityReviewServiceTests, ExcelSkillDataValidationTests, ExcelSkillConditionalFormattingTests, DocxSkillStyleMapTests, HtmlSkillPrintFrameTests, PptxSkillTemplatePackTests
  • 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_next_doc_ppt\\ -p:IntermediateOutputPath=obj\\verify_next_doc_ppt\\ 경고 0 / 오류 0
  • 검증: dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "ArtifactQualityReviewServiceTests|ExcelSkillDataValidationTests|ExcelSkillConditionalFormattingTests|ExcelSkillExecutiveSummaryLinkTests|ExcelSkillSummarySheetTests|DocxSkillTemplateFeaturesTests|DocxSkillStyleMapTests|HtmlSkillConsultingSectionsTests|HtmlSkillPrintFrameTests|DocumentAssemblerDocxFeaturesTests|PptxSkillConsultingDeckTests|PptxSkillAutoRepairTests|PptxSkillTemplatePackTests" -p:OutputPath=bin\\verify_next_doc_ppt_tests\\ -p:IntermediateOutputPath=obj\\verify_next_doc_ppt_tests\\ 통과 15

업데이트: 2026-04-15 10:34 (KST)

  • Agent loop 반복 진입부를 분리했습니다. src/AxCopilot/Services/Agent/AgentLoopIterationPreparationService.cs를 추가해 queued command 투영, tool_result 대기 요약 생성, AgentQueryContextBuilder.Build() 호출을 공통 준비 단계로 묶고, AgentLoopService.RunAsync()는 orchestration에 더 집중하도록 정리했습니다.
  • src/AxCopilot/Services/Agent/AgentMessageInvariantHelper.cs는 tool result preview 스냅샷을 ExplicitByToolResultId, ExplicitByFingerprint, SyntheticByToolResultId로 분리합니다. 저장된 preview가 있으면 그것을 우선 쓰고, 다른 세션에서 tool_use_id가 바뀐 경우에는 fingerprint 재바인딩을 통해 안정적인 preview를 복원하며, 마지막에만 synthetic preview를 사용합니다.
  • src/AxCopilot/Services/Agent/AgentToolResultBudget.cs는 source query view가 있을 때 source 기준 snapshot을 먼저 만들고, query view에는 그 결과를 재사용하도록 순서를 조정했습니다. 이로써 source 쪽 explicit preview가 local synthetic preview에 가려지지 않고, 첫 축약 결과도 source message에 다시 저장됩니다.
  • 테스트: src/AxCopilot.Tests/Services/AgentLoopIterationPreparationServiceTests.cs, src/AxCopilot.Tests/Services/AgentMessageInvariantHelperTests.cs, src/AxCopilot.Tests/Services/AgentToolResultBudgetTests.cs
  • 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_loop_pipeline\\ -p:IntermediateOutputPath=obj\\verify_loop_pipeline\\ 경고 0 / 오류 0
  • 검증: dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "AgentQueuedCommandProjectorTests|AgentLoopIterationPreparationServiceTests|AgentMessageInvariantHelperTests|AgentToolResultBudgetTests|AgentQueryContextBuilderTests|ChatStorageServiceTests" -p:OutputPath=bin\\verify_loop_pipeline_tests\\ -p:IntermediateOutputPath=obj\\verify_loop_pipeline_tests\\ 통과 14

업데이트: 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)와 코드 탭 기본 지원 언어를 명시적으로 표시합니다.
  • PptxSkillexecutive_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)

public interface IActionHandler
{
    string? Prefix { get; }        // ?묐몢??(null?대㈃ ?쇱? 寃€?됰쭔)
    PluginMetadata Metadata { get; }
    Task<IEnumerable<LauncherItem>> GetItemsAsync(string query, CancellationToken ct);
    Task ExecuteAsync(LauncherItem item, CancellationToken ct);
}

媛쒕컻 諛⑸쾿

  1. AxCopilot.SDK 李몄“?섏뿬 IActionHandler 援ы쁽
  2. 鍮뚮뱶??.dll??settings.json??Plugins 諛곗뿴??寃쎈줈 ?깅줉
  3. PluginHost媛€ ???쒖옉 ???숈쟻 濡쒕뱶

9. 鍮뚮뱶 諛??ㅽ뻾

媛쒕컻 鍮뚮뱶

dotnet build src/AxCopilot/AxCopilot.csproj

鍮좊Ⅸ 鍮뚮뱶 (?뷀샇???ㅼ튂?꾨줈洹몃옩 ?앸왂)

./build-quick.sh

硫붿씤 ?깅쭔 self-contained ?⑥씪 ?뚯씪濡?鍮뚮뱶?⑸땲?? AxKeyEncryptor/Installer/?쒕룆?붾? 嫄대꼫?곗뼱 鍮좊Ⅸ 媛쒕컻 諛섎났???곹빀?⑸땲??

由대━??鍮뚮뱶 (?⑥씪 ?뚯씪)

dotnet publish src/AxCopilot/AxCopilot.csproj -c Release -r win-x64 --self-contained

由대━??鍮뚮뱶 ?듭뀡:

  • PublishSingleFile: ?⑥씪 ?ㅽ뻾 ?뚯씪
  • EnableCompressionInSingleFile: ?뺤텞 ?곸슜
  • PublishReadyToRun: AOT ?꾨━而댄뙆??- DebugType=none: ?붾쾭洹??щ낵 ?쒓굅
  • TrimMode=partial: IL ?몃━諛?

?뚯뒪??

dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj

10. 踰꾩쟾 愿€由?

  • AxCopilot.csproj??<Version> ?쒓렇 ?섎굹留?蹂€寃쏀븯硫????꾩껜??諛섏쁺
  • ?ㅼ젙 ?ㅽ궎留?踰꾩쟾?€ 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<T>, FindAncestor<T> ?좏떥 異붽?

援ъ“??由ы뙥?좊쭅 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 ??+ "?꾨━酉?) ??`[??誘몃━蹂닿린
誘몃━蹂닿린 ?쒕∼?ㅼ슫 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???쎌엯??<br> ?쒓렇媛€ ?댁뒪耳€?댄봽?섎뒗 踰꾧렇 ?섏젙 ???댁뒪耳€?댄봽 ???뚮젅?댁뒪?€?붾줈 蹂댁〈 ??蹂듭썝

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<tool_call>\n{name,arguments}\n</tool_call>"
user: "[Tool Result: tool_name] (id=xxx)\ncontent"

?듭떖 硫붿꽌??

  • BuildIbmAssistantTranscript() ??tool_use 釉붾줉 ??<tool_call> ?쒓렇 吏곷젹??- 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???꾨옒 異붽?:
   <Content Include="Assets\ppt\*.pptx">
     <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
   </Content>

2. ?ㅼ튂?뚯씪 ?⑸웾 ?곹뼢: +~200MB (?뺤텞 ??
   - ?꾩옱 ?ㅼ튂?뚯씪 ~107MB ??~307MB ?덉긽

3. ?좏깮???ы븿 (?⑸웾 ?덉땐):
   - 寃쎈웾 ?쒗뵆由용쭔 ?ы븿 (mr_ppt_03: 5.5MB, mr_ppt_04: 8.8MB ??
   - ?€???쒗뵆由?(core100: 141MB)?€ 諛⑸쾿 2濡??ㅼ슫濡쒕뱶
   
   <Content Include="Assets\ppt\誘몄뒪??" Condition="Exists('Assets\ppt\')">
     <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
   </Content>

二쇱쓽: 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

업데이트: 2026-04-14 21:50 (KST)
- PPT 생성 고도화 3차를 반영했습니다. `DeckPlanningService`를 추가해 deck brief 정규화, consulting storyline 보강, 누락된 `Executive Summary`/`Recommendation`/`Roadmap`/`Appendix` 자동 삽입, 레이아웃 alias 정규화를 내부 파이프라인으로 처리합니다.
- `DeckQualityReviewService`를 추가해 deck-level 품질 점수와 경고를 계산합니다. 템플릿 사용 여부, 레이아웃 다양성, executive summary/recommendation 유무, 텍스트 과밀, 근거 슬라이드 부족, placeholder 잔존을 함께 점검합니다.
- `PptxSkill`은 `audience`, `objective`, `decision_ask`, `storyline` 파라미터를 추가했고, `issue_tree`, `before_after`, `decision_matrix`, `risk_heatmap`, `benefit_waterfall`, `operating_model`, `appendix_evidence` 같은 상위 deck 레이아웃을 네이티브 슬라이드 타입으로 자동 정규화해 렌더링 전에 보정합니다.
- 결과 메시지도 고도화했습니다. `pptx_create` 실행 후 파일 경로만 반환하던 흐름에서, 이제 planning summary와 deck quality summary를 함께 반환해 모델과 사용자가 결과물 완성도를 바로 확인할 수 있습니다.
- `pptx-creator.skill.md`를 deck planning 중심으로 재작성했고, `strategy-deck`, `board-update`, `pmo-steering`, `sales-review-deck`, `operating-model-deck` 번들 스킬을 추가해 목적형 deck 생성 진입점을 늘렸습니다.
- 테스트로 `DeckPlanningServiceTests`, `DeckQualityReviewServiceTests`, `PptxSkillAutoRepairTests`를 추가했고, 기존 `PptxSkillConsultingDeckTests`와 함께 검증했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_ppt_phase3\\ -p:IntermediateOutputPath=obj\\verify_ppt_phase3\\` 경고 0 / 오류 0
- 검증: `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "DeckPlanningServiceTests|DeckQualityReviewServiceTests|PptxSkillAutoRepairTests|PptxSkillConsultingDeckTests" -p:OutputPath=bin\\verify_ppt_phase3_tests\\ -p:IntermediateOutputPath=obj\\verify_ppt_phase3_tests\\` 통과 5

업데이트: 2026-04-14 22:14 (KST)
- 문서 planner/assembler 고도화 2차를 반영했습니다. [DocumentPlannerTool.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/DocumentPlannerTool.cs)는 `format: xlsx`를 지원하고, 분석/제안 시나리오에서 `summary_sheet + sheets` 구조의 `excel_create` scaffold를 직접 생성합니다.
- 같은 파일의 포맷 해석 로직은 `xlsx`, `excel`, `workbook`, `tracker`, `dashboard`, `scorecard` 계열 의도를 먼저 감지해 워크북 경로로 보내도록 보강했습니다.
- [DocumentAssemblerTool.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/DocumentAssemblerTool.cs)는 DOCX 조립 시 `cover_subtitle`, `toc`, `header`, `footer`를 실제 OpenXML 문서에 반영하고, 구조화 HTML을 Word 블록으로 조립한 뒤 품질 리뷰 점수를 함께 반환합니다.
- 같은 도구의 HTML 조립 경로도 공통 [ArtifactQualityReviewService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/ArtifactQualityReviewService.cs)와 연결해 score/strengths/issues 기준의 요약을 돌려주도록 정리했습니다.
- [kpi-workbook.skill.md](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/skills/kpi-workbook.skill.md)는 complex workbook 생성 시 planner 경로를 열기 위해 `document_plan`을 허용 도구에 추가했습니다.
- 테스트로 [DocumentPlannerWorkbookScaffoldTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/DocumentPlannerWorkbookScaffoldTests.cs), [DocumentAssemblerDocxFeaturesTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/DocumentAssemblerDocxFeaturesTests.cs)를 추가했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_doc_planning2\\ -p:IntermediateOutputPath=obj\\verify_doc_planning2\\` 경고 0 / 오류 0
- 검증: `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "DocumentPlannerWorkbookScaffoldTests|DocumentAssemblerDocxFeaturesTests|DocumentAssemblerSemanticTests|DocumentPlannerBusinessDocumentTests|ExcelSkillExecutiveSummaryLinkTests|HtmlSkillConsultingSectionsTests|DocxSkillTemplateFeaturesTests" -p:OutputPath=bin\\verify_doc_planning_tests3\\ -p:IntermediateOutputPath=obj\\verify_doc_planning_tests3\\` 통과 7

업데이트: 2026-04-14 22:28 (KST)
- 문서 포맷 고도화 3차를 반영했습니다. [DocumentAssemblerTool.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/DocumentAssemblerTool.cs)는 DOCX 조립 시 `template_path`와 `page_numbers`를 지원해 사내 템플릿 복제 후 커버, 목차, 머리글, 바닥글, 페이지 번호를 함께 적용할 수 있게 했습니다.
- 같은 도구의 DOCX 경로는 템플릿 상속 여부를 [ArtifactQualityReviewService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/ArtifactQualityReviewService.cs)의 구조화 문서 리뷰 입력으로 전달해 템플릿 기반 산출물 강점까지 품질 요약에 반영합니다.
- [ExcelSkill.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/ExcelSkill.cs)는 `data_validations`를 지원하도록 확장했습니다. 단일 시트, summary sheet 포함 워크북, 멀티 시트 워크북 모두에서 OpenXML `DataValidation` 규칙을 생성하고 워크북 품질 리뷰에 검증 규칙 수를 포함합니다.
- [HtmlSkill.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/HtmlSkill.cs)는 `decision_summary`, `evidence_cards` 섹션을 지원해 경영 보고형 HTML에서 의사결정 요약과 근거 카드 묶음을 구조화 블록으로 렌더링합니다.
- [ArtifactQualityReviewService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/ArtifactQualityReviewService.cs)의 HTML 리뷰는 새 블록을 인식해 comparison, roadmap, matrix 외에 decision/evidence 구조도 강점으로 점수화하도록 보강했습니다.
- 테스트로 [ExcelSkillDataValidationTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/ExcelSkillDataValidationTests.cs)를 추가했고, [DocumentAssemblerDocxFeaturesTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/DocumentAssemblerDocxFeaturesTests.cs), [HtmlSkillConsultingSectionsTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/HtmlSkillConsultingSectionsTests.cs)를 확장해 DOCX 템플릿/페이지 번호와 HTML decision/evidence 블록을 회귀 검증했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_doc_phase_next\\ -p:IntermediateOutputPath=obj\\verify_doc_phase_next\\` 경고 0 / 오류 0
- 검증: `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "DocumentAssemblerDocxFeaturesTests|DocumentAssemblerSemanticTests|DocumentPlannerWorkbookScaffoldTests|ExcelSkillExecutiveSummaryLinkTests|ExcelSkillSummarySheetTests|ExcelSkillDataValidationTests|HtmlSkillConsultingSectionsTests|DocxSkillTemplateFeaturesTests|DocumentPlannerBusinessDocumentTests" -p:OutputPath=bin\\verify_doc_phase_next_tests\\ -p:IntermediateOutputPath=obj\\verify_doc_phase_next_tests\\` 통과 9

업데이트: 2026-04-14 23:05 (KST)
- 문서 고도화 다음 단계를 반영했습니다. [ExcelSkill.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/ExcelSkill.cs)는 `summary_sheet`에 `decision_summary`, `scorecards`, `sheet_summaries`를 추가로 받을 수 있게 확장됐고, executive summary sheet에서 의사결정 요청, 핵심 scorecard, 상세 시트별 상태를 순서대로 렌더링합니다.
- 워크북 품질 리뷰 입력도 같은 구조를 인식하도록 [ArtifactQualityReviewService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/ArtifactQualityReviewService.cs)의 `WorkbookReviewInput`과 `ReviewWorkbook()`를 확장했습니다. 이제 summary sheet가 KPI/decision/detail summary를 충분히 담고 있는지 강점과 보완 포인트로 함께 표시합니다.
- [DocumentAssemblerTool.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/DocumentAssemblerTool.cs)는 `style_map` 파라미터를 받아 template-based DOCX assembly에서 `title`, `heading1`, `heading2`, `body` 문단 스타일을 실제 Word 문단에 매핑합니다. cover title, 섹션 헤딩, 본문 문단이 사내 템플릿 스타일을 더 자연스럽게 따라가도록 정리했습니다.
- 새 회귀 테스트 [ExcelSkillDashboardSummaryTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/ExcelSkillDashboardSummaryTests.cs), [DocumentAssemblerStyleMapTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/DocumentAssemblerStyleMapTests.cs)를 추가했고, [ArtifactQualityReviewServiceTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/ArtifactQualityReviewServiceTests.cs)도 새 record 시그니처에 맞춰 갱신했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_doc_next2\\ -p:IntermediateOutputPath=obj\\verify_doc_next2\\` 경고 0 / 오류 0
- 검증: `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "ArtifactQualityReviewServiceTests|DocumentAssemblerStyleMapTests|DocumentAssemblerDocxFeaturesTests|DocumentAssemblerSemanticTests|ExcelSkillDashboardSummaryTests|ExcelSkillSummarySheetTests|ExcelSkillExecutiveSummaryLinkTests|ExcelSkillDataValidationTests|ExcelSkillConditionalFormattingTests" -p:OutputPath=bin\\verify_doc_next2_tests\\ -p:IntermediateOutputPath=obj\\verify_doc_next2_tests\\` 통과 11

업데이트: 2026-04-14 23:15 (KST)
- [ExcelSkill.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/ExcelSkill.cs)는 `summary_sheet.trend_series`를 새로 지원합니다. summary sheet에서 `Trend Dashboard` 섹션을 추가로 만들고 `label/current/target/delta/status`를 열 기반으로 렌더링해 workbook summary가 KPI 표 수준을 넘어 상태 대시보드 역할까지 하도록 확장했습니다.
- 같은 파일의 workbook review 입력 계산은 `trend_series`도 summary quality 강점으로 인정하도록 업데이트했습니다. [ArtifactQualityReviewService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/ArtifactQualityReviewService.cs)는 workbook summary가 KPI/decision/highlight 없이 끝나는 경우 보완 포인트를 추가로 반환합니다.
- [HtmlSkill.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/HtmlSkill.cs)는 `print=true`에서 명시적 `print_header`/`print_footer`가 없는 경우 기본 frame(`title`, `date | AX Copilot`)을 자동 생성합니다. print-ready HTML이 최소 배포형 header/footer를 갖도록 내부 기본값을 넣은 것입니다.
- [ArtifactQualityReviewService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/ArtifactQualityReviewService.cs)의 HTML 리뷰는 print-ready 문서에 frame이 없거나, decision/evidence block이 부족하거나, 장문 보고서인데 cover가 없는 경우를 추가로 경고합니다.
- [DeckPlanningService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/DeckPlanningService.cs)는 `comparison`, `roadmap`, `executive_summary`, `kpi_dashboard` 슬라이드의 최소 구조를 자동 보정하고, 긴 headline은 내부 기준 길이로 압축합니다.
- [DeckQualityReviewService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/DeckQualityReviewService.cs)는 slide-level quality gate를 추가해 긴 headline, 과밀 슬라이드, 옵션 부족, 표/차트 데이터 누락을 `Slide N:` 경고로 품질 요약에 포함합니다.
- 테스트로 [ExcelSkillDashboardSummaryTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/ExcelSkillDashboardSummaryTests.cs), [HtmlSkillPrintFrameTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/HtmlSkillPrintFrameTests.cs), [DeckQualityReviewServiceTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/DeckQualityReviewServiceTests.cs)를 확장했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_doc_next3\\ -p:IntermediateOutputPath=obj\\verify_doc_next3\\` 경고 0 / 오류 0
- 검증: `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "DeckQualityReviewServiceTests|PptxSkillAutoRepairTests|PptxSkillConsultingDeckTests|ExcelSkillDashboardSummaryTests|ExcelSkillSummarySheetTests|HtmlSkillPrintFrameTests|HtmlSkillConsultingSectionsTests|ArtifactQualityReviewServiceTests" -p:OutputPath=bin\\verify_doc_next3_tests\\ -p:IntermediateOutputPath=obj\\verify_doc_next3_tests\\` 통과 13

업데이트: 2026-04-14 23:25 (KST)
- [ExcelSkill.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/ExcelSkill.cs)는 `summary_sheet.dashboard_sheet_name`과 `trend_series`를 바탕으로 별도 `Dashboard` worksheet를 생성합니다. summary sheet에서 decision summary, scorecards, trend dashboard, detail sheet links를 요약하고, dashboard sheet에서는 이를 한 장의 workbook dashboard로 다시 정리해 summary-only workbook보다 분석/보고 밀도를 높입니다.
- 같은 파일의 single-sheet / multi-sheet workbook 생성 경로는 dashboard sheet가 있으면 시트 순서를 `Summary -> Dashboard -> Detail...`로 정렬하고, summary hyperlink 수와 total sheet count를 품질 리뷰 입력에 정확히 전달합니다.
- [ArtifactQualityReviewService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/ArtifactQualityReviewService.cs)의 `WorkbookReviewInput`은 `HasDashboardSheet`를 새로 받습니다. dashboard가 있는 workbook은 강점으로 계산하고, detail sheet가 여러 장인데 dashboard가 없는 경우는 보완 포인트로 돌려줍니다.
- [DocumentAssemblerTool.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/DocumentAssemblerTool.cs)는 `style_map` 지원 범위를 `cover_subtitle`, `callout`, `table_header`까지 넓혔습니다. cover subtitle 문단, 강조 블록 paragraph, 표 header cell paragraph가 사내 DOCX 템플릿 스타일을 실제로 타도록 조립 경로를 연결했습니다.
- [DocumentAssemblerStyleMapTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/DocumentAssemblerStyleMapTests.cs)는 title/heading/body뿐 아니라 subtitle/callout/table header 스타일까지 회귀 검증하도록 보강했습니다.
- [PptxSkillGoldenDeckTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/PptxSkillGoldenDeckTests.cs)를 추가해 strong board deck이 `PPT quality` 요약을 안정적으로 반환하고 불필요한 `Slide alerts` 없이 통과하는지 golden regression으로 고정했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_doc_next4\\ -p:IntermediateOutputPath=obj\\verify_doc_next4\\` 경고 0 / 오류 0
- 검증: `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "ArtifactQualityReviewServiceTests|DocumentAssemblerStyleMapTests|DocumentAssemblerDocxFeaturesTests|DocumentAssemblerSemanticTests|ExcelSkillDashboardSummaryTests|ExcelSkillSummarySheetTests|ExcelSkillExecutiveSummaryLinkTests|ExcelSkillDataValidationTests|ExcelSkillConditionalFormattingTests|HtmlSkillPrintFrameTests|HtmlSkillConsultingSectionsTests|DeckQualityReviewServiceTests|PptxSkillAutoRepairTests|PptxSkillConsultingDeckTests|PptxSkillGoldenDeckTests" -p:OutputPath=bin\\verify_doc_next4_tests\\ -p:IntermediateOutputPath=obj\\verify_doc_next4_tests\\` 통과 20

업데이트: 2026-04-14 23:32 (KST)
- [HtmlSkill.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/HtmlSkill.cs)는 `board_report`, `strategy_brief` 구조화 섹션 타입을 추가했습니다. board report는 decision ask, recommendation, rationale, metrics, risks, next steps를 board-ready 패널로 렌더링하고, strategy brief는 strategic question, core thesis, implications, decisions를 전략 요약 패널로 렌더링합니다.
- [ArtifactQualityReviewService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/ArtifactQualityReviewService.cs)의 HTML 리뷰는 `board-report-panel`, `strategy-brief-panel`을 새 강점으로 인식합니다. 반대로 board report인데 evidence/table이 없거나 strategy brief인데 comparison/roadmap이 없을 때는 추가 보완 포인트를 반환하도록 규칙을 보강했습니다.
- [ExcelSkill.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/ExcelSkill.cs)의 `WriteDashboardSheet()`는 dashboard sheet에 `kpis`, `highlights`, `actions`까지 함께 표시하도록 확장됐습니다. summary sheet와 dashboard sheet가 서로 같은 정보를 단순 중복하는 대신, executive dashboard 성격을 더 분명히 갖도록 정리한 변경입니다.
- [PptxSkillGoldenDeckTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/PptxSkillGoldenDeckTests.cs)는 board deck 외에 strategy deck golden fixture를 추가했습니다. `storyline`, `decision_ask`, recommendation headline 길이까지 품질 게이트 기준에 맞는 strong strategy deck을 회귀 샘플로 고정했습니다.
- 테스트로 [HtmlSkillConsultingSectionsTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/HtmlSkillConsultingSectionsTests.cs), [ExcelSkillDashboardSummaryTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/ExcelSkillDashboardSummaryTests.cs), [ArtifactQualityReviewServiceTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/ArtifactQualityReviewServiceTests.cs), [PptxSkillGoldenDeckTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/PptxSkillGoldenDeckTests.cs)를 확장했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_doc_next5\\ -p:IntermediateOutputPath=obj\\verify_doc_next5\\` 경고 0 / 오류 0
- 검증: `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "ArtifactQualityReviewServiceTests|ExcelSkillDashboardSummaryTests|HtmlSkillConsultingSectionsTests|HtmlSkillPrintFrameTests|DeckQualityReviewServiceTests|PptxSkillGoldenDeckTests|PptxSkillAutoRepairTests|PptxSkillConsultingDeckTests" -p:OutputPath=bin\\verify_doc_next5_tests\\ -p:IntermediateOutputPath=obj\\verify_doc_next5_tests\\` 통과 14

업데이트: 2026-04-14 23:58 (KST)
- [ArtifactRepairGuideService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/ArtifactRepairGuideService.cs)를 추가했습니다. 이 서비스는 [ArtifactQualityReviewService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/ArtifactQualityReviewService.cs)가 반환한 HTML/XLSX/DOCX 품질 이슈를 읽어 `Repair guide:` 형태의 바로 실행 가능한 개선 가이드로 바꿉니다.
- [HtmlSkill.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/HtmlSkill.cs), [ExcelSkill.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/ExcelSkill.cs), [DocumentAssemblerTool.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/DocumentAssemblerTool.cs)는 이제 품질 점수 요약 뒤에 repair guide를 함께 반환합니다. 출력만 보는 사용자도 “무엇을 더 보완해야 하는지”를 바로 이해할 수 있게 정리한 변경입니다.
- [ExcelSkill.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/ExcelSkill.cs)는 `dashboard_tiles`, `variance_series`를 추가 지원합니다. `WriteDashboardSheet()` 경로는 decision summary, scorecards, KPI, trend dashboard, detail summaries 외에 dashboard tiles와 variance overview까지 함께 렌더링해 운영 리뷰형 workbook archetype을 더 명확히 만들었습니다.
- workbook 리뷰 강점 계산도 같이 넓혔습니다. [ArtifactQualityReviewService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/ArtifactQualityReviewService.cs)의 summary/dashboard 신호 판정은 `dashboard_tiles`, `variance_series`가 들어온 workbook도 richer dashboard로 인식합니다.
- 목적형 번들 스킬을 추가했습니다. [strategy-brief-html.skill.md](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/skills/strategy-brief-html.skill.md)는 전략 브리프 HTML 생성용 진입점을 제공하고, [operating-review-xlsx.skill.md](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/skills/operating-review-xlsx.skill.md)는 Summary/Dashboard/Detail 구조의 운영 리뷰 workbook 생성 경로를 제공합니다.
- 테스트로 [ArtifactRepairGuideServiceTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/ArtifactRepairGuideServiceTests.cs)를 추가했고, [ExcelSkillDashboardSummaryTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/ExcelSkillDashboardSummaryTests.cs), [HtmlSkillConsultingSectionsTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/HtmlSkillConsultingSectionsTests.cs)를 확장해 archetype과 repair guide를 함께 회귀 검증했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_doc_next6\\ -p:IntermediateOutputPath=obj\\verify_doc_next6\\` 경고 0 / 오류 0
- 검증: `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "ArtifactQualityReviewServiceTests|ArtifactRepairGuideServiceTests|ExcelSkillDashboardSummaryTests|HtmlSkillConsultingSectionsTests|HtmlSkillPrintFrameTests|DocumentAssemblerStyleMapTests|DocumentAssemblerDocxFeaturesTests|DocumentAssemblerSemanticTests|PptxSkillGoldenDeckTests|DeckQualityReviewServiceTests" -p:OutputPath=bin\\verify_doc_next6_tests\\ -p:IntermediateOutputPath=obj\\verify_doc_next6_tests\\` 통과 17

업데이트: 2026-04-15 00:19 (KST)
- `AgentCommandQueue`를 `Prompt/Notification` 2종에서 `Steering`, `PermissionContinuation`, `Resume`, `UserDecision`까지 포함하는 통합 큐로 확장했습니다. [AgentLoopService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentLoopService.cs)는 이를 `queued_steering`, `queue_permission_continuation`, `queue_resume` 메타 메시지로 주입해 실행 중 추가 입력과 승인 후 재개 문맥을 더 안정적으로 반영합니다.
- 코드 탭 언어 지원 카탈로그를 확장했습니다. [CodeLanguageCatalog.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/CodeLanguageCatalog.cs)는 `Go`, `Rust`, `PHP`, `Ruby`, `Kotlin`, `Swift`를 LSP 심화 지원군으로 승격했고, [LspClientService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/LspClientService.cs)는 `gopls`, `rust-analyzer`, `intelephense`, `solargraph`, `kotlin-language-server`, `sourcekit-lsp`를 로컬 설치 서버 기준으로 탐지합니다.
- 내부 설정의 코드 탭 설명을 더 명시적으로 정리했습니다. [SettingsWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/SettingsWindow.xaml), [SettingsViewModel.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/ViewModels/SettingsViewModel.cs)는 `빠른 선택 언어`, `지원 언어(LSP)`, `코드 탭 기본 지원`을 나눠 보여주도록 보강했습니다.
- 워크스페이스 컨텍스트 생성기를 강화했습니다. [WorkspaceContextGenerator.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/WorkspaceContextGenerator.cs)는 `Language Snapshot`, `Agent Context`, `Key Manifests` 섹션을 추가하고 `.claude/skills`, `.ax/rules`, `AXMEMORY.md`, 주요 manifest 파일을 함께 요약합니다.
- PPT 품질 보정 가이드도 추가했습니다. [DeckRepairGuideService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/DeckRepairGuideService.cs)는 deck 품질 이슈를 바로 실행 가능한 개선 문장으로 바꾸고, [PptxSkill.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/PptxSkill.cs)는 `Deck repair guide:`를 품질 요약과 함께 반환합니다.
- 테스트: [AgentCommandQueueTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/AgentCommandQueueTests.cs), [CodeLanguageCatalogTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/CodeLanguageCatalogTests.cs), [WorkspaceContextGeneratorTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/WorkspaceContextGeneratorTests.cs), [DeckRepairGuideServiceTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/DeckRepairGuideServiceTests.cs), [PptxSkillConsultingDeckTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/PptxSkillConsultingDeckTests.cs)
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_master_batch\\ -p:IntermediateOutputPath=obj\\verify_master_batch\\` 경고 0 / 오류 0
- 검증: `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "AgentCommandQueueTests|CodeLanguageCatalogTests|WorkspaceContextGeneratorTests|PptxSkillConsultingDeckTests|DeckRepairGuideServiceTests" -p:OutputPath=bin\\verify_master_batch_tests\\ -p:IntermediateOutputPath=obj\\verify_master_batch_tests\\` 통과 35

업데이트: 2026-04-15 07:00 (KST)
- `claw-code` 기준 남은 격차를 줄이기 위한 통합 고도화 계획을 확정했습니다. 남은 주요 축은 `에이전틱 루프/명령 큐`, `tool_result preview 안정화`, `명령/스킬 합성`, `문서 포맷 마감`, `개발언어 지원 정합화`, `회귀 테스트/릴리즈 게이트`입니다.
- 첫 배치로 [AgentCommandQueue.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentCommandQueue.cs)를 우선순위 배치 소비가 가능한 구조로 재작성했습니다. `peek`, `dequeue`, `dequeueAllMatching`, `dequeuePriorityBatch`, `snapshot` API를 추가해 `claw-code`의 unified queue처럼 고우선 입력을 먼저 소비하고 lower-priority 항목을 뒤로 미루는 기반을 만들었습니다.
- [AgentLoopService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentLoopService.cs)의 큐 배수 로직도 함께 조정했습니다. 기존 `DrainAll()` 방식 대신 같은 우선순위 배치만 소비하고, 남은 큐 항목이 있으면 `Deferred ... lower-priority queued item(s)` thinking 이벤트를 남겨 다음 턴으로 넘깁니다.
- [AgentToolResultBudget.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentToolResultBudget.cs)는 preview 재사용 범위를 넓혔습니다. 기존에는 동일 `MsgId`에서만 `QueryPreviewContent`를 재사용했지만, 이제 `tool_use_id` 기준 preview 인덱스를 만들어 재구성된 tool result 메시지에서도 안정적으로 같은 preview를 재사용합니다.
- 테스트는 [AgentCommandQueueTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/AgentCommandQueueTests.cs)에 `priority batch dequeue`, `predicate matching` 시나리오를 추가했고, [AgentToolResultBudgetTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/AgentToolResultBudgetTests.cs)에는 `tool_use_id`가 같은 cloned tool result가 이전 preview를 재사용하는 회귀 케이스를 추가했습니다.
- 다음 배치에서는 `tool_result replacement state`를 대화 단위로 더 고정하고, 이후 `명령/스킬 합성 계층`과 `문서 포맷 마감`으로 순차 확장할 예정입니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_queue_preview\\ -p:IntermediateOutputPath=obj\\verify_queue_preview\\` 경고 0 / 오류 0
- 검증: `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "AgentCommandQueueTests|AgentToolResultBudgetTests" -p:OutputPath=bin\\verify_queue_preview_tests\\ -p:IntermediateOutputPath=obj\\verify_queue_preview_tests\\` 통과 7

업데이트: 2026-04-15 07:16 (KST)
- `tool_result` preview 안정화 2차를 반영했습니다. [AgentMessageInvariantHelper.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentMessageInvariantHelper.cs)는 `tool_use_id -> QueryPreviewContent` 맵을 공용으로 만들고, 같은 tool result가 다른 메시지 객체로 다시 로드되더라도 preview를 복원하는 helper를 제공합니다.
- [ChatSessionStateService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/ChatSessionStateService.cs)는 분기 대화 생성 시 `QueryPreviewContent`를 함께 복사하고, 저장된 대화를 다시 열 때 누락된 preview를 `tool_use_id` 기준으로 보정합니다. [ChatStorageService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/ChatStorageService.cs)도 저장 직전에 preview 보정을 먼저 수행해 재시작 후 축약 상태가 흔들리지 않게 맞췄습니다.
- 슬래시 합성도 실행 경로까지 일원화했습니다. [SlashCommandCatalog.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/SlashCommandCatalog.cs)는 exact token 충돌을 팔레트와 같은 우선순위로 해석하는 `ResolvePreferredCommand()`를 추가했고, [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs)의 `ParseSlashCommandAsync()`는 built-in/skill 후보를 함께 모은 뒤 같은 규칙으로 우선 대상을 선택합니다.
- 이 변경으로 `/review`처럼 builtin command와 skill이 같은 토큰을 공유하는 경우에도 “팔레트에는 skill이 앞에 보이는데 실행은 builtin이 먼저 잡히는” 불일치가 줄어들었습니다.
- 테스트는 [ChatSessionStateServiceTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/ChatSessionStateServiceTests.cs)에 branch/save-load preview 복원 케이스를 추가했고, [SlashCommandCatalogTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/SlashCommandCatalogTests.cs)를 새로 추가해 skill 우선 dedupe와 exact token 우선 해석을 회귀 검증했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_preview_state\\ -p:IntermediateOutputPath=obj\\verify_preview_state\\` 경고 0 / 오류 0
- 검증: `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "AgentToolResultBudgetTests|ChatSessionStateServiceTests" -p:OutputPath=bin\\verify_preview_state_tests\\ -p:IntermediateOutputPath=obj\\verify_preview_state_tests\\` 통과 38
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_command_resolution\\ -p:IntermediateOutputPath=obj\\verify_command_resolution\\` 경고 0 / 오류 0
- 검증: `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "SlashCommandCatalogTests|ChatSessionStateServiceTests|AgentToolResultBudgetTests|AgentCommandQueueTests" -p:OutputPath=bin\\verify_command_resolution_tests\\ -p:IntermediateOutputPath=obj\\verify_command_resolution_tests\\` 통과 50

업데이트: 2026-04-15 08:32 (KST)
- `tool_result` replacement state를 query/compact 진입 전에도 더 고정했습니다. [AgentQueryContextBuilder.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentQueryContextBuilder.cs)는 query view 생성 전에 누락된 preview를 먼저 복원하고, [ContextCondenser.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/ContextCondenser.cs)는 compact 이전에 같은 정규화를 적용해 긴 세션과 재시작 후 상태 차이를 줄였습니다.
- [AgentToolResultBudget.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentToolResultBudget.cs)는 `sourceMessages`가 없는 호출에서도 현재 window 자체의 `tool_use_id` preview를 재사용하도록 보강했습니다. 이 변경으로 query view 내부의 cloned tool_result도 source list 유무와 관계없이 같은 preview를 더 안정적으로 유지합니다.
- 개발언어 지원은 `no-LSP fallback`까지 연결했습니다. [CodeLanguageCatalog.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/CodeLanguageCatalog.cs)는 언어별 `manifest/build/test/lint` 힌트를 제공하고, [LspTool.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/LspTool.cs)는 로컬 언어 서버가 없거나 연결되지 않아도 정적 fallback 안내를 반환합니다.
- 설정과 프롬프트도 같은 모델로 맞췄습니다. [SettingsViewModel.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/ViewModels/SettingsViewModel.cs), [SettingsWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/SettingsWindow.xaml), [ChatWindow.SystemPromptBuilder.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.SystemPromptBuilder.cs)는 `Fallback 분석` 설명과 LSP 미사용 시 대체 분석 지침을 노출합니다.
- 테스트로 [AgentQueryContextBuilderTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/AgentQueryContextBuilderTests.cs)를 추가했고, [AgentToolResultBudgetTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/AgentToolResultBudgetTests.cs), [CodeLanguageCatalogTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/CodeLanguageCatalogTests.cs)를 확장해 preview 재사용과 fallback 힌트를 회귀 검증했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_loop_lang_finish\\ -p:IntermediateOutputPath=obj\\verify_loop_lang_finish\\` 경고 0 / 오류 0
- 검증: `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "AgentToolResultBudgetTests|AgentQueryContextBuilderTests|CodeLanguageCatalogTests|ContextCondenserTests" -p:OutputPath=bin\\verify_loop_lang_finish_tests\\ -p:IntermediateOutputPath=obj\\verify_loop_lang_finish_tests\\` 통과 20

업데이트: 2026-04-15 09:05 (KST)
- 문서 critic/repair 루프를 추가 정리했습니다. [ArtifactQualityReviewService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/ArtifactQualityReviewService.cs)는 DOCX 장문 문서에서 `cover`, `table of contents`, `template`, `header/footer` 보강 포인트를, XLSX dashboard workbook에서는 `highlight/action`, `detail navigation`, `trend/variance formula` 보강 포인트를 새로 판정합니다.
- [ArtifactRepairGuideService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/ArtifactRepairGuideService.cs)는 위 이슈들을 바로 실행 가능한 보정 가이드로 치환하도록 확장했습니다. HTML/DOCX/XLSX에서 품질 점수만 보여주는 것이 아니라, 어떤 구조를 추가하거나 어떤 데이터를 연결해야 하는지 직접 안내합니다.
- [DeckRepairGuideService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/DeckRepairGuideService.cs)는 `appendix/evidence` 부족과 `duplicate headline` 문제를 별도 액션으로 바꿔 deck 마감 가이드를 더 구체화했습니다.
- [DocxSkill.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/DocxSkill.cs)는 DOCX 출력 결과에도 `Repair guide:`를 함께 반환하고, Executive Summary/Recommendation/Appendix 섹션 인식에 한글 키워드를 같이 사용하도록 조정했습니다.
- 테스트는 [ArtifactQualityReviewServiceTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/ArtifactQualityReviewServiceTests.cs), [ArtifactRepairGuideServiceTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/ArtifactRepairGuideServiceTests.cs), [DeckRepairGuideServiceTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/DeckRepairGuideServiceTests.cs), [DocxSkillTemplateFeaturesTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/DocxSkillTemplateFeaturesTests.cs)를 확장해 회귀를 고정했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_doc_repair_finalize\\ -p:IntermediateOutputPath=obj\\verify_doc_repair_finalize\\` 경고 0 / 오류 0
- 검증: `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "ArtifactQualityReviewServiceTests|ArtifactRepairGuideServiceTests|DeckRepairGuideServiceTests|DocxSkillTemplateFeaturesTests" -p:OutputPath=bin\\verify_doc_repair_finalize_tests\\ -p:IntermediateOutputPath=obj\\verify_doc_repair_finalize_tests\\` 통과 11

업데이트: 2026-04-15 09:24 (KST)
- 에이전틱 루프의 queued command 소비 로직을 helper로 분리했습니다. [AgentQueuedCommandProjector.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentQueuedCommandProjector.cs)는 drain된 큐 배치를 `queued_input_interrupt`, `queue_notification`, `queue_resume`, `queued_prompt` 같은 대화 메시지와 thinking/user 이벤트로 투영합니다. [AgentLoopService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentLoopService.cs)는 이 결과를 적용하는 역할만 남겨 루프 본체의 책임을 더 줄였습니다.
- workbook/dashboard 품질 리뷰도 강화했습니다. [ArtifactQualityReviewService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/ArtifactQualityReviewService.cs)는 dashboard sheet가 있어도 KPI·trend·decision 내용이 부족하면 별도 이슈를 만들고, [ArtifactRepairGuideService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/ArtifactRepairGuideService.cs)는 이를 `core story`가 보이도록 KPI/decision 블록을 추가하라는 가이드로 연결합니다.
- deck 품질 리뷰는 storyline 힌트까지 보기 시작했습니다. [DeckQualityReviewService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/DeckQualityReviewService.cs)는 storyline에 `Options`, `Roadmap`, `Appendix`가 있는데 실제 슬라이드가 빠진 경우 별도 이슈를 만들고, [DeckRepairGuideService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/DeckRepairGuideService.cs)는 이를 storyline 보강 액션으로 바꿉니다.
- 테스트는 [AgentQueuedCommandProjectorTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/AgentQueuedCommandProjectorTests.cs), [DeckQualityReviewServiceTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/DeckQualityReviewServiceTests.cs), [ArtifactQualityReviewServiceTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/ArtifactQualityReviewServiceTests.cs), [ArtifactRepairGuideServiceTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/ArtifactRepairGuideServiceTests.cs), [DeckRepairGuideServiceTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/DeckRepairGuideServiceTests.cs)를 확장해 회귀를 고정했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_loop_doc_finish2\\ -p:IntermediateOutputPath=obj\\verify_loop_doc_finish2\\` 경고 0 / 오류 0
- 검증: `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "AgentQueuedCommandProjectorTests|AgentCommandQueueTests|ArtifactQualityReviewServiceTests|ArtifactRepairGuideServiceTests|DeckQualityReviewServiceTests|DeckRepairGuideServiceTests|PptxSkillGoldenDeckTests|ExcelSkillDashboardSummaryTests" -p:OutputPath=bin\\verify_loop_doc_finish2_tests\\ -p:IntermediateOutputPath=obj\\verify_loop_doc_finish2_tests\\` 통과 25

업데이트: 2026-04-15 09:36 (KST)
- `tool_result` replacement state의 마지막 빈틈을 메웠습니다. [AgentMessageInvariantHelper.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentMessageInvariantHelper.cs)는 기존 `QueryPreviewContent`가 하나도 없는 경우에도 `tool_use_id`, `tool_name`, 축약된 `content/output/error`를 기반으로 synthetic preview를 생성합니다. 이로써 저장/재개/분기 이후 preview가 완전히 유실된 세션에서도 다시 query preview를 만들 수 있습니다.
- [AgentQueryContextBuilderTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/AgentQueryContextBuilderTests.cs)와 새 [AgentMessageInvariantHelperTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/AgentMessageInvariantHelperTests.cs)는 preview가 없는 tool_result가 synthetic preview로 복원되고, query view 생성 시에도 같은 preview가 실제 반영되는지 회귀 검증합니다.
- 문서 golden 회귀도 한 단계 더 올렸습니다. 새 [ExcelSkillGoldenWorkbookTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/ExcelSkillGoldenWorkbookTests.cs)는 summary/dashboard/detail 구조와 formula, data validation, conditional formatting이 모두 포함된 운영 리뷰 workbook이 `Needs work: none`, `Repair guide: none`을 유지하는지 확인합니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_preview_golden_finish\\ -p:IntermediateOutputPath=obj\\verify_preview_golden_finish\\` 경고 0 / 오류 0
- 검증: `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "AgentMessageInvariantHelperTests|AgentQueryContextBuilderTests|AgentQueuedCommandProjectorTests|ExcelSkillGoldenWorkbookTests|ExcelSkillDashboardSummaryTests|PptxSkillGoldenDeckTests" -p:OutputPath=bin\\verify_preview_golden_finish_tests\\ -p:IntermediateOutputPath=obj\\verify_preview_golden_finish_tests\\` 통과 10

업데이트: 2026-04-15 09:20 (KST)
- 루프 진단 포맷을 분리했습니다. 새 [AgentLoopDiagnosticsFormatter.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentLoopDiagnosticsFormatter.cs)는 컨텍스트 압축 완료 이벤트와 query-view 요약 문자열을 전담하며, [AgentLoopService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentLoopService.cs)는 해당 formatter를 호출하는 orchestration 역할로 더 가벼워졌습니다.
- 저장/재개 경로의 legacy preview 복원도 보강했습니다. [ChatStorageService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/ChatStorageService.cs)는 복호화 직후 `PopulateMissingToolResultPreviews()`를 수행해 예전 저장본에서도 synthetic preview를 즉시 채웁니다.
- 테스트는 새 [AgentLoopDiagnosticsFormatterTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/AgentLoopDiagnosticsFormatterTests.cs), [ChatStorageServiceTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/ChatStorageServiceTests.cs), [HtmlSkillGoldenReportTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/HtmlSkillGoldenReportTests.cs), [DocxSkillGoldenDocumentTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/DocxSkillGoldenDocumentTests.cs)를 추가해 루프 진단 문자열, legacy `.axchat` 복원, HTML/DOCX golden 품질을 회귀 고정했습니다.
- golden 범위는 이제 `PPTX + XLSX + HTML + DOCX`까지 확장되었습니다. HTML golden은 board-grade 보고서의 print frame/evidence/decision 구성을, DOCX golden은 template/TOC/header-footer/appendix가 포함된 business pack 조립을 기준 fixture로 삼습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_loop_storage_golden\\ -p:IntermediateOutputPath=obj\\verify_loop_storage_golden\\` 경고 0 / 오류 0
- 검증: `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "AgentLoopDiagnosticsFormatterTests|ChatStorageServiceTests|HtmlSkillGoldenReportTests|DocxSkillGoldenDocumentTests|AgentMessageInvariantHelperTests|PptxSkillGoldenDeckTests|ExcelSkillGoldenWorkbookTests" -p:OutputPath=bin\\verify_loop_storage_golden_tests\\ -p:IntermediateOutputPath=obj\\verify_loop_storage_golden_tests\\` 통과 10

업데이트: 2026-04-15 09:49 (KST)
- `CodeLanguageCatalog`를 단순 표시용 카탈로그에서 실행 힌트 카탈로그로 확장했다. 언어별 `manifest/build/test/lint` 조회 메서드와 `BuildWorkflowSummary()`를 추가해, 지원 언어 목록과 no-LSP fallback 설명이 같은 소스에서 나오도록 정리했다.
- `WorkspaceContextGenerator`는 `.ax-context.md` 생성 시 `## Language Workflow` 섹션을 추가한다. 상위 언어 3개까지의 manifest, build/test/lint 힌트를 함께 기록해 장기 세션과 서브에이전트 문맥에서 바로 재사용할 수 있게 했다.
- 문서 품질 출력 포맷의 공통화를 시작했다. 새 `ArtifactQualityOutputFormatter`를 추가했고, 현재는 `HtmlSkill`, `ExcelSkill`이 동일한 quality summary + repair guide 조합기를 사용한다. 이후 DOCX/PPTX까지 같은 helper로 맞추는 기반이다.
- 테스트 보강:
  - `CodeLanguageCatalogTests`: workflow summary, hint lookup 회귀 추가
  - `WorkspaceContextGeneratorTests`: generated context 내 `Language Workflow` 섹션 회귀 추가
- 검증:
  - `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_language_workflow\\ -p:IntermediateOutputPath=obj\\verify_language_workflow\\`
  - `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "CodeLanguageCatalogTests|WorkspaceContextGeneratorTests" -p:OutputPath=bin\\verify_language_workflow_tests\\ -p:IntermediateOutputPath=obj\\verify_language_workflow_tests\\`

업데이트: 2026-04-15 10:05 (KST)
- `AgentLoopRunLifecycle.cs` 추가:
  - `BeginRun()`으로 run stopwatch, user query, iteration budget, retry budget 초기화
  - `BootstrapRunAsync()`로 intent 분류, exploration/path state, session learnings, task/execution policy 계산 분리
  - `FinalizeRun()`으로 run summary metric, exploration breadth, stats 기록, transient state reset 일원화
- `AgentLoopService.RunAsync()` 정리:
  - 시작부의 `run id/iteration budget/intent bootstrap` 블록을 helper 호출로 대체
  - 종료부의 run summary logging을 helper 호출로 대체
  - 종료 metric에 빈 run id가 남던 흐름을 수정해 실제 run id를 유지
- `AgentMessageInvariantHelper` 고도화:
  - persisted preview map과 fingerprint preview map을 분리
  - 같은 tool output이 다른 `tool_use_id`로 재등장할 때 preview를 현재 id로 재바인딩
  - preview 탐색 우선순위를 `저장된 preview → fingerprint 재바인딩 → synthetic` 순서로 고정
- 문서 품질 출력 경로 정리:
  - `ArtifactQualityOutputFormatter`를 `DocxSkill`, `PptxSkill`, `ExcelSkill` 멀티시트 반환 경로까지 연결
  - 포맷별 quality summary/repair guide 문자열 조립을 공통 helper로 통일
- 테스트 보강:
  - `AgentMessageInvariantHelperTests`: fingerprint 기반 preview 재바인딩 회귀 추가
  - 재검증 대상: `AgentCommandQueueTests`, `AgentQueuedCommandProjectorTests`, `AgentQueryContextBuilderTests`, `ChatStorageServiceTests`, `PptxSkillGoldenDeckTests`, `ExcelSkillGoldenWorkbookTests`, `DocxSkillGoldenDocumentTests`, `HtmlSkillGoldenReportTests`
- 검증:
  - `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_run_finalize\\ -p:IntermediateOutputPath=obj\\verify_run_finalize\\`
  - `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "AgentCommandQueueTests|AgentQueuedCommandProjectorTests|AgentMessageInvariantHelperTests|AgentQueryContextBuilderTests|ChatStorageServiceTests|PptxSkillGoldenDeckTests|ExcelSkillGoldenWorkbookTests|DocxSkillGoldenDocumentTests|HtmlSkillGoldenReportTests" -p:OutputPath=bin\\verify_run_finalize_tests2\\ -p:IntermediateOutputPath=obj\\verify_run_finalize_tests2\\`

업데이트: 2026-04-15 10:10 (KST)
- 통합 마감 계획 확정:
  1. `문서 포맷 최종 마감`
     - 참조 대상: `claw-code/src/query.ts`, `claw-code/src/utils/toolResultStorage.ts`, `claw-code/src/commands/init-verifiers.ts`
     - AX 적용 위치: `PptxSkill.cs`, `DeckPlanningService.cs`, `DeckQualityReviewService.cs`, `DocxSkill.cs`, `DocumentAssemblerTool.cs`, `ExcelSkill.cs`, `HtmlSkill.cs`, `ArtifactQualityReviewService.cs`, `ArtifactRepairGuideService.cs`
     - 완료 조건: PPTX/DOCX/XLSX/HTML 모두 `plan -> critic -> repair` 흐름과 golden fixture 확장 완료
     - 품질 판정 기준: strong fixture는 `Needs work: none`, weak fixture는 포맷별 적절한 repair guide를 반환
  2. `에이전틱 루프 iteration pipeline 분리`
     - 참조 대상: `claw-code/src/QueryEngine.ts`, `claw-code/src/query.ts`, `claw-code/src/utils/messageQueueManager.ts`
     - AX 적용 위치: `AgentLoopService.cs`, `AgentLoopRunLifecycle.cs`, `AgentQueuedCommandProjector.cs`, `AgentQueryContextBuilder.cs`
     - 완료 조건: `RunAsync`의 bootstrap, query-view 생성, LLM 호출, tool dispatch, finalize를 더 작은 helper/service로 분리
     - 품질 판정 기준: 중단/재개/권한 승인/분기/장기 세션 replay 테스트 통과
  3. `tool_result replacement state 장기 세션 고정`
     - 참조 대상: `claw-code/src/utils/toolResultStorage.ts`
     - AX 적용 위치: `AgentMessageInvariantHelper.cs`, `AgentToolResultBudget.cs`, `ContextCondenser.cs`, `ChatStorageService.cs`
     - 완료 조건: `tool_use_id` 변경, compact 이후, branch/replay 상황에서도 preview와 replacement 정책이 안정 유지
     - 품질 판정 기준: replay/branch 저장본에서 preview 흔들림 0건
  4. `개발언어 no-LSP fallback 심화`
     - 참조 대상: `claw-code/src/query.ts`, `claw-code/src/context.ts`
     - AX 적용 위치: `CodeLanguageCatalog.cs`, `LspTool.cs`, `WorkspaceContextGenerator.cs`, `ChatWindow.SystemPromptBuilder.cs`, `SettingsWindow.xaml`
     - 완료 조건: 언어별 `manifest/build/test/lint` 힌트가 실제 fallback 분석과 워크스페이스 컨텍스트에 더 깊게 연결
     - 품질 판정 기준: 로컬 LSP 없는 저장소에서도 Auto 모드가 기본 실행 흐름과 영향 범위를 안정적으로 안내
  5. `명령/스킬 합성 및 릴리즈 게이트`
     - 참조 대상: `claw-code/src/commands.ts`, `claw-code/src/skills/loadSkillsDir.ts`
     - AX 적용 위치: `SlashCommandCatalog.cs`, `SkillService.cs`, `README.md`, `docs/DEVELOPMENT.md`, `docs/NEXT_ROADMAP.md`
     - 완료 조건: builtin/skill/plugin/workflow 토큰 충돌의 노출/실행 우선순위 완전 일치, 릴리즈 체크리스트 최신화
     - 품질 판정 기준: 같은 토큰 충돌 시 팔레트 표시와 실제 실행이 완전 일치하고, 릴리즈 전 수동 확인 항목 최소화
- 최종 게이트:
  - `dotnet build` 경고 0 / 오류 0
  - 문서 golden: `PPTX/XLSX/DOCX/HTML`
  - 루프/큐/컨텍스트: `중단/재개/권한/branch/replay`
  - 언어 fallback: `CodeLanguageCatalogTests`, `WorkspaceContextGeneratorTests`, 관련 fallback 회귀

업데이트: 2026-04-15 10:24 (KST)
- 문서 critic 세부화:
  - `ArtifactQualityReviewService.cs`
    - HTML: `board_report`는 `decision_summary` 누락 시 별도 경고, `strategy_brief`는 explicit decision block 누락 시 별도 경고
    - HTML 품질 계산 시 `h2`만이 아니라 `board_report`, `strategy_brief`, `comparison`, `roadmap`, `decision_summary`, `evidence_cards`, `kpi`를 `major section`/`supporting block` 추정에 반영
    - DOCX: 장문 비즈니스 문서에서 evidence table, callout/highlight 부족을 별도 이슈로 판정
    - XLSX: dashboard workbook의 `trend_series`, `variance_series`, `sheet_summaries`, `dashboard_tiles` 부재를 각각 추가 진단
- 보정 가이드 강화:
  - `ArtifactRepairGuideService.cs`
    - HTML: board decision summary, strategy brief decision block, comparison/roadmap, evidence-card 보강 가이드 추가
    - DOCX: evidence table, callout/highlight 보강 가이드 추가
    - XLSX: trend/variance framing, supporting sheet summary, headline tile, follow-up action 보강 가이드 추가
  - `DeckRepairGuideService.cs`
    - Executive Summary의 decision ask, recommendation slide의 rationale/next steps 누락을 별도 액션으로 변환
- Workbook review 입력 확장:
  - `WorkbookReviewInput`에 `HasTrendSection`, `HasVarianceSection`, `HasDashboardTileSection` 추가
  - `ExcelSkill.cs`의 single-summary/multi-sheet review 경로가 위 신호를 실제 review에 전달
- Deck 품질 기준 강화:
  - `DeckQualityReviewService.cs`
    - Executive Summary 내 recommendation/decision ask 누락 감지
    - Recommendation slide의 rationale/next steps 누락 감지
    - Roadmap slide가 1개 phase만 가진 경우 경고
- Golden/회귀 테스트 확장:
  - `HtmlSkillGoldenReportTests.cs`: `strategy-golden.html` 추가
  - `PptxSkillGoldenDeckTests.cs`: `pmo-golden.pptx` 추가
  - `ArtifactQualityReviewServiceTests.cs`, `ArtifactRepairGuideServiceTests.cs`, `DeckQualityReviewServiceTests.cs`, `DeckRepairGuideServiceTests.cs` 회귀 확장
- 검증:
  - `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_doc_finish_batch\\ -p:IntermediateOutputPath=obj\\verify_doc_finish_batch\\`
  - `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "ArtifactQualityReviewServiceTests|ArtifactRepairGuideServiceTests|DeckQualityReviewServiceTests|DeckRepairGuideServiceTests|HtmlSkillGoldenReportTests|PptxSkillGoldenDeckTests|DocxSkillGoldenDocumentTests|ExcelSkillGoldenWorkbookTests" -p:OutputPath=bin\\verify_doc_finish_batch_tests\\ -p:IntermediateOutputPath=obj\\verify_doc_finish_batch_tests\\`