From 3924bac9f983e8f46e1a8742349fb350efa659ed Mon Sep 17 00:00:00 2001 From: lacvet Date: Mon, 6 Apr 2026 09:30:13 +0900 Subject: [PATCH] =?UTF-8?q?claw-code=20=EB=8C=80=EC=A1=B0=20=EA=B8=B0?= =?UTF-8?q?=EB=B0=98=20AX=20Agent=20=ED=92=88=EC=A7=88=20=ED=96=A5?= =?UTF-8?q?=EC=83=81=203=ED=8A=B8=EB=9E=99=20=EA=B3=84=ED=9A=8D=EC=9D=84?= =?UTF-8?q?=20=EC=88=98=EB=A6=BD=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 사용자 체감 UI/UX, LLM·작업 처리, 유지보수·추가기능 구조의 3트랙으로 남은 품질 향상 과제를 재정리했다. - docs/claw-code-parity-plan.md에 참조 파일, AX 적용 위치, 완료 조건, 품질 기준, 권장 실행 순서를 고정했다. - README와 DEVELOPMENT 문서에 2026-04-06 09:27 (KST) 기준 계획 변경 이력을 반영했다. - 이번 변경은 문서화 작업으로 코드 변경이 없어 별도 빌드는 생략했다. --- README.md | 4 ++ docs/DEVELOPMENT.md | 3 ++ docs/claw-code-parity-plan.md | 91 +++++++++++++++++++++++++++++++++++ 3 files changed, 98 insertions(+) diff --git a/README.md b/README.md index 879dd73..4588399 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,10 @@ Windows 전용 시맨틱 런처 & 워크스페이스 매니저 개발 참고: Claw Code 동등성 작업 추적 문서 `docs/claw-code-parity-plan.md` +- 업데이트: 2026-04-06 09:27 (KST) +- `claw-code`와 AX Agent를 다시 대조해 남은 품질 향상 작업을 3트랙으로 재정리했습니다. 앞으로 계획은 `사용자 체감 UI/UX`, `LLM·작업 처리`, `유지보수·추가기능 구조`로 분리해 관리합니다. +- `docs/claw-code-parity-plan.md`에 각 트랙별 참조 파일, AX 적용 위치, 완료 조건, 품질 판정 기준, 권장 실행 순서를 고정했습니다. + - 업데이트: 2026-04-06 09:14 (KST) - AX Agent 워크트리 선택 팝업과 공통 선택 row 렌더를 `ChatWindow.SelectionPopupPresentation.cs`로 분리했습니다. 작업 위치/워크트리 전환 메뉴와 선택 상태 row 조립이 메인 창 코드 밖으로 이동해 footer 선택 UX를 별도 파일에서 정리할 수 있게 됐습니다. - `ChatWindow.xaml.cs`는 대화 상태와 세션 orchestration 쪽에 더 집중하도록 정리했고, 향후 브랜치/워크트리/선택형 팝업 UX를 `claw-code` 기준으로 계속 다듬기 쉬운 구조를 만들었습니다. diff --git a/docs/DEVELOPMENT.md b/docs/DEVELOPMENT.md index 4eebdc9..86cb8e0 100644 --- a/docs/DEVELOPMENT.md +++ b/docs/DEVELOPMENT.md @@ -1,5 +1,8 @@ # AX Copilot - 媛쒕컻 臾몄꽌 +- Document update: 2026-04-06 09:27 (KST) - Re-framed the remaining `claw-code` parity work into three explicit tracks: user-facing UI/UX quality, LLM/task-handling quality, and maintainability/extensibility structure. This separates visible polish from runtime truth and from architectural cleanup. +- Document update: 2026-04-06 09:27 (KST) - Captured the new track plan in `docs/claw-code-parity-plan.md` with reference files, AX apply targets, completion criteria, quality criteria, and recommended execution order so future work can be prioritized more deliberately. + - Document update: 2026-04-06 09:14 (KST) - Split worktree-selection popup rendering into `ChatWindow.SelectionPopupPresentation.cs`. The current workspace/worktree chooser and the shared selected-row popup card renderer now live outside `ChatWindow.xaml.cs`, reducing footer selection UI density in the main window file. - Document update: 2026-04-06 09:14 (KST) - This keeps branch/worktree/footer chooser UX on the same presentation side of the codebase and leaves the main chat window more focused on runtime orchestration and conversation flow. diff --git a/docs/claw-code-parity-plan.md b/docs/claw-code-parity-plan.md index ee90ec6..56c05db 100644 --- a/docs/claw-code-parity-plan.md +++ b/docs/claw-code-parity-plan.md @@ -218,6 +218,97 @@ - Remaining quality target: - move more tool-result and permission-result presentation into smaller message-type-specific helpers, closer to `claw-code` component separation +## Focused Quality Tracks +- Updated: 2026-04-06 09:27 (KST) +- The remaining improvement work should now be managed in three parallel tracks so UX polish, runtime quality, and maintainability do not get mixed together. + +### Track 1. User-Facing UI/UX Quality +- Reference: + - `src/components/Messages.tsx` + - `src/components/MessageRow.tsx` + - `src/components/StatusLine.tsx` + - `src/components/PromptInput/PromptInput.tsx` + - `src/components/PromptInput/PromptInputFooter.tsx` + - `src/components/SessionPreview.tsx` +- AX apply target: + - `src/AxCopilot/Views/ChatWindow.xaml` + - `src/AxCopilot/Views/ChatWindow.MessageInteractions.cs` + - `src/AxCopilot/Views/ChatWindow.StatusPresentation.cs` + - `src/AxCopilot/Views/ChatWindow.FooterPresentation.cs` + - `src/AxCopilot/Views/ChatWindow.PreviewPresentation.cs` +- Focus: + - keep transcript text dominant and metadata secondary + - make footer controls read as a task bar, not a settings strip + - unify preview surfaces, chooser popups, and approval cards under one visual language + - reduce visual noise from queue/status/diagnostic surfaces unless the state is actionable +- Completion criteria: + - message rows, footer, preview, and inline approval/question cards feel visually coherent + - chooser popups share the same spacing, hover behavior, and summary-row structure + - footer/status elements appear only when they convey useful state +- Quality criteria: + - a user can understand “what is happening now” from the transcript and footer without opening extra panels + - the interface remains readable under narrow widths without text clipping or layout jitter + +### Track 2. LLM / Task Handling Quality +- Reference: + - `src/bootstrap/state.ts` + - `src/bridge/initReplBridge.ts` + - `src/bridge/sessionRunner.ts` + - `src/components/messages/AssistantToolUseMessage.tsx` + - `src/components/messages/PlanApprovalMessage.tsx` + - `src/components/permissions/*` +- AX apply target: + - `src/AxCopilot/Services/Agent/AxAgentExecutionEngine.cs` + - `src/AxCopilot/Services/Agent/AgentLoopService.cs` + - `src/AxCopilot/Services/Agent/AgentTranscriptDisplayCatalog.cs` + - `src/AxCopilot/Services/Agent/PermissionRequestPresentationCatalog.cs` + - `src/AxCopilot/Services/Agent/ToolResultPresentationCatalog.cs` + - `src/AxCopilot/Views/ChatWindow.InlineInteractions.cs` + - `src/AxCopilot/Views/ChatWindow.TranscriptPolicy.cs` +- Focus: + - keep all entry routes (`send`, `retry`, `regenerate`, `queue`, `slash`) on the same prepared execution path + - distinguish `success / error / reject / cancel / needs-approval` tool results more clearly + - keep plan approval and user-question flows transcript-native by default + - minimize mismatches between execution state and what the user sees in the timeline +- Completion criteria: + - plan/permission/tool-result/question events all have consistent transcript-native lifecycles + - reopen/retry/queue/compact flows preserve the same visible runtime state + - tool failures and permission rejections are clearly distinguishable in transcript rendering +- Quality criteria: + - the same prompt under the same tab/settings uses the same execution route + - users can tell whether the agent succeeded, failed, was blocked, or is waiting for approval without reading raw diagnostics + +### Track 3. Maintainability / Extensibility Structure +- Reference: + - `src/components/*` split by role in `claw-code` + - `src/components/messages/*` + - `src/components/permissions/*` + - `src/components/PromptInput/*` +- AX apply target: + - `src/AxCopilot/Views/ChatWindow.xaml.cs` + - `src/AxCopilot/Views/ChatWindow.*.cs` + - `src/AxCopilot/Services/AppStateService.cs` + - `src/AxCopilot/Services/Agent/*.cs` +- Focus: + - continue shrinking `ChatWindow.xaml.cs` toward orchestration-only responsibility + - keep renderer, popup, footer, message-interaction, status, and preview logic in dedicated partials + - centralize presentation rules in catalogs/models instead of scattered UI string/visibility branches + - prepare the codebase for new permission types, new tool classes, and new transcript card types without re-bloating the main window file +- Completion criteria: + - `ChatWindow.xaml.cs` owns orchestration and runtime coordination more than direct UI element construction + - new message/permission/tool card types can be added via presentation catalogs or dedicated partials + - runtime summary and footer/status visibility derive from presentation models rather than ad-hoc branching +- Quality criteria: + - adding a new tool-result or approval type should mostly affect one catalog/renderer area + - future UI polish work should land in dedicated presentation files rather than expanding the main window file again + +## Recommended Execution Order +- Updated: 2026-04-06 09:27 (KST) +1. Finish Track 2 consistency first whenever a UX issue is caused by runtime truth mismatch. +2. Apply Track 1 visual cleanup only after the state/message lifecycle is stable for that surface. +3. Fold each stable surface into Track 3 structure immediately so later changes do not reintroduce `ChatWindow.xaml.cs` sprawl. +4. Keep validating against `docs/AX_AGENT_REGRESSION_PROMPTS.md` after each change set, especially for `plan / permission / queue / compact / reopen`. + ## Current Snapshot - Updated: 2026-04-05 19:42 (KST) - Estimated parity: