- SqlReviewService를 추가해 SQL fallback 결과에 review severity, key findings, review checklist를 붙이고 schema migration, seed/reference data, reporting query마다 다른 검토 포인트를 안내하도록 확장했습니다. - SqlAnalysisService와 CodeLanguageCatalog를 업데이트해 SQL fallback summary와 workflow summary가 rollback notes, dependency order, row-count guard 같은 리뷰 힌트를 직접 포함하도록 보강했습니다. - AgentLoopResponseClassificationService를 추가해 LLM 응답에서 text/tool_use 분리, no-tool 연속 카운트 계산, thinking summary 생성을 helper로 분리했고 AgentLoopService 본체는 해당 helper를 사용하도록 정리했습니다. - README, docs/DEVELOPMENT.md, docs/NEXT_ROADMAP.md에 2026-04-15 11:50 (KST) 기준 이력을 반영했습니다. 검증 결과 - 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
17 KiB
17 KiB
AX Copilot 통합 로드맵 (전면 재작성)
1. 보존 이력 (요약만 유지)
- v0.5.x: 에이전트/런처 핵심 기능 확장, MCP/스킬/검증 체계 도입.
- v0.6.0: 문서 생성 및 업무 자동화 도구군 확장.
- v0.7.0~v0.7.2: Plan Mode, 병렬 도구, 검증 게이트 및 안정화 강화.
2. 재작성 목표
- OpenCode 수준의 실행 신뢰성, 세션 내구성, 결과 품질 확보.
- AX Copilot 고유 제약(사내 운영모드, WPF UX, 로컬 우선)을 유지한 동등 품질 구현.
3. 마일스톤
| 마일스톤 | 참조 대상 (OpenCode) |
AX 적용 위치 | 완료 조건 | 품질 판정 시나리오 |
|---|---|---|---|---|
| M1 (v0.7.3) Hook 계약 정식화 | src/utils/hooks.ts, src/utils/hooks/hookEvents.ts, src/utils/permissions/PermissionUpdate.ts |
src/AxCopilot/Services/Agent/AgentHookRunner.cs, src/AxCopilot/Services/Agent/AgentLoopService.cs, src/AxCopilot/Models/AppSettings.cs, src/AxCopilot/ViewModels/SettingsViewModel.cs, src/AxCopilot/Views/SettingsWindow.xaml |
Hook 출력 계약(updatedInput, updatedPermissions, additionalContext) 반영. 설정값-실행코드-UI 동시 반영. |
JSON 훅/텍스트 훅 혼합 환경에서 실행 품질과 하위호환 유지 확인. |
| M2 (v0.7.4~v0.7.5) 세션/로그 내구성 | src/utils/plans.ts, src/utils/sessionStorage.ts |
src/AxCopilot/Services/ChatSessionStateService.cs, src/AxCopilot/Services/TaskRunService.cs, src/AxCopilot/Services/TaskRunStore.cs, src/AxCopilot/Views/ChatWindow.xaml.cs, src/AxCopilot/Models/ChatModels.cs |
Plan/Run 상태 영속화. 이벤트 로그 표준화 및 replay 안정성 확보. | 앱 재시작/강제종료 후 동일 세션 재개 시 상태/이력 불일치 0건. |
| M3 (v0.7.6) 도구 선택/복구 안정화 | src/commands.ts, src/Tool.ts, src/query.ts |
src/AxCopilot/Services/Agent/AgentLoopService.cs, src/AxCopilot/Services/Agent/AgentLoopParallelExecution.cs, src/AxCopilot/Services/LlmService.ToolUse.cs |
도구 선택 실패 루프 억제. 실패 유형별 복구 흐름 정형화. | 오타/비활성/별칭 도구 요청이 반복 실패 없이 정상 경로로 수렴하는지 확인. |
| M4 (v0.8.0) 품질 게이트 최종 정렬 | src/query.ts, src/QueryEngine.ts, src/utils/sessionStorage.ts |
src/AxCopilot/Services/Agent/AgentLoopService.cs, src/AxCopilot/Services/Agent/AgentLoopTransitions.Execution.cs, src/AxCopilot/Services/Agent/AgentLoopTransitions.cs |
증거 기반 완료 판정 고정. 내부 벤치마크에서 OpenCode 동급 품질 달성. | 코드수정/문서생성/권한거부/복구 혼합 시나리오에서 조기완료 없이 근거 기반 종료 확인. |
4. 측정 지표
- 반복 실패 루프 발생률.
- 세션 재개 성공률.
- 완료 응답 근거 누락률.
- 빌드/테스트 통과율.
5. 운영 원칙
internal모드: 외부 유출 경로 차단 우선.- 신규 기능은 반드시 설정값 연결 + 실제 동작 반영.
- 문서 마스터는
.md, HTML은 요청 시만 갱신.
6. 즉시 실행 백로그
- Hook 계약 확장 마무리 및 회귀 테스트.
- 세션 복원 경계조건 테스트 세트 추가.
- 이벤트 로그 스키마 고정 및 분석 리포트 템플릿 정리.
7. 2026-04-03 실행 증적 동기화 (M4 포함)
- 기준 시점: 2026-04-03.
- 테스트:
dotnet test379/379 통과. - M1 증적: Hook 계약 필드(
updatedInput,updatedPermissions,additionalContext) 반영 경로 구현 완료. - M2 증적: run 복원/이력 재구성(
RestoreRecentFromExecutionEvents,RestoreCurrentAgentRun, plan 이력 조회) 구현 및 테스트 존재. - M3 증적: unknown-tool 복구 루프/결정 이벤트 처리 경로 구현 및 테스트 존재.
- M4 증적: 실행 종료 품질 게이트(
CodeQualityGate,ExecutionSuccessGate,TerminalEvidenceGate) 반영 및 관련 테스트 존재. - 스킬/도구 운영 정렬: 40개 스킬 모두
allowed-tools명시 완료, Python 의존 10개는 fallback 분기 적용, 레거시 도구명(process_run,grep_tool) 참조 제거.
8. 남은 마감 항목 (M4 종료 조건)
- 세션 replay 불일치 0건을 재현 시나리오별 수치로 기록.
- 위 결과를 배포 전 체크리스트로 고정하고 매 릴리즈마다 수치 동기화.
9. 벤치마크 고정 기준 (CLAW 패리티 동기화)
- 기준 문서:
docs/OPENCODE_PARITY_PLAN.md12절. - 고정 시나리오: 기본 loop / unknown-tool 복구 / plan 연결 / 권한 거부 / hook 입력 변형 / allowed-tools 강제 / hook filter.
- 합격 게이트: 빌드 경고·오류 0 + 전체 테스트 통과 + 고정 시나리오 회귀 통과.
10. Replay 안정성 검증 연동
- 기준 문서:
docs/OPENCODE_PARITY_PLAN.md13절. - 테스트 태그:
Suite=ReplayStability. - 운영 기준: 릴리즈 전
ReplayStability시나리오 전건 통과 시 replay 불일치 0건으로 판정. - 최신 실행 증적(2026-04-03):
ParityBenchmark 13/13,ReplayStability 14/14, 전체379/379. - 실행 자동화:
scripts/release-gate.ps1로 빌드/벤치마크/리플레이/전체 테스트를 일괄 점검.
11. 권한 Hook 계약 고정 (M1 완료 기준)
- lifecycle hook 키:
__permission_request__(pre)__permission_granted__(post)__permission_denied__(post)
- payload 기준 필드:
runId,tool,target,permission,granted,reason. - 실행 우선순위:
- Hook의
updatedPermissions를 현재 run 권한 컨텍스트에 즉시 반영. - 반영 후
CheckToolPermissionAsync()로 최종 권한 판정 수행. - hook 예외/실패는 non-blocking으로 처리하고 권한 흐름은 지속.
additionalContext는 가능한 경로에서 실행 메시지 컨텍스트에 병합.
- Hook의
2026-04-04 추가 계획 (Codex/Claude 추격 로드맵 재정렬)
업데이트: 2026-04-04 13:24 (KST)
기준 소스
- OpenCode/src/commands.ts
- OpenCode/src/utils/permissions/PermissionMode.ts
- OpenCode/src/components/PromptInput/PromptInput.tsx
현재 AX 격차 요약
- 입력/슬래시/권한 처리 로직이 ChatWindow 단일 파일에 상대적으로 집중되어 변경 파급도가 큼.
- 설정-런타임-UI 동기화는 기능은 많지만 구조적 분리가 부족해 회귀 리스크가 높음.
- Agent loop 품질 게이트는 확보됐으나, UI 상호작용 회귀 시나리오와 결합된 자동 검증이 더 필요함.
연속 실행 목표 (L1~L5)
- L1. 입력 계층 모듈화
- 목표: slash 명령 카탈로그/매칭/선택 상태를 분리해 ChatWindow 결합도 축소
- 완료 기준: slash 관련 핵심 로직을 독립 파일로 분리하고 기존 slash 테스트 통과
- L2. 권한 UX/로직 단일 카탈로그화
- 목표: 권한 모드 명칭/설명/색/정렬 순서를 단일 소스에서 제공
- 완료 기준: 팝업/상태 배너/슬래시 출력에서 동일 용어·동일 순서 유지
- L3. 설정 동기화 강화
- 목표: Cowork/Code 설정 분기를 실행 코드 경로까지 일치시켜 회귀 감소
- 완료 기준: 설정 변경 즉시 반영 시나리오 체크리스트 전건 통과
- L4. Agentic loop + UI 결합 회귀 테스트 보강
- 목표: internal/external, permission deny/recover, mcp reconnect, compact 수동/자동 흐름을 통합 검증
- 완료 기준: 릴리즈 게이트용 통합 테스트 세트 추가 및 통과
- L5. Codex/Claude형 UI 마감
- 목표: 좌측 패널/컴포저/권한 팝업 밀도와 탐색 동작을 단순·일관 패턴으로 정리
- 완료 기준: UI 체크리스트 주요 항목 100% 충족 + 빌드 경고/오류 0
이번 턴 즉시 반영 (L1 시작)
- ChatWindow의 대형 slash 명령 사전을 SlashCommandCatalog로 분리.
- ChatWindow는 카탈로그 API(MatchBuiltinCommands, TryGetEntry)를 통해 조회하도록 전환.
- 결과: 입력 계층 결합도 감소 + 향후 slash 확장/정리 시 변경 범위 축소.
2026-04-04 실행 프레임 고정 (중기 계획)
업데이트: 2026-04-04 14:47 (KST)
3축 고정 운영
- 로직 안정화: 권한/운영모드/compact/모델 연결 경로를 테스트 우선으로 보강.
- 기능 동등성: OpenCode 기준 주요 명령(/compact, /permissions, /mcp, /chrome)을 실행 시나리오로 검증.
- UX 정렬: 상단/컴포저/팝업 밀도는 로직 안정화 완료 범위 내에서만 단계 반영.
이번 사이클 기준 완료 조건
- 빌드:
dotnet build경고 0 / 오류 0. - 핵심 회귀: 운영모드, 권한, slash, 모델연결, compact 관련 필터 테스트 통과.
- 문서:
README.md,docs/DEVELOPMENT.md에 시간 포함 이력 동기화 후 커밋/푸시.
이번 사이클 실제 보강 항목
ContextCondenserTests추가:- proactive 비활성 시 무변경 확인
- 대용량 tool_result 축약 동작 확인
LlmRuntimeOverrideTests보강:- vLLM 암호화 API키 런타임 복호화 검증
- 등록모델/전역 TLS 우회 플래그 합성 규칙 검증 업데이트: 2026-04-15 08:32 (KST)
이번 배치 마감 상태
- 에이전틱 루프는 우선순위 큐, tool_result preview 복원, 슬래시 합성 일원화까지 반영되어
claw-code대비 남은 격차가루프 세분화/장기 상태 고정중심으로 축소됐습니다. - 문서 포맷은 PPTX/DOCX/XLSX/HTML 모두 실무형 상급 수준까지 올라왔고, 이후 남은 작업은
slide/workbook/document-level critic과golden regression확대 같은 마감 단계입니다. - 개발언어 지원은
빠른 선택 + LSP 심화 지원 + 정적 fallback구조로 정리됐습니다. 다음 단계는 언어별 실행 힌트 활용 범위를 더 넓히고, no-LSP 환경에서도 분석 품질을 더 끌어올리는 것입니다.
다음 우선순위
AgentLoopService실행 상태 분해와 장기 세션 replacement state 고정- PPTX/XLSX/DOCX/HTML critic/repair loop 최종 마감
- 언어별 build/test/lint 힌트의 실제 도구 활용 경로 확대
- 릴리즈 게이트와 로드맵 문서 최종 정합화
업데이트: 2026-04-15 09:49 (KST)
추가 진행 메모
- 개발언어 고도화는
지원 언어 표시를 넘어서Language Workflow를 실제 컨텍스트에 주입하는 단계로 넘어갔습니다. - 다음 구현 배치는
AgentLoopService세분화,tool_result replacement state장기 세션 고정, 문서 포맷 공통 quality formatter 확장 순으로 진행합니다. - 문서 포맷은 PPTX가 가장 앞서 있고, DOCX/XLSX/HTML은 공통 critic/repair와 golden 회귀를 같은 수준으로 끌어올리는 마감 단계에 들어갑니다.
업데이트: 2026-04-15 10:05 (KST)
추가 진행 메모
- 에이전틱 루프는 이제
queued command projector + run lifecycle helper구조까지 들어와 시작/종료 책임이 분리됐습니다. 다음 마감 단계는RunAsync본체의 iteration pipeline을 더 잘게 나누는 작업입니다. tool_result replacement state는 synthetic preview를 넘어 fingerprint 재바인딩까지 들어갔습니다. 남은 방향은 compact/branch 이후의 replacement policy를 세션 단위 상태로 더 오래 유지하는 것입니다.- 문서 포맷은
ArtifactQualityOutputFormatter가 HTML/XLSX뿐 아니라 DOCX/PPTX까지 확장되었습니다. 다음 마감은 포맷별 critic/repair 자체를 더 깊게 하고, golden fixture 샘플을 확대하는 단계입니다.
업데이트: 2026-04-15 10:50 (KST)
추가 진행 메모
- 개발언어 fallback은 이제
Language Workflow를.ax-context.md와 코드 시스템 프롬프트에 모두 주입하는 단계까지 올라왔습니다. 남은 마감은 no-LSP 환경에서 이 힌트를 실제 도구 사용/검증 흐름과 더 촘촘히 묶는 것입니다. - 에이전틱 루프는
run lifecycle,queued command projection,iteration preparation,LLM request preparationhelper까지 분리됐습니다. 다음 큰 축은RunAsync의 tool dispatch/finalize 분리를 더 진행해 본체 책임을 더 줄이는 것입니다. - 명령/스킬 합성은 우선순위 충돌 해소가 대부분 정리됐고, 이후 작업은 릴리즈 게이트와 체크리스트를 최종 상태에 맞춰 닫는 단계입니다.
업데이트: 2026-04-15 10:10 (KST)
통합 마감 계획
- 문서 포맷 최종 마감
- 참조 대상:
claw-code/src/query.ts,claw-code/src/utils/toolResultStorage.ts,claw-code/src/commands/init-verifiers.ts - AX 적용 위치:
PptxSkill,DeckPlanningService,DeckQualityReviewService,DocxSkill,DocumentAssemblerTool,ExcelSkill,HtmlSkill,ArtifactQualityReviewService - 완료 조건: PPTX/DOCX/XLSX/HTML golden fixture 확대, critic/repair loop 최종 보강
- 품질 판정 기준: strong fixture
Needs work: none, weak fixture는 포맷별 정확한 repair guide 반환
- 참조 대상:
- AgentLoop/Queue/Context 최종 분리
- 참조 대상:
claw-code/src/QueryEngine.ts,claw-code/src/query.ts,claw-code/src/utils/messageQueueManager.ts,claw-code/src/utils/toolResultStorage.ts - AX 적용 위치:
AgentLoopService,AgentLoopRunLifecycle,AgentQueuedCommandProjector,AgentMessageInvariantHelper,AgentToolResultBudget,AgentQueryContextBuilder,ContextCondenser - 완료 조건:
RunAsynciteration pipeline 분리, replacement state 장기 세션 고정 - 품질 판정 기준: 중단/재개/권한/branch/replay 회귀 전건 통과
- 참조 대상:
- 개발언어 fallback 심화
- 참조 대상:
claw-code/src/query.ts,claw-code/src/context.ts - AX 적용 위치:
CodeLanguageCatalog,LspTool,WorkspaceContextGenerator,SystemPromptBuilder, 설정 도움말 - 완료 조건: no-LSP 환경에서도 manifest/build/test/lint 힌트와 영향 범위 설명 강화
- 품질 판정 기준: Auto 모드가 LSP 없는 주요 언어 저장소에서도 안정적으로 안내
- 참조 대상:
- 명령/스킬 합성 및 릴리즈 게이트
- 참조 대상:
claw-code/src/commands.ts,claw-code/src/skills/loadSkillsDir.ts - AX 적용 위치:
SlashCommandCatalog,SkillService,README,DEVELOPMENT,NEXT_ROADMAP - 완료 조건: builtin/skill/plugin/workflow 충돌 해소와 릴리즈 체크리스트 최신화
- 품질 판정 기준: 토큰 충돌 시 팔레트와 실제 실행이 완전 일치
- 참조 대상:
실행 순서
- 문서 포맷 마감
- 루프/큐/컨텍스트 분리
- 개발언어 fallback 심화
- 명령/스킬 합성 및 릴리즈 게이트 업데이트: 2026-04-15 10:57 (KST)
- Agent loop 마감 작업으로
도구 미호출 복구규칙을 서비스화했습니다. 남은 우선순위는iteration/tool dispatch 추가 분리,장기 세션 replacement state 완전 고정,문서 golden fixture 확대,릴리즈 체크리스트 닫기정도의 마감 품질 중심입니다.
업데이트: 2026-04-15 11:17 (KST)
추가 진행 메모
- SQL은 별도 정적 분석 계층까지 올라왔습니다. 현재도 no-LSP 환경에서
dialect/statement/risk/next checks를 직접 설명할 수 있고, 다음 단계로 더 간다면 dialect별 migration lint나 schema dependency graph 정도가 후보입니다. - PPT는 구조화된 슬라이드를 더 적극적으로
comparison/roadmap/kpi_dashboard/chart로 승격하고, KPI/evidence/verdict/owner 같은 컨설팅형 품질 기준을 slide critic에 반영했습니다. 큰 기능보다 golden fixture 확대 성격의 마감 작업이 남아 있습니다. - HTML은
kpi_panel이 새 핵심 블록으로 들어오면서 board/strategy 문서의 decision/evidence/KPI 연결성이 더 중요해졌습니다. 이후 작업은 목적형 bundled skill 확장과 print/export polish 쪽이 중심입니다.
업데이트: 2026-04-15 11:36 (KST)
추가 진행 메모
- SQL fallback은
dialect/statement/risk수준을 넘어script intent/dependency/review focus까지 확장됐습니다. 다음 선택지는 dialect별 migration lint, schema dependency graph, rollback 시뮬레이션처럼 더 깊은 전용 리뷰 계층입니다. - HTML 문서는
decision_matrix와metric_strip이 들어오면서 board/strategy 보고서의 의사결정 구조를 더 직접적으로 표현할 수 있게 됐습니다. 남은 작업은 bundled skill을 목적형으로 더 쪼개고 print/export polish를 마감하는 수준입니다. - PPT critic은 headline, trade-off, phase milestone, chart takeaway, KPI context를 세밀하게 보기 시작했습니다. 이후 남는 작업은 finance/sales/board fixture 확대와 slide-level auto-repair 정교화처럼 golden 마감 중심입니다.
업데이트: 2026-04-15 11:50 (KST)
추가 진행 메모
- SQL은 이제 fallback 요약에 별도
review severity / findings / checklist가 붙는 수준까지 올라왔습니다. 남은 고도화는 dialect별 migration lint, schema dependency graph, rollback simulation 같은 더 깊은 검증 계층입니다. - Agent loop는 응답 분해 helper가 추가되어
RunAsync본체가 한 단계 더 얇아졌습니다. 이후 분리 후보는 tool dispatch와 finalize 쪽이라, 구조적 마감은 거의 끝나가고 있습니다. - 문서 쪽은 기능 확장보다
golden fixture 확대,목적형 bundled skill,print/export polish처럼 완성도 마감 항목이 중심으로 남았습니다.