claw-code 대조 기반 AX Agent 품질 향상 3트랙 계획을 수립한다

- 사용자 체감 UI/UX, LLM·작업 처리, 유지보수·추가기능 구조의 3트랙으로 남은 품질 향상 과제를 재정리했다.

- docs/claw-code-parity-plan.md에 참조 파일, AX 적용 위치, 완료 조건, 품질 기준, 권장 실행 순서를 고정했다.

- README와 DEVELOPMENT 문서에 2026-04-06 09:27 (KST) 기준 계획 변경 이력을 반영했다.

- 이번 변경은 문서화 작업으로 코드 변경이 없어 별도 빌드는 생략했다.
This commit is contained in:
2026-04-06 09:30:13 +09:00
parent 9f5a9d315c
commit 3924bac9f9
3 changed files with 98 additions and 0 deletions

View File

@@ -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: