Files
AX-Copilot-Codex/docs/DEVELOPMENT.md
lacvet d3b6b1a936 코워크 코드 내부설정 컨텍스트 토큰 기본값을 32K로 상향
LlmSettings.MaxContextTokens 기본값을 32768로 조정하고 메인 설정의 컨텍스트 토큰 카드에 32K 선택지를 추가했다.

AgentSettingsWindow의 잘못된 입력 fallback도 32K 기준으로 바꿔 내부설정이 4K로 되돌아가지 않도록 정리했다.

검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_context32k\\ -p:IntermediateOutputPath=obj\\verify_context32k\\ / dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter SettingsServiceTests -p:OutputPath=bin\\verify_context32k_tests\\ -p:IntermediateOutputPath=obj\\verify_context32k_tests\
2026-04-15 14:29:04 +09:00

146 KiB
Raw Blame History

업데이트: 2026-04-14 19:50 (KST) 업데이트: 2026-04-15 12:51 (KST)

  • AX Agent 진행 이력 정제를 위해 src/AxCopilot/Services/Agent/AgentProgressSummarySanitizer.cs를 추가했습니다. 스트리밍 중간 preview, Thinking 요약, [이전 도구 호출: ...] transcript 꼬리, 숫자/대괄호 같은 저품질 조각 문자열을 공통 규칙으로 정리합니다.
  • src/AxCopilot/Services/Agent/AgentLoopService.cs는 스트리밍 TextDelta preview emit과 일반 Thinking emit 전에 정제기를 적용합니다. 정제 후 비어버린 summary는 이벤트 자체를 만들지 않아, 중간 응답의 1, [, file_read] 같은 파편이 timeline/history에 쌓이지 않습니다.
  • src/AxCopilot/Views/ChatWindow.V2LiveProgressPresentation.cs, src/AxCopilot/Views/ChatWindow.V2AgentEventPresentation.cs, src/AxCopilot/Views/ChatWindow.AgentEventRendering.cs는 렌더링 직전에도 같은 정제 로직을 사용합니다. 기존 세션의 오래된 low-signal thinking event가 다시 그려질 때도 빈약한 단문을 숨기고 process feed에는 진행 내용 정리로 폴백합니다.
  • 테스트: src/AxCopilot.Tests/Services/AgentProgressSummarySanitizerTests.cs 추가, src/AxCopilot.Tests/Services/AgentLoopResponseClassificationServiceTests.cs 확장
  • 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_agent_progress_cleanup\\ -p:IntermediateOutputPath=obj\\verify_agent_progress_cleanup\\ 경고 0 / 오류 0
  • 검증: dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "AgentProgressSummarySanitizerTests|AgentLoopResponseClassificationServiceTests|AgentStatusNarrativeCatalogTests|AgentLoopIterationPreparationServiceTests|AgentToolResultBudgetTests|ChatStorageServiceTests" -p:OutputPath=bin\\verify_agent_progress_cleanup_tests\\ -p:IntermediateOutputPath=obj\\verify_agent_progress_cleanup_tests\\ 통과 22

업데이트: 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-15 10:57 (KST)

  • Agent loop 마감 정리로 src/AxCopilot/Services/Agent/AgentLoopNoToolResponseRecoveryService.cs를 추가했습니다. RunAsync() 안에 섞여 있던 도구 미호출 루프계획만 세우고 도구를 호출하지 않는 경우의 복구 메시지/재시도 규칙/이벤트 요약을 별도 서비스로 분리해 orchestration 본문을 더 작게 유지합니다.
  • src/AxCopilot/Services/Agent/AgentLoopService.cs는 위 helper를 호출해 assistant 텍스트 보존, recovery user message 추가, retry counter 갱신, event emit만 수행합니다. 이로써 복구 규칙 변경 시 서비스 테스트만으로 회귀를 잡기 쉬워졌습니다.
  • 테스트: src/AxCopilot.Tests/Services/AgentLoopNoToolResponseRecoveryServiceTests.cs
  • 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_closeout\\ -p:IntermediateOutputPath=obj\\verify_closeout\\ 경고 0 / 오류 0
  • 검증: dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "AgentLoopNoToolResponseRecoveryServiceTests|AgentLoopIterationPreparationServiceTests|AgentLoopLlmRequestPreparationServiceTests|AgentQueuedCommandProjectorTests|AgentMessageInvariantHelperTests|AgentToolResultBudgetTests|AgentQueryContextBuilderTests|ChatStorageServiceTests|HtmlSkillGoldenReportTests|PptxSkillGoldenDeckTests|DocxSkillGoldenDocumentTests|ExcelSkillGoldenWorkbookTests" -p:OutputPath=bin\\verify_closeout_tests\\ -p:IntermediateOutputPath=obj\\verify_closeout_tests\\ 통과 27

업데이트: 2026-04-15 12:14 (KST)

  • 사용자에게 보이는 AX Agent 진행 상태 문구를 richer narrative로 고도화했습니다. src/AxCopilot/Services/Agent/AgentStatusNarrativeCatalog.cs를 추가해 agent event를 탭(Cowork/Code) + 도구 카테고리 + 대상 힌트 + transcript row presentation 기준으로 해석하고, 현재 상태 메시지/상세 설명/phase label/meta를 한곳에서 생성합니다.
  • src/AxCopilot/Views/ChatWindow.xaml.cs는 live pulse 상태 업데이트에 narrative 카탈로그를 적용하고, src/AxCopilot/Views/ChatWindow.AgentStatusPresentation.cs는 초기 준비 상태와 idle 상태를 같은 narrative 소스로 렌더링하도록 변경했습니다. src/AxCopilot/Views/ChatWindow.AgentEventRendering.cs도 readable process feed summary와 phase label/meta를 동일 카탈로그에 맞춰 도구명 중심 문구 대신 의도 중심 문구를 재사용합니다.
  • 이로써 Cowork/Code에서 보이는 현재 상태와 이력 요약이 생각하는 중, 작업 실행 중 같은 일반 문구에서 관련 코드 범위 확인, 변경 적용, 실행 결과 분석, 문서 산출물 구성, 권한 확인 대기, 컨텍스트 정리처럼 더 구체적인 문장으로 바뀝니다.
  • 테스트: src/AxCopilot.Tests/Services/AgentStatusNarrativeCatalogTests.cs
  • 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_status_narrative\\ -p:IntermediateOutputPath=obj\\verify_status_narrative\\ 경고 0 / 오류 0
  • 검증: dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "AgentStatusNarrativeCatalogTests|AgentLoopIterationPreparationServiceTests|AgentToolResultBudgetTests|ChatStorageServiceTests|AgentMessageInvariantHelperTests" -p:OutputPath=bin\\verify_status_narrative_tests\\ -p:IntermediateOutputPath=obj\\verify_status_narrative_tests\\ 통과 15

업데이트: 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\\`

업데이트: 2026-04-15 10:50 (KST)
- 개발언어 fallback 심화:
  - `CodeLanguageCatalog.cs`
    - 파일을 UTF-8 기준으로 재정리하고 중복 `BuildFallbackSupportDescription()`을 제거
    - `BuildWorkspaceWorkflowSummaries()` 추가
    - 키, quick select key, 확장자, 파일 경로를 모두 받아 capability로 정규화하는 `ResolveCapabilityFromKeyOrExtension()` 추가
  - `WorkspaceContextGenerator.cs`
    - `DetectLanguageWorkflowHints()` 추가
    - `.ax-context.md`의 `Language Workflow` 생성이 카탈로그 공용 API를 사용하도록 정리
  - `ChatWindow.SystemPromptBuilder.cs`
    - 코드 시스템 프롬프트에 `## Repository Language Workflow` 섹션 주입
    - no-LSP 저장소에서도 실제 manifest/build/test/lint 힌트를 prompt 안에서 직접 활용
- 에이전틱 루프 분리:
  - 새 `AgentLoopLlmRequestPreparationService.cs`
    - 초기 tool-call 강제 여부 계산
    - pre-call tool reminder 삽입 여부 계산
    - 실제 LLM 전송용 `sendMessages` 배열 조립
  - `AgentLoopService.cs`
    - LLM 요청 전 메시지 조립 책임을 helper 호출로 대체해 orchestration 집중도 향상
- 테스트 보강:
  - 새 `AgentLoopLlmRequestPreparationServiceTests.cs`
  - `CodeLanguageCatalogTests.cs`: fallback summary, workflow summary, workspace workflow dedupe/우선순위 검증
  - `WorkspaceContextGeneratorTests.cs`: preferred language 우선 `Language Workflow` 힌트 검증
- 검증:
  - `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_final_batch\\ -p:IntermediateOutputPath=obj\\verify_final_batch\\` 경고 0 / 오류 0
  - `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "CodeLanguageCatalogTests|WorkspaceContextGeneratorTests|AgentLoopLlmRequestPreparationServiceTests|AgentLoopIterationPreparationServiceTests|AgentMessageInvariantHelperTests|AgentToolResultBudgetTests|ChatStorageServiceTests|HtmlSkillGoldenReportTests|PptxSkillGoldenDeckTests|DocxSkillGoldenDocumentTests|ExcelSkillGoldenWorkbookTests" -p:OutputPath=bin\\verify_final_batch_tests\\ -p:IntermediateOutputPath=obj\\verify_final_batch_tests\\` 통과 54

업데이트: 2026-04-15 11:17 (KST)
- SQL 전용 fallback 분석 추가:
  - 새 `SqlDialectDetector.cs`
    - PostgreSQL / MySQL / SQL Server / SQLite / Oracle 방언 휴리스틱 감지
  - 새 `SqlAnalysisService.cs`
    - statement kind 분류: `CREATE TABLE`, `ALTER TABLE`, `DROP TABLE`, `TRUNCATE TABLE`, `CREATE INDEX`, `CREATE VIEW`, `CREATE FUNCTION`, `CREATE PROCEDURE`, `INSERT`, `UPDATE`, `DELETE`, `MERGE`, `SELECT`
    - object 추출: table/view/update/insert/delete/from/join 기반 상위 object 수집
    - 위험 감지: `DROP`, `TRUNCATE`, `ALTER TABLE DROP COLUMN`, `DELETE/UPDATE without WHERE`, `SELECT *`, transaction boundary 부재
    - SQL 전용 fallback summary 생성
- 개발언어 카탈로그 확장:
  - `CodeLanguageCatalog.cs`
    - SQL manifest 힌트: `migrations/*.sql`, `schema.sql`, `seed.sql`, `*.sqlproj`
    - SQL build/test/lint 힌트 강화
    - `BuildWorkflowSummary()`에 SQL 전용 `dialect/statement/risk/object dependency` 분석 요약 추가
    - `BuildFallbackSummary()`에서 SQL은 일반 fallback 대신 `SqlAnalysisService.BuildFallbackSummary()`를 사용
- PPT/HTML 고도화:
  - `DeckPlanningService.cs`
    - 구조화된 `content` 슬라이드를 입력 데이터에 따라 `kpi_dashboard`, `comparison`, `roadmap`, `chart`로 자동 승격
  - `DeckQualityReviewService.cs`
    - Executive Summary의 정량 근거 부족, comparison verdict 부재, roadmap owner/timeline 부족, KPI dashboard metric/takeaway 부족 진단 추가
  - `DeckRepairGuideService.cs`
    - 위 PPT 진단 항목을 실제 보정 액션으로 매핑
  - `HtmlSkill.cs`
    - 새 `kpi_panel` 섹션 타입 추가
  - `ArtifactQualityReviewService.cs`
    - KPI panel을 major/supporting block 판단에 반영
    - board/strategy 문서에서 KPI/evidence/decision 연결 부족 이슈 추가
  - `ArtifactRepairGuideService.cs`
    - KPI panel/metric strip, evidence support, decision/next-step 연결 보정 가이드 추가
- 테스트:
  - 새 `SqlDialectDetectorTests.cs`
  - 새 `SqlAnalysisServiceTests.cs`
  - `CodeLanguageCatalogTests.cs`
  - `DeckPlanningServiceTests.cs`
  - `ArtifactQualityReviewServiceTests.cs`
  - `ArtifactRepairGuideServiceTests.cs`
  - `HtmlSkillConsultingSectionsTests.cs`
- 검증:
  - `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_sql_doc_batch\\ -p:IntermediateOutputPath=obj\\verify_sql_doc_batch\\` 경고 0 / 오류 0
  - `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "SqlDialectDetectorTests|SqlAnalysisServiceTests|CodeLanguageCatalogTests|DeckPlanningServiceTests|DeckQualityReviewServiceTests|ArtifactQualityReviewServiceTests|ArtifactRepairGuideServiceTests|HtmlSkillConsultingSectionsTests|HtmlSkillGoldenReportTests|PptxSkillGoldenDeckTests" -p:OutputPath=bin\\verify_sql_doc_batch_tests\\ -p:IntermediateOutputPath=obj\\verify_sql_doc_batch_tests\\` 통과 47

업데이트: 2026-04-15 11:36 (KST)

### SQL fallback 분석 심화
- `SqlAnalysisService.cs`
  - `SqlAnalysisReport`에 `ScriptIntent`, `Dependencies`, `ReviewNotes`를 추가했습니다.
  - `Analyze()`가 dialect/statement/risk/object 외에 `schema migration`, `schema change`, `seed / reference data`, `query / reporting` intent를 계산합니다.
  - dependency 감지는 script가 직접 생성/수정하는 owned object와 참조 dependency를 분리해, view/reporting query가 의존하는 테이블과 lookup source를 별도로 잡습니다.
  - review note는 rollback, dependency impact, transaction scope, dialect-specific validation 포인트를 함께 생성합니다.
  - fallback summary는 `script`, `dependencies`, `review focus`까지 포함하도록 확장했습니다.
- `CodeLanguageCatalog.cs`
  - SQL workflow summary를 `dialect/statement/risk/object dependency` 수준에서 `script intent/migration order/dependency`까지 보이도록 강화했습니다.
- `WorkspaceContextGenerator.cs`
  - SQL 저장소에서 `## SQL Review Focus` 섹션을 생성하도록 확장했습니다.
  - migration/seed/reporting query 분류, destructive DDL·broad DML·transaction scope·rollback 점검을 문맥에 직접 넣습니다.

### HTML 의사결정형 문서 강화
- `HtmlSkill.cs`
  - 새 섹션 타입 `decision_matrix`, `metric_strip`를 추가했습니다.
  - `decision_matrix`는 option/criteria/verdict/notes를 한 표로 렌더링합니다.
  - `metric_strip`은 KPI headline, trend, note를 가로 카드형 요약으로 렌더링합니다.
- `ArtifactQualityReviewService.cs`
  - HTML 품질 평가에 `decision_matrix`, `metric_strip` 존재를 반영합니다.
  - board report에서 comparison/decision matrix 부재, strategy brief에서 trade-off matrix 부재, metric strip이 recommendation과 연결되지 않는 경우를 별도 이슈로 판정합니다.
- `ArtifactRepairGuideService.cs`
  - decision matrix 추가, comparison/decision block 보강, metric strip을 recommendation/board summary와 연결하는 수리 가이드를 추가했습니다.
  - HTML repair action 상한을 4개로 넓혀 품질 피드백 손실을 줄였습니다.

### PPT 슬라이드 품질 critic 세분화
- `DeckQualityReviewService.cs`
  - Executive Summary의 headline 선명도 부족을 더 엄격히 감지합니다.
  - Comparison slide의 trade-off 설명 부족, roadmap phase milestone 부족, chart takeaway 부재, KPI dashboard trend/note context 부족을 별도 경고로 판정합니다.
  - executive/recommendation/comparison(or chart)/roadmap가 갖춰진 deck에 `decision-ready consulting storyline` 강점 신호를 추가했습니다.
- `DeckRepairGuideService.cs`
  - 위 추가 이슈를 각각 headline 압축, trade-off 보강, phase milestone 명시, chart takeaway 추가, KPI trend/note 보강 액션으로 변환합니다.

### 테스트
- `SqlAnalysisServiceTests.cs`
  - migration intent/dependency/rollback note 검증 추가
  - seed/reference data intent, transaction risk, lookup dependency 검증 추가
- `CodeLanguageCatalogTests.cs`
  - SQL workflow summary에 `migration order`, `dependencies`가 포함되는지 검증
- `WorkspaceContextGeneratorTests.cs`
  - SQL 저장소에서 `## SQL Review Focus` 섹션 생성 검증
- `HtmlSkillConsultingSectionsTests.cs`
  - `decision_matrix`, `metric_strip` 렌더링 회귀 추가
- `ArtifactQualityReviewServiceTests.cs`
  - decision matrix를 강점으로 인식하고, trade-off view 부재 시 별도 경고를 반환하는지 검증
- `ArtifactRepairGuideServiceTests.cs`
  - HTML repair guide에 decision matrix 보강 액션이 포함되는지 검증
- `DeckQualityReviewServiceTests.cs`
  - headline/trade-off/KPI context 추가 경고 회귀 검증

### 검증
- `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_code_sql_doc\\ -p:IntermediateOutputPath=obj\\verify_code_sql_doc\\` 경고 0 / 오류 0
- `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "SqlDialectDetectorTests|SqlAnalysisServiceTests|CodeLanguageCatalogTests|WorkspaceContextGeneratorTests|ArtifactQualityReviewServiceTests|ArtifactRepairGuideServiceTests|DeckQualityReviewServiceTests|HtmlSkillConsultingSectionsTests" -p:OutputPath=bin\\verify_code_sql_doc_tests\\ -p:IntermediateOutputPath=obj\\verify_code_sql_doc_tests\\` 통과 62

업데이트: 2026-04-15 11:50 (KST)

### SQL review 계층 추가
- 새 `SqlReviewService.cs`
  - `SqlReviewResult`를 도입해 `review severity`, `key findings`, `review checklist`를 구조화했습니다.
  - schema migration/schema change는 migration sequencing, dependent object readiness를 우선 체크합니다.
  - seed/reference data는 rerun safety와 idempotent upsert 관점을 별도 체크합니다.
  - query/reporting SQL은 join width와 downstream consumer 영향 검토 포인트를 추가합니다.
  - destructive DDL, broad DML, unclear transaction scope, wildcard projection을 findings/checklist로 변환합니다.
- `SqlAnalysisService.cs`
  - `BuildFallbackSummary()`가 `SqlReviewService.Review(report)` 결과를 이어붙여 SQL fallback을 `analysis + review` 2단 구조로 반환하도록 변경했습니다.
- `CodeLanguageCatalog.cs`
  - SQL workflow summary에 `review: confirm rollback notes, dependency order, and row-count guards before apply` 힌트를 추가했습니다.

### AgentLoop 응답 분해 helper 추가
- 새 `AgentLoopResponseClassificationService.cs`
  - LLM 응답 블록을 `TextResponse`, `TextParts`, `ToolCalls`, `NextConsecutiveNoToolResponses`로 분류합니다.
  - `BuildThinkingSummary()`를 제공해 thinking preview 길이 제한도 helper에서 처리합니다.
- `AgentLoopService.cs`
  - 수동 `text/tool_use` 분리 루프를 제거하고 `AgentLoopResponseClassificationService.Classify()`를 사용하도록 정리했습니다.
  - no-tool 응답 누적 카운트와 thinking summary 생성 책임을 helper 호출로 대체했습니다.

### 테스트
- 새 `SqlReviewServiceTests.cs`
  - destructive migration은 `high` severity와 rollback checklist를 반환하는지 검증
  - seed/reference data는 idempotency와 rerun safety 체크리스트를 반환하는지 검증
- 새 `AgentLoopResponseClassificationServiceTests.cs`
  - text/tool_use 분리와 no-tool counter reset/increment 동작 검증
- 기존 `SqlAnalysisServiceTests.cs`, `CodeLanguageCatalogTests.cs`
  - SQL fallback summary에 `review severity`, `review checklist`, rollback review 힌트가 들어가는지 회귀 검증

### 검증
- `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_loop_sql_finalize\\ -p:IntermediateOutputPath=obj\\verify_loop_sql_finalize\\` 경고 0 / 오류 0
- `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "AgentLoopResponseClassificationServiceTests|AgentLoopLlmRequestPreparationServiceTests|AgentLoopIterationPreparationServiceTests|SqlAnalysisServiceTests|SqlReviewServiceTests|CodeLanguageCatalogTests|WorkspaceContextGeneratorTests" -p:OutputPath=bin\\verify_loop_sql_finalize_tests\\ -p:IntermediateOutputPath=obj\\verify_loop_sql_finalize_tests\\` 통과 48

업데이트: 2026-04-15 14:00 (KST)

### Code 탭 빈 작업 폴더 생성 버그 보강
- 새 `AgentLoopCodeRuntimeGuards.cs`
  - `skill_manager`, `mcp_list_resources`, `mcp_read_resource`를 Code 기본 런타임 도구 노출에서 제외하는 `ApplyCodeDefaultMetaToolFilter()`를 추가했습니다.
  - 빈 작업 폴더에서 `folder_map`, `glob`, `grep`, `code_search`, `file_read`, `env_tool`, `skill_manager`, `mcp_*` 도구로 우회 탐색을 시도하면 `TryHandleEmptyWorkspaceFallbackTransition()`이 차단하고, `file_write` 직접 생성 복구 프롬프트를 주입하도록 만들었습니다.
  - 상대 경로 `.`도 작업 폴더 기준으로 해석해 외부 루트 탐색과 detour를 구분하도록 `IsExternalWorkspaceEscalationTarget()`를 보정했습니다.
  - direct-creation 요청이면서 작업 폴더가 비어 있으면 시작 시점에 곧바로 `file_write` 생성 우선 가이드를 주입하는 `InjectInitialEmptyWorkspaceCreationGuidance()`를 추가했습니다.

### AgentLoop / Code 프롬프트 연동
- `AgentLoopService.cs`
  - `BuildContext()` 직후 `DetectEmptyWorkspace(context.WorkFolder)`로 빈 작업 폴더를 감지해 `runState.WorkspaceAppearsEmpty`에 반영합니다.
  - `GetRuntimeActiveTools()`에서 `ApplyCodeDefaultMetaToolFilter()`를 실제 런타임 도구 목록에 적용합니다.
  - 도구 실행 직전 `TryHandleEmptyWorkspaceFallbackTransition()`을 호출해 외부 루트 fallback과 메타 도구 detour를 막습니다.
  - direct-creation 상태 메시지는 Code 탭에서 `즉시 생성 모드 · 바로 파일을 만드는 중`으로 분리해 사용자에게 현재 의도를 더 정확히 보이도록 정리했습니다.
- `ChatWindow.SystemPromptBuilder.cs`
  - Code/Cowork 프롬프트에 `빈 작업 폴더 + 새 파일/웹페이지/scaffold 생성 요청`이면 broad exploration 없이 `file_write`를 바로 호출하라는 규칙을 추가했습니다.
  - Code 일반 작업에서 `skill_manager`, `mcp_list_resources`, `mcp_read_resource`를 쓰지 말라는 규칙도 함께 추가했습니다.

### Tool-call 정합성 복구
- `AgentLoopResponseClassificationService.cs`
  - 텍스트 블록 안에 `<tool_call>{...}</tool_call>` 형태로 섞여 들어온 호출을 `LlmService.TryExtractToolCallsFromText()`로 복구하도록 확장했습니다.
  - `LlmService.StripToolCallTokens()`로 남은 텍스트는 thinking/assistant 요약에만 남기고 실제 도구 호출은 실행 경로로 넘깁니다.
  - 이 보강으로 `file_write`가 스트리밍 중 텍스트에 묻혀 유실되는 케이스를 줄였습니다.

### 테스트
- `AgentLoopE2ETests.cs`
  - `RunAsync_EmptyWorkspace_BlocksExternalFallbackAndRecoversToFileWrite()`
  - `RunAsync_EmptyWorkspace_DisallowsSkillManagerAndRecoversToFileWrite()`
  - `RunAsync_TextEmbeddedToolCall_RecoversAndExecutesFileWrite()`
  - E2E helper `BuildLoopSettings()`는 ambient project/plugin/MCP skill discovery를 꺼서 현재 저장소 스킬 상태에 영향받지 않도록 격리했습니다.
- `AgentLoopResponseClassificationServiceTests.cs`
  - `Classify_ShouldRecoverToolCallEmbeddedInText()` 추가

### 검증
- `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_empty_workspace_fix2\\ -p:IntermediateOutputPath=obj\\verify_empty_workspace_fix2\\` 경고 0 / 오류 0
- `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "FullyQualifiedName~RunAsync_EmptyWorkspace_BlocksExternalFallbackAndRecoversToFileWrite|FullyQualifiedName~RunAsync_EmptyWorkspace_DisallowsSkillManagerAndRecoversToFileWrite|FullyQualifiedName~RunAsync_TextEmbeddedToolCall_RecoversAndExecutesFileWrite|FullyQualifiedName~Classify_ShouldRecoverToolCallEmbeddedInText" -p:OutputPath=bin\\verify_empty_workspace_fix2_tests\\ -p:IntermediateOutputPath=obj\\verify_empty_workspace_fix2_tests\\` 통과 4

업데이트: 2026-04-15 14:18 (KST)

### AgentLoop 탭 정책 / broader E2E 정합성 수정
- `AgentLoopE2ETests.cs`
  - `RunAsync_ExecutesToolCall_AndCompletesWithFinalText()`
  - `RunAsync_UnknownTool_RecoversAndCompletes()`
  - `RunAsync_PlanModeAlways_EmitsPlanningThenExecutesTool()`
  - `RunAsync_PreHookInputMutation_ChangesToolArguments()`
  - 위 4개 시나리오의 `ActiveTab`을 `Chat`에서 `Cowork`로 정리했습니다.
  - 근거: [AgentToolCatalog.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentToolCatalog.cs) 기준 `math_eval`은 `Cowork,Code` 도구이며 Chat 기본 노출 대상이 아닙니다. 기존 broader E2E 실패는 런타임 정책 누수라기보다 테스트가 현행 탭 정책보다 오래된 가정을 유지한 영향이었습니다.

### no-tool 상태 메시지 분기 보강
- `AgentLoopService.cs`
  - `activeTools.Count == 0`일 때의 오류 반환을 2갈래로 분리했습니다.
  - 실제 `runtimeOverrides.AllowedToolNames`가 있을 때만 기존 `현재 스킬 정책에서 허용된 도구가 없어...` 문구를 유지합니다.
  - 그 외에는 `현재 {탭} 탭에서 사용 가능한 도구가 없어...` 형식의 탭 기준 메시지를 반환해 원인 안내가 오해를 부르지 않도록 정리했습니다.

### 검증
- `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_runtime_policy_alignment_build\\ -p:IntermediateOutputPath=obj\\verify_runtime_policy_alignment_build\\` 경고 0 / 오류 0
- `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "AgentLoopE2ETests|AgentLoopResponseClassificationServiceTests" -p:OutputPath=bin\\verify_runtime_policy_alignment\\ -p:IntermediateOutputPath=obj\\verify_runtime_policy_alignment\\` 통과 19
업데이트: 2026-04-15 15:09 (KST)
- `src/AxCopilot/Views/ChatWindow.xaml.cs`의 작업 폴더 반영 경로를 보강했습니다. `SetWorkFolder(...)`가 이제 Code/Cowork 탭에서 현재 대화가 없더라도 `EnsureCurrentConversation(...)`으로 대화를 즉시 확보한 뒤 `WorkFolder`를 기록해, 폴더 선택 직후 빠른 전송에서도 대화 메타데이터가 비어 있지 않게 유지합니다.
- `GetCurrentWorkFolder()`는 전역 `Llm.WorkFolder`보다 탭별 `CodeWorkFolder`/`CoworkWorkFolder`를 먼저 읽도록 바꿨습니다. 폴더 바·워터마크·스킬 로더가 보는 경로와 실제 탭별 저장 경로를 더 잘 맞춰 UI fallback과 실행 경로가 어긋나는 상황을 줄였습니다.
- `BtnFolderClear_Click(...)`는 대화의 `WorkFolder`만 비우던 기존 동작에서 확장해 탭별 최근 작업 폴더 설정과 UI 상태도 함께 초기화합니다. 이전 경로가 설정 fallback으로 다시 나타나는 현상을 줄이고, 이후 스킬 재로드도 같은 기준으로 다시 시작합니다.
- `src/AxCopilot/Services/ChatSessionStateService.cs`의 `CreateFreshConversation(...)`는 Code/Cowork 탭 새 대화 생성 시 탭별 최근 작업 폴더를 기본 `WorkFolder`로 승계합니다. 이로써 “UI에는 폴더가 보이는데 전송 차단은 경로 없음으로 판단”하던 불일치를 완화합니다.
- 테스트: `src/AxCopilot.Tests/Services/ChatSessionStateServiceTests.cs`에서 fresh conversation 기본 폴더 승계와 탭별 우선순위를 검증하도록 확장
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_workfolder_sync\\ -p:IntermediateOutputPath=obj\\verify_workfolder_sync\\` 경고 0 / 오류 0
- 검증: `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "ChatSessionStateServiceTests" -p:OutputPath=bin\\verify_workfolder_sync_tests\\ -p:IntermediateOutputPath=obj\\verify_workfolder_sync_tests\\` 통과 37
업데이트: 2026-04-15 15:18 (KST)
- `src/AxCopilot/Models/AppSettings.cs`의 `LlmSettings.MaxContextTokens` 기본값을 `32_768`로 조정했습니다. 이제 신규 설치, 신규 세션, 초기화 이후의 코워크/코드 내부설정은 32K 컨텍스트 기준으로 시작합니다.
- `src/AxCopilot/Views/SettingsWindow.xaml`과 `src/AxCopilot/Views/SettingsWindow.xaml.cs`에는 `32K` 컨텍스트 카드와 선택 로직을 추가했습니다. 기존 4K/16K/64K 사이의 간격 때문에 32K 기본값이 64K처럼 보이던 불일치를 제거합니다.
- `src/AxCopilot/Views/AgentSettingsWindow.xaml.cs`는 `TxtMaxContextTokens` 파싱 실패 시 fallback 값을 4096에서 32768로 변경했습니다. 내부 설정 창에서 잘못된 입력을 저장하더라도 기본 컨텍스트가 다시 4K로 내려가지 않습니다.
- 테스트: `src/AxCopilot.Tests/Services/SettingsServiceTests.cs`에 `LlmSettings_DefaultMaxContextTokens_IsThirtyTwoK` 추가
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_context32k\\ -p:IntermediateOutputPath=obj\\verify_context32k\\` 경고 0 / 오류 0
- 검증: `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "SettingsServiceTests" -p:OutputPath=bin\\verify_context32k_tests\\ -p:IntermediateOutputPath=obj\\verify_context32k_tests\\` 통과 32