재구성 AX Agent 설정과 채팅 UI를 Claude형 구조로
Some checks failed
Release Gate / gate (push) Has been cancelled

This commit is contained in:
2026-04-04 17:48:51 +09:00
parent 90c2f15e96
commit a027ea4f9a
6000 changed files with 11532 additions and 94063 deletions

View File

@@ -0,0 +1,75 @@
Base64Tool.cs
BuildRunTool.cs
CheckpointTool.cs
ClipboardTool.cs
CodeReviewTool.cs
CodeSearchTool.cs
CronCreateTool.cs
CronDeleteTool.cs
CronListTool.cs
DataPivotTool.cs
DateTimeTool.cs
DevEnvDetectTool.cs
DiffPreviewTool.cs
DiffTool.cs
DocumentAssemblerTool.cs
DocumentPlannerTool.cs
DocumentReaderTool.cs
DocumentReviewTool.cs
EncodingTool.cs
EnterPlanModeTool.cs
EnterWorktreeTool.cs
EnvTool.cs
ExitPlanModeTool.cs
ExitWorktreeTool.cs
FileEditTool.cs
FileInfoTool.cs
FileManageTool.cs
FileReadTool.cs
FileWatchTool.cs
FileWriteTool.cs
FolderMapTool.cs
FormatConvertTool.cs
GitTool.cs
GlobTool.cs
GrepTool.cs
HashTool.cs
HttpTool.cs
IAgentTool.cs
ImageAnalyzeTool.cs
JsonTool.cs
LspTool.cs
MathTool.cs
McpListResourcesTool.cs
McpReadResourceTool.cs
McpTool.cs
MemoryTool.cs
MultiReadTool.cs
NotifyTool.cs
OpenExternalTool.cs
PlaybookTool.cs
ProcessTool.cs
ProjectRuleTool.cs
RegexTool.cs
SkillManagerTool.cs
SnippetRunnerTool.cs
SqlTool.cs
SubAgentTool.cs
SuggestActionsTool.cs
TaskCreateTool.cs
TaskGetTool.cs
TaskListTool.cs
TaskOutputTool.cs
TaskStopTool.cs
TaskTrackerTool.cs
TaskUpdateTool.cs
TeamCreateTool.cs
TeamDeleteTool.cs
TemplateRenderTool.cs
TestLoopTool.cs
TextSummarizeTool.cs
TodoWriteTool.cs
ToolSearchTool.cs
UserAskTool.cs
XmlTool.cs
ZipTool.cs

216
.tools/claw_doc_slash.txt Normal file
View File

@@ -0,0 +1,216 @@
/absolute
/accordion
/accordiongroup
/agent-memory
/agent-memory-local
/allowed-tools
/api
/api-conventions
/api-key
/architecture
/authentication
/await
/bash
/bashclassifier
/bashpermissions
/bashtool
/bin
/blob
/block
/c
/card
/cardgroup
/cd
/changelog
/ci-mcp
/ci-tools
/claude
/claude-code
/claude-config
/claude-debug
/claude-event
/claudemd
/claw-code
/clear
/cli
/cli-flags
/cloud
/command
/commands
/commit
/compact
/company-standards
/components
/concepts
/config
/configs
/configuration
/console
/container
/conventions
/core
/cost
/credential
/credentials
/data
/database
/db
/db-tools
/deny
/deploy
/deployment
/describe
/dev
/developer
/dir
/disable
/docs
/en
/en-us
/environ
/etc
/exit
/expandable
/extra
/fail
/fetch
/filename
/file-operations
/fix-issue
/fnm
/generated
/get-claude-key
/github
/guides
/handlers
/help
/home
/hook
/hooks
/hooks-reference
/how-it-works
/in
/index
/info
/init
/ink
/install
/installation
/instructkr
/library
/libs
/lint
/lint-changed-file
/llms
/local
/local-tools
/logger
/login
/logout
/main
/max
/mcp
/mcp-server
/mcp-server-postgres
/mcp-servers
/memoize
/memory
/memory-context
/mintlify
/mnt
/model
/modelcontextprotocol
/monorepo
/multi-agent
/my
/my-mcp-config
/my-memory-store
/my-proxy
/myrole
/my-server
/my-service
/my-skill
/new
/new-component
/nodejs
/non-interactive
/note
/null
/nvm
/nvm-sh
/off
/opt
/otel
/output
/paramfield
/path
/permissions
/permissions-api
/plan
/preferences
/proc
/project
/projects
/prompt
/quickstart
/raw
/reference
/relative
/reset
/responsefield
/resume
/review
/rules
/schemas
/schniz
/sdk
/search
/server-filesystem
/server-postgres
/services
/session
/settings
/sh
/shared
/shouc001
/skill
/skill-name
/skills
/slash-commands
/some-lib
/some-org
/sse
/standup
/stderr
/stdout
/step
/steps
/style-guide
/sudo
/sudoers
/tab
/tabs
/team-settings
/test
/third-party
/time
/tip
/tmp
/to
/tools
/typescript
/user
/usr
/utils
/v0
/v1
/v4
/vendor
/verify
/vineetagarwal-code
/vineetagarwal-code-claude-code
/warning
/web
/x
/you
/zsh

79
.tools/current_slash.txt Normal file
View File

@@ -0,0 +1,79 @@
/add-dir
/advisor
/agents
/branch
/btw
/build
/chrome
/clear
/color
/compact
/config
/context
/copy
/cost
/desktop
/diff
/doctor
/effort
/exit
/explain
/export
/fast
/feedback
/files
/fix
/heapdump
/help
/hooks
/ide
/init
/init-verifiers
/install-github-app
/install-slack-app
/keybindings
/login
/logout
/mcp
/memory
/mobile
/model
/output-style
/passes
/permissions
/plan
/plugin
/pr
/pr-comments
/privacy-settings
/rate-limit-options
/release-notes
/reload-plugins
/remote-env
/rename
/resume
/review
/rewind
/sandbox-toggle
/search
/security-review
/session
/skills
/stats
/status
/statusline
/stickers
/structure
/summary
/tag
/tasks
/terminal-setup
/test
/theme
/thinkback
/thinkback-play
/translate
/ultrareview
/upgrade
/usage
/vim

75
.tools/current_tools.txt Normal file
View File

@@ -0,0 +1,75 @@
Base64Tool.cs
BuildRunTool.cs
CheckpointTool.cs
ClipboardTool.cs
CodeReviewTool.cs
CodeSearchTool.cs
CronCreateTool.cs
CronDeleteTool.cs
CronListTool.cs
DataPivotTool.cs
DateTimeTool.cs
DevEnvDetectTool.cs
DiffPreviewTool.cs
DiffTool.cs
DocumentAssemblerTool.cs
DocumentPlannerTool.cs
DocumentReaderTool.cs
DocumentReviewTool.cs
EncodingTool.cs
EnterPlanModeTool.cs
EnterWorktreeTool.cs
EnvTool.cs
ExitPlanModeTool.cs
ExitWorktreeTool.cs
FileEditTool.cs
FileInfoTool.cs
FileManageTool.cs
FileReadTool.cs
FileWatchTool.cs
FileWriteTool.cs
FolderMapTool.cs
FormatConvertTool.cs
GitTool.cs
GlobTool.cs
GrepTool.cs
HashTool.cs
HttpTool.cs
IAgentTool.cs
ImageAnalyzeTool.cs
JsonTool.cs
LspTool.cs
MathTool.cs
McpListResourcesTool.cs
McpReadResourceTool.cs
McpTool.cs
MemoryTool.cs
MultiReadTool.cs
NotifyTool.cs
OpenExternalTool.cs
PlaybookTool.cs
ProcessTool.cs
ProjectRuleTool.cs
RegexTool.cs
SkillManagerTool.cs
SnippetRunnerTool.cs
SqlTool.cs
SubAgentTool.cs
SuggestActionsTool.cs
TaskCreateTool.cs
TaskGetTool.cs
TaskListTool.cs
TaskOutputTool.cs
TaskStopTool.cs
TaskTrackerTool.cs
TaskUpdateTool.cs
TeamCreateTool.cs
TeamDeleteTool.cs
TemplateRenderTool.cs
TestLoopTool.cs
TextSummarizeTool.cs
TodoWriteTool.cs
ToolSearchTool.cs
UserAskTool.cs
XmlTool.cs
ZipTool.cs

View File

@@ -1,14 +0,0 @@
복원할 프로젝트를 확인하는 중...
E:\AX Copilot\src\AxCopilot\AxCopilot.csproj을(를) 1.41초 동안 복원했습니다.
E:\AX Copilot\src\AxCopilot.Tests\AxCopilot.Tests.csproj을(를) 1.41초 동안 복원했습니다.
복원할 4 프로젝트의 2이(가) 최신 상태입니다.
AxCopilot.SDK -> E:\AX Copilot\src\AxCopilot.SDK\bin\Debug\net8.0-windows\AxCopilot.SDK.dll
AxCopilot -> E:\AX Copilot\src\AxCopilot\bin\Debug\net8.0-windows\win-x64\AxCopilot.dll
AxKeyEncryptor -> E:\AX Copilot\src\AxKeyEncryptor\bin\Debug\net8.0-windows\AxKeyEncryptor.dll
AxCopilot.Tests -> E:\AX Copilot\src\AxCopilot.Tests\bin\Debug\net8.0-windows\AxCopilot.Tests.dll
빌드했습니다.
경고 0개
오류 0개
경과 시간: 00:00:07.34

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -7,7 +7,7 @@
"targets": { "targets": {
".NETCoreApp,Version=v8.0": {}, ".NETCoreApp,Version=v8.0": {},
".NETCoreApp,Version=v8.0/win-x64": { ".NETCoreApp,Version=v8.0/win-x64": {
"AxCopilot/1.7.2": { "AxCopilot/0.7.3": {
"dependencies": { "dependencies": {
"AxCopilot.SDK": "1.0.0", "AxCopilot.SDK": "1.0.0",
"DocumentFormat.OpenXml": "3.2.0", "DocumentFormat.OpenXml": "3.2.0",
@@ -1161,7 +1161,7 @@
} }
}, },
"libraries": { "libraries": {
"AxCopilot/1.7.2": { "AxCopilot/0.7.3": {
"type": "project", "type": "project",
"serviceable": false, "serviceable": false,
"sha512": "" "sha512": ""

Binary file not shown.

Binary file not shown.

View File

@@ -1,4 +1,4 @@
--- ---
name: adr-writer name: adr-writer
label: 아키텍처 결정 기록 (ADR) label: 아키텍처 결정 기록 (ADR)
description: 아키텍처 결정 사항을 표준 ADR 형식으로 문서화합니다. description: 아키텍처 결정 사항을 표준 ADR 형식으로 문서화합니다.

View File

@@ -1,8 +1,14 @@
--- ---
name: api-docs name: api-docs
label: API 문서 생성 label: API 문서 생성
description: 코드에서 API 엔드포인트를 분석하여 마크다운/HTML API 문서를 자동 생성합니다. description: 코드에서 API 엔드포인트를 분석하여 마크다운/HTML API 문서를 자동 생성합니다.
icon: \uE8A1 icon: \uE8A1
allowed-tools:
- folder_map
- grep
- file_read
- file_write
- search_codebase
tabs: code tabs: code
--- ---
@@ -16,9 +22,9 @@ tabs: code
## 작업 절차 ## 작업 절차
1. `folder_map` — 프로젝트 구조 파악 1. `folder_map` — 프로젝트 구조 파악
2. `grep_tool` — API 엔드포인트 패턴 검색 (`[HttpGet]`, `@GetMapping`, `router.get`, `@app.route` 등) 2. `grep` — API 엔드포인트 패턴 검색 (`[HttpGet]`, `@GetMapping`, `router.get`, `@app.route` 등)
3. `file_read` — 컨트롤러/라우터 파일 분석 3. `file_read` — 컨트롤러/라우터 파일 분석
4. `grep_tool` — 요청/응답 모델 클래스 검색 4. `grep` — 요청/응답 모델 클래스 검색
5. `file_read` — 모델 구조 분석 5. `file_read` — 모델 구조 분석
6. `file_write` — API 문서 생성 6. `file_write` — API 문서 생성

View File

@@ -1,4 +1,4 @@
--- ---
name: batch-rename name: batch-rename
label: 파일 일괄 이름 변경 label: 파일 일괄 이름 변경
description: 패턴 매칭, 번호 붙이기, 날짜 추가 등 파일 이름을 일괄 변경합니다. description: 패턴 매칭, 번호 붙이기, 날짜 추가 등 파일 이름을 일괄 변경합니다.

View File

@@ -1,4 +1,4 @@
--- ---
name: changelog name: changelog
label: 변경 이력 / 릴리즈 노트 label: 변경 이력 / 릴리즈 노트
description: Git 커밋 이력에서 자동으로 변경 이력과 릴리즈 노트를 생성합니다. description: Git 커밋 이력에서 자동으로 변경 이력과 릴리즈 노트를 생성합니다.

View File

@@ -1,8 +1,14 @@
--- ---
name: code-scaffold name: code-scaffold
label: 코드 스캐폴딩 label: 코드 스캐폴딩
description: 프로젝트 구조를 분석하고 새 기능의 코드 뼈대를 자동 생성합니다. description: 프로젝트 구조를 분석하고 새 기능의 코드 뼈대를 자동 생성합니다.
icon: \uE943 icon: \uE943
allowed-tools:
- folder_map
- file_read
- grep
- file_write
- search_codebase
tabs: code tabs: code
--- ---
@@ -11,7 +17,7 @@ tabs: code
다음 도구를 사용하세요: 다음 도구를 사용하세요:
1. folder_map — 프로젝트 구조 파악 1. folder_map — 프로젝트 구조 파악
2. file_read — 기존 코드 패턴 분석 2. file_read — 기존 코드 패턴 분석
3. grep_tool — 코딩 컨벤션 확인 3. grep — 코딩 컨벤션 확인
4. file_write — 새 파일 생성 4. file_write — 새 파일 생성
작업 순서: 작업 순서:

View File

@@ -1,17 +1,22 @@
--- ---
name: commit-review name: commit-review
label: 커밋 메시지 리뷰 label: 커밋 메시지 리뷰
description: Git 커밋 메시지를 Conventional Commits 기준으로 검토하고 개선을 제안합니다. description: Git 커밋 메시지를 Conventional Commits 기준으로 검토하고 개선을 제안합니다.
icon: \uE8CB icon: \uE8CB
allowed-tools:
- process
- git_tool
- file_read
- text_summarize
tabs: code tabs: code
--- ---
작업 폴더의 최근 Git 커밋 메시지를 검토하고 개선안을 제시하세요. 작업 폴더의 최근 Git 커밋 메시지를 검토하고 개선안을 제시하세요.
## 작업 절차 ## 작업 절차
1. `process_run``git log --oneline -20` 으로 최근 커밋 목록 확인 1. `process``git log --oneline -20` 으로 최근 커밋 목록 확인
2. `process_run``git log --format="%H%n%s%n%b%n---" -10` 으로 상세 메시지 확인 2. `process``git log --format="%H%n%s%n%b%n---" -10` 으로 상세 메시지 확인
3. `process_run``git diff HEAD~1` 으로 최신 커밋 변경 내용 확인 (필요 시) 3. `process``git diff HEAD~1` 으로 최신 커밋 변경 내용 확인 (필요 시)
4. 각 커밋을 Conventional Commits 기준으로 분석 4. 각 커밋을 Conventional Commits 기준으로 분석
5. 결과를 정리하여 출력 5. 결과를 정리하여 출력

View File

@@ -1,4 +1,4 @@
--- ---
name: compare name: compare
label: 비교 분석표 label: 비교 분석표
description: 2개 이상 항목의 비교 분석 매트릭스를 생성합니다. description: 2개 이상 항목의 비교 분석 매트릭스를 생성합니다.

View File

@@ -1,18 +1,30 @@
--- ---
name: csv-to-xlsx name: csv-to-xlsx
label: CSV → Excel 변환 label: CSV → Excel 변환
description: CSV 파일을 서식이 완성된 Excel(.xlsx)로 변환합니다. 헤더 고정, 필터, 조건부 서식, 자동 열 너비를 적용합니다. description: CSV 파일을 서식이 완성된 Excel(.xlsx)로 변환합니다. 헤더 고정, 필터, 조건부 서식, 자동 열 너비를 적용합니다.
icon: \uE9F9 icon: \uE9F9
allowed-tools:
- folder_map
- file_read
- file_write
- process
- format_convert
- data_pivot
- template_render
tabs: cowork tabs: cowork
requires: python
--- ---
CSV 파일을 전문적인 서식이 적용된 Excel 파일로 변환하세요. CSV 파일을 전문적인 서식이 적용된 Excel 파일로 변환하세요.
## 실행 경로 선택 (Python 가능/불가)
- 먼저 `process``python --version`을 확인하세요.
- Python 가능: 기존 Python 스크립트 경로로 변환/서식 자동화를 수행하세요.
- Python 불가: `format_convert`로 CSV를 XLSX로 변환하고, `data_pivot`으로 핵심 요약 시트를 구성한 뒤 `file_write`로 사용 안내를 남기세요.
## 사전 준비 ## 사전 준비
먼저 필요한 패키지가 설치되어 있는지 확인하고, 없으면 설치하세요: 먼저 필요한 패키지가 설치되어 있는지 확인하고, 없으면 설치하세요:
``` ```
process_run: pip install openpyxl pandas process: pip install openpyxl pandas
``` ```
## 작업 절차 ## 작업 절차
@@ -25,7 +37,7 @@ process_run: pip install openpyxl pandas
- 조건부 서식 대상 컬럼 (숫자 컬럼 자동 감지) - 조건부 서식 대상 컬럼 (숫자 컬럼 자동 감지)
- 시트 이름 (기본: 파일명) - 시트 이름 (기본: 파일명)
4. **Python 스크립트 작성**: file_write로 변환 스크립트 생성 4. **Python 스크립트 작성**: file_write로 변환 스크립트 생성
5. **스크립트 실행**: process_run으로 Python 스크립트 실행 5. **스크립트 실행**: `process`로 Python 스크립트 실행
6. **결과 확인**: 생성된 .xlsx 파일 경로와 요약 정보를 안내 6. **결과 확인**: 생성된 .xlsx 파일 경로와 요약 정보를 안내
## Python 스크립트 템플릿 ## Python 스크립트 템플릿

View File

@@ -1,4 +1,4 @@
--- ---
name: data-convert name: data-convert
label: 데이터 변환기 label: 데이터 변환기
description: 데이터 포맷 간 변환, 정제, 필터링, 통계 요약을 수행합니다. description: 데이터 포맷 간 변환, 정제, 필터링, 통계 요약을 수행합니다.

View File

@@ -1,25 +1,37 @@
--- ---
name: data-visualize-adv name: data-visualize-adv
label: 고급 데이터 시각화 label: 고급 데이터 시각화
description: Python matplotlib/seaborn을 사용하여 히트맵, 산점도, 상관관계 등 고급 시각화를 생성합니다. description: Python matplotlib/seaborn을 사용하여 히트맵, 산점도, 상관관계 등 고급 시각화를 생성합니다.
icon: \uE9D9 icon: \uE9D9
requires: python allowed-tools:
- folder_map
- file_read
- file_write
- process
- data_pivot
- chart_create
- template_render
tabs: cowork tabs: cowork
--- ---
데이터를 고급 시각화 차트로 변환하세요. 데이터를 고급 시각화 차트로 변환하세요.
## 실행 경로 선택 (Python 가능/불가)
- 먼저 `process``python --version`을 확인하세요.
- Python 가능: 기존 matplotlib/seaborn 경로를 사용하세요.
- Python 불가: `data_pivot`으로 통계를 계산하고 `chart_create` + `template_render` + `file_write`로 HTML/SVG 리포트를 생성하세요.
## 사전 준비 ## 사전 준비
필요한 패키지를 설치하세요: 필요한 패키지를 설치하세요:
``` ```
process_run: pip install matplotlib seaborn pandas numpy process: pip install matplotlib seaborn pandas numpy
``` ```
## 작업 절차 ## 작업 절차
1. **데이터 확인**: 사용자가 제공한 CSV/JSON/Excel 데이터 파일 확인 1. **데이터 확인**: 사용자가 제공한 CSV/JSON/Excel 데이터 파일 확인
2. **데이터 로드**: pandas로 데이터 읽기 2. **데이터 로드**: pandas로 데이터 읽기
3. **Python 스크립트 작성**: file_write로 시각화 스크립트 생성 3. **Python 스크립트 작성**: file_write로 시각화 스크립트 생성
4. **스크립트 실행**: process_run으로 실행 4. **스크립트 실행**: `process`로 실행
5. **결과 확인**: 생성된 차트 이미지 경로를 사용자에게 안내 5. **결과 확인**: 생성된 차트 이미지 경로를 사용자에게 안내
## 시각화 유형별 템플릿 ## 시각화 유형별 템플릿

View File

@@ -1,8 +1,15 @@
--- ---
name: data-visualize name: data-visualize
label: 데이터 시각화 label: 데이터 시각화
description: CSV/Excel 데이터를 분석하여 차트가 포함된 HTML 보고서를 생성합니다. description: CSV/Excel 데이터를 분석하여 차트가 포함된 HTML 보고서를 생성합니다.
icon: \uE9D9 icon: \uE9D9
allowed-tools:
- folder_map
- file_read
- file_write
- data_pivot
- chart_create
- template_render
tabs: cowork tabs: cowork
--- ---

View File

@@ -1,8 +1,14 @@
--- ---
name: db-schema name: db-schema
label: DB 스키마 분석 label: DB 스키마 분석
description: 데이터베이스 스키마를 분석하여 ERD 다이어그램과 테이블 문서를 생성합니다. description: 데이터베이스 스키마를 분석하여 ERD 다이어그램과 테이블 문서를 생성합니다.
icon: \uE968 icon: \uE968
allowed-tools:
- folder_map
- grep
- file_read
- file_write
- search_codebase
tabs: code tabs: code
--- ---
@@ -16,9 +22,9 @@ tabs: code
## 작업 절차 ## 작업 절차
1. `folder_map` — 프로젝트 구조 파악 1. `folder_map` — 프로젝트 구조 파악
2. `grep_tool` — 엔티티/모델 클래스 검색 (`DbSet`, `@Entity`, `Model.define`, `CREATE TABLE` 등) 2. `grep` — 엔티티/모델 클래스 검색 (`DbSet`, `@Entity`, `Model.define`, `CREATE TABLE` 등)
3. `file_read` — 모델 파일 분석 (컬럼, 타입, 관계) 3. `file_read` — 모델 파일 분석 (컬럼, 타입, 관계)
4. `grep_tool` — 인덱스, 제약 조건 검색 4. `grep` — 인덱스, 제약 조건 검색
5. `file_write` — 스키마 문서 + Mermaid ERD 생성 5. `file_write` — 스키마 문서 + Mermaid ERD 생성
## 출력 형식 ## 출력 형식

View File

@@ -1,4 +1,4 @@
--- ---
name: dependency-audit name: dependency-audit
label: 의존성 분석 label: 의존성 분석
description: 프로젝트 의존성 그래프를 분석하고 보안 취약점, 라이선스, 업데이트 현황을 보고합니다. description: 프로젝트 의존성 그래프를 분석하고 보안 취약점, 라이선스, 업데이트 현황을 보고합니다.

View File

@@ -1,25 +1,35 @@
--- ---
name: diagram-generator name: diagram-generator
label: 다이어그램 생성 label: 다이어그램 생성
description: Python matplotlib/graphviz를 사용하여 플로차트, 시퀀스, ER 다이어그램 등을 생성합니다. description: Python matplotlib/graphviz를 사용하여 플로차트, 시퀀스, ER 다이어그램 등을 생성합니다.
icon: \uE9D9 icon: \uE9D9
requires: python allowed-tools:
- file_read
- file_write
- process
- chart_create
- template_render
tabs: cowork tabs: cowork
--- ---
사용자의 요구에 맞는 다이어그램을 Python으로 생성하세요. 사용자의 요구에 맞는 다이어그램을 Python으로 생성하세요.
## 실행 경로 선택 (Python 가능/불가)
- 먼저 `process``python --version`을 확인하세요.
- Python 가능: 기존 Graphviz/matplotlib 경로를 사용하세요.
- Python 불가: `template_render``file_write`로 Mermaid 기반 다이어그램 문서를 생성하고, 필요 시 `chart_create`로 대체 시각화를 제공하세요.
## 사전 준비 ## 사전 준비
필요한 패키지를 설치하세요: 필요한 패키지를 설치하세요:
``` ```
process_run: pip install matplotlib graphviz process: pip install matplotlib graphviz
``` ```
시스템에 Graphviz가 설치되어 있어야 합니다 (https://graphviz.org/download/). 시스템에 Graphviz가 설치되어 있어야 합니다 (https://graphviz.org/download/).
## 작업 절차 ## 작업 절차
1. **요구사항 파악**: 다이어그램 유형, 노드/관계, 스타일 확인 1. **요구사항 파악**: 다이어그램 유형, 노드/관계, 스타일 확인
2. **Python 스크립트 작성**: file_write로 .py 파일 생성 2. **Python 스크립트 작성**: file_write로 .py 파일 생성
3. **스크립트 실행**: process_run으로 Python 스크립트 실행 3. **스크립트 실행**: `process`로 Python 스크립트 실행
4. **결과 확인**: 생성된 이미지 파일 경로를 사용자에게 안내 4. **결과 확인**: 생성된 이미지 파일 경로를 사용자에게 안내
## 다이어그램 유형별 템플릿 ## 다이어그램 유형별 템플릿

View File

@@ -1,18 +1,30 @@
--- ---
name: docx-creator name: docx-creator
label: Word 문서 생성 label: Word 문서 생성
description: Python을 사용하여 전문적인 Word 문서(.docx)를 생성합니다. 작업 폴더의 양식 파일을 자동 활용합니다. description: Python을 사용하여 전문적인 Word 문서(.docx)를 생성합니다. 작업 폴더의 양식 파일을 자동 활용합니다.
icon: \uE8A5 icon: \uE8A5
requires: python allowed-tools:
- folder_map
- document_read
- file_read
- file_write
- process
- document_assemble
- format_convert
tabs: cowork tabs: cowork
--- ---
사용자의 요구에 맞는 전문적인 Word 문서를 Python으로 생성하세요. 사용자의 요구에 맞는 전문적인 Word 문서를 Python으로 생성하세요.
## 실행 경로 선택 (Python 가능/불가)
- 먼저 `process``python --version`을 확인하세요.
- Python 가능: 기존 python-docx 경로를 사용하세요.
- Python 불가: `document_assemble`로 문서 본문을 구성하고 `format_convert`로 docx 산출을 시도하세요. 실패 시 Markdown/HTML 결과와 변환 가이드를 함께 제공하세요.
## 사전 준비 ## 사전 준비
먼저 python-docx 패키지가 설치되어 있는지 확인하고, 없으면 설치하세요: 먼저 python-docx 패키지가 설치되어 있는지 확인하고, 없으면 설치하세요:
``` ```
process_run: pip install python-docx process: pip install python-docx
``` ```
## 양식 활용 (템플릿 모드) ## 양식 활용 (템플릿 모드)
@@ -39,7 +51,7 @@ process_run: pip install python-docx
1. **요구사항 파악**: 사용자가 원하는 문서의 종류, 구조, 내용을 확인 1. **요구사항 파악**: 사용자가 원하는 문서의 종류, 구조, 내용을 확인
2. **양식 확인**: folder_map으로 작업 폴더에 양식 .docx 파일이 있는지 확인 2. **양식 확인**: folder_map으로 작업 폴더에 양식 .docx 파일이 있는지 확인
3. **Python 스크립트 작성**: file_write로 .py 파일 생성 3. **Python 스크립트 작성**: file_write로 .py 파일 생성
4. **스크립트 실행**: process_run으로 Python 스크립트 실행 4. **스크립트 실행**: `process`로 Python 스크립트 실행
5. **결과 확인**: 생성된 .docx 파일 경로를 사용자에게 안내 5. **결과 확인**: 생성된 .docx 파일 경로를 사용자에게 안내
## Python 스크립트 템플릿 ## Python 스크립트 템플릿

View File

@@ -1,4 +1,4 @@
--- ---
name: email-draft name: email-draft
label: 비즈니스 이메일 작성 label: 비즈니스 이메일 작성
description: 상황과 톤에 맞는 전문적인 비즈니스 이메일 초안을 생성합니다. description: 상황과 톤에 맞는 전문적인 비즈니스 이메일 초안을 생성합니다.

View File

@@ -1,4 +1,4 @@
--- ---
name: env-setup name: env-setup
label: 프로젝트 환경 설정 label: 프로젝트 환경 설정
description: .gitignore, requirements.txt, .editorconfig 등 프로젝트 환경 설정 파일을 자동 생성합니다. description: .gitignore, requirements.txt, .editorconfig 등 프로젝트 환경 설정 파일을 자동 생성합니다.
@@ -8,7 +8,7 @@ allowed-tools:
- folder_map - folder_map
- file_read - file_read
- file_write - file_write
- process_run - process
--- ---
프로젝트 유형에 맞는 환경 설정 파일을 자동으로 생성하세요. 프로젝트 유형에 맞는 환경 설정 파일을 자동으로 생성하세요.

View File

@@ -1,4 +1,4 @@
--- ---
name: gen-test name: gen-test
label: 테스트 생성기 label: 테스트 생성기
description: 지정 파일의 단위 테스트를 자동 생성하고 실행하여 커버리지를 분석합니다. description: 지정 파일의 단위 테스트를 자동 생성하고 실행하여 커버리지를 분석합니다.

View File

@@ -0,0 +1,45 @@
---
name: hook-policy-demo
label: Hook Policy Demo
description: hooks/hook_filters 런타임 정책 적용 예시 스킬입니다.
icon: \uE943
tabs: code
allowed-tools:
- file_read
- file_edit
- grep
- build_run
when_to_use: 코드 수정 후 특정 훅만 pre/post로 선택 적용하고 싶을 때
argument-hint: 대상 파일 경로 또는 변경 목적
context: fork
agent: worker
effort: medium
sample: true
hooks:
file_edit:
pre:
- lint-pre
post:
- verify-post
build_run:
post:
- verify-post
hook_filters: lint-pre@pre@file_edit, verify-post@post@file_edit, verify-post@post@build_run
---
이 스킬은 `hooks`/`hook_filters` 정책을 함께 사용하는 예시입니다.
## 목표
- 수정 전에는 `lint-pre` 훅만 실행
- 수정 후/빌드 후에는 `verify-post` 훅만 실행
## 실행 가이드
1. `grep` + `file_read`로 대상 코드와 관련 호출부를 확인합니다.
2. 필요한 최소 범위만 `file_edit`로 수정합니다.
3. 수정 후 `build_run`으로 빌드/테스트를 실행해 검증합니다.
4. 변경 내용/검증 결과/남은 리스크를 간단히 보고합니다.
## 제약
- `allowed-tools` 목록 외 도구 호출 금지
- 불필요한 전면 리팩토링 금지
- 동일 실패 재시도 전에 원인/대안 먼저 제시

View File

@@ -1,24 +1,36 @@
--- ---
name: image-processor name: image-processor
label: 이미지 처리 label: 이미지 처리
description: Python Pillow를 사용하여 이미지 리사이즈, 크롭, 워터마크, 포맷 변환을 수행합니다. description: Python Pillow를 사용하여 이미지 리사이즈, 크롭, 워터마크, 포맷 변환을 수행합니다.
icon: \uEB9F icon: \uEB9F
requires: python allowed-tools:
- folder_map
- file_read
- file_write
- process
- image_analyze
- format_convert
- file_manage
tabs: cowork tabs: cowork
--- ---
사용자의 요구에 맞게 이미지를 처리하세요. 사용자의 요구에 맞게 이미지를 처리하세요.
## 실행 경로 선택 (Python 가능/불가)
- 먼저 `process``python --version`을 확인하세요.
- Python 가능: 기존 Pillow 경로를 사용하세요.
- Python 불가: `image_analyze`로 이미지 상태를 점검하고, `file_manage`/`format_convert`/`file_write`로 가능한 변환 및 수동 처리 지침을 제공하세요.
## 사전 준비 ## 사전 준비
먼저 Pillow 패키지가 설치되어 있<><EC9E88>지 확인하고, 없으면 설<><EC84A4><EFBFBD>하세요: 먼저 Pillow 패키지가 설치되어 있<><EC9E88>지 확인하고, 없으면 설<><EC84A4><EFBFBD>하세요:
``` ```
process_run: pip install Pillow process: pip install Pillow
``` ```
## 작업 절<><ECA088> ## 작업 절<><ECA088>
1. **요구사항 파악**: 처리할 이미지 파일과 원하는 작업 확인 1. **요구사항 파악**: 처리할 이미지 파일과 원하는 작업 확인
2. **Python 스크립트 작성**: file_write로 .py 파일 생성 2. **Python 스크립트 작성**: file_write로 .py 파일 생성
3. **스크립트 실행**: process_run으로 Python 스크립<ED81AC><EBA6BD> 실행 3. **스크립트 실행**: `process`로 Python 스크립<ED81AC><EBA6BD> 실행
4. **결과 확인**: 처리된 이미지 파일 경로를 사용자에게 안내 4. **결과 확인**: 처리된 이미지 파일 경로를 사용자에게 안내
## 지원 기능 ## 지원 기능

View File

@@ -1,4 +1,4 @@
--- ---
name: impact name: impact
label: 변경 영향 분석 label: 변경 영향 분석
description: 코드 변경 시 영향받는 파일, 함수, 테스트를 식별합니다. description: 코드 변경 시 영향받는 파일, 함수, 테스트를 식별합니다.

View File

@@ -1,4 +1,4 @@
--- ---
name: json-schema name: json-schema
label: JSON/YAML 스키마 도구 label: JSON/YAML 스키마 도구
description: JSON 또는 YAML 데이터에서 스키마를 생성하고, 데이터의 유효성을 검증합니다. description: JSON 또는 YAML 데이터에서 스키마를 생성하고, 데이터의 유효성을 검증합니다.

View File

@@ -1,4 +1,4 @@
--- ---
name: log-analyze name: log-analyze
label: 로그 분석기 label: 로그 분석기
description: 로그 파일의 패턴을 분석하고 에러를 요약하며 타임라인을 시각화합니다. description: 로그 파일의 패턴을 분석하고 에러를 요약하며 타임라인을 시각화합니다.

View File

@@ -1,18 +1,28 @@
--- ---
name: markdown-to-doc name: markdown-to-doc
label: Markdown → 문서 변환 label: Markdown → 문서 변환
description: Markdown 파일을 서식이 적용된 Word(.docx) 또는 PDF 문서로 변환합니다. description: Markdown 파일을 서식이 적용된 Word(.docx) 또는 PDF 문서로 변환합니다.
icon: \uE8A5 icon: \uE8A5
allowed-tools:
- file_read
- file_write
- process
- format_convert
- document_assemble
tabs: cowork tabs: cowork
requires: python
--- ---
Markdown 파일을 전문적인 Word 또는 PDF 문서로 변환하세요. Markdown 파일을 전문적인 Word 또는 PDF 문서로 변환하세요.
## 실행 경로 선택 (Python 가능/불가)
- 먼저 `process``python --version`을 확인하세요.
- Python 가능: 기존 python-docx 경로를 사용하세요.
- Python 불가: `format_convert`를 우선 사용해 Markdown을 docx/pdf로 변환하고, 변환 제한 시 `file_write`로 보정 가이드를 생성하세요.
## 사전 준비 ## 사전 준비
먼저 필요한 패키지가 설치되어 있는지 확인하고, 없으면 설치하세요: 먼저 필요한 패키지가 설치되어 있는지 확인하고, 없으면 설치하세요:
``` ```
process_run: pip install python-docx markdown process: pip install python-docx markdown
``` ```
## 작업 절차 ## 작업 절차
@@ -24,7 +34,7 @@ process_run: pip install python-docx markdown
- 여백, 페이지 크기 설정 - 여백, 페이지 크기 설정
- 머리글/바닥글 포함 여부 - 머리글/바닥글 포함 여부
3. **Python 스크립트 작성**: file_write로 변환 스크립트 생성 3. **Python 스크립트 작성**: file_write로 변환 스크립트 생성
4. **스크립트 실행**: process_run으로 Python 스크립트 실행 4. **스크립트 실행**: `process`로 Python 스크립트 실행
5. **결과 확인**: 생성된 문서 파일 경로와 페이지 수를 안내 5. **결과 확인**: 생성된 문서 파일 경로와 페이지 수를 안내
## 스타일 매핑 ## 스타일 매핑

View File

@@ -1,8 +1,13 @@
--- ---
name: meeting-minutes name: meeting-minutes
label: 회의록 정리 label: 회의록 정리
description: 회의 내용을 체계적으로 정리하여 회의록을 생성합니다. description: 회의 내용을 체계적으로 정리하여 회의록을 생성합니다.
icon: \uE771 icon: \uE771
allowed-tools:
- file_read
- file_write
- text_summarize
- template_render
tabs: cowork tabs: cowork
--- ---

View File

@@ -1,13 +1,23 @@
--- ---
name: ocr-extract name: ocr-extract
label: OCR 텍스트 추출 label: OCR 텍스트 추출
description: Python pytesseract를 사용하여 이미지/스캔 문서에서 텍스트를 추출합니다. description: Python pytesseract를 사용하여 이미지/스캔 문서에서 텍스트를 추출합니다.
icon: \uE8D4 icon: \uE8D4
requires: python allowed-tools:
- file_read
- file_write
- process
- image_analyze
- text_summarize
tabs: cowork tabs: cowork
--- ---
이미지 또는 스캔된 문서에서 텍스트를 추출하세요. 이미지 또는 스캔된 문서에서 텍스트를 추출하세요.
## 실행 경로 선택 (Python 가능/불가)
- 먼저 `process``python --version`을 확인하세요.
- Python 가능: 기존 pytesseract 경로를 사용하세요.
- Python 불가: `image_analyze`로 텍스트 후보를 추출하고 `text_summarize` + `file_write`로 정제본을 제공하세요.
## 사전 준비 ## 사전 준비
1. Tesseract OCR 엔진이 시스템에 설치되어 있어야 합니다. 1. Tesseract OCR 엔진이 시스템에 설치되어 있어야 합니다.
@@ -15,7 +25,7 @@ tabs: cowork
- 한국어 지원: 설치 시 "Korean" 언어 데이터 선택 - 한국어 지원: 설치 시 "Korean" 언어 데이터 선택
2. Python 패키지 설치: 2. Python 패키지 설치:
``` ```
process_run: pip install pytesseract Pillow process: pip install pytesseract Pillow
``` ```
## 작업 절차 ## 작업 절차

View File

@@ -1,8 +1,13 @@
--- ---
name: paper-review name: paper-review
label: 논문 분석 label: 논문 분석
description: 논문 또는 기술 문서를 체계적으로 분석하고 핵심 내용을 정리합니다. description: 논문 또는 기술 문서를 체계적으로 분석하고 핵심 내용을 정리합니다.
icon: \uE736 icon: \uE736
allowed-tools:
- document_read
- file_read
- file_write
- text_summarize
tabs: cowork tabs: cowork
--- ---

View File

@@ -1,18 +1,29 @@
--- ---
name: pdf-processor name: pdf-processor
label: PDF 처리 label: PDF 처리
description: Python을 사용하여 PDF에서 텍스트/표를 추출하거나 PDF를 생성합니다. description: Python을 사용하여 PDF에서 텍스트/표를 추출하거나 PDF를 생성합니다.
icon: \uE9F9 icon: \uE9F9
requires: python allowed-tools:
- folder_map
- document_read
- file_read
- file_write
- process
- format_convert
tabs: cowork tabs: cowork
--- ---
PDF 파일을 읽거나 새 PDF를 생성하세요. PDF 파일을 읽거나 새 PDF를 생성하세요.
## 실행 경로 선택 (Python 가능/불가)
- 먼저 `process``python --version`을 확인하세요.
- Python 가능: 기존 pypdf/pdfplumber/reportlab 경로를 사용하세요.
- Python 불가: `document_read`로 텍스트/구조를 추출하고, 생성 작업은 `format_convert` + `file_write` 기반으로 대체하세요.
## 사전 준비 ## 사전 준비
필요한 패키지를 확인하고 설치하세요: 필요한 패키지를 확인하고 설치하세요:
``` ```
process_run: pip install pypdf pdfplumber reportlab process: pip install pypdf pdfplumber reportlab
``` ```
## 작업 절차 ## 작업 절차
@@ -20,13 +31,13 @@ process_run: pip install pypdf pdfplumber reportlab
### PDF 텍스트 추출 ### PDF 텍스트 추출
1. **파일 확인**: folder_map으로 PDF 파일 위치 확인 1. **파일 확인**: folder_map으로 PDF 파일 위치 확인
2. **추출 스크립트 작성**: file_write로 Python 스크립트 생성 2. **추출 스크립트 작성**: file_write로 Python 스크립트 생성
3. **실행**: process_run으로 실행 3. **실행**: `process`로 실행
4. **결과 전달**: 추출된 텍스트를 사용자에게 전달 4. **결과 전달**: 추출된 텍스트를 사용자에게 전달
### PDF 생성 ### PDF 생성
1. **내용 파악**: 사용자가 원하는 문서 내용 확인 1. **내용 파악**: 사용자가 원하는 문서 내용 확인
2. **생성 스크립트 작성**: file_write로 Python 스크립트 생성 2. **생성 스크립트 작성**: file_write로 Python 스크립트 생성
3. **실행 및 확인**: process_run으로 실행 3. **실행 및 확인**: `process`로 실행
## 텍스트 추출 템플릿 ## 텍스트 추출 템플릿
```python ```python

View File

@@ -1,4 +1,4 @@
--- ---
name: perf-audit name: perf-audit
label: 성능 감사 label: 성능 감사
description: 코드 복잡도, 성능 병목, 메모리 이슈를 분석하고 최적화 방안을 제시합니다. description: 코드 복잡도, 성능 병목, 메모리 이슈를 분석하고 최적화 방안을 제시합니다.

View File

@@ -1,18 +1,30 @@
--- ---
name: pptx-creator name: pptx-creator
label: PPT 프레젠테이션 생성 label: PPT 프레젠테이션 생성
description: Python을 사용하여 전문적인 PowerPoint 프레젠테이션을 생성합니다. 작업 폴더의 양식 파일을 자동 활용합니다. description: Python을 사용하여 전문적인 PowerPoint 프레젠테이션을 생성합니다. 작업 폴더의 양식 파일을 자동 활용합니다.
icon: \uE7BE icon: \uE7BE
requires: python allowed-tools:
- folder_map
- document_read
- file_read
- file_write
- process
- pptx_create
- template_render
tabs: cowork tabs: cowork
--- ---
사용자의 요구에 맞는 PowerPoint 프레젠테이션을 Python으로 생성하세요. 사용자의 요구에 맞는 PowerPoint 프레젠테이션을 Python으로 생성하세요.
## 실행 경로 선택 (Python 가능/불가)
- 먼저 `process``python --version`을 확인하세요.
- Python 가능: 기존 python-pptx 경로를 사용하세요.
- Python 불가: `pptx_create`로 슬라이드 초안을 생성하고 `template_render` + `file_write`로 발표자료 구조를 보강하세요.
## 사전 준비 ## 사전 준비
필요한 패키지를 확인하고 설치하세요: 필요한 패키지를 확인하고 설치하세요:
``` ```
process_run: pip install python-pptx process: pip install python-pptx
``` ```
## 양식 활용 (마스터 슬라이드 템플릿) ## 양식 활용 (마스터 슬라이드 템플릿)
@@ -45,7 +57,7 @@ process_run: pip install python-pptx
1. **요구사항 파악**: 발표 주제, 슬라이드 수, 스타일 확인 1. **요구사항 파악**: 발표 주제, 슬라이드 수, 스타일 확인
2. **양식 확인**: folder_map으로 작업 폴더에 양식 .pptx 파일이 있는지 확인 2. **양식 확인**: folder_map으로 작업 폴더에 양식 .pptx 파일이 있는지 확인
3. **스크립트 작성**: file_write로 Python 스크립트 생성 3. **스크립트 작성**: file_write로 Python 스크립트 생성
4. **실행**: process_run으로 스크립트 실행 4. **실행**: `process`로 스크립트 실행
5. **결과 안내**: 생성된 .pptx 파일 경로를 사용자에게 전달 5. **결과 안내**: 생성된 .pptx 파일 경로를 사용자에게 전달
## 스크립트 템플릿 ## 스크립트 템플릿

View File

@@ -1,4 +1,4 @@
--- ---
name: prd-generator name: prd-generator
label: 요구사항 정의서 (PRD) label: 요구사항 정의서 (PRD)
description: 제품 요구사항 정의서, 유저 스토리, 수용 기준을 체계적으로 생성합니다. description: 제품 요구사항 정의서, 유저 스토리, 수용 기준을 체계적으로 생성합니다.

View File

@@ -1,4 +1,4 @@
--- ---
name: refactor name: refactor
label: 리팩토링 가이드 label: 리팩토링 가이드
description: 코드베이스를 분석하여 리팩토링 포인트를 식별하고 실행 계획을 생성합니다. description: 코드베이스를 분석하여 리팩토링 포인트를 식별하고 실행 계획을 생성합니다.
@@ -11,6 +11,13 @@ allowed-tools:
- folder_map - folder_map
- lsp_code_intel - lsp_code_intel
tabs: code tabs: code
# hooks / hook_filters 예시 (옵션):
# hooks:
# file_edit:
# pre:
# - lint-pre
# post: verify-post
# hook_filters: lint-pre@pre@file_edit, verify-post@post@*
--- ---
코드베이스를 분석하여 리팩토링이 필요한 부분을 식별하고 개선 계획을 수립하세요. 코드베이스를 분석하여 리팩토링이 필요한 부분을 식별하고 개선 계획을 수립하세요.

View File

@@ -1,4 +1,4 @@
--- ---
name: regex-helper name: regex-helper
label: 정규식 도우미 label: 정규식 도우미
description: 정규식 패턴을 생성하고, 기존 패턴을 해석하며, 테스트 케이스로 검증합니다. description: 정규식 패턴을 생성하고, 기존 패턴을 해석하며, 테스트 케이스로 검증합니다.

View File

@@ -1,4 +1,4 @@
--- ---
name: release-note name: release-note
label: 릴리즈 노트 생성 label: 릴리즈 노트 생성
description: 비개발자 대상의 사용자 친화적인 릴리즈 노트를 자동 생성합니다. description: 비개발자 대상의 사용자 친화적인 릴리즈 노트를 자동 생성합니다.

View File

@@ -1,8 +1,16 @@
--- ---
name: report-writer name: report-writer
label: 보고서 작성 label: 보고서 작성
description: 작업 폴더의 데이터를 분석하여 체계적인 업무 보고서를 생성합<EC84B1><ED95A9>다. description: 작업 폴더의 데이터를 분석하여 체계적인 업무 보고서를 생성합<EC84B1><ED95A9>다.
icon: \uE9F9 icon: \uE9F9
allowed-tools:
- folder_map
- file_read
- file_write
- data_pivot
- chart_create
- template_render
- text_summarize
tabs: cowork tabs: cowork
--- ---

View File

@@ -1,4 +1,4 @@
--- ---
name: security-audit name: security-audit
label: 보안 코드 감사 label: 보안 코드 감사
description: 코드베이스의 보안 취약점을 점검하고 OWASP 기반 보안 보고서를 생성합니다. description: 코드베이스의 보안 취약점을 점검하고 OWASP 기반 보안 보고서를 생성합니다.

View File

@@ -1,4 +1,4 @@
--- ---
name: sql-report name: sql-report
label: SQL 리포트 label: SQL 리포트
description: DB 쿼리를 실행하고 결과를 차트화하여 HTML/Excel 보고서로 생성합니다. description: DB 쿼리를 실행하고 결과를 차트화하여 HTML/Excel 보고서로 생성합니다.

View File

@@ -1,4 +1,4 @@
--- ---
name: translate name: translate
label: 번역 + 교정 label: 번역 + 교정
description: 문서나 텍스트를 번역하고 전문 용어를 보존하며 교정합니다. description: 문서나 텍스트를 번역하고 전문 용어를 보존하며 교정합니다.

View File

@@ -1,4 +1,4 @@
--- ---
name: weekly-report name: weekly-report
label: 주간 보고서 label: 주간 보고서
description: 작업 폴더의 변경 이력을 기반으로 자동 주간보고 초안을 생성합니다. description: 작업 폴더의 변경 이력을 기반으로 자동 주간보고 초안을 생성합니다.

View File

@@ -1,18 +1,31 @@
--- ---
name: xlsx-analyzer name: xlsx-analyzer
label: Excel 데이터 분석 label: Excel 데이터 분석
description: Python을 사용하여 Excel/CSV 데이터를 분석하고 보고서를 생성합니다. 작업 폴더의 양식 파일을 자동 활용합니다. description: Python을 사용하여 Excel/CSV 데이터를 분석하고 보고서를 생성합니다. 작업 폴더의 양식 파일을 자동 활용합니다.
icon: \uE9F9 icon: \uE9F9
requires: python allowed-tools:
- folder_map
- document_read
- file_read
- file_write
- process
- data_pivot
- chart_create
- template_render
tabs: cowork tabs: cowork
--- ---
작업 폴더의 Excel 또는 CSV 데이터를 Python으로 분석하세요. 작업 폴더의 Excel 또는 CSV 데이터를 Python으로 분석하세요.
## 실행 경로 선택 (Python 가능/불가)
- 먼저 `process``python --version`을 확인하세요.
- Python 가능: 기존 pandas/openpyxl 경로를 사용하세요.
- Python 불가: `data_pivot`으로 분석 요약을 만들고 `chart_create` + `file_write`로 결과 리포트를 생성하세요.
## 사전 준비 ## 사전 준비
필요한 패키지를 확인하고 설치하세요: 필요한 패키지를 확인하고 설치하세요:
``` ```
process_run: pip install pandas openpyxl process: pip install pandas openpyxl
``` ```
## 양식 활용 (Excel 보고서 템플릿) ## 양식 활용 (Excel 보고서 템플릿)
@@ -41,7 +54,7 @@ process_run: pip install pandas openpyxl
2. **양식 확인**: 양식 .xlsx 파일이 있는지 확인 (데이터 파일과 양식 파일 구분) 2. **양식 확인**: 양식 .xlsx 파일이 있는지 확인 (데이터 파일과 양식 파일 구분)
3. **데이터 읽기**: file_read 또는 document_read로 파일 구조 파악 3. **데이터 읽기**: file_read 또는 document_read로 파일 구조 파악
4. **분석 스크립트 작성**: file_write로 Python 분석 스크립트 생성 4. **분석 스크립트 작성**: file_write로 Python 분석 스크립트 생성
5. **실행**: process_run으로 스크립트 실행 5. **실행**: `process`로 스크립트 실행
6. **결과 보고**: 분석 결과를 사용자에게 정리하여 전달 6. **결과 보고**: 분석 결과를 사용자에게 정리하여 전달
## 분석 스크립트 템플릿 ## 분석 스크립트 템플릿

View File

@@ -1,8 +1,16 @@
--- ---
name: yield-analysis name: yield-analysis
label: 수율 분석 label: 수율 분석
description: 제조/연구 데이터의 수율을 분석하고 개선 포인트를 도출합니다. description: 제조/연구 데이터의 수율을 분석하고 개선 포인트를 도출합니다.
icon: \uE9D2 icon: \uE9D2
allowed-tools:
- folder_map
- file_read
- file_write
- data_pivot
- chart_create
- text_summarize
- template_render
tabs: cowork tabs: cowork
--- ---

View File

@@ -1 +1 @@
[역할] 당신은 회사 업무의 도움을 주는 매우 유능한 비서입니다. 말투는 정중하게 하며, 욕을 해서는 안됩니다. [역할] 당신은 회사 업무의 도움을 주는 매우 유능한 비서입니다. 말투는 정중하게 하며, 욕을 해서는 안됩니다.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,164 +0,0 @@
E:\AX Copilot\src\AxCopilot\Views\TrayContextMenu.cs 55踰덉㎏ 以꾩엯?덈떎.
var menu = new SpacedContextMenuStrip(new Padding(20, 16, 20, 16));
// 醫? ?? ?? ??
?댁젣 ?꾩껜?곸씤 蹂닿퀬瑜??뺣━?섍쿋?듬땲??
---
# AX Copilot 怨좊룄??怨꾪쉷 醫낇빀 蹂닿퀬
**?꾩옱 踰꾩쟾**: v1.5.2 | **蹂닿퀬??*: 2026-03-29
---
## 1. ?꾩껜 援ъ“ ?붿빟
| ?곸뿭 | ?꾨즺 Phase | 李④린 Phase | 臾몄꽌 |
|------|-----------|-----------|------|
| **AX Agent** (?€???쒕퉬?? | Phase 2.5~13 (紐⑤몢 ?꾨즺) | Phase 14 (李④린) | `AGENT_ROADMAP.md` |
| **AX Commander** (?곗쿂) | Phase L1 (?꾨즺) | Phase L2, L3 (李④린) | `LAUNCHER_ROADMAP.md` |
| **醫낇빀** | ??| v1.5.0~v2.0 | `NEXT_ROADMAP.html` |
---
## 2. AX Agent ???꾨즺 ?대젰 (Phase 2.5 ~ Phase 13)
### Phase 8 (v1.5.0) ??寃쎌웳 踰ㅼ튂留덊겕 湲곕컲 ??
MCP ?대씪?댁뼵?? 紐⑤뜽 ?대갚, ?€??遺꾧린, ?ㅽ뵆由?酉? 而ㅻ㎤???붾젅?? ?좏겙 愿€由? ?먯쑉?? 媛쒕컻??紐⑤뱶, 蹂댁븞 媛먯궗
### Phase 9 (v1.5.0) ??李⑥꽭?€ 怨좊룄????
LSP ?곕룞 肄붾뱶 ?명뀛由ъ쟾?? 蹂묐젹 ?먯씠?꾪듃(?쒕툕?먯씠?꾪듃), TF-IDF ?쒕㎤??寃€?? ?먮룞 ?뚯뒪??猷⑦봽, ?대깽???몃━嫄? PDF ?대낫?닿린, ?ㅼ떆媛?diff 酉곗뼱
### Phase 10 (v1.5.0) ??吏€?ν삎 ?먯씠?꾪듃 ??
Auto Router ?먮룞 紐⑤뜽 ?좏깮, ?먯씠?꾪듃 硫붾え由??곸냽 ?숈뒿), 硫€?곕え??Vision), 肄붾뱶 寃€??媛쒖꽑(SQLite ?곸냽), ?먯씠?꾪듃 ??
### Phase 11 (v1.5.0) ???앺깭怨??뺤옣 ??
?ㅽ궗 ?쒖뒪???щ옒??紐낅졊), AI 肄붾뱶 由щ럭 ?먮룞?? ?쒕옒洹??쒕∼ AI 泥섎━
### Phase 12 (v1.5.1~1.5.2) ???ㅽ궗/而ㅻ꽖??怨좊룄????(?쇰?)
- ???고????섏〈 ?ㅽ궗 (Python/Node 媛먯? + 4醫?怨좉툒 ?ㅽ궗)
- ???뚰겕?뚮줈??遺꾩꽍湲?(?ㅼ떆媛??€?꾨씪???쒓컖??
- 燧??꾧뎄/而ㅻ꽖??愿€由?UI (怨꾪쉷)
- 燧?SKILL.md ?쒖? ?명솚 (怨꾪쉷)
### Phase 13 (v1.5.2) ???ㅽ궗 ?앺깭怨?+ 遺꾩꽍 ??
?ㅽ궗 媛ㅻ윭由?UI, ?쒓컖???몄쭛湲? 媛€?몄삤湲??대낫?닿린, ?ㅽ뻾 ?듦퀎 ?€?쒕낫?? AgentLogLevel 梨꾪똿 ?곕룞
---
## 3. AX Agent ??李④린 怨꾪쉷: Phase 14 (v1.5.4+)
> **諛⑺뼢**: ???먯씠?꾪듃 ?꾧뎄 25醫???40醫? ?뺣? ??寃€利앸맂 ?몃? ?ㅽ궗 12醫?踰덈뱾
### 14-A. ?곗씠??泥섎━ ?꾧뎄 (5醫?
| ?곗꽑?쒖쐞 | ?꾧뎄 |
|----------|------|
| ?믪쓬 | `json_tool` (?뚯떛/寃€利?jq荑쇰━), `regex_tool` (?뺢퇋???뚯뒪??異붿텧) |
| 以묎컙 | `diff_tool` (?뚯씪 鍮꾧탳) |
| ??쓬 | `base64_tool`, `hash_tool` |
### 14-B. ?쒖뒪???섍꼍 ?꾧뎄 (6醫?
| ?곗꽑?쒖쐞 | ?꾧뎄 |
|----------|------|
| ?믪쓬 | `clipboard_tool` (?대┰蹂대뱶 ?쎄린/?곌린), `notify_tool` (Windows ?뚮┝) |
| 以묎컙 | `env_tool` (?섍꼍蹂€??, `zip_tool` (?뺤텞) |
| ??쓬 | `log_search`, `datetime_tool` |
### 14-C. ?ㅽ듃?뚰겕/API ?꾧뎄 (3醫?
| ?곗꽑?쒖쐞 | ?꾧뎄 |
|----------|------|
| ?믪쓬 | `http_tool` (?щ궡 API ?몄텧), `sql_tool` (SQLite 荑쇰━) |
| ??쓬 | `network_tool` (?ы듃/DNS/ping) |
### 14-D. 肄붾뱶 ?덉쭏 ?꾧뎄 (4醫?
| ?곗꽑?쒖쐞 | ?꾧뎄 |
|----------|------|
| ?믪쓬 | `snippet_runner` (肄붾뱶 利됱떆 ?ㅽ뻾) |
| 以묎컙 | `template_tool` (蹂댁씪?ы뵆?덉씠??, `complexity_tool` (蹂듭옟??遺꾩꽍) |
| ??쓬 | `dependency_tool` (?섏〈???몃━) |
### 14-E. UX 媛쒖꽑
| ?곹깭 | ??ぉ |
|------|------|
| ???꾨즺 | ?щ옒??移??쒖떆, ?앹뾽 ?섏씠吏?|
| 李④린 | compact 紐낅졊??(`/init`, `/ctx`, `/pr` ??, 利먭꺼李얘린, ?ㅽ궗 ?먮룞 異붿쿇 |
### 14-F. ?몃? 寃€利??ㅽ궗 ?댁옣 踰덈뱾 (12醫?
- **?쇰컲 (8醫?**: code-scaffold, meeting-minutes, paper-review, data-visualize, report-writer, api-docs, db-schema, commit-review
- **?고????꾩슂 (4醫?**: docx-creator(python), xlsx-analyzer(python), pdf-processor(python), pptx-creator(python)
- **?ш린 ?곹뼢**: ~120KB (臾댁떆 媛€??
### 援ы쁽 ?쒖꽌
1. **14-F** (利됱떆) ??2. **14-A+B** (1李? ??3. **14-C+D** (2李? ??4. **14-E** (3李?
---
## 4. AX Commander (?곗쿂) ???꾨즺 諛?李④린 怨꾪쉷
### Phase L1 (v1.5.0) ???꾨즺
TextAction, Everything, 22 ?덉씠?꾩썐 ?€?쇰쭅, ?뚮윭洹몄씤 zip ?ㅼ튂, ??諛? ?€?붿긽???듯빀, ?대┰蹂대뱶 ?€/移댄뀒怨좊━, ???뺤옣, ?€??怨듦컙 愿€由?
### Phase L2 (v1.5.3) ???대┰蹂대뱶 怨좊룄??+ UX 媛쒖꽑
| ?곗꽑?쒖쐞 | 湲곕뒫 |
|----------|------|
| **?믪쓬** | L2-1 ?대?吏€ ?먮낯 ?댁긽??蹂댁〈 (?꾩옱 異뺤냼 ?€?????먮낯 DPAPI ?€?? |
| **?믪쓬** | L2-2 Shift+Enter ?ㅽ뻾 ???먮룞 ?대┰蹂대뱶 蹂듭궗 |
| 以묎컙 | L2-3 ?대?吏€ 誘몃━蹂닿린 李?(?뺣?/異뺤냼) |
| 以묎컙 | L2-4 OCR 湲곕컲 ?대?吏€ 寃€??(Windows OCR API 濡쒖뺄) |
| ??쓬 | L2-5 ?대┰蹂대뱶 ??ぉ 蹂묓빀 |
### Phase L3 (v1.6.0+) ??李⑥꽭?€ ?곗쿂
| ?곗꽑?쒖쐞 | 湲곕뒫 |
|----------|------|
| ?믪쓬 | ?뚮윭洹몄씤 ?몄빋 媛ㅻ윭由?(?щ궡 NAS/Git) |
| 以묎컙 | ??寃€??AI ?붿빟, ?뚯씪 ?쒓렇, ?ㅽ봽?쇱씤 AI (ONNX + phi-3) |
| ??쓬 | ?ㅼ쨷 ?붿뒪?뚮젅?? ?뚮┝ ?쇳꽣, ?뚯꽦 ?낅젰, 誘몃땲 ?꾩젽 |
---
## 5. ?꾩옱 ?먯씠?꾪듃 ?꾧뎄 ?꾪솴 (25醫?
| 移댄뀒怨좊━ | ?꾧뎄 |
|----------|------|
| ?뚯씪 | `file_read`, `file_write`, `file_list`, `file_search` |
| 肄붾뱶 遺꾩꽍 | `grep_tool`, `search_codebase`, `lsp_goto_definition`, `lsp_find_references`, `lsp_symbols` |
| ?ㅽ뻾 | `process_run`, `build_run`, `git_tool` |
| ?먯씠?꾪듃 | `spawn_agent`, `wait_agents`, `skill_manager` |
| ?뚯뒪??| `test_generate`, `test_run`, `test_analyze` |
| 肄붾뱶 由щ럭 | `code_review` |
| 湲고? | `dev_env_detect`, `mcp_tool`, `hook_execute`, `event_trigger` ??|
**Phase 14 紐⑺몴**: 18醫?異붽? ??**43醫?* (?ㅻТ ?묒뾽 80% ?댁긽 ?먯쑉 ?섑뻾)
---
## 6. 怨꾪쉷 ?섎┰ ?먯튃 (Sigmoid.md 짠8)
| 愿€??| 寃€???ы빆 |
|------|----------|
| 寃쎌웳 ?쒕퉬??| Claw Code, Cursor, Windsurf, Copilot, Raycast 理쒖떊 湲곕뒫 |
| 理쒖떊 ?쇰Ц | SWE-Agent v2, CodeAct, Reflexion, Agentic Coding Survey |
| ?낃퀎 ?쒖? | MCP, SKILL.md, LSP, DAP |
| ?щ궡 ?섍꼍 | ?ㅽ듃?뚰겕 ?쒗븳, 蹂댁븞, Python/Node ?ㅼ튂 ?꾪솴 |
| ???ш린 | ?몄뒪?⑤윭 **150MB ?댄븯** ?좎? (?꾩옱 ~80MB) |
蹂€寃??뚯씪 5媛?
?뚯씪 蹂€寃?
Models/AppSettings.cs EnableMultiPassDocument 湲곕낯媛?true ??false
ViewModels/SettingsViewModel.cs ?꾨줈?쇳떚 ?좎뼵 + Load/Save 留ㅽ븨 異붽?
Views/SettingsWindow.xaml 肄붿썙????뿉 "怨좏뭹吏?臾몄꽌 ?앹꽦" ToggleSwitch 異붽?
Services/Agent/DocumentPlannerTool.cs ?ㅼ젙 OFF ??document_plan ?꾧뎄 鍮꾪솢????LLM??html_create/docx_create ?ъ슜 ?덈궡
Services/Agent/DocumentAssemblerTool.cs ?ㅼ젙 OFF ??document_assemble ?꾧뎄 鍮꾪솢?????숈씪 ?덈궡
?숈옉:
OFF (湲곕낯媛?: document_plan, document_assemble ?몄텧 ???ㅽ뙣 硫붿떆吏€ 諛섑솚 ??LLM??湲곗〈 html_create/docx_create濡???踰덉뿉 ?앹꽦 (v1.5.x ?댁쟾 諛⑹떇)
ON: 硫€?고뙣??臾몄꽌 ?앹꽦 ?꾩껜 ?ъ슜 媛€??(媛쒖슂?믪꽮?섎퀎 ?곸꽭?믪“由?

File diff suppressed because it is too large Load Diff

View File

@@ -1,27 +1,27 @@
# AX Agent 로드맵 (전면 재작성) # AX Agent 로드맵 (전면 재작성)
## 1. 보존 이력 (요약만 유지) ## 1. 보존 이력 (요약만 유지)
- v1.5.0: MCP 연동, 모델 폴백, 대화 분기, 프리뷰/토큰 관리, 에이전트 루프 강화. - v0.5.0: MCP 연동, 모델 폴백, 대화 분기, 프리뷰/토큰 관리, 에이전트 루프 강화.
- v1.5.1: 고급 스킬 확장, 워크플로우 분석기, 런타임 감지. - v0.5.1: 고급 스킬 확장, 워크플로우 분석기, 런타임 감지.
- v1.6.0: 멀티패스 문서 생성, 데이터 피벗/템플릿/이미지 분석 계열 도구 확장. - v0.6.0: 멀티패스 문서 생성, 데이터 피벗/템플릿/이미지 분석 계열 도구 확장.
- v1.7.0: Plan Mode, 병렬 도구 실행, 프로젝트 규칙 주입, 테스트 루프 자동화. - v0.7.0: Plan Mode, 병렬 도구 실행, 프로젝트 규칙 주입, 테스트 루프 자동화.
- v1.7.1: 도구 실행 후 검증 게이트 강화, 피드백 컨텍스트 개선. - v0.7.1: 도구 실행 후 검증 게이트 강화, 피드백 컨텍스트 개선.
- v1.7.2: 컨텍스트 압축/복원 안정화, UX/성능 보완. - v0.7.2: 컨텍스트 압축/복원 안정화, UX/성능 보완.
## 2. 재작성 기준 ## 2. 재작성 기준
- 기준 레퍼런스: `claw-code/claw-code-f5a40b86dede580f6543bf8926c9af017eea9409/src`. - 기준 레퍼런스: `claw-code/claw-code-f5a40b86dede580f6543bf8926c9af017eea9409/src`.
- 목표: 동작 순서, 예외/검증 흐름, 세션 내구성에서 동일 품질 달성. - 목표: 동작 순서, 예외/검증 흐름, 세션 내구성에서 동일 품질 달성.
- 원칙: AX 코드 스타일로 재구성(표현/구조 변경), 기능적 동등성 유지. - 원칙: AX 코드 스타일로 재구성(표현/구조 변경), 기능적 동등성 유지.
## 3. 2026 실행 계획 (v1.7.3 ~ v1.8.0) ## 3. 2026 실행 계획 (v0.7.3 ~ v0.8.0)
| Phase | 참조 대상 (`claw-code`) | AX 적용 위치 | 완료 조건 | 품질 판정 시나리오 | | Phase | 참조 대상 (`claw-code`) | AX 적용 위치 | 완료 조건 | 품질 판정 시나리오 |
|---|---|---|---|---| |---|---|---|---|---|
| A (v1.7.3) Hook/Permission 계약 고도화 | `src/utils/hooks.ts`, `src/utils/hooks/hookEvents.ts`, `src/utils/permissions/PermissionUpdate.ts`, `src/utils/permissions/permissionSetup.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 JSON 출력(`updatedInput`, `updatedPermissions`, `additionalContext`) 반영 완료. Plain text 훅 하위호환 유지. 훅 실패 비차단 유지. | Pre-hook 입력 변형 적용 시 도구 입력이 실제 변경되는지 검증. 권한 업데이트 후 동일 run 내 권한 판정이 즉시 반영되는지 검증. | | A (v0.7.3) Hook/Permission 계약 고도화 | `src/utils/hooks.ts`, `src/utils/hooks/hookEvents.ts`, `src/utils/permissions/PermissionUpdate.ts`, `src/utils/permissions/permissionSetup.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 JSON 출력(`updatedInput`, `updatedPermissions`, `additionalContext`) 반영 완료. Plain text 훅 하위호환 유지. 훅 실패 비차단 유지. | Pre-hook 입력 변형 적용 시 도구 입력이 실제 변경되는지 검증. 권한 업데이트 후 동일 run 내 권한 판정이 즉시 반영되는지 검증. |
| B (v1.7.4) Plan/Run 상태 내구성 강화 | `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` | Plan 단계 승인/수정 이력 영속화. 앱 재시작 후 run 재개 시 마지막 실행 지점 정확 복원. 중복 실행/중복 이벤트 0건. | 실행 중 앱 종료 → 재실행 → 같은 탭/대화에서 run 상태와 최근 실행 이력이 일치하는지 검증. | | B (v0.7.4) Plan/Run 상태 내구성 강화 | `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` | Plan 단계 승인/수정 이력 영속화. 앱 재시작 후 run 재개 시 마지막 실행 지점 정확 복원. 중복 실행/중복 이벤트 0건. | 실행 중 앱 종료 → 재실행 → 같은 탭/대화에서 run 상태와 최근 실행 이력이 일치하는지 검증. |
| C (v1.7.5) 세션/이벤트 로그 정규화 | `src/utils/sessionStorage.ts`(이벤트 기록/복원 규약), `src/utils/hooks/hookEvents.ts` | `src/AxCopilot/Models/ChatModels.cs`, `src/AxCopilot/Services/ChatSessionStateService.cs`, `src/AxCopilot/Services/AppStateService.cs` | 이벤트 스키마 정리(도구 호출/결과/권한/훅/요약). replay 시 순서 불일치 0건. run 단위 요약 리포트 생성 가능 상태. | 동일 세션을 여러 번 로드해도 실행 이력 순서/상태가 변하지 않는지 검증. | | C (v0.7.5) 세션/이벤트 로그 정규화 | `src/utils/sessionStorage.ts`(이벤트 기록/복원 규약), `src/utils/hooks/hookEvents.ts` | `src/AxCopilot/Models/ChatModels.cs`, `src/AxCopilot/Services/ChatSessionStateService.cs`, `src/AxCopilot/Services/AppStateService.cs` | 이벤트 스키마 정리(도구 호출/결과/권한/훅/요약). replay 시 순서 불일치 0건. run 단위 요약 리포트 생성 가능 상태. | 동일 세션을 여러 번 로드해도 실행 이력 순서/상태가 변하지 않는지 검증. |
| D (v1.7.6) 명령/도구 선택 정확도 개선 | `src/commands.ts`, `src/Tool.ts` | `src/AxCopilot/Services/Agent/AgentLoopService.cs`, `src/AxCopilot/Services/Agent/AgentLoopParallelExecution.cs`, `src/AxCopilot/Services/LlmService.ToolUse.cs` | 도구 별칭 정규화 규칙 강화. unknown-tool 재시도 루프 방지. 실패 유형별 복구 흐름 표준화. | 오타/별칭/비활성 도구 요청 시 복구 프롬프트로 정상 도구로 수렴하는지 검증. | | D (v0.7.6) 명령/도구 선택 정확도 개선 | `src/commands.ts`, `src/Tool.ts` | `src/AxCopilot/Services/Agent/AgentLoopService.cs`, `src/AxCopilot/Services/Agent/AgentLoopParallelExecution.cs`, `src/AxCopilot/Services/LlmService.ToolUse.cs` | 도구 별칭 정규화 규칙 강화. unknown-tool 재시도 루프 방지. 실패 유형별 복구 흐름 표준화. | 오타/별칭/비활성 도구 요청 시 복구 프롬프트로 정상 도구로 수렴하는지 검증. |
| E (v1.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` | 코드/문서 작업별 완료 게이트를 증거 기반으로 고정. 내부 벤치마크 목표 성공률 충족. 완료 응답 근거 누락률 최소화. | 코드수정/문서생성/권한거부/실패복구 혼합 시나리오에서 조기 완료 없이 근거 기반 종료하는지 검증. | | E (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` | 코드/문서 작업별 완료 게이트를 증거 기반으로 고정. 내부 벤치마크 목표 성공률 충족. 완료 응답 근거 누락률 최소화. | 코드수정/문서생성/권한거부/실패복구 혼합 시나리오에서 조기 완료 없이 근거 기반 종료하는지 검증. |
## 4. 공통 검증 규칙 ## 4. 공통 검증 규칙
- 모든 단계: `dotnet build` 경고 0/오류 0. - 모든 단계: `dotnet build` 경고 0/오류 0.
@@ -63,3 +63,4 @@
- 2026-04-04(추가): `/mcp add/remove/reset` 확장, `tool_search` 기반 복구 프롬프트 강화, 슬래시 힌트 밀도(`rich/balanced/simple`) 연동. - 2026-04-04(추가): `/mcp add/remove/reset` 확장, `tool_search` 기반 복구 프롬프트 강화, 슬래시 힌트 밀도(`rich/balanced/simple`) 연동.
- 2026-04-04(추가2): /mcp login/logout 세션 인증 토큰 지원, /mcp status·/chrome 진단에 Auth(Session) 반영. - 2026-04-04(추가2): /mcp login/logout 세션 인증 토큰 지원, /mcp status·/chrome 진단에 Auth(Session) 반영.
- 2026-04-04(추가3): 권한 UX 통합(/permissions·/allowed-tools·/settings permissions), 복구 혼합 테스트 보강, 좌측 패널 실패 필터 노출 정책 rich 전용으로 정렬. - 2026-04-04(추가3): 권한 UX 통합(/permissions·/allowed-tools·/settings permissions), 복구 혼합 테스트 보강, 좌측 패널 실패 필터 노출 정책 rich 전용으로 정렬.

View File

@@ -1,132 +0,0 @@
# 자동 모델 라우팅 (Auto Model Router) 개발자 가이드
## 개요
자동 모델 라우팅은 사용자 메시지의 유형(코딩/번역/분석 등)을 키워드 기반으로 감지하여,
해당 유형에 최적화된 AI 모델로 자동 전환하는 기능입니다.
**현재 상태**: 잠금 (설정 UI에 표시되나 활성화 불가)
**활성화 조건**: 사내 Ollama/vLLM 서버 확정 후 개발자가 아래 절차에 따라 활성화
---
## 활성화 절차
### 1단계: 사내 모델 능력 점수 등록
**파일**: `src/AxCopilot/Services/ModelRouterService.cs`
**메서드**: `GetDefaultCapabilities()`
주석 처리된 Ollama/vLLM 예시를 해제하고 실제 모델 정보로 수정:
```csharp
// ── 사내 Ollama/vLLM (예시 — 서버 확정 후 수정) ──
new()
{
Service = "ollama", // "ollama" 또는 "vllm"
Model = "codellama:34b", // 실제 모델 ID
Alias = "CodeLlama 34B", // UI 표시명
Scores = new()
{
["coding"] = 0.85, // 코딩 적합도 (0.0~1.0)
["translation"] = 0.40, // 번역 적합도
["analysis"] = 0.55, // 분석 적합도
["creative"] = 0.35, // 창작 적합도
["document"] = 0.40, // 문서 작성 적합도
["math"] = 0.50, // 수학/계산 적합도
}
},
```
**점수 가이드라인**:
| 점수 | 의미 |
|------|------|
| 0.90+ | 해당 분야 최고 수준 |
| 0.70~0.89 | 우수 |
| 0.50~0.69 | 보통 |
| 0.30~0.49 | 기본 가능하나 비추천 |
| 0.30 미만 | 부적합 |
**인텐트 카테고리 키**:
- `coding` — 코드 작성/디버그/리팩토링
- `translation` — 번역/다국어
- `analysis` — 데이터 분석/요약/비교
- `creative` — 창작 글쓰기/스토리/에세이
- `document` — 보고서/문서/제안서 작성
- `math` — 수학/계산/증명
### 2단계: 설정 UI 잠금 해제
**파일**: `src/AxCopilot/Views/SettingsWindow.xaml`
"자동 모델 라우팅" 섹션에서 다음을 변경:
1.`Border``Opacity="0.5"` 제거 (또는 `Opacity="1.0"`으로 변경)
2. `CheckBox``IsEnabled="False" IsHitTestVisible="False"` 제거
3. `Slider``IsEnabled="False"` 제거
4. 힌트 텍스트를 "비활성 시 항상 현재 선택된 모델을 사용합니다."로 변경
### 3단계: 기본값 활성화 (선택)
사용자가 직접 활성화하도록 할 수도 있지만, 기본 활성화하려면:
**파일**: `src/AxCopilot/Models/AppSettings.cs`
```csharp
// 변경 전
public bool EnableAutoRouter { get; set; } = false;
// 변경 후
public bool EnableAutoRouter { get; set; } = true;
```
---
## 아키텍처 요약
```
사용자 메시지
IntentDetector.Detect(message) ← 키워드 매칭으로 인텐트 감지
↓ (category, confidence)
ModelRouterService.Route(message) ← 후보 모델 점수 비교 → 최적 모델 선택
↓ ModelRouteResult
ChatWindow.SendMessageAsync() ← PushRouteOverride → LLM 호출 → ClearRouteOverride
LlmService.ResolveService/ResolveModel ← 오버라이드 있으면 해당 서비스/모델 사용
```
### 핵심 파일
| 파일 | 역할 |
|------|------|
| `Services/IntentDetector.cs` | 키워드 기반 인텐트 분류기 |
| `Services/ModelRouterService.cs` | 모델 라우팅 로직 + 하드코딩 기본값 |
| `Services/LlmService.cs` | PushRouteOverride/ClearRouteOverride |
| `Services/LlmService.ToolUse.cs` | 에이전트 도구 호출 시 오버라이드 반영 |
| `Models/AppSettings.cs` | EnableAutoRouter, AutoRouterConfidence, ModelCapability |
| `Views/ChatWindow.xaml.cs` | 라우터 호출 및 상태 표시 |
| `Views/SettingsWindow.xaml` | 설정 UI (현재 잠금) |
### 키워드 추가/수정
**파일**: `Services/IntentDetector.cs`
`_keywords` 딕셔너리에서 카테고리별 키워드와 가중치를 수정할 수 있습니다.
한국어 키워드는 `string.Contains`로 매칭 (조사 붙어도 감지),
영어 키워드는 단어 경계 매칭 (공백 분리).
---
## 테스트 방법
1. `GetDefaultCapabilities()`에 사내 모델 추가
2. 설정 UI 잠금 해제
3. `dotnet build` — 경고/오류 0 확인
4. 앱 실행 → 설정 → 자동 라우팅 활성화
5. 테스트 시나리오:
- "이 함수를 리팩토링해줘" → coding 감지 → 코드 특화 모델
- "이 문장을 영어로 번역해줘" → translation 감지
- "이 데이터를 분석해줘" → analysis 감지
- "안녕하세요" → general → 기본 모델 유지 (라우팅 안함)
6. 상태바에 "라우팅: coding → [모델명]" 표시 확인

View File

@@ -0,0 +1,38 @@
# AX Agent UI/UX 점검 체크리스트 (2026-04-04)
## A. 레이아웃 단순화
- [x] Cowork 좌측 메뉴는 `작업 유형 선택` 1개만 노출된다.
- [x] Code 좌측 메뉴는 `코드 작업 유형` 1개만 노출된다.
- [x] Chat 좌측의 실패/진행 필터 행은 기본 숨김이다.
- [x] 상단 우측 설정 버튼은 제거되고 좌측 하단 설정 아이콘으로 이동했다.
## B. 권한 UX
- [x] 권한 목록에서 `Deny`가 맨 위에 노출된다.
- [x] Deny 설명은 `읽기만 허용, 생성/수정/삭제 차단` 문구로 통일된다.
- [x] Deny 색상은 녹색 계열로 표시된다.
- [x] Auto/권한 경고는 하단 바가 아닌 상단 배너로 표시된다.
- [x] 권한 변경 시 1회 클릭으로 즉시 UI가 반영된다.
## C. AX Agent 설정창
- [x] 깨진 문자열 없이 한국어 라벨로 정상 노출된다.
- [x] 표현 수준 `풍부하게/적절하게/간단하게`를 선택할 수 있다.
- [x] `vLLM SSL 인증서 검증 생략 허용` 토글이 있다.
- [x] `자동 compact`, `압축 임계치`, `최대 토큰`, `오류 재시도` 값을 저장할 수 있다.
## D. 전체 설정창
- [x] 좌측 사이드바에 `설정 표현`(풍부/적절/간단) 전환 UI가 추가됐다.
- [x] 표현 수준에 따라 탭 가시성이 조절된다.
- [x] 표현 수준에 따라 AX Agent 서브탭 가시성이 조절된다.
- [x] AI 비활성 시 AX Agent 탭 숨김 정책과 충돌하지 않는다.
## E. 빌드/테스트
- [x] `dotnet build` 경고 0 / 오류 0.
- [x] `dotnet test` 통과 (425 passed, 0 failed).
## F. 수동 시나리오 (다음 점검)
- [x] External 모드 전환 후 `? 검색` 동작 확인. (자동 테스트: OperationModeReadinessTests)
- [x] Internal 모드 복귀 후 외부 검색 차단 확인. (자동 테스트: OperationModeReadinessTests + OperationModePolicyTests)
- [x] vLLM SSL 우회 플래그 연동 확인. (자동 테스트: LlmRuntimeOverrideTests ResolveServerInfo 2건)
- [x] `/compact` 명령 파싱/라우팅 확인. (자동 테스트: ChatWindowSlashPolicyTests)
- [ ] 모델 등록(vLLM + SSL 우회) 후 실제 네트워크 호출 성공 확인. (실환경 수동 점검 필요)
- [ ] `/compact` 실행 후 UI 토큰/요약 표시 갱신 확인. (UI 수동 점검 필요)

View File

@@ -1,253 +0,0 @@
<!DOCTYPE html>
<html lang="ko"><head><meta charset="utf-8">
<title>AX_Commander_개발문서</title>
<style>
body { font-family: "맑은 고딕", "Malgun Gothic", sans-serif; font-size: 11pt; color: #1a1a1a; line-height: 1.7; max-width: 900px; margin: 0 auto; padding: 40px 20px; }
h1 { font-size: 22pt; color: #1F3864; border-bottom: 3px solid #4472C4; padding-bottom: 8px; margin-top: 32px; }
h2 { font-size: 16pt; color: #2E75B6; border-bottom: 2px solid #B8CCE4; padding-bottom: 4px; margin-top: 28px; }
h3 { font-size: 13pt; color: #44546A; margin-top: 22px; }
h4 { font-size: 12pt; color: #44546A; margin-top: 18px; }
p { margin: 6px 0; }
table { border-collapse: collapse; width: 100%; margin: 12px 0; }
th { background: #2E75B6; color: white; padding: 8px 10px; text-align: left; font-size: 10pt; }
td { padding: 6px 10px; border: 1px solid #D6E4F0; font-size: 10pt; }
tr:nth-child(even) td { background: #EBF3FB; }
ul, ol { margin: 6px 0 6px 24px; }
li { margin: 3px 0; }
code { font-family: Consolas, "D2Coding", monospace; background: #F0F0F0; padding: 1px 4px; border-radius: 3px; font-size: 10pt; }
.footer { text-align: right; color: #999; font-size: 9pt; margin-top: 40px; border-top: 1px solid #ddd; padding-top: 8px; }
</style></head><body>
<p>&lt;b&gt;AX Commander&lt;/b&gt;</p>
<p>개발 문서</p>
<p>Windows 전용 시맨틱 런처 &amp; 워크스페이스 매니저</p>
<h1>사내 전용 프로그램 개발 원칙</h1>
<p>AX Commander는 사내 전용 프로그램입니다. 아래 원칙을 반드시 준수하여 개발하세요.</p>
<h2>외부 연결 금지</h2>
<table>
<tr><th><b>금지 항목</b></th><th><b>설명</b></th></tr>
<tr><td>외부 HTTP/HTTPS 호출</td><td>HttpClient, WebClient, HttpWebRequest 등으로 외부 서버에 요청 금지</td></tr>
<tr><td>외부 SDK 연동</td><td>서드파티 클라우드 SDK, AI API, SaaS 라이브러리 사용 금지</td></tr>
<tr><td>원격 플러그인 다운로드</td><td>런타임에 외부에서 DLL/코드 다운로드 금지</td></tr>
<tr><td>텔레메트리 / 오류 수집</td><td>사용 데이터를 외부 서버로 전송하는 일체의 코드 금지</td></tr>
<tr><td>NuGet 패키지</td><td>외부 네트워크 통신이 내장된 패키지 신규 도입 금지</td></tr>
</table>
<p>허용: 로컬 파일 시스템 접근, Windows API (P/Invoke), 사내 인트라넷 URL, 로컬 프로세스 실행</p>
<h1>아키텍처 개요</h1>
<h2>핵심 컴포넌트</h2>
<table>
<tr><th><b>컴포넌트</b></th><th><b>역할</b></th></tr>
<tr><td>App.xaml.cs</td><td>앱 진입점, 서비스 초기화, 트레이 아이콘 관리</td></tr>
<tr><td>LauncherWindow</td><td>WPF 메인 UI (AllowsTransparency, WindowStyle=None)</td></tr>
<tr><td>CommandResolver</td><td>프리픽스 기반 핸들러 라우팅 테이블</td></tr>
<tr><td>FuzzyEngine</td><td>퍼지 검색 + 한국어 초성(ㅅㄷ) 매칭</td></tr>
<tr><td>IndexService</td><td>파일 시스템 인덱서 + FileSystemWatcher</td></tr>
<tr><td>SettingsService</td><td>settings.json 로드/저장 (자동 백업)</td></tr>
<tr><td>ClipboardHistoryService</td><td>WM_CLIPBOARDUPDATE 훅 기반 히스토리</td></tr>
<tr><td>PluginHost</td><td>DLL/JSON 스킬 플러그인 로더</td></tr>
<tr><td>NotificationService</td><td>트레이 풍선 알림 (타이머/알람)</td></tr>
</table>
<h1>프리픽스 핸들러 치트시트</h1>
<table>
<tr><th><b>프리픽스</b></th><th><b>핸들러</b></th><th><b>기능</b></th></tr>
<tr><td>(없음)</td><td>FuzzyEngine</td><td>앱·파일 퍼지 검색 + 한국어 초성</td></tr>
<tr><td>=</td><td>CalculatorHandler</td><td>수식 계산, 단위/통화 변환</td></tr>
<tr><td>/</td><td>SystemCommandHandler</td><td>lock, sleep, restart, shutdown, timer, alarm</td></tr>
<tr><td>;</td><td>SnippetHandler</td><td>텍스트 스니펫 키워드 검색 & 붙여넣기</td></tr>
<tr><td>#</td><td>ClipboardHistoryHandler</td><td>클립보드 히스토리 검색 & 병합</td></tr>
<tr><td>@</td><td>UrlAliasHandler</td><td>URL 단축키</td></tr>
<tr><td>~</td><td>FolderAliasHandler</td><td>폴더 단축키</td></tr>
<tr><td>></td><td>BatchHandler</td><td>명령 실행 / 배치 단축키</td></tr>
<tr><td>$</td><td>ClipboardHandler</td><td>클립보드 텍스트 12종 변환</td></tr>
<tr><td>!</td><td>WorkspaceHandler</td><td>워크스페이스 저장·복원</td></tr>
<tr><td>emoji</td><td>EmojiHandler</td><td>이모지 피커 (300+)</td></tr>
<tr><td>color</td><td>ColorHandler</td><td>HEX/RGB/HSL/HSV 색상 변환</td></tr>
<tr><td>recent</td><td>RecentFilesHandler</td><td>Windows 최근 파일</td></tr>
<tr><td>note</td><td>NoteHandler</td><td>빠른 메모 저장·조회</td></tr>
<tr><td>uninstall</td><td>UninstallHandler</td><td>앱 제거 (레지스트리)</td></tr>
<tr><td>port</td><td>PortHandler</td><td>TCP 포트/프로세스 점검</td></tr>
<tr><td>env</td><td>EnvHandler</td><td>환경변수 조회</td></tr>
<tr><td>json</td><td>JsonHandler</td><td>JSON 검증/포맷/미니파이</td></tr>
<tr><td>encode</td><td>EncodeHandler</td><td>base64/url/hex/md5/sha256 인코딩</td></tr>
<tr><td>snap</td><td>SnapHandler</td><td>창 배치 레이아웃</td></tr>
<tr><td>cap</td><td>ScreenCaptureHandler</td><td>화면/창/스크롤 캡처</td></tr>
<tr><td>help</td><td>HelpHandler</td><td>도움말</td></tr>
</table>
<h1>설정 스키마 (settings.json)</h1>
<p>경로: %APPDATA%\AxCommander\settings.json</p>
<table>
<tr><th><b></b></th><th><b>타입</b></th><th><b>설명</b></th></tr>
<tr><td>version</td><td>string</td><td>설정 버전</td></tr>
<tr><td>hotkey</td><td>string</td><td>글로벌 단축키 (기본: Alt+Space)</td></tr>
<tr><td>launcher.opacity</td><td>float</td><td>창 투명도 (0.0~1.0, 기본 0.96)</td></tr>
<tr><td>launcher.maxResults</td><td>int</td><td>최대 결과 수 (기본 7)</td></tr>
<tr><td>launcher.theme</td><td>string</td><td>테마 (system|dark|light|oled|nord|monokai|catppuccin|sepia|alfred|alfredlight|custom)</td></tr>
<tr><td>launcher.position</td><td>string</td><td>런처 위치 (center-top|center|bottom)</td></tr>
<tr><td>launcher.webSearchEngine</td><td>string</td><td>기본 검색 엔진 (g|n|d|y|w)</td></tr>
<tr><td>launcher.snippetAutoExpand</td><td>bool</td><td>스니펫 자동 확장 활성화</td></tr>
<tr><td>indexPaths</td><td>string[]</td><td>인덱싱할 폴더 경로 목록</td></tr>
<tr><td>aliases</td><td>object[]</td><td>URL/폴더/배치 단축키 목록</td></tr>
<tr><td>snippets</td><td>object[]</td><td>텍스트 스니펫 목록</td></tr>
<tr><td>clipboardHistory.enabled</td><td>bool</td><td>클립보드 히스토리 활성화</td></tr>
<tr><td>clipboardHistory.maxItems</td><td>int</td><td>최대 보관 개수 (기본 50)</td></tr>
<tr><td>plugins</td><td>object[]</td><td>DLL 플러그인 경로 목록</td></tr>
</table>
<h1>테마 시스템</h1>
<h2>내장 테마 목록</h2>
<table>
<tr><th><b>테마 키</b></th><th><b>이름</b></th><th><b>특징</b></th></tr>
<tr><td>system</td><td>시스템</td><td>Windows 다크/라이트 모드 자동 감지</td></tr>
<tr><td>dark</td><td>Dark</td><td>딥 네이비 다크 (기본)</td></tr>
<tr><td>light</td><td>Light</td><td>클린 화이트 라이트</td></tr>
<tr><td>oled</td><td>OLED</td><td>순수 블랙 (OLED 절전)</td></tr>
<tr><td>nord</td><td>Nord</td><td>Arctic 컬러 팔레트</td></tr>
<tr><td>monokai</td><td>Monokai</td><td>Sublime Text 스타일</td></tr>
<tr><td>catppuccin</td><td>Catppuccin</td><td>Mocha 따뜻한 파스텔</td></tr>
<tr><td>sepia</td><td>Sepia</td><td>황갈색 아날로그 감성</td></tr>
<tr><td>alfred</td><td>Alfred Dark</td><td>Alfred 5 다크 팔레트 (딥 퍼플-차콜)</td></tr>
<tr><td>alfredlight</td><td>Alfred Light</td><td>Alfred 5 라이트 팔레트 (클린 화이트)</td></tr>
<tr><td>custom</td><td>커스텀</td><td>14개 색상 완전 커스터마이징</td></tr>
</table>
<h2>테마 ResourceKey 목록 (14개)</h2>
<table>
<tr><th><b></b></th><th><b>용도</b></th></tr>
<tr><td>LauncherBackground</td><td>전체 배경</td></tr>
<tr><td>ItemBackground</td><td>항목 기본 배경</td></tr>
<tr><td>ItemSelectedBackground</td><td>선택된 항목 배경</td></tr>
<tr><td>ItemHoverBackground</td><td>호버 배경</td></tr>
<tr><td>PrimaryText</td><td>주 텍스트 색상</td></tr>
<tr><td>SecondaryText</td><td>보조 텍스트 색상</td></tr>
<tr><td>PlaceholderText</td><td>플레이스홀더 텍스트</td></tr>
<tr><td>AccentColor</td><td>강조색 (선택 바, 배지 등)</td></tr>
<tr><td>SeparatorColor</td><td>구분선 색상</td></tr>
<tr><td>HintBackground</td><td>ESC 힌트 배경</td></tr>
<tr><td>HintText</td><td>ESC 힌트 텍스트</td></tr>
<tr><td>BorderColor</td><td>창 테두리</td></tr>
<tr><td>ScrollbarThumb</td><td>스크롤바 색상</td></tr>
<tr><td>ShadowColor</td><td>드롭 섀도우 색상</td></tr>
</table>
<h2>새 테마 추가 절차</h2>
<ul>
<li>1. Themes/MyTheme.xaml 작성 (위 14개 키 모두 정의)</li>
<li>2. AxCommander.csproj에 &lt;Resource Include=&quot;Themes/MyTheme.xaml&quot;/&gt; 추가</li>
<li>3. LauncherWindow.xaml.cs → GetEffectiveThemeName() switch에 케이스 추가</li>
<li>4. SettingsViewModel.ThemeCards 목록에 ThemeCardModel 항목 추가</li>
</ul>
<h1>보안 고려사항</h1>
<table>
<tr><th><b>항목</b></th><th><b>구현</b></th></tr>
<tr><td>URL 스킴 검증</td><td>http, https, ftp, ms-settings, mailto, file 허용. javascript: 등 차단</td></tr>
<tr><td>PowerShell 인젝션 방지</td><td>> 명령어 입력의 " 이스케이프 처리</td></tr>
<tr><td>ReDoS 방지</td><td>사용자 정의 Regex에 TimeSpan 타임아웃 적용</td></tr>
<tr><td>자격증명 저장</td><td>Windows Credential Manager (advapi32.dll, DPAPI 암호화)</td></tr>
<tr><td>클립보드 민감 데이터</td><td>Regex 기반 제외 패턴 — 신용카드·IP 등 기본 차단</td></tr>
<tr><td>API 타임아웃</td><td>JSON 스킬 HTTP 요청 3초 제한</td></tr>
<tr><td>시스템 명령 확인</td><td>재시작·종료·로그아웃 실행 전 MessageBox.Show 2단계 확인</td></tr>
</table>
<h1>단위 테스트</h1>
<table>
<tr><th><b>파일</b></th><th><b>테스트 수</b></th><th><b>대상</b></th></tr>
<tr><td>FuzzyEngineTests.cs</td><td>19</td><td>CalculateScore, FuzzyMatch, 초성 검색</td></tr>
<tr><td>ClipboardTransformTests.cs</td><td>21</td><td>12개 내장 변환기</td></tr>
<tr><td>SettingsServiceTests.cs</td><td>17</td><td>기본값, JSON 직렬화 라운드트립</td></tr>
</table>
<h1>v1.6 3차 전체 점검 수정</h1>
<p>빌드 오류 3건, 컴파일 경고 1건, 런타임 버그 6건, 보안 이슈 2건을 수정하였습니다.</p>
<h2>컴파일 오류 수정</h2>
<table>
<tr><th><b>파일</b></th><th><b>수정 내용</b></th><th><b>오류 코드</b></th></tr>
<tr><td>UsageRankingService.cs</td><td>using System.IO; 누락 추가</td><td>CS0103</td></tr>
<tr><td>SettingsWindow.xaml.cs</td><td>Key.Enter or Key.Return 단일 arm으로 통합</td><td>CS8510</td></tr>
<tr><td>ContextManager.cs</td><td>EnumDisplayMonitors 람다 타입 혼합 수정</td><td>CS0748</td></tr>
</table>
<h2>런타임 버그 수정</h2>
<table>
<tr><th><b>파일</b></th><th><b>버그</b></th><th><b>수정</b></th></tr>
<tr><td>JsonSkillLoader.cs</td><td>field[0 형식 오류 방지 (IndexOf 반환 -1)</td><td>closingIdx < 0 가드 추가</td></tr>
<tr><td>ClipboardHistoryService.cs</td><td>_ignoreNext 스레드 비안전, 이중 초기화</td><td>volatile + 이중 초기화 가드</td></tr>
<tr><td>IndexService.cs</td><td>ScheduleRebuild 타이머 비원자적 교체</td><td>_timerLock으로 원자적 교체</td></tr>
<tr><td>SettingsService.cs</td><td>백업 실패 무음 catch</td><td>LogService.Warn으로 기록</td></tr>
<tr><td>LauncherWindow.xaml.cs</td><td>Window에 RenderTransform 설정 시 InvalidOperationException</td><td>Content(루트 Border)에 적용</td></tr>
</table>
<h2>보안 수정</h2>
<table>
<tr><th><b>파일</b></th><th><b>수정 내용</b></th></tr>
<tr><td>JsonSkillLoader.cs</td><td>ActionUrl 실행 전 http/https 스킴 검증 추가</td></tr>
<tr><td>SettingsWindow.xaml.cs</td><td>NewIndexPathBox null 역참조 방어 처리</td></tr>
</table>
<h1>빌드 및 배포</h1>
<h2>빌드 명령</h2>
<p># 개발 실행</p>
<p>dotnet run --project src/AxCommander</p>
<p># Release 단일 파일 빌드 (self-contained)</p>
<p>dotnet publish src/AxCommander -c Release -r win-x64 --self-contained</p>
<p># 단위 테스트</p>
<p>dotnet test src/AxCommander.Tests</p>
<h2>데이터 경로</h2>
<table>
<tr><th><b>용도</b></th><th><b>경로</b></th></tr>
<tr><td>설정 파일</td><td>%APPDATA%\AxCommander\settings.json</td></tr>
<tr><td>로그</td><td>%APPDATA%\AxCommander\logs\app-YYYY-MM-DD.log</td></tr>
<tr><td>스킬 파일</td><td>%APPDATA%\AxCommander\skills\*.skill.json</td></tr>
<tr><td>메모</td><td>%APPDATA%\AxCommander\notes.txt</td></tr>
<tr><td>사용 빈도</td><td>%APPDATA%\AxCommander\usage.json</td></tr>
<tr><td>크래시 덤프</td><td>%APPDATA%\AxCommander\crashes\</td></tr>
</table>
<h2>요구 사항</h2>
<ul>
<li>OS: Windows 10 20H2 이상 (Windows 11 권장)</li>
<li>.NET 8.0 Runtime (Self-contained 빌드 시 불필요)</li>
</ul>
<h1>플러그인 개발</h1>
<h2>DLL 플러그인</h2>
<p>AxCommander.SDK를 참조하여 IActionHandler 인터페이스를 구현합니다.</p>
<p>using AxCommander.SDK;</p>
<p>public class MyHandler : IActionHandler</p>
<p>{</p>
<p> public string? Prefix =&gt; &quot;?&quot;; // 트리거 프리픽스</p>
<p> public PluginMetadata Metadata =&gt; new(&quot;MyPlugin&quot;, &quot;설명&quot;, &quot;1.0&quot;);</p>
<p> public async Task&lt;IEnumerable&lt;LauncherItem&gt;&gt; GetItemsAsync(string query, CancellationToken ct)</p>
<p> {</p>
<p> return [ new LauncherItem(&quot;제목&quot;, &quot;부제목&quot;, null, myData, Symbol: &quot;\uE721&quot;) ];</p>
<p> }</p>
<p> public Task ExecuteAsync(LauncherItem item, CancellationToken ct)</p>
<p> {</p>
<p> return Task.CompletedTask;</p>
<p> }</p>
<p>}</p>
<h2>JSON 스킬 (코드 없이 HTTP API 연동)</h2>
<p>경로: %APPDATA%\AxCommander\skills\*.skill.json</p>
<p>{</p>
<p> &quot;id&quot;: &quot;my-api&quot;,</p>
<p> &quot;name&quot;: &quot;API 연동&quot;,</p>
<p> &quot;prefix&quot;: &quot;?&quot;,</p>
<p> &quot;request&quot;: {</p>
<p> &quot;method&quot;: &quot;GET&quot;,</p>
<p> &quot;url&quot;: &quot;https://intranet.example.com/api?q={{INPUT}}&quot;</p>
<p> },</p>
<p> &quot;response&quot;: {</p>
<p> &quot;resultsPath&quot;: &quot;items&quot;,</p>
<p> &quot;titleField&quot;: &quot;name&quot;,</p>
<p> &quot;subtitleField&quot;: &quot;description&quot;,</p>
<p> &quot;actionUrl&quot;: &quot;url&quot;</p>
<p> },</p>
<p> &quot;cache&quot;: 30</p>
<p>}</p>
<p>AX Commander &#183; .NET 8.0 &#183; WPF &#183; MIT License</p>
<p class='footer'>Converted from: AX_Commander_개발문서.docx</p>
</body></html>

View File

@@ -1,282 +0,0 @@
<!-- WordPress ?명솚 HTML ???ъ슜???뺤쓽 HTML 釉붾줉??遺숈뿬?j린 -->
<div style="max-width:860px; margin:0 auto; font-family:'留묒? 怨좊뵓','Malgun Gothic',sans-serif; font-size:16px; color:#1a1a1a; line-height:1.8;">
<!-- ?ㅻ뜑 -->
<div style="text-align:center; padding:40px 20px 30px; background:linear-gradient(135deg,#1F3864 0%,#2E75B6 100%); border-radius:12px; margin-bottom:32px;">
<h1 style="color:#fff; font-size:28px; margin:0 0 8px;">AX Copilot</h1>
<p style="color:#B8CCE4; font-size:16px; margin:0 0 4px;">?ㅻ낫???섎굹濡?紐⑤뱺 ?낅Т瑜??쒖뼱?섎뒗 ?щ궡 ?꾩슜 AI ?곗쿂</p>
<p style="color:#8FAFD4; font-size:13px; margin:0;">諛깆듅??쨌 AX?곌뎄??AI?€ 쨌 SW Architect</p>
</div>
<!-- 1. ??留뚮뱾?덈뒗媛€ -->
<h2 style="font-size:22px; color:#1F3864; border-bottom:3px solid #4472C4; padding-bottom:6px; margin-top:36px;">1. ??留뚮뱾?덈뒗媛€</h2>
<p>?낅Т 以?媛€??留롮씠 諛섎났?섎뒗 ?숈옉??萸먮깘怨?臾쇱쑝硫? ?€遺€遺꾩쓽 ?щТ吏?吏곸썝???대젃寃??€?듯빀?덈떎:</p>
<ul>
<li>?깆쓣 李얠븘???ㅽ뻾?섍린</li>
<li>?뚯씪??李얠븘???닿린</li>
<li>?대┰蹂대뱶?먯꽌 蹂듭궗???댁슜 ?ㅼ떆 李얘린</li>
<li>怨꾩궛湲??닿퀬 媛꾨떒??怨꾩궛?섍린</li>
<li>AI?먭쾶 吏덈Ц?섎젮硫?釉뚮씪?곗? ?닿퀬 蹂꾨룄 ?쒕퉬???묒냽?섍린</li>
</ul>
<p>??紐⑤뱺 ?숈옉??留덉슦?ㅻ? ?ㅺ퀬, ?먯깋湲곕? ?닿퀬, ?대┃?섍퀬???ㅻ낫?쒖뿉???먯쓣 ???섍? ?놁뒿?덈떎.</p>
<p><strong>AX Copilot</strong>?€ ??臾몄젣瑜??닿껐?⑸땲?? <strong>Alt+Space</strong> ??踰덉쑝濡?紐⑤뱺 寃껋쓣 ?ㅻ낫?쒕줈 ?쒖뼱?????덈뒗 ?곗쿂?댁옄, <strong>AI ?€??AX Agent)</strong>源뚯? ?듯빀???щ궡 ?꾩슜 ?낅Т ?꾩슦誘몄엯?덈떎.</p>
<p>???꾨줈?앺듃??LLM(Sigmoid)怨??④퍡 湲고쉷遺€??援ы쁽源뚯? 吏꾪뻾???щ?濡? AI?€ ?묒뾽?섎뒗 ?뚰봽?몄썾??媛쒕컻???ㅼ젣 寃쏀뿕???닿퀬 ?덉뒿?덈떎.</p>
<!-- 2. AX Copilot?대?? -->
<h2 style="font-size:22px; color:#1F3864; border-bottom:3px solid #4472C4; padding-bottom:6px; margin-top:36px;">2. AX Copilot?대??</h2>
<p><strong>Alt+Space</strong>瑜??꾨Ⅴ硫??붾㈃ ?곷떒??源붾걫???곗쿂 李?<strong>AX Commander</strong>)???섑??⑸땲?? ?ш린???먰븯??紐낅졊???낅젰?섎㈃ ?⑸땲??</p>
<ul>
<li>???대쫫??移섎㈃ ?깆씠 ?ㅽ뻾?⑸땲??(?쒓뎅??珥덉꽦 寃€?됰룄 媛€??)</li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">=</code> 瑜?移섎㈃ 怨꾩궛湲곌? ?⑸땲??/li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">#</code> ??移섎㈃ ?대┰蹂대뱶 ?덉뒪?좊━媛€ ?섑??⑸땲??/li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">cap region</code> ??移섎㈃ ?곸뿭 罹≪쿂媛€ ?쒖옉?⑸땲??/li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">win chrome</code> ??移섎㈃ ?щ\ 李쎌쑝濡?利됱떆 ?꾪솚?⑸땲??/li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">!</code> ??移섎㈃ AI ?€??AX Agent)媛€ ?대┰?덈떎</li>
</ul>
<p>?꾨━?쎌뒪(?묐몢?? 湲곕컲?쇰줈 <strong>45媛??댁긽??紐낅졊??/strong>瑜?吏€?먰븯硫? ?쒓뎅??珥덉꽦 寃€???끹꽬 ???ㅼ젙)怨??쇱? 留ㅼ묶???⑸땲??</p>
<!-- 3. ?듭떖 湲곕뒫 ?뚭컻 -->
<h2 style="font-size:22px; color:#1F3864; border-bottom:3px solid #4472C4; padding-bottom:6px; margin-top:36px;">3. ?듭떖 湲곕뒫 ?뚭컻</h2>
<p>AX Copilot?€ ?⑥닚?????곗쿂媛€ ?꾨떃?덈떎. ?꾨옒??移댄뀒怨좊━蹂?二쇱슂 湲곕뒫?낅땲??</p>
<!-- 3-1. AI ?€??(AX Agent) -->
<h3 style="font-size:18px; color:#2E75B6; margin-top:24px;">AI ?€????AX Agent <span style="background:#2E75B6; color:#fff; font-size:12px; padding:2px 8px; border-radius:10px; margin-left:8px;">NEW v1.0.5</span></h3>
<ul>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">!</code> ?덉빟?대줈 AI ?€??李?吏꾩엯</li>
<li><strong>4醫?LLM 吏€??/strong>: Ollama, vLLM(OpenAI ?명솚), Gemini, Sigmoid API</li>
<li><strong>?ㅽ듃由щ컢 + ?€?댄븨 ?④낵</strong>: SSE 湲곕컲 ?ㅼ떆媛??묐떟, 12ms ?€?대㉧濡??€?댄븨 ?좊땲硫붿씠??/li>
<li><strong>留덊겕?ㅼ슫 + 肄붾뱶 援щЦ 媛뺤“</strong>: 10媛??몄뼱 ?ㅼ썙???섏씠?쇱씠?? 肄붾뱶 釉붾줉 蹂듭궗 踰꾪듉</li>
<li><strong>?좏겙 ?ъ슜??/strong>: k/m ?⑥쐞 ?ㅼ떆媛??쒖떆 + ?묐떟 ?뚯슂?쒓컙</li>
<li><strong>?꾨\?꾪듃 移대뱶</strong>: 誘몃━ ?ㅼ젙???쒖뒪???꾨\?꾪듃 + ?ъ슜???뺤쓽 ?쒗뵆由?/li>
<li><strong>?€??愿€由?/strong>: 怨좎젙/?대쫫蹂€寃?遺꾨쪟(6醫?/??젣, ?좎쭨蹂?洹몃9, 30???먮룞 ?뺣━</li>
<li><strong>硫붿떆吏€ ?몄쭛</strong>: ?ъ슜??硫붿떆吏€ ?몄쭛/蹂듭궗, 醫뗭븘???レ뼱???쇰뱶諛?/li>
</ul>
<!-- 3-2. 寃€??-->
<h3 style="font-size:18px; color:#2E75B6; margin-top:24px;">寃€??/h3>
<ul>
<li><strong>?쇱? 寃€??/strong>: ???뚯씪紐낆쓣 ?쇰?留??낅젰?대룄 李얠븘以?/li>
<li><strong>?쒓뎅??珥덉꽦</strong>: ?뉎뀕?????꾪븳湲€ 寃€??/li>
<li><strong>?ㅽ뻾 鍮덈룄 ?숈뒿</strong>: ?먯< ?곕뒗 ?깆씠 ?곷떒?쇰줈</li>
<li><strong>湲곕낯 ??蹂꾩묶</strong>: 硫붾え?? 怨꾩궛湲? ?묒? ???쒓?+?곷Ц 利됱떆 ?ㅽ뻾</li>
<li><strong>?대뜑 寃€??/strong>: ?몃뜳??寃쎈줈???섏쐞 ?대뜑??寃€??媛€??/li>
</ul>
<!-- 3-3. 怨꾩궛쨌蹂€??-->
<h3 style="font-size:18px; color:#2E75B6; margin-top:24px;">怨꾩궛 쨌 蹂€??/h3>
<ul>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">= sqrt(144)</code>, <code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">= 0xFF + 1</code>, <code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">= 100km in miles</code></li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">= 100 USD to KRW</code> (?ㅼ떆媛??섏쑉)</li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">date +30d</code> (30?????좎쭨), <code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">date unix</code> (?€?꾩뒪?ы봽)</li>
</ul>
<!-- 3-4. ?대┰蹂대뱶 -->
<h3 style="font-size:18px; color:#2E75B6; margin-top:24px;">?대┰蹂대뱶</h3>
<ul>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">#</code> <strong>?덉뒪?좊━</strong>: 蹂듭궗 ?대젰 寃€??쨌 ?ъ궗??쨌 蹂묓빀 (Shift+?묅넃 ?좏깮 ??Shift+Enter 蹂묓빀)</li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">$</code> <strong>蹂€??/strong>: JSON ?뺣젹, Base64, URL ?몄퐫????12醫?/li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">pipe</code> <strong>?뚯씠?꾨씪??/strong>: <code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">pipe upper &gt; trim &gt; b64e</code> (19醫??꾪꽣 泥댁씠??</li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">batch</code> <strong>?쇨큵 泥섎━</strong>: 以꾨쾲?? ?뺣젹, 以묐났?쒓굅, 媛먯떥湲???14醫?/li>
<li><strong>DPAPI ?뷀샇??/strong>: ?대┰蹂대뱶 ?덉뒪?좊━ ?뚯씪???꾩옱 Windows 怨꾩젙?먯꽌留?蹂듯샇??媛€??/li>
</ul>
<!-- 3-5. 媛쒕컻???꾧뎄 -->
<h3 style="font-size:18px; color:#2E75B6; margin-top:24px;">媛쒕컻???꾧뎄</h3>
<ul>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">json</code> format / minify / validate</li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">encode</code> base64 / url / sha256</li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">color #FF5500</code> ??HEX/RGB/HSL/HSV 4醫?蹂€??/li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">port 3000</code> ???먯쑀 ?꾨줈?몄뒪 ?뺤씤</li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">env PATH</code> ???섍꼍蹂€??寃€??/li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">pick</code> ???ㅽ룷?대뱶濡??붾㈃ ?됱긽 HEX 肄붾뱶 異붿텧 (?뗫낫湲?+ ?ㅼ떆媛?誘몃━蹂닿린)</li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">diff</code> ???대┰蹂대뱶 理쒓렐 2媛??먮뒗 ?뚯씪 2媛?鍮꾧탳</li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">stats</code> ???띿뒪???듦퀎 (湲€?먯닔/?⑥뼱???쎄린?쒓컙/?ㅼ썙??鍮덈룄)</li>
</ul>
<!-- 3-6. ?붾㈃ 罹≪쿂 -->
<h3 style="font-size:18px; color:#2E75B6; margin-top:24px;">?붾㈃ 罹≪쿂</h3>
<ul>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">cap region</code> / <code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">window</code> / <code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">scroll</code> / <code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">screen</code> (?ъ슜 鍮덈룄???뺣젹)</li>
<li><strong>吏€??罹≪쿂</strong>: Shift+Enter ??3珥?5珥?10珥??€?대㉧ ??罹≪쿂 <span style="background:#2E75B6; color:#fff; font-size:11px; padding:1px 6px; border-radius:8px;">NEW</span></li>
<li><strong>?ㅽ겕濡?罹≪쿂</strong>: ?쒖꽦 李쎌쓣 ?앷퉴吏€ ?ㅽ겕濡ㅽ븯硫??섏씠吏€ ?꾩껜 罹≪쿂</li>
<li><strong>湲€濡쒕쾶 ?⑥텞??/strong>(PrintScreen ?? 吏€??/li>
<li>蹂댁븞: ?대┰蹂대뱶?먮쭔 蹂듭궗 (?뚯씪 ?€?μ? ?ㅼ젙?먯꽌 ?좏깮)</li>
</ul>
<!-- 3-7. 李?愿€由?룹떆?ㅽ뀥 -->
<h3 style="font-size:18px; color:#2E75B6; margin-top:24px;">李?愿€由?쨌 ?쒖뒪??/h3>
<ul>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">~save</code> / <code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">~restore</code>: 李?諛곗튂 ?ㅻ깄??/li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">snap left/right/full</code>: 李?遺꾪븷 ?덉씠?꾩썐</li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">win</code>: ?대┛ 李?寃€????利됱떆 ?꾪솚 (Alt+Tab ?€泥?</li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">/lock</code>, <code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">/timer 5m</code>, <code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">/alarm 14:30</code></li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">svc</code>: Windows ?쒕퉬??愿€由?+ ?대┰蹂대뱶 媛뺤젣 ?ъ떆??/li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">monitor</code>: CPU쨌硫붾え由?룸뵒?ㅽ겕쨌媛€?숈떆媛??ㅼ떆媛?紐⑤땲?곕쭅</li>
</ul>
<!-- 3-8. ?낅Т ?먮룞??-->
<h3 style="font-size:18px; color:#2E75B6; margin-top:24px;">?낅Т ?먮룞??/h3>
<ul>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">journal</code>: ?ㅻ뒛 ?ъ슜????紐낅졊??湲곕컲 ?낅Т ?쇱? 留덊겕?ㅼ슫 ?먮룞 ?앹꽦</li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">routine</code>: 異쒓렐/?닿렐 猷⑦떞 ?깅줉 ????踰덉뿉 ?ㅽ뻾</li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">scaffold</code>: ?꾨줈?앺듃 ?대뜑 援ъ“ ?쒗뵆由??쇨큵 ?앹꽦</li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">rename</code>: ?뚯씪 ?쇨큵 ?대쫫 蹂€寃?(?쒕쾲/?좎쭨 ?쒗뵆由?</li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">fav</code>: ?먯< ?곕뒗 ?뚯씪쨌?대뜑 利먭꺼李얘린</li>
</ul>
<!-- 3-9. ?ㅻ낫???⑥텞??-->
<h3 style="font-size:18px; color:#2E75B6; margin-top:24px;">?ㅻ낫???⑥텞??16醫?/h3>
<table style="border-collapse:collapse; width:100%; margin:12px 0;">
<tr style="background:#2E75B6; color:#fff;">
<th style="padding:8px 12px; text-align:left; font-size:14px;">?⑥텞??/th>
<th style="padding:8px 12px; text-align:left; font-size:14px;">湲곕뒫</th>
</tr>
<tr><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">F1</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">?꾩?留?/td></tr>
<tr style="background:#EBF3FB;"><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">Ctrl+K</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">?⑥텞???꾩?留?/td></tr>
<tr><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">Ctrl+H / R / B</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">?덉뒪?좊━ / 理쒓렐 ?뚯씪 / 利먭꺼李얘린</td></tr>
<tr style="background:#EBF3FB;"><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">Ctrl+1~9</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">N踰덉㎏ ??ぉ 利됱떆 ?ㅽ뻾</td></tr>
<tr><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">Ctrl+Enter</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">愿€由ъ옄 沅뚰븳 ?ㅽ뻾</td></tr>
<tr style="background:#EBF3FB;"><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">Shift+Enter</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">Large Type / 蹂묓빀 ?ㅽ뻾 / 吏€??罹≪쿂</td></tr>
<tr><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">??(?붿궡??</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">?뚯씪 ?≪뀡 紐⑤뱶 (寃쎈줈蹂듭궗/?먯깋湲??곕?????7醫?</td></tr>
<tr style="background:#EBF3FB;"><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">Delete</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">??ぉ ?쒓굅 (?뺤씤 ?ㅼ씠?쇰줈洹?</td></tr>
</table>
<!-- 4. 蹂댁븞 -->
<h2 style="font-size:22px; color:#1F3864; border-bottom:3px solid #4472C4; padding-bottom:6px; margin-top:36px;">4. 蹂댁븞 ???щ궡 ?꾩슜 ?먯튃</h2>
<p>AX Copilot?€ ?щ궡 ?꾩슜 ?꾨줈洹몃옩?쇰줈, ?몃? ?ㅽ듃?뚰겕 ?듭떊???먯튃?곸쑝濡??섏? ?딆뒿?덈떎.</p>
<ul>
<li><strong>?몃? HTTP/HTTPS ?몄텧 湲덉?</strong> ??HttpClient, WebClient ???ъ슜 遺덇? (AI ?쒕퉬?ㅻ뒗 ?щ궡 Ollama/vLLM ?곕룞)</li>
<li><strong>?대┰蹂대뱶 ?덉뒪?좊━</strong> ??Windows DPAPI ?뷀샇??(CurrentUser 踰붿쐞)</li>
<li><strong>API ??蹂댄샇</strong> ??AES-256-CBC ?뷀샇??紐⑤뱶 吏€??(?ㅼ젙?쇰줈 ?꾪솚 媛€??</li>
<li><strong>?붾㈃ 罹≪쿂</strong> ???대┰蹂대뱶?먮쭔 蹂듭궗, ?뚯씪 ?€?μ? ?ъ슜???ㅼ젙?먯꽌 ?좏깮</li>
<li><strong>?쒖뒪??紐낅졊</strong> ???ъ떆??醫낅즺 ???꾪뿕 紐낅졊 ?ㅽ뻾 ??2?④퀎 ?뺤씤 ?ㅼ씠?쇰줈洹?/li>
<li><strong>?€???€??/strong> ??紐⑤뱺 AI ?€???댁뿭?€ 濡쒖뺄(%APPDATA%)?먮쭔 ?€?? ?몃? ?꾩넚 ?놁쓬</li>
</ul>
<!-- 5. ?뚮쭏 ?쒖뒪??-->
<h2 style="font-size:22px; color:#1F3864; border-bottom:3px solid #4472C4; padding-bottom:6px; margin-top:36px;">5. ?뚮쭏 ?쒖뒪??/h2>
<p><strong>9媛??댁옣 ?뚮쭏</strong>(Dark, Light, OLED, Nord, Monokai, Catppuccin, Sepia, Alfred, Alfred Light) + <strong>而ㅼ뒪?€ ?뚮쭏</strong>瑜?吏€?먰빀?덈떎.</p>
<ul>
<li>媛??뚮쭏???됱긽肉??꾨땲??<strong>紐⑥꽌由??쇱슫??鍮꾩쑉</strong>???ㅻ쫭?덈떎 (OLED媛€ 媛€???κ?怨? Monokai媛€ 媛€??媛곸쭚)</li>
<li>而ㅼ뒪?€ ?뚮쭏??14媛??됱긽 + 紐⑥꽌由??쇱슫???щ씪?대뜑濡??먯쑀濡?쾶 ?몄쭛</li>
<li>?몃젅??硫붾돱, AI ?€??李?紐⑤몢 ?꾩옱 ?뚮쭏瑜??먮룞?쇰줈 ?곕씪媛?/li>
</ul>
<!-- 6. ?ъ슜 ?듦퀎 -->
<h2 style="font-size:22px; color:#1F3864; border-bottom:3px solid #4472C4; padding-bottom:6px; margin-top:36px;">6. ?ъ슜 ?듦퀎 & ?뚮┝</h2>
<ul>
<li><strong>?곗쿂 ?몄텧 ?잛닔</strong>: 理쒓렐 14??留됰? 李⑦듃</li>
<li><strong>PC ?쒖꽦 ?쒓컙</strong>: 理쒓렐 14??留됰? 李⑦듃</li>
<li><strong>?곸쐞 紐낅졊</strong>: 30???⑹궛 Top 10 ?쒖쐞</li>
<li><strong>?좉툑 ?댁젣 ?뚮┝</strong>: PC ?좉툑 ?댁젣 ???꾩쟻 ?ъ슜?쒓컙 + 紐낆뼵 ?앹뾽 (30遺?4?쒓컙 媛꾧꺽, 5珥?3遺??쒖떆)</li>
</ul>
<!-- 7. 二쇱슂 紐낅졊???붿빟 -->
<h2 style="font-size:22px; color:#1F3864; border-bottom:3px solid #4472C4; padding-bottom:6px; margin-top:36px;">7. 二쇱슂 紐낅졊???붿빟</h2>
<table style="border-collapse:collapse; width:100%; margin:12px 0;">
<tr style="background:#2E75B6; color:#fff;">
<th style="padding:8px 12px; text-align:left; font-size:14px;">?꾨━?쎌뒪</th>
<th style="padding:8px 12px; text-align:left; font-size:14px;">湲곕뒫</th>
<th style="padding:8px 12px; text-align:left; font-size:14px;">?덉떆</th>
</tr>
<tr><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;"><code style="background:#F0F0F0; padding:1px 4px; border-radius:3px;">!</code></td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">AI ?€??(AX Agent)</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">!nginx ?ㅼ젙 諛⑸쾿</td></tr>
<tr style="background:#EBF3FB;"><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;"><code style="background:#F0F0F0; padding:1px 4px; border-radius:3px;">=</code></td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">怨꾩궛湲?+ ?⑥쐞/?듯솕 蹂€??/td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">= 100 USD to KRW</td></tr>
<tr><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;"><code style="background:#F0F0F0; padding:1px 4px; border-radius:3px;">#</code></td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">?대┰蹂대뱶 ?덉뒪?좊━</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;"># api</td></tr>
<tr style="background:#EBF3FB;"><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;"><code style="background:#F0F0F0; padding:1px 4px; border-radius:3px;">$</code></td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">?대┰蹂대뱶 蹂€??(12醫?</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">$ base64</td></tr>
<tr><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;"><code style="background:#F0F0F0; padding:1px 4px; border-radius:3px;">cap</code></td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">?붾㈃ 罹≪쿂</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">cap region, cap scroll</td></tr>
<tr style="background:#EBF3FB;"><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;"><code style="background:#F0F0F0; padding:1px 4px; border-radius:3px;">win</code></td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">李??꾪솚 (Alt+Tab ?€泥?</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">win excel</td></tr>
<tr><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;"><code style="background:#F0F0F0; padding:1px 4px; border-radius:3px;">snap</code></td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">李?遺꾪븷 ?덉씠?꾩썐</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">snap left, snap full</td></tr>
<tr style="background:#EBF3FB;"><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;"><code style="background:#F0F0F0; padding:1px 4px; border-radius:3px;">json</code></td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">JSON 寃€利??щ㎎/誘몃땲?뚯씠</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">json format</td></tr>
<tr><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;"><code style="background:#F0F0F0; padding:1px 4px; border-radius:3px;">pipe</code></td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">?대┰蹂대뱶 ?뚯씠?꾨씪??/td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">pipe upper &gt; trim</td></tr>
<tr style="background:#EBF3FB;"><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;"><code style="background:#F0F0F0; padding:1px 4px; border-radius:3px;">date</code></td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">?좎쭨 怨꾩궛/D-day/?€?꾩뒪?ы봽</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">date +30d</td></tr>
<tr><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;"><code style="background:#F0F0F0; padding:1px 4px; border-radius:3px;">?</code></td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">??寃€??(10媛??붿쭊)</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">?n 留쏆쭛 (?ㅼ씠踰?</td></tr>
<tr style="background:#EBF3FB;"><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;"><code style="background:#F0F0F0; padding:1px 4px; border-radius:3px;">;</code></td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">?띿뒪???ㅻ땲??/td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">;addr ???먮룞 ?뺤옣</td></tr>
<tr><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;"><code style="background:#F0F0F0; padding:1px 4px; border-radius:3px;">/</code></td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">?쒖뒪??紐낅졊 + ?€?대㉧/?뚮엺</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">/timer 5m ?뚯쓽</td></tr>
<tr style="background:#EBF3FB;"><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;"><code style="background:#F0F0F0; padding:1px 4px; border-radius:3px;">emoji</code></td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">?대え吏€ ?쇱빱 (300+)</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">emoji ?껋쓬</td></tr>
<tr><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;"><code style="background:#F0F0F0; padding:1px 4px; border-radius:3px;">journal</code></td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">?낅Т ?쇱? ?먮룞 ?앹꽦</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">journal</td></tr>
<tr style="background:#EBF3FB;"><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;"><code style="background:#F0F0F0; padding:1px 4px; border-radius:3px;">routine</code></td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">異쒗눜洹?猷⑦떞 ?ㅽ뻾</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">routine morning</td></tr>
</table>
<!-- 8. 湲곗닠 ?ㅽ깮 -->
<h2 style="font-size:22px; color:#1F3864; border-bottom:3px solid #4472C4; padding-bottom:6px; margin-top:36px;">8. 湲곗닠 ?ㅽ깮</h2>
<ul>
<li><strong>.NET 8</strong>, WPF (UseWPF=true), WinForms (?쇰? ?ㅼ씠?쇰줈洹?</li>
<li><strong>P/Invoke</strong>: SetWindowPos, PrintWindow, GlobalMemoryStatusEx, EnumWindows, GetPixel ??Windows API 吏곸젒 ?몄텧</li>
<li><strong>?⑥씪 EXE 諛고룷</strong>: Self-Contained + PublishSingleFile + IncludeNativeLibrariesForSelfExtract</li>
<li><strong>蹂댁븞</strong>: DPAPI(System.Security.Cryptography.ProtectedData), AES-256-CBC, HKCU ?덉??ㅽ듃由?/li>
<li><strong>LLM ?듭떊</strong>: HttpClient SSE ?ㅽ듃由щ컢 (Ollama/vLLM/Gemini/Sigmoid API)</li>
<li><strong>?뚯뒪??/strong>: xUnit 2.9.0 + FluentAssertions (57媛??⑥쐞 ?뚯뒪??</li>
</ul>
<!-- 9. v1.0.5 二쇱슂 蹂€寃?-->
<h2 style="font-size:22px; color:#1F3864; border-bottom:3px solid #4472C4; padding-bottom:6px; margin-top:36px;">9. v1.0.5 二쇱슂 蹂€寃??ы빆</h2>
<table style="border-collapse:collapse; width:100%; margin:12px 0;">
<tr style="background:#2E75B6; color:#fff;">
<th style="padding:8px 12px; text-align:left; font-size:14px;">援щ텇</th>
<th style="padding:8px 12px; text-align:left; font-size:14px;">?댁슜</th>
</tr>
<tr><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px; font-weight:bold; white-space:nowrap;">AX Agent</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">! ?덉빟?대줈 AI ?€??李? Sigmoid Desktop ?ㅽ???2?⑤꼸 援ъ“</td></tr>
<tr style="background:#EBF3FB;"><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px; font-weight:bold; white-space:nowrap;">LLM 4醫?/td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">Ollama, vLLM, Gemini, Sigmoid API ?듯빀 吏€??/td></tr>
<tr><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px; font-weight:bold; white-space:nowrap;">?ㅽ듃由щ컢</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">SSE 湲곕컲 ?ㅽ듃由щ컢 + 12ms ?€?댄븨 ?④낵 + 而ㅼ꽌 源쒕묀??/td></tr>
<tr style="background:#EBF3FB;"><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px; font-weight:bold; white-space:nowrap;">肄붾뱶 媛뺤“</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">10媛??몄뼱 ?ㅼ썙???섏씠?쇱씠??+ 肄붾뱶 釉붾줉 蹂듭궗</td></tr>
<tr><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px; font-weight:bold; white-space:nowrap;">?좏겙 ?쒖떆</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">k/m ?⑥쐞 ?ъ슜??+ ?묐떟 ?뚯슂?쒓컙(珥?</td></tr>
<tr style="background:#EBF3FB;"><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px; font-weight:bold; white-space:nowrap;">?꾨\?꾪듃 移대뱶</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">?쒖뒪???꾨\?꾪듃 ?꾨━??+ ?ъ슜???뺤쓽 ?쒗뵆由?/td></tr>
<tr><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px; font-weight:bold; white-space:nowrap;">?€??愿€由?/td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">怨좎젙/?대쫫蹂€寃?遺꾨쪟/??젣, ?쇰뱶諛? 硫붿떆吏€ ?몄쭛</td></tr>
<tr style="background:#EBF3FB;"><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px; font-weight:bold; white-space:nowrap;">吏€??罹≪쿂</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">Shift+Enter ??3/5/10珥??€?대㉧ ??罹≪쿂</td></tr>
<tr><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px; font-weight:bold; white-space:nowrap;">而ㅼ뒪?€ Popup</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">紐⑤뱺 ?쒕∼?ㅼ슫 硫붾돱瑜??쇱슫??而ㅼ뒪?€ Popup?쇰줈 ?듭씪</td></tr>
<tr style="background:#EBF3FB;"><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px; font-weight:bold; white-space:nowrap;">?뚮┝ ?뺤옣</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">湲곕낯 15珥? 1遺?2遺?3遺??쒖떆 ?쒓컙 異붽?</td></tr>
</table>
<!-- 10. 留덈Т由?-->
<h2 style="font-size:22px; color:#1F3864; border-bottom:3px solid #4472C4; padding-bottom:6px; margin-top:36px;">10. 留덈Т由???LLM怨??④퍡 留뚮뱺 ?꾨줈?앺듃</h2>
<p>AX Copilot?€ 湲고쉷遺€??援ы쁽, ?뚯뒪?? 臾몄꽌?붽퉴吏€ LLM(Sigmoid)怨??④퍡 吏꾪뻾???꾨줈?앺듃?낅땲??</p>
<ul>
<li><strong>湲고쉷</strong>: Alfred, Raycast ??湲곗〈 ?곗쿂???μ젏??遺꾩꽍?섍퀬, ?щ궡 ?섍꼍??留욌뒗 湲곕뒫 ?좊퀎</li>
<li><strong>援ы쁽</strong>: WPF + P/Invoke 湲곕컲?쇰줈 ?몃? ?섏〈???놁씠 45媛? 湲곕뒫 援ы쁽</li>
<li><strong>AI ?듯빀</strong>: Ollama/vLLM/Gemini/Sigmoid 4醫?LLM ?쒕퉬?ㅻ? ?щ궡 ?섍꼍??留욊쾶 ?듯빀</li>
<li><strong>寃€??/strong>: 肄붾뱶 由щ럭, ?ㅻ쪟 遺꾩꽍, 蹂댁븞 ?먭?, ?깅뒫 理쒖쟻?붾? LLM怨??④퍡 諛섎났</li>
<li><strong>臾몄꽌</strong>: 媛쒕컻 臾몄꽌, ?ъ슜??留ㅻ돱?? 釉붾줈洹?湲€源뚯? LLM???묒꽦</li>
</ul>
<p style="margin-top:20px; padding:16px 20px; background:#F0F4F8; border-left:4px solid #2E75B6; border-radius:0 8px 8px 0;">
<em>"媛쒖씤?곸쑝濡??먮? 寃껋?, LLM?€ '肄붾뱶 ?앹꽦湲?媛€ ?꾨땲??'?④퍡 ?앷컖?섎뒗 ?숇즺'??媛€源앸떎??寃껋엯?덈떎."</em><br><br>
<em>"??湲곕뒫?€ ?대젃寃??섎㈃ ?대뼚??" "??遺€遺꾩? 蹂댁븞 由ъ뒪?ш? ?덉뼱" "?ъ슜?먭? ?대젃寃??곕㈃ 臾몄젣?????덉뼱" ???대윴 ?쇰뱶諛깆쓣 二쇨퀬諛쏆쑝硫??꾨줈?앺듃瑜??꾩꽦?덉뒿?덈떎.</em>
</p>
<!-- ?뗮꽣 -->
<div style="text-align:center; margin-top:40px; padding:24px 20px; background:linear-gradient(135deg,#1F3864 0%,#2E75B6 100%); border-radius:12px;">
<p style="color:#fff; font-size:18px; font-weight:bold; margin:0 0 8px;">AX Copilot v1.0.5 ??紐⑤뱺 ?낅Т瑜??ㅻ낫???섎굹濡?</p>
<p style="color:#B8CCE4; font-size:14px; margin:0;">諛깆듅??쨌 AX?곌뎄??AI?€ 쨌 SW Architect 쨌 www.swarchitect.net</p>
</div>
</div>

View File

@@ -1,188 +0,0 @@
# AX Copilot Cowork 업무 활용 계획 보고서
> 작성일: 2026-03-28 | 버전: v1.1.0 기준
---
## 1. 현재 Cowork 기능 요약
### 1.1 에이전트 실행 구조
- **ReAct 패턴**: Plan → Tool Execute → Observe → Re-evaluate
- 최대 25회 반복, 에러 시 3회 자동 재시도 + 자기성찰 메커니즘
- 컨텍스트 자동 압축으로 장기 작업 지원
- 작업 분해(TaskDecomposer)로 단계별 진행 추적
### 1.2 등록된 도구 (14개)
| 구분 | 도구 | 기능 |
|------|------|------|
| 파일 I/O | file_read, file_write, file_edit | 파일 읽기/생성/수정 |
| 검색 | glob, grep | 파일 패턴 검색, 내용 검색 |
| 실행 | process | CMD/PowerShell 명령 실행 (위험 명령 차단) |
| 탐색 | folder_map | 디렉토리 트리 생성 |
| 문서 읽기 | document_read | PDF, DOCX, XLSX, CSV, TXT 텍스트 추출 |
| 문서 생성 | excel_create, docx_create, html_create, markdown_create, csv_create | 5종 포맷 출력 |
| 스크립트 | script_create | BAT/PS1 스크립트 생성 |
### 1.3 프리셋 (5종)
| 프리셋 | 용도 | 주요 출력 |
|--------|------|-----------|
| 보고서 | 정형 보고서 작성 | Excel, Word, HTML |
| 문서작성 | 자유 문서 작성 | Word, Markdown, HTML |
| 데이터분석 | CSV/Excel 데이터 분석 | Excel, HTML 차트 |
| 자동화 | 반복 업무 스크립트화 | BAT, PS1 |
| 파일관리 | 파일 정리/검색/이름변경 | 실행 결과 보고 |
### 1.4 디자인 템플릿 (10종)
Modern, Professional, Creative, Minimal, Elegant, Dark, Colorful, Corporate, Magazine, Dashboard
---
## 2. 업무 활용 가능 영역 검토
### 2.1 경영/기획 업무
| 업무 | 활용 방식 | 난이도 | 기대효과 |
|------|-----------|--------|----------|
| **주간/월간 업무 보고서** | 프리셋=보고서, 폴더 내 데이터 참조하여 HTML/Word 자동 생성 | 낮음 | 보고서 작성 시간 70% 절감 |
| **회의록 정리** | 프리셋=문서작성, 회의 메모 텍스트를 구조화된 문서로 변환 | 낮음 | 형식 통일, 누락 방지 |
| **사업 계획서 초안** | 프리셋=보고서, 참고 자료 읽기 + Corporate 템플릿 적용 | 중간 | 초안 작성 시간 50% 절감 |
| **경쟁사 분석 보고서** | 프리셋=보고서, 수집 자료 종합 + Dashboard 템플릿 | 중간 | 분석 체계화 |
### 2.2 인사/총무 업무
| 업무 | 활용 방식 | 난이도 | 기대효과 |
|------|-----------|--------|----------|
| **인사 데이터 분석** | 프리셋=데이터분석, Excel 인사DB 읽기 → 통계 보고서 | 낮음 | 수작업 집계 제거 |
| **교육 자료 제작** | 프리셋=문서작성, Magazine 템플릿으로 시각적 교재 생성 | 낮음 | 디자인 외주 불필요 |
| **내규/매뉴얼 정리** | 프리셋=문서작성, 기존 문서 읽기 → 최신 버전 재구성 | 중간 | 문서 버전 관리 개선 |
| **급여/근태 엑셀 자동화** | 프리셋=자동화, 반복 계산 스크립트 생성 | 중간 | 월간 2-3시간 절감 |
### 2.3 재무/회계 업무
| 업무 | 활용 방식 | 난이도 | 기대효과 |
|------|-----------|--------|----------|
| **매출 데이터 분석** | 프리셋=데이터분석, CSV/Excel 매출 데이터 → 차트 포함 HTML 보고서 | 낮음 | 실시간 분석 가능 |
| **비용 항목 분류** | 프리셋=데이터분석, 거래 내역 파일 읽기 → 카테고리별 집계 | 낮음 | 수작업 분류 제거 |
| **예산 대비 실적 보고** | 프리셋=보고서, 예산/실적 Excel 비교 → Professional 템플릿 보고서 | 중간 | 월간 보고 시간 60% 절감 |
| **세금계산서 데이터 정리** | 프리셋=파일관리 + 데이터분석, 파일 수집 → CSV 통합 | 중간 | 분기 결산 효율화 |
### 2.4 영업/마케팅 업무
| 업무 | 활용 방식 | 난이도 | 기대효과 |
|------|-----------|--------|----------|
| **고객 데이터 분석** | 프리셋=데이터분석, CRM 내보내기 파일 → 세그먼트 분석 | 낮음 | 타겟팅 정확도 향상 |
| **제안서/견적서 작성** | 프리셋=문서작성, Elegant 템플릿으로 고급 제안서 생성 | 낮음 | 제안서 품질 향상 |
| **캠페인 결과 보고** | 프리셋=보고서, Dashboard 템플릿으로 KPI 시각화 | 중간 | 성과 가시화 |
| **뉴스레터 콘텐츠** | 프리셋=문서작성, Magazine 템플릿으로 뉴스레터 HTML 생성 | 낮음 | 디자인 시간 제거 |
### 2.5 R&D/개발 업무
| 업무 | 활용 방식 | 난이도 | 기대효과 |
|------|-----------|--------|----------|
| **코드 문서화** | 프리셋=문서작성, folder_map + grep으로 코드 분석 → API 문서 생성 | 중간 | 문서화 부채 해소 |
| **테스트 데이터 생성** | 프리셋=자동화, CSV/Excel 형식 테스트 데이터 대량 생성 | 낮음 | QA 준비 시간 절감 |
| **빌드/배포 스크립트** | 프리셋=자동화, BAT/PS1 스크립트 자동 생성 | 낮음 | DevOps 초기 설정 지원 |
| **기술 보고서** | 프리셋=보고서, Modern 템플릿으로 기술 검토 문서 생성 | 중간 | 기술 의사결정 체계화 |
### 2.6 운영/생산 업무
| 업무 | 활용 방식 | 난이도 | 기대효과 |
|------|-----------|--------|----------|
| **재고 데이터 분석** | 프리셋=데이터분석, 재고 Excel → 부족/과잉 분석 보고서 | 낮음 | 재고 관리 효율화 |
| **작업 일지 자동 포맷** | 프리셋=문서작성, 수기 메모 → 정형 일지 Word 변환 | 낮음 | 기록 표준화 |
| **파일 정리 자동화** | 프리셋=파일관리, 날짜/유형별 파일 자동 분류 | 낮음 | 공유폴더 관리 효율화 |
| **품질 검사 보고서** | 프리셋=보고서, 검사 데이터 → Corporate 템플릿 보고서 | 중간 | 보고 양식 통일 |
---
## 3. 고활용 시나리오 (즉시 적용 가능)
### 시나리오 A: 주간 업무 보고서 자동 생성
```
1. 작업 폴더에 주간 업무 메모(txt/md) 저장
2. Cowork → 보고서 → HTML 보고서(Professional 템플릿)
3. "이번 주 업무 내용을 종합해서 주간 보고서 작성해줘"
4. AI가 폴더 문서 읽기 → 구조화 → HTML 보고서 자동 생성
```
**소요 시간**: 기존 30분 → 2-3분
### 시나리오 B: Excel 데이터 분석 → 시각적 보고서
```
1. 작업 폴더에 매출 데이터(xlsx/csv) 저장
2. Cowork → 데이터분석 → HTML 보고서(Dashboard 템플릿)
3. "월별 매출 추이와 상위 품목을 분석해서 보고서 만들어줘"
4. AI가 데이터 읽기 → 집계/분석 → 차트 포함 대시보드 생성
```
**소요 시간**: 기존 1-2시간 → 5분
### 시나리오 C: 다수 문서 종합 → 요약 보고서
```
1. 작업 폴더에 관련 자료(PDF, DOCX, TXT) 수집
2. Cowork → 보고서 → Word(Corporate 템플릿)
3. "폴더 내 문서를 모두 읽고 핵심 내용 종합 보고서 작성해줘"
4. AI가 document_read로 전체 문서 읽기 → 종합 → Word 보고서 생성
```
**소요 시간**: 기존 2-3시간 → 5-10분
### 시나리오 D: 반복 업무 스크립트화
```
1. Cowork → 자동화
2. "매일 아침 특정 폴더의 파일을 날짜별로 정리하는 스크립트 만들어줘"
3. AI가 요구사항 분석 → BAT/PS1 스크립트 생성
```
**소요 시간**: 기존 1시간(개발자 요청) → 3분
---
## 4. 현재 한계 및 향후 개선 방향
### 4.1 현재 한계
| 한계 | 설명 | 영향도 |
|------|------|--------|
| 인터넷 검색 불가 | 외부 데이터 수집 자동화 미지원 | 중간 |
| 이미지/차트 직접 생성 불가 | HTML 내 CSS 기반 시각화만 가능 | 낮음 |
| 대용량 파일 제한 | 8,000자 기본 제한 (document_read) | 중간 |
| 데이터베이스 연동 없음 | DB 직접 쿼리 불가 (파일 내보내기 후 사용) | 중간 |
| 메일/메신저 연동 없음 | 생성 결과 자동 전송 불가 | 낮음 |
### 4.2 향후 개선 계획 (v1.2.0+)
| 우선순위 | 기능 | 기대 효과 |
|----------|------|-----------|
| 1 | **Code 탭 에이전트 활성화** | 코드 분석/수정/테스트 자동화 |
| 2 | **웹 검색 도구 추가** | 실시간 정보 기반 보고서 작성 |
| 3 | **차트 이미지 생성** | 데이터 시각화 품질 향상 |
| 4 | **템플릿 사용자 정의** | 기업 CI/BI 맞춤 문서 생성 |
| 5 | **워크플로우 자동화** | 다단계 작업 사전 정의 및 원클릭 실행 |
---
## 5. 도입 효과 예상
### 정량적 효과
- **문서 작성 시간**: 평균 70% 절감 (30분 → 3-5분)
- **데이터 분석 보고**: 평균 80% 절감 (2시간 → 10-15분)
- **반복 작업 스크립트화**: 비개발자도 자동화 가능
- **디자인 외주 비용**: 10종 템플릿으로 내부 해결
### 정성적 효과
- 보고서 양식/품질 표준화
- 데이터 기반 의사결정 문화 촉진
- 비개발 직군의 자동화 접근성 향상
- 문서 작성 부담 감소로 핵심 업무 집중도 향상
---
## 6. 부서별 우선 도입 권장
| 우선순위 | 부서 | 핵심 활용 | 권장 프리셋 |
|----------|------|-----------|-------------|
| 1순위 | 기획/경영지원 | 주간보고, 회의록, 사업계획 | 보고서, 문서작성 |
| 1순위 | 재무/회계 | 매출분석, 비용분류, 예산보고 | 데이터분석, 보고서 |
| 2순위 | 영업/마케팅 | 제안서, 고객분석, 캠페인보고 | 문서작성, 데이터분석 |
| 2순위 | 인사/총무 | 인사분석, 교육자료, 매뉴얼 | 데이터분석, 문서작성 |
| 3순위 | R&D/개발 | 기술문서, 테스트데이터, 스크립트 | 자동화, 보고서 |
| 3순위 | 운영/생산 | 재고분석, 작업일지, 파일정리 | 데이터분석, 파일관리 |
---
*본 보고서는 AX Copilot v1.1.0 기준으로 작성되었으며, 향후 기능 업데이트에 따라 활용 범위가 확대될 예정입니다.*

View File

@@ -0,0 +1,54 @@
# 연속 진행 기록 (2026-04-04)
## 1) 안정화 점검 결과
- 빌드: `dotnet build` 성공 (경고 0, 오류 0)
- 테스트: `dotnet test` 성공 (425 passed, 0 failed)
## 2) 설정-런타임 연동 확인
아래 설정값은 런타임 코드 경로에서 실제 참조됨.
- `MaxRetryOnError`
- 사용: `AgentLoopService` 재시도 상한
- `EnableProactiveContextCompact`
- 사용: 수동/자동 compact 판단 경로
- `ContextCompactTriggerPercent`
- 사용: compact 임계치 계산
- `MaxContextTokens`
- 사용: LLM 요청 `max_tokens`/`maxOutputTokens`
- `VllmAllowInsecureTls`
- 사용: vLLM HTTP 호출 TLS 검증 우회 분기
- `AgentUiExpressionLevel`
- 사용: slash 도움말/필터 가시성/설정 화면 표현 수준
## 3) 도구/스킬 상태 스냅샷
- `IAgentTool` 구현 클래스 수: 83
- `ToolRegistry.Register(...)` 호출 수: 84
- `skills/*.skill.md` 파일 수: 41
- Slash 명령 매핑 엔트리 수: 85
## 4) claw-code 비교 포인트 (실행 반영 기준)
- claw-code 문서 기준 핵심 slash: `/permissions`, `/mcp` 확인
- AX 현재 매핑에 `/permissions`, `/allowed-tools`, `/mcp`, `/chrome`, `/compact` 포함
- 다음 보강 우선순위:
1. 수동 시나리오 기반 MCP/Chrome 진단 품질 강화
2. Internal/External 정책 전환 시 외부 도구 차단/허용 회귀 테스트
3. 권한 모드 전환과 도구 실행 결과의 사용자 피드백 일관화
## 5) 다음 연속 작업 큐 (실행 순서)
1. 수동 시나리오 체크리스트 4건 완료
2. 실패 시나리오 로그 정형화 및 메시지 개선
3. 설정 항목 도움말 문구를 표현 수준별(풍부/적절/간단) 차등 노출
4. 도구/스킬 비교 리포트 자동 생성 스크립트 추가
## 6) 추가 검증 반영 (2026-04-04 2차)
- 테스트 보강:
- `LlmRuntimeOverrideTests`
- `ResolveServerInfo_VllmGlobalInsecureTls_ShouldBeApplied`
- `ResolveServerInfo_RegisteredModelOverride_ShouldUseEndpointAndApiKey`
- `ChatWindowSlashPolicyTests`
- `/compact` 파싱 케이스 추가
- 부분 회귀 실행:
- OperationMode/Compact/RuntimeOverride 관련 45건 통과
- 남은 수동 항목:
- 실제 사내 vLLM 엔드포인트 연결 성공 확인
- `/compact` 실행 후 UI 토큰/요약 표시 갱신 확인

View File

@@ -1,619 +0,0 @@
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>AX Commander (런처) 고도화 계획 | AX Copilot</title>
<style>
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body {
font-family: 'Pretendard', 'Segoe UI', 'Malgun Gothic', -apple-system, sans-serif;
font-size: 15px;
background: #f8f9fe;
color: #1a1a2e;
line-height: 1.7;
min-height: 100vh;
}
/* Header */
.header {
background: linear-gradient(135deg, #1a1b2e 0%, #2d3a6b 60%, #4b5efc 100%);
padding: 48px 0 40px;
color: white;
}
.header-inner {
max-width: 900px;
margin: 0 auto;
padding: 0 20px;
}
.header-brand {
display: flex;
align-items: center;
gap: 1rem;
margin-bottom: 0.5rem;
}
.header-logo {
width: 48px; height: 48px;
background: rgba(255,255,255,0.15);
border: 1px solid rgba(255,255,255,0.25);
border-radius: 12px;
display: flex; align-items: center; justify-content: center;
font-weight: 800; font-size: 1.2rem; color: #fff;
}
.header h1 {
font-size: 26px;
font-weight: 800;
color: #fff;
line-height: 1.3;
}
.header-meta {
display: flex; gap: 2rem; margin-top: 0.5rem; font-size: 0.85rem; color: rgba(255,255,255,0.65);
}
.header-meta span { display: flex; align-items: center; gap: 0.4rem; }
/* Container */
.container { max-width: 900px; margin: 0 auto; padding: 40px 20px 80px; }
/* TOC */
.toc {
background: white;
border-radius: 12px;
padding: 18px 26px;
margin-bottom: 24px;
box-shadow: 0 2px 12px rgba(75,94,252,0.08);
}
.toc h2 {
font-size: 15px;
font-weight: 800;
color: #2e3060;
margin-bottom: 1rem;
padding-bottom: 0.5rem;
border-bottom: 1px solid #e0e0ec;
}
.toc ul { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 0.4rem; }
.toc a {
color: #4b5efc;
text-decoration: none;
font-size: 13.5px;
font-weight: 600;
padding: 0.3rem 0.6rem;
border-radius: 6px;
display: block;
transition: all 0.2s;
}
.toc a:hover { background: #eef1ff; color: #1a1a2e; }
/* Section (collapsible) */
.section {
background: white;
border-radius: 12px;
margin-bottom: 16px;
overflow: hidden;
box-shadow: 0 2px 12px rgba(75,94,252,0.08);
}
.section-header {
background: #eef1ff;
padding: 12px 20px;
cursor: pointer;
display: flex;
align-items: center;
justify-content: space-between;
user-select: none;
border-bottom: 1px solid transparent;
transition: border-color 0.2s;
}
.section-header:hover { border-bottom-color: #4b5efc; }
.section-header h2 { font-size: 16px; font-weight: 700; color: #1a1b2e; }
/* Collapsible chevron replaced with triangle markers */
.chevron { display: none; }
.section-header::after {
content: '\25BC';
font-size: 11px;
color: #4b5efc;
transition: transform 0.3s;
}
.section.collapsed .section-header::after { content: '\25B6'; }
.section.collapsed .section-body { display: none; }
.section-body { padding: 20px; }
/* Status badges */
.badge {
display: inline-block;
padding: 2px 10px;
border-radius: 20px;
font-size: 12px;
font-weight: 600;
}
.badge-completed { background: rgba(52,211,153,0.15); color: #16a34a; border: 1px solid rgba(52,211,153,0.3); }
.badge-in-progress { background: rgba(251,191,36,0.15); color: #d97706; border: 1px solid rgba(251,191,36,0.3); }
.badge-done { background: rgba(16,185,129,0.15); color: #059669; border: 1px solid rgba(16,185,129,0.3); }
.badge-hold { background: rgba(156,163,175,0.15); color: #6b7280; border: 1px solid rgba(156,163,175,0.3); }
.badge-planned { background: rgba(96,165,250,0.15); color: #3b82f6; border: 1px solid rgba(96,165,250,0.3); }
/* Priority badges */
.priority {
display: inline-block;
padding: 2px 8px;
border-radius: 6px;
font-size: 11px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.05em;
}
.priority-highest { background: rgba(248,113,113,0.15); color: #e53e3e; border: 1px solid rgba(248,113,113,0.3); }
.priority-high { background: rgba(251,146,60,0.15); color: #dd6b20; border: 1px solid rgba(251,146,60,0.3); }
.priority-medium { background: rgba(251,191,36,0.15); color: #d97706; border: 1px solid rgba(251,191,36,0.3); }
.priority-low { background: rgba(156,163,175,0.15); color: #6b7280; border: 1px solid rgba(156,163,175,0.3); }
.priority-longterm { background: rgba(139,92,246,0.15); color: #7c3aed; border: 1px solid rgba(139,92,246,0.3); }
/* Tables */
table {
width: 100%;
border-collapse: collapse;
background: white;
font-size: 13.5px;
margin: 1rem 0;
border-radius: 12px;
overflow: hidden;
box-shadow: 0 2px 12px rgba(75,94,252,0.08);
}
thead th {
background: #2e3060;
color: white;
padding: 12px 16px;
text-align: left;
font-weight: 600;
}
tbody td {
padding: 10px 16px;
border-bottom: 1px solid #f0f0f8;
vertical-align: top;
color: #1a1a2e;
}
tbody tr:nth-child(even) td { background: #f8f9fe; }
tbody tr:hover td { background: #f5f6ff; }
tbody tr:last-child td { border-bottom: none; }
/* Feature cards */
.feature-card {
background: #f8f9fe;
border: 1px solid #e0e0ec;
border-radius: 10px;
padding: 16px 20px;
margin-bottom: 12px;
transition: border-color 0.2s;
}
.feature-card:hover { border-color: #4b5efc; }
.feature-card-header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 6px;
flex-wrap: wrap;
gap: 0.5rem;
}
.feature-card-header h4 { font-size: 15px; font-weight: 700; color: #2e3060; }
.feature-card p, .feature-card li {
color: #6b6b8a;
font-size: 13px;
margin-bottom: 4px;
}
.feature-card strong { color: #1a1a2e; }
.feature-card ul { padding-left: 1.2rem; }
/* Bullet list */
.bullet-list { list-style: none; padding: 0; }
.bullet-list li {
padding: 0.4rem 0 0.4rem 1.2rem;
position: relative;
color: #6b6b8a;
font-size: 13.5px;
}
.bullet-list li::before {
content: '';
position: absolute;
left: 0;
top: 0.85rem;
width: 6px;
height: 6px;
border-radius: 50%;
background: #4b5efc;
}
/* Separator */
hr {
border: none;
height: 1px;
background: #e0e0ec;
margin: 2rem 0;
}
/* Comparison highlight */
table .check { color: #16a34a; font-weight: 700; }
table .cross { color: #e53e3e; opacity: 0.6; }
/* Footer */
.footer {
text-align: center;
padding: 32px 20px;
color: #8888aa;
font-size: 12px;
border-top: 1px solid #e0e0ec;
margin-top: 40px;
}
/* Print */
@media print {
body { background: #fff; }
.header { page-break-after: always; }
.section-body { display: block !important; }
.section-header::after { content: ''; }
}
@media (max-width: 768px) {
.container { padding: 20px 12px; }
.toc ul { grid-template-columns: 1fr; }
.header h1 { font-size: 20px; }
.header-meta { flex-direction: column; gap: 0.5rem; }
table { font-size: 12px; }
thead th, tbody td { padding: 8px; }
}
</style>
</head>
<body>
<div class="header">
<div class="header-inner">
<div class="header-brand">
<div class="header-logo">AX</div>
<div>
<h1>AX Commander (런처) 고도화 계획</h1>
<div style="color: rgba(255,255,255,0.65); font-size: 14px; margin-top: 0.2rem;">AX Copilot Launcher Roadmap</div>
</div>
</div>
<div class="header-meta">
<span>Version: v1.6.1</span>
<span>Last Updated: 2026-03-30</span>
<span>Status: Active</span>
</div>
</div>
</div>
<div class="container">
<!-- TOC -->
<nav class="toc" id="toc">
<h2>목차 (Table of Contents)</h2>
<ul>
<li><a href="#current-state">현재 상태 (v1.5.0)</a></li>
<li><a href="#comparison">경쟁 서비스 비교</a></li>
<li><a href="#phase-l1">Phase L1 — 차세대 런처 고도화 (v1.5.0)</a></li>
<li><a href="#phase-l2">Phase L2 — 클립보드 고도화 + UX 개선 (v1.5.3)</a></li>
<li><a href="#phase-l3">Phase L3 — 차세대 런처 (v2.0) + Agent Phase 18 교차</a></li>
<li><a href="#tech-debt">기술 부채</a></li>
</ul>
</nav>
<!-- Current State -->
<div class="section" id="current-state">
<div class="section-header" onclick="toggleSection(this)">
<div style="display:flex;align-items:center;gap:0.75rem;">
<h2>현재 상태 (v1.5.0) — 핵심 기능 44개 핸들러</h2>
<span class="badge badge-completed">현재</span>
</div>
</div>
<div class="section-body">
<ul class="bullet-list">
<li>퍼지 검색 + 한글 초성 검색 (FuzzyEngine)</li>
<li>44개 프리픽스 명령 (계산기, 이모지, 웹검색, 스니펫, 클립보드, 프로세스 등)</li>
<li>10가지 테마 + 커스텀 테마</li>
<li>플러그인 시스템 (DLL + JSON 스킬)</li>
<li>AX Agent AI 대화 통합</li>
<li>글로벌 핫키 (Alt+Space), 무지개 글로우 효과</li>
<li>파일/앱 인덱싱, 북마크 검색, 사용 빈도 랭킹</li>
<li>워크스페이스 프로파일 (창 레이아웃 저장/복원)</li>
<li>클립보드 히스토리, 스니펫 확장</li>
<li>스크린 캡처, 컬러 피커, JSON 도구</li>
</ul>
</div>
</div>
<!-- Comparison -->
<div class="section" id="comparison">
<div class="section-header" onclick="toggleSection(this)">
<div style="display:flex;align-items:center;gap:0.75rem;">
<h2>경쟁 서비스 비교 (2026년 3월 기준)</h2>
</div>
</div>
<div class="section-body">
<div style="overflow-x:auto;">
<table>
<thead>
<tr>
<th>기능</th>
<th>AX Commander</th>
<th>Raycast</th>
<th>Alfred 5</th>
<th>Flow Launcher</th>
<th>PowerToys</th>
</tr>
</thead>
<tbody>
<tr><td>AI 대화</td><td class="check">O (AX Agent)</td><td class="check">O (멀티모델)</td><td>워크플로우</td><td class="cross">X</td><td class="cross">X</td></tr>
<tr><td>MCP 프로토콜</td><td class="check">O</td><td class="cross">X</td><td class="cross">X</td><td class="cross">X</td><td class="cross">X</td></tr>
<tr><td>에이전트 코딩</td><td class="check">O (Code 탭)</td><td class="check">O</td><td class="cross">X</td><td class="cross">X</td><td class="cross">X</td></tr>
<tr><td>플러그인</td><td>DLL+JSON</td><td>1500+ 스토어</td><td>워크플로우 갤러리</td><td>200+</td><td>모듈</td></tr>
<tr><td>클립보드 히스토리</td><td class="check">O</td><td class="check">O (리치)</td><td>파워팩</td><td>플러그인</td><td class="cross">X</td></tr>
<tr><td>윈도우 관리</td><td class="check">O (22 레이아웃)</td><td>70+ 레이아웃</td><td class="cross">X</td><td class="cross">X</td><td>FancyZones</td></tr>
<tr><td>파일 탐색기 통합</td><td class="cross">X</td><td class="cross">X</td><td class="cross">X</td><td class="cross">X</td><td class="cross">X</td></tr>
<tr><td>Everything 연동</td><td class="check">O (es 프리픽스)</td><td class="cross">X</td><td class="cross">X</td><td class="check">O</td><td class="cross">X</td></tr>
<tr><td>선택 텍스트 AI</td><td class="check">O (텍스트 액션)</td><td class="check">O (AI Commands)</td><td class="cross">X</td><td class="cross">X</td><td class="cross">X</td></tr>
<tr><td>영구 독 UI</td><td class="check">O (독 바)</td><td class="cross">X</td><td class="cross">X</td><td class="cross">X</td><td class="check">O</td></tr>
<tr><td>클라우드 동기화</td><td class="cross">X</td><td>Pro</td><td>Dropbox</td><td class="cross">X</td><td class="cross">X</td></tr>
<tr><td>다국어</td><td class="check">5개국어</td><td>영어</td><td>영어</td><td>영어</td><td>다국어</td></tr>
</tbody>
</table>
</div>
</div>
</div>
<hr>
<!-- Phase L1 -->
<div class="section" id="phase-l1">
<div class="section-header" onclick="toggleSection(this)">
<div style="display:flex;align-items:center;gap:0.75rem;">
<h2>Phase L1 — 차세대 런처 고도화 (v1.5.0)</h2>
<span class="badge badge-done">✓ 완료</span>
</div>
</div>
<div class="section-body">
<!-- L1-1 -->
<div class="feature-card">
<div class="feature-card-header">
<h4>L1-1. 선택 텍스트 AI 명령 (AI Commands)</h4>
<span class="priority priority-highest">최고</span>
</div>
<p><strong>갭:</strong> 런처에서만 AI 사용 가능, 시스템 전역 텍스트 처리 불가</p>
<p><strong>구현:</strong> 글로벌 핫키(예: Alt+A) → 선택된 텍스트에 AI 명령 실행</p>
<p><strong>명령 예시:</strong> 번역, 문법 교정, 요약, 코드 설명, 포맷 변환</p>
<p><strong>참고:</strong> Raycast AI Commands</p>
<p><strong>기술:</strong> InputListener 확장 + Clipboard 읽기 + LLM 호출 + 결과 Popup</p>
</div>
<!-- L1-2 -->
<div class="feature-card">
<div class="feature-card-header">
<h4>L1-2. Everything (voidtools) 연동</h4>
<span class="priority priority-high">높음</span>
</div>
<p><strong>갭:</strong> 자체 인덱싱은 설정된 폴더만 검색, 전체 디스크 검색 불가</p>
<p><strong>구현:</strong> Everything SDK (IPC/HTTP API) 연동으로 NTFS 전체 즉시 검색</p>
<p><strong>폴백:</strong> Everything 미설치 시 기존 IndexService 사용</p>
<p><strong>참고:</strong> Flow Launcher, Wox의 Everything 통합</p>
<p><strong>기술:</strong> Everything.dll P/Invoke 또는 HTTP API (http://localhost:8080)</p>
</div>
<!-- L1-3 -->
<div class="feature-card">
<div class="feature-card-header">
<h4>L1-3. 윈도우 타일링 레이아웃 확장</h4>
<span class="priority priority-high">높음</span>
</div>
<p><strong>갭:</strong> 기본 snap만 지원, 복잡한 레이아웃 불가</p>
<p><strong>구현:</strong> 2분할, 3분할, 4분할, 그리드 레이아웃 (halves/thirds/quarters)</p>
<p><strong>UI:</strong> snap 프리픽스에 레이아웃 선택 UI 추가</p>
<p><strong>참고:</strong> Raycast Window Management (70+ 레이아웃)</p>
<p><strong>기술:</strong> SnapHandler 확장 + Win32 SetWindowPos</p>
</div>
<!-- L1-4 -->
<div class="feature-card">
<div class="feature-card-header">
<h4>L1-4. 플러그인 스토어 (인앱 갤러리)</h4>
<span class="priority priority-medium">중간</span>
</div>
<p><strong>갭:</strong> 플러그인 설치가 수동 (DLL 파일 복사)</p>
<p><strong>구현:</strong> 인앱 플러그인 브라우저 + 원클릭 설치/업데이트</p>
<p><strong>소스:</strong> GitHub 리포지토리 기반 플러그인 레지스트리 (JSON manifest)</p>
<p><strong>참고:</strong> Raycast Extension Store, Flow Launcher pm install</p>
<p><strong>기술:</strong> PluginHost 확장 + GitHub API + 다운로드/설치 자동화</p>
</div>
<!-- L1-5 -->
<div class="feature-card">
<div class="feature-card-header">
<h4>L1-5. 영구 독/위젯 모드</h4>
<span class="priority priority-medium">중간</span>
</div>
<p><strong>갭:</strong> 런처는 호출 시에만 나타남, 상시 접근 불가</p>
<p><strong>구현:</strong> 화면 하단/측면에 고정되는 미니 바 (핀 고정 명령, CPU/메모리, 시계)</p>
<p><strong>참고:</strong> PowerToys Command Palette Dock</p>
<p><strong>기술:</strong> 별도 Window (TopMost, 자동 숨김 옵션)</p>
</div>
<!-- L1-6 -->
<div class="feature-card">
<div class="feature-card-header">
<h4>L1-6. 파일 탐색기 대화상자 통합</h4>
<span class="priority priority-medium">중간</span>
</div>
<p><strong>갭:</strong> 열기/저장 대화상자에서 빠른 검색 불가</p>
<p><strong>구현:</strong> Windows 열기/저장 대화상자 감지 → 런처 오버레이 표시</p>
<p><strong>참고:</strong> Listary의 대화상자 하이재킹</p>
<p><strong>기술:</strong> SetWinEventHook + 대화상자 감지 + 경로 주입</p>
</div>
<!-- L1-7 -->
<div class="feature-card">
<div class="feature-card-header">
<h4>L1-7. 클립보드 히스토리 강화</h4>
<span class="priority priority-medium">중간</span>
</div>
<p><strong>갭:</strong> 텍스트만 저장, 이미지/파일 클립보드 미지원</p>
<p><strong>구현:</strong> 이미지 클립보드 저장, 리치 텍스트, 핀 고정, 카테고리 분류</p>
<p><strong>참고:</strong> Raycast Clipboard (리치 컨텐츠)</p>
<p><strong>기술:</strong> ClipboardHistoryHandler 확장 + 이미지 직렬화</p>
</div>
<!-- L1-8 -->
<div class="feature-card">
<div class="feature-card-header">
<h4>L1-8. 클라우드 설정 동기화</h4>
<span class="badge badge-hold">보류</span>
</div>
<p><strong>갭:</strong> 여러 PC에서 설정 수동 복사 필요</p>
<p><strong>구현:</strong> settings.json + 스니펫 + 별칭을 클라우드 저장소에 동기화</p>
<p><strong>후보:</strong> OneDrive / Google Drive / 사내 NAS 공유 폴더</p>
<p><strong>참고:</strong> Raycast Pro Cloud Sync</p>
</div>
<!-- L1-9 -->
<div class="feature-card">
<div class="feature-card-header">
<h4>L1-9. 커스텀 테마 마켓</h4>
<span class="badge badge-hold">보류</span>
</div>
<p><strong>갭:</strong> 10개 내장 테마만 사용 가능</p>
<p><strong>구현:</strong> 사용자 테마 공유/다운로드 시스템</p>
<p><strong>기술:</strong> 테마 JSON 파일 → GitHub 기반 레지스트리</p>
</div>
</div>
</div>
<hr>
<!-- Phase L1 추가 완료 -->
<div class="section">
<div class="section-header" onclick="toggleSection(this)">
<div style="display:flex;align-items:center;gap:0.75rem;">
<h2>Phase L1 추가 완료 (v1.5.0)</h2>
<span class="badge badge-done">✓ 완료</span>
</div>
</div>
<div class="section-body">
<table>
<thead><tr><th>기능</th><th>상태</th></tr></thead>
<tbody>
<tr><td>Windows 탐색기 셸 확장</td><td>✓ ShellExtensionService — HKCU 레지스트리 우클릭 메뉴 등록/해제</td></tr>
<tr><td>저장 공간 관리 UI</td><td>✓ StorageAnalyzer — 사용량 분석, 드라이브 여유, 7/14/30일 정리</td></tr>
<tr><td>설정 도움말 아이콘</td><td>✓ AI 관련 설정 17개에 ? 아이콘 + 커스텀 다크 툴팁</td></tr>
<tr><td>독 바 실시간 설정</td><td>✓ 설정 변경 즉시 반영, 자동 표시, 위치 기억, 히트 테스트 수정</td></tr>
<tr><td>클립보드 이미지 썸네일</td><td>✓ 런처에서 이미지 항목 썸네일 미리보기 표시</td></tr>
<tr><td>런처 독 바 명령어</td><td>✓ /dock 명령으로 독 바 표시/숨기기</td></tr>
</tbody>
</table>
</div>
</div>
<hr>
<!-- Phase L2 -->
<div class="section" id="phase-l2">
<div class="section-header" onclick="toggleSection(this)">
<div style="display:flex;align-items:center;gap:0.75rem;">
<h2>Phase L2 — 클립보드 고도화 + UX 개선 (v1.5.3)</h2>
<span class="badge badge-planned">계획</span>
</div>
</div>
<div class="section-body">
<p style="color:#555;margin-bottom:1rem;">
<strong>방향</strong>: 클립보드 히스토리의 실용성 극대화 (이미지 원본 품질, 자동 복사 워크플로우).
Raycast의 리치 클립보드, Alfred의 Snippet 확장을 참고하되 사내 로컬 환경에 최적화.
</p>
<table>
<thead>
<tr><th>#</th><th>기능</th><th>설명</th><th>우선순위</th></tr>
</thead>
<tbody>
<tr><td>L2-1</td><td>클립보드 이미지 원본 해상도 보존</td><td>원본 PNG/BMP 그대로 DPAPI 저장. 썸네일은 표시용으로만 생성. 캐시 정리 정책 (30일/500MB)</td><td><span class="priority priority-high">높음</span></td></tr>
<tr><td>L2-2</td><td>Shift+Enter 실행 시 자동 클립보드 복사</td><td>클립보드 히스토리에서 미리보기 시 해당 항목을 시스템 클립보드에 자동 복사</td><td><span class="priority priority-high">높음</span></td></tr>
<tr><td>L2-3</td><td>클립보드 이미지 미리보기 창</td><td>이미지 항목 선택 시 별도 팝업으로 원본 크기 미리보기. 확대/축소, 복사 버튼</td><td><span class="priority priority-medium">중간</span></td></tr>
<tr><td>L2-4</td><td>클립보드 검색 강화</td><td>이미지 OCR 텍스트 추출 → 텍스트 기반 이미지 검색. Windows OCR API (로컬)</td><td><span class="priority priority-medium">중간</span></td></tr>
<tr><td>L2-5</td><td>클립보드 항목 병합</td><td>여러 텍스트 항목을 선택하여 하나로 병합 (줄바꿈 구분). Ctrl+Click 다중 선택</td><td><span class="priority priority-low">낮음</span></td></tr>
</tbody>
</table>
</div>
</div>
<hr>
<!-- Phase L3 -->
<div class="section" id="phase-l3">
<div class="section-header" onclick="toggleSection(this)">
<div style="display:flex;align-items:center;gap:0.75rem;">
<h2>Phase L3 — 차세대 런처 (v2.0) + Agent Phase 18 교차</h2>
<span class="badge badge-planned">계획</span>
</div>
</div>
<div class="section-body">
<p style="color:#555;margin-bottom:1rem;">
<strong>방향</strong>: 경쟁 런처(Raycast 1500+ 확장, PowerToys Run)의 에코시스템 수준을 참고하되,
사내 보안/오프라인 환경에서 동작하는 자체 완결형 기능으로 구현.<br>
<strong>참고</strong>: AX Agent Phase 18 (v2.0)과 교차 — 플러그인 갤러리(18-2), AI 스니펫(18-3), 퀵링크(18-4), 웹 검색 AI 요약(18-6).
</p>
<table>
<thead>
<tr><th>#</th><th>기능</th><th>참고</th><th>우선순위</th></tr>
</thead>
<tbody>
<tr><td>L3-1</td><td>플러그인 인앱 갤러리 + 레지스트리</td><td>로컬 NAS/Git 레지스트리 기반 탐색/설치/업데이트. → Agent Phase 18-2</td><td><span class="priority priority-high">높음</span></td></tr>
<tr><td>L3-2</td><td>웹 검색 AI 요약</td><td>? 검색 결과를 AI로 요약. → Agent Phase 18-6</td><td><span class="priority priority-medium">중간</span></td></tr>
<tr><td>L3-3</td><td>AI 스니펫</td><td>;email {수신자} {주제} → LLM 초안 자동 생성. → Agent Phase 18-3</td><td><span class="priority priority-medium">중간</span></td></tr>
<tr><td>L3-4</td><td>파라미터 퀵링크</td><td>jira {티켓번호} → URL 템플릿 변수 치환. → Agent Phase 18-4</td><td><span class="priority priority-medium">중간</span></td></tr>
<tr><td>L3-5</td><td>파일 태그 시스템</td><td>사용자 태그 부여, 태그 기반 검색</td><td><span class="priority priority-medium">중간</span></td></tr>
<tr><td>L3-6</td><td>오프라인 AI (로컬 SLM)</td><td>ONNX Runtime + phi-3. → Agent Phase 18-5</td><td><span class="priority priority-low">낮음</span></td></tr>
<tr><td>L3-7</td><td>다중 디스플레이</td><td>모니터별 런처/독 바 위치 기억</td><td><span class="priority priority-low">낮음</span></td></tr>
<tr><td>L3-8</td><td>알림 센터 통합</td><td>Windows 알림과 연동</td><td><span class="priority priority-low">낮음</span></td></tr>
<tr><td>L3-9</td><td>런처 미니 위젯</td><td>날씨/일정/할일 카드형 표시. 로컬 데이터 기반</td><td><span class="priority priority-low">낮음</span></td></tr>
</tbody>
</table>
</div>
</div>
<hr>
<!-- Tech Debt -->
<div class="section" id="tech-debt">
<div class="section-header" onclick="toggleSection(this)">
<div style="display:flex;align-items:center;gap:0.75rem;">
<h2>기술 부채 (v1.5.0 해결)</h2>
<span class="badge badge-done">✓ 완료</span>
</div>
</div>
<div class="section-body">
<table>
<thead>
<tr><th>항목</th><th>상태</th></tr>
</thead>
<tbody>
<tr><td>SnapHandler 기본 기능만</td><td>✓ 22개 레이아웃으로 확장 (3등분, 2/3, 3분할 조합)</td></tr>
<tr><td>Everything 미연동</td><td>✓ EverythingHandler 구현 (es 프리픽스, P/Invoke, graceful fallback)</td></tr>
<tr><td>플러그인 설치 수동</td><td>✓ PluginHost.InstallFromZip() 로컬 zip 자동 추출·등록 (URL 제외: 사내 보안)</td></tr>
<tr><td>이미지 클립보드 미지원</td><td>✓ PNG→Base64 DPAPI 암호화 저장/복원, 앱 재시작 후 이미지 유지</td></tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="footer">
AX Copilot &mdash; AX Commander Roadmap v1.6.1 &middot; Last Updated: 2026-03-30
</div>
<script>
function toggleSection(header) {
const section = header.parentElement;
section.classList.toggle('collapsed');
}
</script>
</body>
</html>

View File

@@ -1,259 +0,0 @@
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>AX Copilot ??李④린 媛쒕컻 怨꾪쉷 (v1.6.1~v2.0)</title>
<style>
* { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: 'Pretendard', 'Segoe UI', 'Malgun Gothic', sans-serif; font-size: 15px; color: #1a1a2e; background: #f8f9fe; line-height: 1.7; }
.wrap { max-width: 960px; margin: 0 auto; padding: 40px 20px 80px; }
.header { background: linear-gradient(135deg, #1a1b2e 0%, #2d3a6b 60%, #4b5efc 100%); border-radius: 20px; padding: 48px 40px 40px; margin-bottom: 40px; color: white; }
.header h1 { font-size: 26px; font-weight: 800; line-height: 1.3; margin-bottom: 12px; }
.header .subtitle { font-size: 14px; color: rgba(255,255,255,0.65); line-height: 1.6; }
.header .badge { display: inline-block; background: rgba(255,255,255,0.15); border: 1px solid rgba(255,255,255,0.25); border-radius: 20px; padding: 4px 14px; font-size: 12px; font-weight: 600; margin-bottom: 16px; }
h2 { font-size: 20px; font-weight: 800; margin: 40px 0 16px; padding: 14px 20px; background: linear-gradient(135deg, #1a1b2e 0%, #2d3a6b 60%, #4b5efc 100%); color: #fff; border-radius: 12px; }
h3 { font-size: 15px; font-weight: 700; color: #1a1b2e; margin: 20px 0 10px; padding-left: 12px; border-left: 4px solid #4b5efc; }
.card { background: #fff; border-radius: 14px; padding: 20px 24px; margin: 0 0 14px; box-shadow: 0 1px 4px rgba(0,0,0,0.06); }
table { width: 100%; border-collapse: collapse; font-size: 13px; }
th { background: #f0f2ff; text-align: left; padding: 8px 12px; font-weight: 700; border-bottom: 2px solid #dde; }
td { padding: 7px 12px; border-bottom: 1px solid #eef; vertical-align: top; }
.check { color: #059669; font-weight: 700; }
.cross { color: #dc2626; }
.new { color: #4b5efc; font-weight: 700; }
.badge-done { display: inline-block; background: rgba(16,185,129,0.15); color: #059669; border: 1px solid rgba(16,185,129,0.3); padding: 2px 10px; border-radius: 20px; font-size: 11px; font-weight: 600; }
.badge-plan { display: inline-block; background: rgba(75,94,252,0.1); color: #4b5efc; border: 1px solid rgba(75,94,252,0.3); padding: 2px 10px; border-radius: 20px; font-size: 11px; font-weight: 600; }
.badge-hold { display: inline-block; background: rgba(156,163,175,0.15); color: #6b7280; border: 1px solid rgba(156,163,175,0.3); padding: 2px 10px; border-radius: 20px; font-size: 11px; font-weight: 600; }
.p-high { color: #dc2626; font-weight: 700; }
.p-mid { color: #d97706; font-weight: 600; }
.p-low { color: #6b7280; }
.footer { text-align: center; font-size: 12px; color: #9999bb; margin-top: 48px; padding-top: 16px; border-top: 1px solid #e4e4f0; }
.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 700px) { .two-col { grid-template-columns: 1fr; } }
</style>
</head>
<body>
<div class="wrap">
<div class="header">
<div class="badge">AX Copilot 李④린 媛쒕컻 怨꾪쉷</div>
<h1>v1.6.1 ~ v2.0 濡쒕뱶留?/h1>
<p class="subtitle">
2026??3??寃쎌웳 ?쒕퉬??遺꾩꽍 (Claw Code, Cursor, Copilot, Windsurf, Raycast, PowerToys) 諛??먯씠?꾪듃 肄붾뵫 ?숉뼢 湲곕컲<br>
?꾩옱 v1.6.1 ??52媛??먯씠?꾪듃 ?꾧뎄, 29媛??댁옣 ?ㅽ궗, 20媛?肄붿썙???꾨━?? 4醫?LLM ?쒕퉬?? </p>
</div>
<!-- ?먥븧???꾩옱 ?꾨즺 ?먥븧??-->
<h2>v1.6.1 ?꾨즺 ?꾪솴</h2>
<div class="two-col">
<div class="card">
<h3>?곗쿂 (Phase L1) <span class="badge-done">?꾨즺</span></h3>
<table>
<tr><td>?좏깮 ?띿뒪??AI 紐낅졊</td><td class="check">O</td></tr>
<tr><td>??諛?(?ㅼ젙 湲곕컲)</td><td class="check">O</td></tr>
<tr><td>?대┰蹂대뱶 ?€/移댄뀒怨좊━</td><td class="check">O</td></tr>
<tr><td>?뚯씪 ?€?붿긽???곕룞</td><td class="check">O</td></tr>
<tr><td>Everything ?곕룞</td><td class="check">O</td></tr>
<tr><td>SnapHandler 22醫?/td><td class="check">O</td></tr>
<tr><td>?꾩씠肄??꾨㈃ 援먯껜</td><td class="check">O</td></tr>
</table>
</div>
<div class="card">
<h3>?€???쒕퉬??(Phase 8~15) <span class="badge-done">?꾨즺</span></h3>
<table>
<tr><td>MCP ?대씪?댁뼵??+ 紐⑤뜽 ?대갚</td><td class="check">O</td></tr>
<tr><td>LSP 肄붾뱶 ?명뀛由ъ쟾??/td><td class="check">O</td></tr>
<tr><td>?쒕툕?먯씠?꾪듃 + 肄붾뱶 ?쒕㎤??寃€??/td><td class="check">O</td></tr>
<tr><td>diff 酉곗뼱 + PDF ?대낫?닿린</td><td class="check">O</td></tr>
<tr><td>?대깽???몃━嫄?+ ?먮룞 ?뚯뒪??猷⑦봽</td><td class="check">O</td></tr>
<tr><td>?먮룞 紐⑤뜽 ?좏깮 (Auto Router)</td><td class="check">O</td></tr>
<tr><td>?먯씠?꾪듃 硫붾え由?+ 硫€?곕え??(Vision)</td><td class="check">O</td></tr>
<tr><td>?먯씠?꾪듃 ???쒖뒪??/td><td class="check">O</td></tr>
<tr><td>?ㅽ궗 ?쒖뒪??29醫?(媛ㅻ윭由??몄쭛湲?媛€?몄삤湲?</td><td class="check">O</td></tr>
<tr><td>AI 肄붾뱶 由щ럭 + ?쒕옒洹??쒕∼ AI</td><td class="check">O</td></tr>
<tr><td>?먯씠?꾪듃 ?꾧뎄 52醫?(?곗씠???쒖뒪???ㅽ듃?뚰겕)</td><td class="check">O</td></tr>
<tr><td>?뚰겕?뚮줈??遺꾩꽍湲?+ ?ㅽ뻾 ?듦퀎 ?€?쒕낫??/td><td class="check">O</td></tr>
<tr><td>硫€?고뙣??臾몄꽌 ?앹꽦 (plan?뭓ssemble)</td><td class="check">O</td></tr>
<tr><td>PPT ?ㅼ씠?곕툕 ?앹꽦 + ?대?吏€ 遺꾩꽍</td><td class="check">O</td></tr>
<tr><td>媛€?대뱶 ?쒖뒪??(?뷀샇??酉곗뼱)</td><td class="check">O</td></tr>
</table>
</div>
</div>
<!-- ?먥븧??寃쎌웳 鍮꾧탳 ?먥븧??-->
<h2>寃쎌웳 ?쒕퉬???€鍮??ъ???(2026??3??</h2>
<div class="card">
<table>
<tr><th>湲곕뒫</th><th>AX Copilot</th><th>Claw Code</th><th>Cursor</th><th>Copilot</th><th>Raycast</th><th>媛?/th></tr>
<tr><td>MCP</td><td class="check">O</td><td class="check">?쒕쾭 紐⑤뱶</td><td class="check">O</td><td class="check">O</td><td class="check">@硫섏뀡</td><td>??/td></tr>
<tr><td>?쒕툕?먯씠?꾪듃</td><td class="check">O</td><td class="check">10媛??€</td><td class="check">8媛??대씪?곕뱶</td><td class="check">?ㅼ쨷</td><td class="cross">X</td><td>?먯씠?꾪듃 ?€</td></tr>
<tr><td>?대깽???몃━嫄?/td><td class="check">O</td><td class="check">?뱁썒+?ㅼ?以?/td><td class="check">Automations</td><td class="check">?댁뒋?뭁R</td><td class="cross">X</td><td>??/td></tr>
<tr><td>?먯씠?꾪듃 硫붾え由?/td><td class="check">O</td><td class="check">O</td><td class="check">O</td><td class="check">O</td><td class="cross">X</td><td>??/td></tr>
<tr><td>?먮룞 紐⑤뜽 ?좏깮</td><td class="check">O</td><td class="cross">X</td><td class="check">O</td><td class="check">O</td><td class="check">Auto</td><td>??/td></tr>
<tr><td>硫€?곕え??/td><td class="check">O</td><td class="check">Vision</td><td class="check">O</td><td class="check">O</td><td class="cross">X</td><td>??/td></tr>
<tr><td>?ㅽ궗 ?쒖뒪??/td><td class="check">O</td><td class="check">Skills</td><td class="cross">X</td><td class="cross">X</td><td class="cross">X</td><td class="check">李⑤퀎??/td></tr>
<tr><td>AI 肄붾뱶 由щ럭</td><td class="check">O</td><td class="cross">X</td><td class="cross">X</td><td class="check">Review</td><td class="cross">X</td><td>??/td></tr>
<tr><td>?뚮윭洹몄씤 留덉폆</td><td>zip+媛ㅻ윭由?/td><td class="check">留덉폆</td><td class="check">30+</td><td class="check">Extensions</td><td class="check">1500+</td><td class="p-mid">?몄빋 ?덉??ㅽ듃由?/td></tr>
<tr><td>硫€?고뙣??臾몄꽌</td><td class="check">O (plan?뭓ssemble)</td><td class="cross">X</td><td class="cross">X</td><td class="cross">X</td><td class="cross">X</td><td class="check">李⑤퀎??/td></tr>
<tr><td>?뚰겕?뚮줈??遺꾩꽍</td><td class="check">O (?ㅼ떆媛??쒓컖??</td><td class="cross">X</td><td class="cross">X</td><td class="cross">X</td><td class="cross">X</td><td class="check">李⑤퀎??/td></tr>
<tr><td>?먯깋湲????뺤옣</td><td class="check">O</td><td class="cross">X</td><td class="cross">X</td><td class="cross">X</td><td class="cross">X</td><td class="check">李⑤퀎??/td></tr>
<tr><td>??諛?/td><td class="check">O</td><td class="cross">X</td><td class="cross">X</td><td class="cross">X</td><td class="cross">X</td><td class="check">李⑤퀎??/td></tr>
<tr><td>Windows ?ㅼ씠?곕툕</td><td class="check">O</td><td>?곕???/td><td>IDE</td><td>IDE</td><td>beta</td><td class="check">李⑤퀎??/td></tr>
</table>
</div>
<!-- ?먥븧??Phase 16 ??李④린 媛쒕컻 ?먥븧??-->
<h2>Phase 16 ???먯씠?꾪듃 吏€??媛뺥솕 + 媛쒕컻??寃쏀뿕 (v1.7.0) <span class="badge-plan">李④린 媛쒕컻</span></h2>
<div class="card">
<table>
<tr><th>#</th><th>湲곕뒫</th><th>?곗꽑?쒖쐞</th><th>?듭떖 ?댁슜</th><th>李멸퀬</th></tr>
<tr><td>16-1</td><td><strong>?뚮옖 紐⑤뱶 (Plan Mode)</strong></td><td class="p-high">理쒓퀬</td>
<td>?먯씠?꾪듃媛€ ?꾧뎄 ?ㅽ뻾 ??援ъ“?붾맂 怨꾪쉷 ?앹꽦 ???ъ슜??寃€???몄쭛/?뱀씤 ???뱀씤 ???ㅽ뻾</td>
<td>Claw Code Plan mode</td></tr>
<tr><td>16-2</td><td><strong>?꾧뎄/而ㅻ꽖??愿€由?UI</strong></td><td class="p-high">?믪쓬</td>
<td>52媛??꾧뎄 移댄뀒怨좊━蹂?移대뱶, ?쒖꽦/鍮꾪솢???좉?, MCP ?쒕쾭 ?곌껐 ?곹깭</td>
<td>Sigmoid 而ㅻ꽖??UI</td></tr>
<tr><td>16-3</td><td><strong>?꾨줈?앺듃 洹쒖튃 ?쒖뒪??/strong></td><td class="p-high">?믪쓬</td>
<td>.ax/rules/*.md ???뚯씪 ?⑦꽩쨌?묒뾽 ?좏삎蹂?洹쒖튃 ?먮룞 二쇱엯</td>
<td>Cursor .cursor/rules</td></tr>
<tr><td>16-4</td><td><strong>諛섎났 ?뚯뒪???섏젙 猷⑦봽</strong></td><td class="p-high">?믪쓬</td>
<td>TestLoopTool auto_fix 紐⑤뱶 ???뚯뒪?멤넂?ㅽ뙣 ?뚯떛?믪닔?뺚넂?ъ떎???먮룞 諛섎났</td>
<td>GitHub Copilot</td></tr>
<tr><td>16-5</td><td><strong>蹂묐젹 ?꾧뎄 ?ㅽ뻾</strong></td><td class="p-mid">以묎컙</td>
<td>LLM ?ㅼ닔 ?꾧뎄 ?숈떆 ?몄텧 ???섏〈??遺꾩꽍 ??Task.WhenAll() 蹂묐젹 ?ㅽ뻾</td>
<td>Claw Code parallel</td></tr>
<tr><td>16-6</td><td><strong>SKILL.md ?쒖? ?꾩쟾 ?명솚</strong></td><td class="p-mid">以묎컙</td>
<td>agentskills.io ?ㅽ럺 ?꾩껜 ?뚯떛, ?몃??붾궡遺€ ?꾧뎄 ?대쫫 留ㅽ븨</td>
<td>16媛? ?꾧뎄 梨꾪깮</td></tr>
<tr><td>16-R</td><td><strong>?고???怨좉툒 ?ㅽ궗 ?뺤옣</strong></td><td class="p-mid">以묎컙</td>
<td>4醫?異붽?: image-processor, diagram-generator, ocr-extract, data-visualize-adv</td>
<td>Pillow, Tesseract</td></tr>
</table>
</div>
<!-- ?먥븧??Phase 17 ?먥븧??-->
<h2>Phase 17 ???ы솕 吏€??+ UX ?곸떊 (v1.8.0) <span class="badge-plan">怨꾪쉷</span></h2>
<div class="card">
<table>
<tr><th>#</th><th>湲곕뒫</th><th>?곗꽑?쒖쐞</th><th>?듭떖 ?댁슜</th><th>李멸퀬</th></tr>
<tr><td>17-1</td><td><strong>?먭린 ?깆같 (Self-Reflection)</strong></td><td class="p-high">理쒓퀬</td>
<td>?꾧뎄 ?ㅽ뙣 ??援ъ“?붾맂 ?깆같 ?꾨\?꾪듃, ?먮윭 ?⑦꽩 異붿쟻 (Reflexion ?⑦꽩)</td>
<td>Reflexion ?쇰Ц</td></tr>
<tr><td>17-2</td><td><strong>?묒뾽 湲곗뼲 (Working Memory)</strong></td><td class="p-high">?믪쓬</td>
<td>?€???뺤텞 ?쒖뿉???좎??섎뒗 援ъ“?붾맂 ?쒖뒪???곹깭 (?꾩옱 ?묒뾽, 李몄“ ?뚯씪, ?섏궗寃곗젙 濡쒓렇)</td>
<td>Windsurf memory</td></tr>
<tr><td>17-3</td><td><strong>硫€?고뙆???듯빀 Diff 酉?/strong></td><td class="p-high">?믪쓬</td>
<td>?먯씠?꾪듃 ?ㅼ닔 ?뚯씪 ?섏젙 ???섎굹???⑤꼸?먯꽌 ?뚯씪蹂??뚰겕蹂??뱀씤/嫄곕?</td>
<td>Cursor multi-file diff</td></tr>
<tr><td>17-4</td><td><strong>?먮룞 而⑦뀓?ㅽ듃 ?섏쭛</strong></td><td class="p-mid">以묎컙</td>
<td>?ъ슜??硫붿떆吏€?먯꽌 ?뚯씪紐?媛먯? ???먮룞 ?쎄린, Git diff, 肄붾뱶 寃€??二쇱엯</td>
<td>Windsurf auto context</td></tr>
<tr><td>17-5</td><td><strong>MCP HTTP+SSE ?꾩넚</strong></td><td class="p-mid">以묎컙</td>
<td>stdio ?꾩슜 ??HTTP+SSE ?몃옖?ㅽ룷??異붽?, ?먭꺽 MCP ?쒕쾭 ?곌껐</td>
<td>MCP ?쒖?</td></tr>
<tr><td>17-6</td><td><strong>?€???붿빟 ?⑤뵒留⑤뱶</strong></td><td class="p-low">??쓬</td>
<td>/summarize-chat ?щ옒??紐낅졊?쇰줈 ?꾩옱 ?€??援ъ“???붿빟</td>
<td>??/td></tr>
</table>
</div>
<!-- ?먥븧??Phase 18 ?먥븧??-->
<h2>Phase 18 ???먯퐫?쒖뒪??+ 李⑤퀎??(v2.0) <span class="badge-plan">怨꾪쉷</span></h2>
<div class="card">
<table>
<tr><th>#</th><th>湲곕뒫</th><th>?곗꽑?쒖쐞</th><th>?듭떖 ?댁슜</th><th>李멸퀬</th></tr>
<tr><td>18-1</td><td><strong>?먯씠?꾪듃 ?€ (Multi-Agent)</strong></td><td class="p-high">理쒓퀬</td>
<td>?뱁솕 ?먯씠?꾪듃(肄붾뱶由щ럭, 臾몄꽌?묒꽦, 蹂댁븞媛먯궗)媛€ 硫붿떆吏€ 踰꾩뒪濡??묒뾽</td>
<td>Claw Code ?먯씠?꾪듃 ?€</td></tr>
<tr><td>18-2</td><td><strong>?뚮윭洹몄씤 媛ㅻ윭由?+ ?덉??ㅽ듃由?/strong></td><td class="p-high">?믪쓬</td>
<td>濡쒖뺄 NAS/Git ?덉??ㅽ듃由?湲곕컲 ?뚮윭洹몄씤/?ㅽ궗 ?몄빋 媛ㅻ윭由?/td>
<td>Raycast Store</td></tr>
<tr><td>18-3</td><td><strong>AI ?ㅻ땲??/strong></td><td class="p-mid">以묎컙</td>
<td>;email {?섏떊?? {二쇱젣} ??LLM???대찓??珥덉븞 ?먮룞 ?앹꽦</td>
<td>Raycast AI Snippets</td></tr>
<tr><td>18-4</td><td><strong>?뚮씪誘명꽣 ?듬쭅??/strong></td><td class="p-mid">以묎컙</td>
<td>jira {?곗폆踰덊샇} ??URL ?쒗뵆由?蹂€??移섑솚 (?щ궡 ?꾧뎄 鍮좊Ⅸ ?묎렐)</td>
<td>Raycast Quicklinks</td></tr>
<tr><td>18-5</td><td><strong>?ㅽ봽?쇱씤 AI (ONNX Runtime)</strong></td><td class="p-low">??쓬</td>
<td>?쒕쾭 ?놁씠 踰덉뿭/?붿빟/遺꾨쪟. 紐⑤뜽 蹂꾨룄 諛고룷 (?몄뒪?⑤윭 ?ш린 ?좎?)</td>
<td>??/td></tr>
<tr><td>18-6</td><td><strong>??寃€??AI ?붿빟</strong></td><td class="p-low">??쓬</td>
<td>? 寃€??寃곌낵瑜?AI濡??붿빟?섏뿬 ?곗쿂???쒖떆</td>
<td>??/td></tr>
</table>
</div>
<!-- ?먥븧???κ린 怨꾪쉷 ?먥븧??-->
<h2>?κ린 ??macOS ?щ줈?ㅽ뵆?ロ뤌 (v2.0+) <span class="badge-plan">?κ린</span></h2>
<div class="card">
<table>
<tr><th>#</th><th>湲곕뒫</th><th>?곗꽑?쒖쐞</th><th>?듭떖 ?댁슜</th></tr>
<tr><td>LP-1</td><td><strong>Avalonia UI 留덉씠洹몃젅?댁뀡</strong></td><td class="p-high">?믪쓬</td>
<td>WPF ??Avalonia UI (.NET ?щ줈?ㅽ뵆?ロ뤌 XAML). Windows/macOS/Linux ?숈씪 肄붾뱶踰좎씠?? Skia ?뚮뜑留?/td></tr>
<tr><td>LP-2</td><td><strong>?꾩씠肄??고듃 ?댁옣</strong></td><td class="p-high">?믪쓬</td>
<td>Segoe MDL2 ??FluentUI System Icons (MIT). macOS?먯꽌???숈씪 ?꾩씠肄?/td></tr>
<tr><td>LP-3</td><td><strong>P/Invoke ?뚮옯??遺꾧린</strong></td><td class="p-high">?믪쓬</td>
<td>RuntimeInformation.IsOSPlatform 遺꾧린. macOS: AppKit, Keychain, CGEventTap, Spotlight</td></tr>
<tr><td>LP-4</td><td><strong>?뚮윭洹몄씤 ?몄빋 媛ㅻ윭由?/strong></td><td class="p-mid">以묎컙</td>
<td>JSON manifest 湲곕컲 ?뚮윭洹몄씤 寃€???ㅼ튂/?낅뜲?댄듃. ?щ궡 NAS ?먮뒗 Git 湲곕컲 ?덉??ㅽ듃由?/td></tr>
</table>
<p style="margin-top:12px;font-size:12px;color:#6b7280;">
<strong>?꾪솚 ?곹뼢</strong>: 鍮꾩쫰?덉뒪 濡쒖쭅 (Services/Agent/Models) 100% ?ъ궗?? UI 怨꾩링 (Views) ??40% ?ъ옉?? 鍮뚮뱶: <code>dotnet publish -r osx-arm64</code>
</p>
</div>
<!-- ?먥븧??蹂대쪟 ?먥븧??-->
<h2>蹂대쪟 <span class="badge-hold">?щ궡 ?섍꼍</span></h2>
<div class="card">
<table>
<tr><td>?대씪?곕뱶 ?ㅼ젙 ?숆린??/td><td>?몃? ?대씪?곕뱶 ?묎렐 ?쒗븳</td></tr>
<tr><td>而ㅼ뒪?€ ?뚮쭏 留덉폆</td><td>?몃? URL 湲곕컲 ?ㅼ슫濡쒕뱶 ?쒗븳</td></tr>
</table>
</div>
<!-- ?먥븧???꾨왂 ?먥븧??-->
<h2>?듭떖 ?꾨왂</h2>
<div class="card">
<h3>1. Windows ?ㅼ씠?곕툕 AI ?뚮옯??/h3>
<p>Raycast(macOS/beta), Cursor(IDE), Claw Code(?곕??? ?ъ씠 怨듬갚. ?щ궡 ?섍꼍 ?좎씪??Windows AI ?곗쿂+?먯씠?꾪듃.</p>
<h3>2. 吏€?ν삎 ?먮룞??/h3>
<p>?먮룞 紐⑤뜽 ?좏깮 + ?대깽???몃━嫄?+ ?먯씠?꾪듃 硫붾え由????ъ슜??媛쒖엯 理쒖냼?? ?뚮옖 紐⑤뱶(v1.7.0)?€ ?먭린 ?깆같(v1.8.0)濡??먯씠?꾪듃 ?뺥솗???μ긽. ?멸컙-?먯씠?꾪듃 ?묒뾽 UX??吏묒쨷.</p>
<h3>3. ?앺깭怨??뺤옣</h3>
<p>?뚮윭洹몄씤+?ㅽ궗 ?쒖뒪?쒖쑝濡?而ㅻ??덊떚 湲곗뿬 援ъ“ 留덈젴. Phase 18?먯꽌 ?뚮윭洹몄씤 媛ㅻ윭由??덉??ㅽ듃由? AI ?ㅻ땲?? ?듬쭅?щ줈 ?곗쿂 ?앺깭怨??꾩꽦. ?щ궡 諛고룷??NAS/Git 湲곕컲.</p>
<h3>4. ?먯씠?꾪듃 ?€ (v2.0 ?듭떖)</h3>
<p>?뱁솕 ?먯씠?꾪듃(肄붾뱶由щ럭, 臾몄꽌?묒꽦, 蹂댁븞媛먯궗)媛€ 硫붿떆吏€ 踰꾩뒪濡??묒뾽?섏뿬 蹂듯빀 ?묒뾽??遺꾩뾽 ?섑뻾. Claw Code ?먯씠?꾪듃 ?€, CrewAI ??븷 湲곕컲 ?€ ?⑦꽩 李멸퀬.</p>
</div>
<!-- ?먥븧??湲곗닠 ?숉뼢 ?먥븧??-->
<h2>2026???먯씠?꾪듃 肄붾뵫 湲곗닠 ?숉뼢</h2>
<div class="card">
<table>
<tr><th>?숉뼢</th><th>?곸꽭</th></tr>
<tr><td>?쒖옣 移⑦닾</td><td>媛쒕컻??85%媛€ AI 肄붾뵫 ?꾧뎄 ?ъ슜</td></tr>
<tr><td>?먯씠?꾪듃 ?꾪솚</td><td>?먮룞?꾩꽦 ???먯쑉 ?먯씠?꾪듃(?대줎?믪닔?뺚넂PR?믫뀒?ㅽ듃)</td></tr>
<tr><td>硫€???먯씠?꾪듃</td><td>Claw Code ?먯씠?꾪듃 ?€, Cursor 8媛??대씪?곕뱶 ?먯씠?꾪듃</td></tr>
<tr><td>?대깽??湲곕컲</td><td>Slack/GitHub/PagerDuty/?뱁썒 ???먯씠?꾪듃 ?먮룞 ?ㅽ뻾</td></tr>
<tr><td>?먯씠?꾪듃 硫붾え由?/td><td>Windsurf 48?쒓컙 ?먮룞 遺꾩꽍, Cursor ?щ떇 硫붾え由?/td></tr>
<tr><td>FeatureBench 媛?/td><td>蹂듭옟 湲곕뒫 11~12% vs 踰꾧렇 ?섏젙 80%+. ?멸컙 媛먮룆 ?꾩닔</td></tr>
<tr><td>?뚮윭洹몄씤 ?앺깭怨?/td><td>紐⑤뱺 二쇱슂 ?꾧뎄媛€ 留덉폆?뚮젅?댁뒪 ?곗묶</td></tr>
<tr><td>?먮룞 紐⑤뜽 ?좏깮</td><td>Raycast Auto, Copilot Auto ???묒뾽 ?좏삎蹂?理쒖쟻 紐⑤뜽 ?쇱슦??/td></tr>
</table>
</div>
<div class="footer">
AX Copilot v1.6.1 ??李④린 媛쒕컻 怨꾪쉷 &middot; 理쒖쥌 ?낅뜲?댄듃: 2026-03-30
</div>
</div>
</body>
</html>

View File

@@ -1,54 +0,0 @@
# 프롬프트 카드 설정 가이드 (개발자 전용)
## 개요
새 대화 화면의 프롬프트 카드는 **개발자가 미리 설정한 시스템 프롬프트**를 통해
AI의 역할과 응답 스타일을 정의합니다. 사용자는 카드를 클릭하면 해당 모드가 자동 적용되고,
입력란에 안내 문구가 표시되어 내용을 입력한 후 전송합니다.
## 수정 방법
### 파일 위치
```
src/AxCopilot/Views/ChatWindow.xaml
```
### Tag 형식
```
Tag="시스템 프롬프트 내용||입력란 안내 문구"
```
- `||` 구분자 앞: AI에게 전달되는 시스템 프롬프트 (사용자에게 노출되지 않음)
- `||` 구분자 뒤: 사용자 입력란에 표시될 placeholder 안내 문구
### 예시
```xml
<Border Background="{DynamicResource ItemBackground}" CornerRadius="12"
Padding="14,12" Margin="4" Cursor="Hand"
MouseLeftButtonDown="PromptCard_Click"
Tag="당신은 시니어 소프트웨어 엔지니어입니다. 주어진 코드를 리뷰하고...||리뷰할 코드를 붙여넣으세요...">
<StackPanel>
<TextBlock Text="&#xE943;" FontFamily="Segoe MDL2 Assets" FontSize="16"
Foreground="{DynamicResource AccentColor}" Margin="0,0,0,8"/>
<TextBlock Text="코드 리뷰" FontSize="12" FontWeight="SemiBold"
Foreground="{DynamicResource PrimaryText}"/>
<TextBlock Text="코드를 분석하고 개선점을 제안" FontSize="10.5"
Foreground="{DynamicResource SecondaryText}" TextWrapping="Wrap"
Margin="0,3,0,0"/>
</StackPanel>
</Border>
```
### 카드 추가
`<UniformGrid x:Name="PromptCards" Columns="3">` 안에 위 형식의 `<Border>` 블록을 추가합니다.
카드 수가 3개를 초과하면 `Columns` 값을 조정하세요.
### 아이콘
Segoe MDL2 Assets 폰트 코드를 사용합니다.
- 참고: https://learn.microsoft.com/en-us/windows/apps/design/style/segoe-ui-symbol-font
## 동작 흐름
1. 사용자가 카드 클릭
2. 새 대화 생성 → `SystemCommand`에 시스템 프롬프트 자동 삽입
3. 입력란에 placeholder 안내 문구 표시 (선택 상태)
4. 사용자가 내용 입력 후 전송
5. AI가 시스템 프롬프트 역할에 맞게 응답

View File

@@ -1,290 +0,0 @@
# AX Copilot 湲곗닠 ?몃???### ?щ궡 AI ?앹궛???뚮옯?????꾪궎?띿쿂?€ ?듭떖 湲곗닠
> **諛쒗몴 ?€??*: ?щ궡 媛쒕컻?€ / AI ?곌뎄?€
> **踰꾩쟾**: v1.6.1 湲곗? (2026??3??
> **諛쒗몴??*: AX?곌뎄??AI?€
---
## 1. AX Copilot ?대??
> **"Alt+Space ??踰덉쑝濡?紐⑤뱺 ?낅Т ?꾧뎄???묎렐?섎뒗 ?щ궡 ?꾩슜 AI ?뚮옯??**
### ??媛€吏€ ?쒗뭹?쇰줈 援ъ꽦
| ?쒗뭹紐?| ??븷 | 二쇱슂 湲곕뒫 |
|--------|------|-----------|
| **AX Commander** | 湲€濡쒕쾶 ?곗쿂 | 紐낅졊 寃€?? ?꾧뎄 ?ㅽ뻾, ?먮룞??|
| **AX Agent** | AI ?€???붿쭊 | Chat / Cowork / Code 3??|
| **AX Copilot** | ?듯빀 ?뚮옯??| ?????쒗뭹 + ?ㅼ젙쨌蹂댁븞 ?듯빀 |
### ???곗뒪?ы깙 ?깆씤媛€? ??2026??AI ?꾧뎄??諛⑺뼢
> **"釉뚮씪?곗? ?덉쓽 AI"?먯꽌 "??PC?먯꽌 吏곸젒 ?€吏곸씠??AI"濡??꾪솚 以?*
2024~2025??AI ?쒕퉬?ㅻ뱾?€ ??梨꾪똿(ChatGPT, Sigmoid.ai)??二쇰쪟?€吏€留?
2026???꾩옱 **二쇱슂 AI 肄붾뵫 ?쒕퉬?ㅺ? 紐⑤몢 ?곗뒪?ы깙 ???곕????ㅼ씠?곕툕**濡??꾪솚?덉뒿?덈떎:
| ?쒕퉬??| ?뺥깭 | 濡쒖뺄 ?뚯씪 ?묎렐 |
|--------|------|:------------:|
| **Claw Code** | ?곕???CLI (?ъ슜??PC?먯꽌 吏곸젒 ?ㅽ뻾) | ???뚯씪 ?쎄린/?곌린/?ㅽ뻾 |
| **Cursor** | ?곗뒪?ы깙 IDE (Electron 湲곕컲) | ???꾨줈?앺듃 ?꾩껜 遺꾩꽍 |
| **Windsurf** | ?곗뒪?ы깙 IDE (VS Code ?ы겕) | ??48?쒓컙 ?먮룞 ?몃뜳??|
| **GitHub Copilot** | VS Code ?뺤옣 ???낅┰ ?먯씠?꾪듃 | ??濡쒖뺄 Git ?곕룞 |
| **Raycast** | ?곗뒪?ы깙 ?곗쿂 (macOS ?ㅼ씠?곕툕) | ???굿룻뙆?셋룻겢由쎈낫???듯빀 |
**怨듯넻 ?⑦꽩**: AI媛€ ?ㅼ젣濡??좎슜?섎젮硫?**?ъ슜?먯쓽 ?ㅼ젣 ?뚯씪???쎄퀬, ?섏젙?섍퀬, ?ㅽ뻾**?댁빞 ?⑸땲??
??釉뚮씪?곗??먯꽌???닿쾬??遺덇??ν븯誘€濡? 紐⑤뱺 ?쒕퉬?ㅺ? ?곗뒪?ы깙/?곕??먮줈 ?대젮?붿뒿?덈떎.
**AX Copilot?€ ???먮쫫???뺤쨷?숈뿉 ?꾩튂?⑸땲??**
- ?뼢截?**?곗뒪?ы깙 ?ㅼ씠?곕툕** ??WPF ?깆씠 OS ?덈꺼?먯꽌 ?뚯씪쨌?꾨줈?몄뒪쨌?대┰蹂대뱶??吏곸젒 ?묎렐
- ?⑨툘 **湲€濡쒕쾶 ?곗쿂** ??Alt+Space ??踰덉쑝濡??대뼡 ???꾩뿉?쒕뱺 利됱떆 ?몄텧
- ?쨼 **?먯씠?꾪듃 ?꾧뎄 52媛?* ???뚯씪 ?쎄린/?곌린, 肄붾뱶 ?ㅽ뻾, Git, 臾몄꽌 ?앹꽦??AI媛€ 吏곸젒 ?섑뻾
### ?듭떖 ?ㅺ퀎 ?먯튃
- ?룫 **?щ궡 ?꾩슜** ???몃? ?쒕쾭 ?섏〈 ?놁쓬, ?붾젅硫뷀듃由??놁쓬
- ?뮶 **濡쒖뺄 ?곗꽑** ??紐⑤뱺 ?곗씠?곕뒗 `%APPDATA%\AxCopilot\`???€??- ?뵏 **蹂댁븞** ??AES-256 ?ㅼ젙 ?뷀샇?? ??났??諛⑹?
- ?벀 **?몄뒪?⑤윭 150MB ?댄븯** ??.NET 8 ?고????댁옣 ?⑥씪 諛고룷
---
## 2. ?꾩껜 ?꾪궎?띿쿂
```
?뚢??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€???? App.xaml.cs (吏꾩엯?? ???? ?쒕퉬??珥덇린??쨌 ?몃젅???꾩씠肄?쨌 ?꾩뿭 ??愿€由? ???붴??€?€?€?€?€?€?€?р??€?€?€?€?€?€?€?€?€?€?€?€?€?р??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?? ?? ???뚢??€?€?€?€?€?€?€?쇄??€?€?€?€?€?€?? ?뚢??€?€?쇄??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€???? AX Commander ?? ?? AX Agent ???? (?곗쿂 WPF) ?? ?? (Chat / Cowork / Code) ???붴??€?€?€?€?€?€?€?р??€?€?€?€?€?€?? ?붴??€?€?р??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?? ?? ???뚢??€?€?€?€?€?€?€?쇄??€?€?€?€?€?€?€?€?€?€?€?€?€?쇄??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€???? 怨듯넻 ?쒕퉬??怨꾩링 ???? SettingsService 쨌 LogService 쨌 IndexService ???? CryptoService 쨌 McpClientService 쨌 LLMRouter ???붴??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€??```
### 湲곗닠 ?ㅽ깮
| 怨꾩링 | 湲곗닠 |
|------|------|
| UI | WPF (.NET 8), WinForms (?몃젅?? |
| ?몄뼱 | C# 12, XAML |
| ?곗씠??| JSON 吏곷젹??(System.Text.Json) |
| 寃€??| TF-IDF + SQLite (肄붾뱶), ?쇱? ?붿쭊 (?곗쿂) |
| AI | Ollama쨌vLLM (?щ궡), Gemini쨌Sigmoid (?몃? ?듭뀡) |
| ?꾨줈?좎퐳 | MCP (Model Context Protocol) |
---
## 3. AX Commander ???곗쿂 湲곗닠
### ?낅젰 ??寃곌낵 泥섎━ ?뚯씠?꾨씪??
```
?ъ슜???낅젰
?? ??CommandResolver (?꾨━?쎌뒪 ?쇱슦??
?? ?쒋??€ ?꾨━?쎌뒪 留ㅼ묶 ?€?€??44媛??몃뱾???ㅽ뻾
?? = 怨꾩궛湲? ; ?ㅻ땲?? # ?대┰蹂대뱶
?? @ URL 蹂꾩묶 ~ ?대뜑 $ ?대┰蹂대뱶 蹂€?? ?? ! ?뚰겕?ㅽ럹?댁뒪 / ?쒖뒪??紐낅졊
?? color쨌date쨌emoji쨌port쨌json쨌encode ?? ?? ?붴??€ ?꾨━?쎌뒪 ?놁쓬 ?€?€??FuzzyEngine
(?쒓뎅??珥덉꽦 + ?쇱? 留ㅼ묶)
```
### FuzzyEngine ?듭떖 ?뚭퀬由ъ쬁
```
?낅젰: "?ㅼ젙"
??珥덉꽦 異붿텧: "?끹뀍"
??LCS(理쒖옣 怨듯넻 遺€遺??섏뿴) 湲곕컲 ?먯닔 怨꾩궛
???ъ슜 鍮덈룄 媛€以묒튂 ?곸슜 (UsageRankingService)
???뺣젹 ??寃곌낵 諛섑솚
```
### 二쇱슂 ?몃뱾??移댄깉濡쒓렇 (44醫?
| 移댄뀒怨좊━ | ?몃뱾??| 湲곕뒫 |
|----------|--------|------|
| 媛쒕컻 ?꾧뎄 | json, encode, port, color | JSON 寃€利? ?몄퐫?? ?ы듃 議고쉶, ?됱긽 蹂€??|
| ?뚯씪/?쒖뒪??| recent, rename, scaffold, svc | 理쒓렐 ?뚯씪, ?쇨큵 ?대쫫蹂€寃? ?꾨줈?앺듃 ?앹꽦 |
| ?앹궛??| note, snippet, date, stats | 硫붾え, ?ㅻ땲?? ?좎쭨 怨꾩궛, ?띿뒪??遺꾩꽍 |
| UI/?붾㈃ | cap, snap, pick | ?붾㈃ 罹≪쿂, 李?諛곗튂, ?됱긽 異붿텧 |
| ?뚰겕?ㅽ럹?댁뒪 | !, workspace | 22媛??덉씠?꾩썐, ?꾨줈?뚯씪 ?€??蹂듭썝 |
---
## 4. AX Agent ??AI ?€???붿쭊
### ?먯씠?꾪듃 猷⑦봽 (AgentLoopService)
```
?ъ슜??硫붿떆吏€
?? ???뚢??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€???? ?먯씠?꾪듃 猷⑦봽 (諛섎났) ???? ???? 1. LLM API ?몄텧 ???? 2. ?묐떟 ?뚯떛 ???? 3. ?꾧뎄 ?몄텧 媛먯? ???? 4. ?꾧뎄 ?ㅽ뻾 ?귘뾼?€?€?€?€ 52媛??꾧뎄
?? 5. 寃곌낵 ??而⑦뀓?ㅽ듃 異붽? ???? 6. 紐⑺몴 ?ъ꽦? ??醫낅즺 ???붴??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?? ?? ??理쒖쥌 ?묐떟 ?ㅽ듃由щ컢 異쒕젰 (SSE)
```
### 3媛??€????쓽 ?뱀꽦
| ??| 紐⑹쟻 | ?쒖뒪???꾨\?꾪듃 | 二쇱슂 ?꾧뎄 |
|----|------|----------------|-----------|
| **Chat** | ?쇰컲 AI ?€??| 踰붿슜 ?댁떆?ㅽ꽩??| 湲곕낯 ?꾧뎄 |
| **Cowork** | ?낅Т ?먮룞??| 20媛??꾨━???뱁솕 | 臾몄꽌쨌?곗씠???꾧뎄 |
| **Code** | 媛쒕컻 吏€??| 肄붾뵫 ?먯씠?꾪듃 | LSP쨌Git쨌鍮뚮뱶 ?꾧뎄 |
### 而⑦뀓?ㅽ듃 愿€由?
- **?좏겙 異붿젙**: `TokenEstimator` ??CJK 臾몄옄 媛€以묒튂 ?곸슜, ?ㅼ떆媛?鍮꾩슜 ?쒖떆
- **?€???뺤텞**: 而⑦뀓?ㅽ듃 珥덇낵 ??`ContextCondenser`濡??붿빟 ???ъ븬異?- **?€??遺꾧린**: `ParentId` 湲곕컲 ?몃━ 援ъ“, ?고겢由?"?ш린??遺꾧린"
---
## 5. ?꾧뎄 ?앺깭怨???52媛??먯씠?꾪듃 ?꾧뎄
### ?꾧뎄 移댄뀒怨좊━
```
?뚯씪쨌肄붾뱶 (18媛? 臾몄꽌쨌?곗씠??(12媛?
file_read/write document_read/write
directory_list pptx_create
search_files xlsx_analyze
file_watch data_pivot
lsp_goto_definition template_render
lsp_find_references text_summarize
search_codebase (TF-IDF) image_analyze
媛쒕컻 (12媛? ?쒖뒪?쑣룻봽濡쒖꽭??(10媛?
git_status/diff/commit process_run
build_run environment_read
test_generate/run clipboard_read/write
code_review screen_capture
spawn_agent notification_show
```
### ?ㅽ궗 ?쒖뒪??(29媛??댁옣 ?щ옒??紐낅졊)
```
/daily-standup /email-draft /code-review
/translate /security-audit /prd-generator
/weekly-report /refactor /gen-test
/changelog /sql-report /perf-audit ??```
- `*.skill.md` 留덊겕?ㅼ슫 ?뚯씪濡??뺤쓽 (YAML ?꾨줎?몃ℓ??
- `%APPDATA%\AxCopilot\skills\` ?몃? ?대뜑濡??щ퉴???놁씠 異붽?
- Python/Node.js ?고???媛먯? ??怨좉툒 ?ㅽ궗 ?먮룞 ?쒖꽦??
---
## 6. 肄붾뱶 ?명뀛由ъ쟾??湲곗닠
### LSP (Language Server Protocol) ?곕룞
```
?먯씠?꾪듃 LSP ?쒕쾭
?? ?? ?쒋? lsp_goto_definition ?€?€??OmniSharp (C#)
?쒋? lsp_find_references ?€?€??typescript-language-server
?붴? lsp_symbols ?€?€??pyright (Python)
```
**?④낵**: ?띿뒪??寃€?됱씠 ?꾨땶 ?섎? 湲곕컲 肄붾뱶 ?먯깋 ???섏젙 ?뺥솗???€???μ긽
### ?쒕㎤??肄붾뱶 寃€??(TF-IDF ?붿쭊)
```
1. ?꾨줈?앺듃 ?뚯씪 ?몃뜳?? ?붴??€ 諛붿씠洹몃옩 ?좏겕?섏씠?€ + ?ㅽ넲?뚮뱶 ?쒓굅
?붴??€ SQLite ?곸냽 ?€??(利앸텇 ?낅뜲?댄듃)
2. 吏덉쓽 ??愿€???뚯씪 ?먮룞 寃€?? ?붴??€ TF-IDF ?먯닔 怨꾩궛 ???곸쐞 N媛?諛섑솚
?붴??€ ?먯씠?꾪듃媛€ ?먮룞?쇰줈 愿€??肄붾뱶 ?쎄린
```
### MCP (Model Context Protocol) ?대씪?댁뼵??
- `stdio` + `JSON-RPC 2.0` ?쒖? 援ы쁽
- ?몃? MCP ?쒕쾭???꾧뎄瑜??먯씠?꾪듃 ?꾧뎄濡??먮룞 ?섑븨
- ?щ궡 ?꾩슜 MCP ?쒕쾭留??곌껐 ?덉슜
---
## 7. 蹂댁븞 & ?щ궡 ?섍꼍 ?ㅺ퀎
### ?ㅼ링 蹂댁븞 援ъ“
```
?덉씠??1: ?ㅼ젙 ?뷀샇?? ?붴??€ settings.json ??AES-256-GCM ??settings.dat
?붴??€ PC蹂?DPAPI ??議고빀 (?댁떇 遺덇?)
?덉씠??2: ??났??諛⑹? (AntiTamper)
?붴??€ ?붾쾭嫄?媛먯?, 由щ쾭???꾧뎄 ?꾨줈?몄뒪 媛먯?
?붴??€ ?щ궡 IP ?€???덉쇅 泥섎━ (媛쒕컻 ?섍꼍)
?덉씠??3: 蹂댁븞 媛먯궗 濡쒓렇
?붴??€ AuditLogService ??紐⑤뱺 ?꾧뎄 ?몄텧 JSON ?곸냽?? ?붴??€ 媛쒕컻??紐⑤뱶?먯꽌 媛먯궗 濡쒓렇 ?대뜑 ?닿린
?덉씠??4: ?ㅽ뻾 踰붿쐞 ?쒗븳
?붴??€ ?몃? HTTP ?몄텧 湲덉? (LLM API ?쒖쇅)
?붴??€ ?먭꺽 肄붾뱶 ?ㅽ뻾 湲덉?
?붴??€ ?붾젅硫뷀듃由??꾩쟾 李⑤떒
```
### 紐⑤뜽 ?쇱슦???꾨왂
```
吏덈Ц ?좏삎 遺꾨쪟
?? ?쒋??€ 肄붾뵫/湲곗닠 ??肄붾뱶 ?뱁솕 紐⑤뜽 (?щ궡 vLLM)
?쒋??€ 踰덉뿭/?붿빟 ??寃쎈웾 紐⑤뜽 (Ollama)
?붴??€ 蹂듭옟 遺꾩꽍 ???€??紐⑤뜽 (Gemini Pro / Sigmoid)
?대갚 泥섎━: 紐⑤뜽 ?ㅻ쪟 ??FallbackModels ?쒖감 ?쒕룄
```
---
## 8. Phase蹂?媛쒕컻 ?꾪솴
### ?꾨즺??二쇱슂 Phase
| Phase | 踰꾩쟾 | ?듭떖 ?깃낵 |
|-------|------|-----------|
| 2.5~7 | v1.1~1.2 | ?먯씠?꾪듃 猷⑦봽, 21媛??꾧뎄, 留덊겕?ㅼ슫 ?뚮뜑??|
| 8 | v1.5.0 | MCP ?대씪?댁뼵?? 紐⑤뜽 ?대갚, ?€??遺꾧린, ?좏겙 愿€由?|
| 9 | v1.5.0 | LSP ?곕룞, 蹂묐젹 ?먯씠?꾪듃, 肄붾뱶 ?쒕㎤??寃€?? ?대깽???몃━嫄?|
| 10~11 | v1.5.0 | Auto Router, ?먯씠?꾪듃 硫붾え由? ?ㅽ궗 ?쒖뒪?? AI 肄붾뱶 由щ럭 |
| 15 | v1.6.0 | 硫€?고뙣??臾몄꽌 ?앹꽦, 42??2媛??꾧뎄, 29媛??댁옣 ?ㅽ궗 |
| 16 | v1.7.0 | ?뚮옖 紐⑤뱶, 蹂묐젹 ?꾧뎄 ?ㅽ뻾, ?꾨줈?앺듃 洹쒖튃 ?쒖뒪??|
### ?꾩옱 洹쒕え (v1.6.1)
```
?먯씠?꾪듃 ?꾧뎄: 52媛??댁옣 ?ㅽ궗: 29媛?肄붿썙???꾨━?? 20媛?吏€??LLM: 4醫?(Ollama 쨌 vLLM 쨌 Gemini 쨌 Sigmoid)
?곗쿂 ?몃뱾?? 44媛?吏€???뚮쭏: 10醫?```
---
## 9. 李④린 媛쒕컻 諛⑺뼢 (v1.8~2.0)
### 寃쎌웳 ?쒕퉬???€鍮?濡쒕뱶留?
| 湲곕뒫 | 寃쎌웳 ?쒕퉬??| AX Copilot 怨꾪쉷 |
|------|-------------|-----------------|
| ?먭린 ?깆같 猷⑦봽 | Claw Code Reflexion | **v1.8** ?먭린 ?깆같 ?쒕퉬??|
| ?곸냽 ?묒뾽 湲곗뼲 | Windsurf Memory | **v1.8** Working Memory |
| 硫€?고뙆??Diff | Cursor diff view | **v1.8** ?듯빀 Diff UI |
| HTTP+SSE MCP | Claw Code ?먭꺽 | **v1.8** MCP HTTP ?꾩넚 |
| ?먯씠?꾪듃 ?€ | GitHub Copilot Workspace | **v2.0** ?ㅼ쨷 ?먯씠?꾪듃 |
| ?뚮윭洹몄씤 媛ㅻ윭由?| Raycast Store | **v2.0** 濡쒖뺄 ?덉??ㅽ듃由?|
### ?щ궡 ?섍꼍 ?뱁솕 ?먯튃 ?좎?
- ???몃? ?쒕쾭 ?섏〈 ?놁쓬 ???⑦봽?덈???LLM ?곗꽑
- ???몄뒪?⑤윭 150MB ?댄븯 ?좎?
- ???뚮윭洹몄씤 濡쒖뺄 zip ?ㅼ튂留??덉슜
- ??紐⑤뱺 ?곗씠??濡쒖뺄 ?€??
---
## 10. ?뺣━ 諛?Q&A
### AX Copilot??湲곗닠??李⑤퀎??
```
1. ?꾩쟾 ?ㅽ봽?쇱씤 ?숈옉 媛€??(?щ궡 Ollama/vLLM)
2. 52媛??먯씠?꾪듃 ?꾧뎄 + 29媛??щ옒???ㅽ궗
3. LSP 湲곕컲 ?ㅼ젣 肄붾뱶 ?댄빐 (?띿뒪??寃€???섏? 珥덉썡)
4. MCP ?쒖??쇰줈 ?щ궡 ?쒕쾭 ?먯쑀 ?곌껐
5. AES-256 + DPAPI ?댁쨷 ?뷀샇???ㅼ젙 蹂댁븞
6. ?꾩뿭 ?ロ궎 Alt+Space ???대뼡 ?깆뿉?쒕룄 利됱떆 ?몄텧
```
### ?ν썑 湲곗뿬 諛⑸쾿
- **?ㅽ궗 異붽?**: `*.skill.md` ?뚯씪 ?묒꽦 ??`%APPDATA%\AxCopilot\skills\` 諛곗튂
- **MCP ?쒕쾭**: ?щ궡 ?꾧뎄瑜?MCP ?쒕쾭濡??몄텧 ??AX Copilot?먯꽌 ?먮룞 ?ъ슜
- **?뚮윭洹몄씤**: `IActionHandler` ?명꽣?섏씠??援ы쁽 ??DLL 諛곗튂
---
*諛쒗몴 ?먮즺 ?묒꽦: AX?곌뎄??AI?€ | 臾몄쓽: ?대? 硫붿떊?€*

View File

@@ -1,249 +0,0 @@
# ?먯씠?꾪듃 猷⑦봽 ?꾪궎?띿쿂 ???뚰겕?뚮줈??鍮꾧탳 遺꾩꽍
> **?€??*: 湲곗닠 ?꾩썝 쨌 媛쒕컻 由щ뜑
> **珥덉젏**: ?먯씠?꾪듃 肄붾뵫 ?쒕퉬?ㅼ쓽 ?듭떖 ?뚰겕?뚮줈??援ъ“?€ ?덉쭏 蹂댁쬆 ?꾨왂
> **?묒꽦??*: 2026-03-31
---
## 1. ?먯씠?꾪듃 猷⑦봽?€?
AI 肄붾뵫/臾몄꽌 ?앹꽦 ?쒕퉬?ㅼ쓽 ?듭떖 ?붿쭊?€ **?먯씠?꾪듃 猷⑦봽**?낅땲??
```
?ъ슜???붿껌 ??[LLM ?먮떒] ??[?꾧뎄 ?ㅽ뻾] ??[寃곌낵 愿€李? ??[LLM ?ы뙋?? ??... ??理쒖쥌 ?묐떟
```
??諛섎났(iteration)??**?쇰쭏??吏€?μ쟻?쇰줈, ?쇰쭏???덉쭏 ?덇쾶 ?섑뻾?섎뒓??*媛€ ?쒕퉬??寃쎌웳?μ쓣 寃곗젙?⑸땲??
---
## 2. ?낃퀎 二쇱슂 ?쒕퉬???뚰겕?뚮줈??鍮꾧탳
### 2-1. OpenHands (?ㅽ뵂?뚯뒪, ICLR 2025)
OpenHands??CodeAct ?쇰Ц 湲곕컲???먯씠?꾪듃 ?꾨젅?꾩썙?ъ엯?덈떎.
```
?뚢??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€???? AgentController ???? ???? while budget > 0: ???? action = agent.step(state) ??1 LLM ?몄텧 ???? observation = runtime.run(action) ???꾧뎄 ?ㅽ뻾???? state.update(action, observation) ???? if action == AgentFinishAction: ???? break ??LLM??"???대씪 ?먮떒?섎㈃ 醫낅즺 ???? ???? ??寃€利?寃€???④퀎: ?놁쓬 ???? ??怨꾪쉷 ?앹꽦: ?놁쓬 (LLM ?먯쑉 ?먮떒) ???붴??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€??```
**?듭떖 ?뱀쭠**:
- **1 諛섎났 = 1 LLM ?몄텧 + 1 ?꾧뎄 ?ㅽ뻾** (怨좎젙)
- 怨꾪쉷(Plan) ?놁쓬 ??LLM??chain-of-thought???섏〈
- 寃€利?Review) ?놁쓬 ??LLM???뚯븘???ㅼ쓬 諛섎났?먯꽌 ?뺤씤?좎? 寃곗젙
- 醫낅즺??`AgentFinishAction` 諛섑솚?쇰줈 寃곗젙 (LLM ?먯쑉)
- **SecurityAnalyzer**: ?ㅽ뻾 ???꾪뿕???됯? (LOW/MEDIUM/HIGH) ???덉쭏 寃€利앹씠 ?꾨땶 **?덉쟾 寃뚯씠??*
**?μ젏**: ?⑥닚, 鍮좊쫫, 紐⑤뜽 臾닿?
**?쎌젏**: 臾몄꽌 ?앹꽦 ??寃€??蹂댁옣 ?놁쓬, LLM??"異⑸텇?섎떎"怨??먮떒?섎㈃ 誘몄셿???곹깭濡?醫낅즺
### 2-2. Claw Code (Sigmoid)
```
?뚢??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€???? Claw Code Agent Loop ???? ???? while true: ???? response = llm.call(messages) ??1 LLM ?몄텧 ???? if no tool_calls: ???? break ???띿뒪?몃쭔 諛섑솚?섎㈃ 醫낅즺 ???? for tool in tool_calls: ???? result = execute(tool) ???? messages.append(result) ???? ???? ??寃€利??④퀎: ?놁쓬 (?쒖뒪???꾨\?꾪듃 沅뚭퀬留? ???? ??怨꾪쉷: SKILL.md ?꾨\?꾪듃濡??좊룄 ???붴??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€??```
**?듭떖 ?뱀쭠**:
- OpenHands?€ ?숈씪??援ъ“ (1 諛섎났 = 1 LLM ?몄텧)
- 醫낅즺: ?꾧뎄 ?몄텧???놁쑝硫?醫낅즺 (OpenHands??AgentFinishAction怨??좎궗)
- 寃€利? ?쒖뒪???꾨\?꾪듃??"?뺤씤?섎씪"怨??묒꽦 媛€?ν븯?? **LLM??臾댁떆?????덉쓬**
- 李⑤퀎?? SKILL.md ?쒖??쇰줈 ?꾨찓?몃퀎 ?꾨\?꾪듃 而ㅼ뒪?곕쭏?댁쭠
### 2-3. Cursor / Windsurf / GitHub Copilot
紐⑤몢 ?숈씪??**?⑥씪 LLM ?몄텧 猷⑦봽** ?⑦꽩:
- Cursor: Tab ??Apply 湲곕컲, ?먯씠?꾪듃 紐⑤뱶?먯꽌??1?몄텧/諛섎났
- Windsurf (Cascade): Flow 湲곕컲?댁?留?猷⑦봽 援ъ“???숈씪
- GitHub Copilot: 肄붾뱶 ?꾩꽦 ?뱁솕, ?먯씠?꾪듃 紐⑤뱶??Claw Code?€ ?좎궗
**怨듯넻 ?쎌젏**: **臾몄꽌/肄붾뱶 ?앹꽦 ??"?쎌뼱???뺤씤"?섎뒗 ?꾪궎?띿쿂媛€ ?놁쓬**
---
## 3. ??寃€利??④퀎媛€ ?놁쓣源?
### 3-1. AgentFinishAction 臾몄젣
OpenHands??LLM??`AgentFinishAction`??諛섑솚?섎㈃ 猷⑦봽媛€ 醫낅즺?⑸땲??
```python
# OpenHands??醫낅즺 ?먮떒
if isinstance(action, AgentFinishAction):
return # LLM??"???대씪怨??섎㈃ ??```
**臾몄젣**: LLM??"?뚯씪???앹꽦?덉쑝?????대씪怨??먮떒?섎㈃, **?댁슜??遺덉셿?꾪빐??醫낅즺**?⑸땲??
?곕━????AgentFinishAction???ъ슜?섏? ?딅뒗媛€?
| ??ぉ | AgentFinishAction (OpenHands) | ?꾧뎄 ?몄텧 ?놁쓬 醫낅즺 (AX Copilot) |
|------|------------------------------|--------------------------------|
| 醫낅즺 ?먮떒 | LLM??紐낆떆?곸쑝濡?"finish" ?≪뀡 諛섑솚 | LLM???띿뒪?몃쭔 諛섑솚 (?꾧뎄 誘명샇異? |
| ?μ젏 | 紐낆떆?? 醫낅즺 ?댁쑀 ?ы븿 媛€??| 蹂꾨룄 ?≪뀡 ?뺤쓽 遺덊븘?? ?먯뿰?ㅻ윭???€???먮쫫 |
| ?⑥젏 | finish ?몄텧???딄굅???섎せ ?몄텧 媛€??| LLM???꾧뎄瑜?遺€瑜댁? ?딆쑝硫??섎룄移??딄쾶 醫낅즺 |
| 寃€利??€?대컢 | finish ?꾩뿉 寃€利??쎌엯 媛€??(誘멸뎄?? | ?꾧뎄 ?ㅽ뻾 ??利됱떆 寃€利??쎌엯 (援ы쁽 ?꾨즺) |
**?듭떖**: ????"LLM???뚯븘???앸궡????援ъ“?대?濡? **寃€利앹쓣 LLM?먭쾶 留↔린硫??앸왂???섎컰???놁뒿?덈떎.**
### 3-2. ?쒖뒪???꾨\?꾪듃留뚯쑝濡쒕뒗 遺€議?
```
?쒖뒪???꾨\?꾪듃: "臾몄꽌 ?묒꽦 ??諛섎뱶??file_read濡?寃곌낵臾쇱쓣 寃€?좏븯?몄슂"
```
??吏€?쒕? LLM???곕? ?뺣쪧:
- GPT-4/Sigmoid: **~60-70%** (蹂듭옟???묒뾽?먯꽌 臾댁떆 寃쏀뼢)
- Gemini Flash: **~40-50%** (臾대즺 紐⑤뜽?먯꽌 ???먯< ?앸왂)
- 濡쒖뺄 紐⑤뜽 (Ollama): **~30%** (而⑦뀓?ㅽ듃 湲몄뼱吏€硫?珥덇린 吏€???ъ꽍)
??**?꾪궎?띿쿂 ?섏??먯꽌 媛뺤젣?댁빞 ?좊ː???뺣낫 媛€??*
---
## 4. 寃€利?媛뺤젣 ?꾪궎?띿쿂 (AX Copilot 援ы쁽)
### 4-1. 湲곗〈 援ъ“ (v1.7.0)
```
諛섎났 1: LLM ?몄텧 ??"file_read濡??꾩옱 ?뚯씪 ?뺤씤?섍쿋?듬땲??
?꾧뎄 ?ㅽ뻾: file_read ???뚯씪 ?댁슜 諛섑솚
諛섎났 2: LLM ?몄텧 ??"html_create濡?蹂닿퀬?쒕? ?앹꽦?섍쿋?듬땲??
?꾧뎄 ?ㅽ뻾: html_create ??"蹂닿퀬??html ?앹꽦 ?꾨즺"
諛섎났 3: LLM ?몄텧 ??"蹂닿퀬?쒓? ?꾩꽦?섏뿀?듬땲??" (?띿뒪?몃쭔 = 猷⑦봽 醫낅즺)
???앹꽦???뚯씪???쎌뼱???뺤씤?섏? ?딆쓬!
```
### 4-2. 媛쒖꽑 援ъ“ (v1.7.1 ??寃€利?媛뺤젣)
```
諛섎났 1: LLM ?몄텧 ??"file_read濡??꾩옱 ?뚯씪 ?뺤씤?섍쿋?듬땲??
?꾧뎄 ?ㅽ뻾: file_read ???뚯씪 ?댁슜 諛섑솚
諛섎났 2: LLM ?몄텧 ??"html_create濡?蹂닿퀬?쒕? ?앹꽦?섍쿋?듬땲??
?꾧뎄 ?ㅽ뻾: html_create ??"蹂닿퀬??html ?앹꽦 ?꾨즺"
?뚢??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?? ????寃€利?媛뺤젣 (?먮룞 ?쎌엯) ?? ?? ?? ???쒖뒪?? "?앹꽦???뚯씪??file_read濡??쎄퀬 ?? ?? ?댁슜 ?꾩쟾?? 援ъ“, 留욎땄踰뺤쓣 ?뺤씤?섏꽭?? ?? ?? ?? ??LLM ?몄텧 (寃€利??꾩슜) ?? ????file_read ?ㅽ뻾 ???댁슜 ?뺤씤 ?? ????臾몄젣 ?덉쑝硫??섏젙 ?꾧뎄 ?몄텧 ?? ????臾몄젣 ?놁쑝硫?"寃€利??꾨즺" 蹂닿퀬 ?? ?붴??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€??
諛섎났 3: LLM ?몄텧 ??"蹂닿퀬?쒓? ?꾩꽦?섏뿀?듬땲??" (寃€利??듦낵 ??醫낅즺)
```
### 4-3. 肄붾뱶 ?먮쫫 (?섏궗肄붾뱶)
```csharp
while (iteration < maxIterations)
{
var blocks = await llm.SendWithToolsAsync(messages, tools);
foreach (var call in toolCalls)
{
var result = await tool.ExecuteAsync(call);
messages.Add(CreateToolResult(result));
// ??寃€利?媛뺤젣: 臾몄꽌 ?앹꽦 ?꾧뎄 ?ㅽ뻾 ???먮룞 ?쎌엯
if (settings.EnablePostToolVerification
&& IsDocumentCreationTool(call.ToolName)
&& result.Success)
{
// 寃€利??꾩슜 LLM ?몄텧 (file_read ?좊룄)
await RunPostToolVerificationAsync(messages, call, result);
iteration++; // 寃€利앸룄 諛섎났 ?잛닔???ы븿
}
}
if (no tool calls) break; // ?띿뒪?몃쭔 = 醫낅즺
}
```
---
## 5. 遺€議깊븳 遺€遺꾧낵 ?ν썑 媛쒕컻 諛⑺뼢
### 5-1. ?꾩옱 遺€議깊븳 ?곸뿭
| ?곸뿭 | ?꾩옱 ?곹깭 | OpenHands 鍮꾧탳 | 媛쒖꽑 ?꾩슂??|
|------|----------|---------------|-----------|
| **Multi-Agent ?꾩엫** | ??誘멸뎄??| ??AgentDelegateAction | ?믪쓬 ??蹂듭옟???묒뾽???섏쐞 ?먯씠?꾪듃??遺꾪븷 |
| **Event-Sourced State** | 遺€遺?援ы쁽 (Events 而щ젆?? | ??遺덈? ?대깽???ㅽ듃由?| 以묎컙 ???ъ떎???붾쾭源낆뿉 ?좎슜 |
| **SecurityAnalyzer** | Ask 紐⑤뱶 沅뚰븳 ?뺤씤 | ???꾪뿕???먮룞 遺꾨쪟 | ??쓬 ???щ궡 ?섍꼍?먯꽌 ?곗꽑?쒖쐞 ??쓬 |
| **CodeAct ?듯빀 ?≪뀡** | ?꾧뎄蹂?遺꾨━ | ??bash+Python ?듯빀 | ??쓬 ???꾩옱 ?꾧뎄 泥닿퀎濡?異⑸텇 |
| **寃€利?源딆씠** | ?⑥씪 寃€利??몄텧 | ?대떦 ?놁쓬 | 以묎컙 ??蹂듭닔 湲곗?蹂?寃€利?媛€??|
| **寃€利??€???뺣?** | 臾몄꽌 ?앹꽦 ?꾧뎄留?| ?대떦 ?놁쓬 | 以묎컙 ??肄붾뱶 ?앹꽦 ?꾩뿉??寃€利??꾩슂 |
### 5-2. ?ν썑 媛쒕컻 怨꾪쉷
#### Phase A: 寃€利?怨좊룄??(?④린)
| 湲곕뒫 | ?ㅻ챸 | ?덉긽 怨듭닔 |
|------|------|----------|
| 寃€利?湲곗? 而ㅼ뒪?곕쭏?댁쭠 | ?ㅼ젙?먯꽌 寃€利?泥댄겕由ъ뒪?몃? ?ъ슜?먭? ?몄쭛 | ??쓬 |
| 肄붾뱶 寃€利??뺣? | `script_create`, `file_edit` ?꾩뿉??寃€利?(援щЦ ?ㅻ쪟 寃€?? | ??쓬 |
| 寃€利?寃곌낵 UI ?쒖떆 | ?뚰겕?뚮줈???€?꾨씪?몄뿉 "??寃€利??듦낵" / "???섏젙 諛쒖깮" 諛곗? | ??쓬 |
| 寃€利??듦퀎 | 寃€利앹뿉??臾몄젣 諛쒓껄/?섏젙??鍮꾩쑉 異붿쟻 | ??쓬 |
#### Phase B: 硫€?곗뿉?댁쟾???꾩엫 (以묎린)
OpenHands??`AgentDelegateAction` ?⑦꽩??李멸퀬?섎릺, ?щ궡 ?섍꼍??留욊쾶:
```
[硫붿씤 ?먯씠?꾪듃]
?쒋??€ [由ъ꽌移??먯씠?꾪듃] ??file_read, grep, folder_map ?꾨떞
?쒋??€ [臾몄꽌 ?먯씠?꾪듃] ??html_create, docx_create ?꾨떞
?붴??€ [寃€利??먯씠?꾪듃] ??file_read + ?덉쭏 ?됯? ?꾨떞 ??寃€利?遺꾨━!
```
| 湲곕뒫 | ?ㅻ챸 | ?덉긽 怨듭닔 |
|------|------|----------|
| AgentDelegateAction | ?섏쐞 ?먯씠?꾪듃 ?꾩엫 ?≪뀡 ?뺤쓽 | 以묎컙 |
| ?먯씠?꾪듃蹂??꾧뎄 ?쒗븳 | 由ъ꽌移??쎄린留? 臾몄꽌=?곌린留???| ??쓬 |
| 寃€利??먯씠?꾪듃 遺꾨━ | ?앹꽦怨?寃€利앹쓣 ?ㅻⅨ ?먯씠?꾪듃濡?| 以묎컙 |
#### Phase C: Reflexion ?⑦꽩 (?κ린)
Reflexion ?쇰Ц(Shinn et al., 2023)???먭린 諛섏꽦 ?⑦꽩 媛뺥솕:
```
?ㅽ뻾 ??寃곌낵 ???먭린 ?됯? ??諛섏꽦 硫붾え由??€?????ㅼ쓬 ?쒕룄??諛섏쁺
```
?꾩옱 Self-Reflection?€ **?ㅻ쪟 諛쒖깮 ?쒖뿉留?* ?숈옉. ?대? **?깃났 ?쒖뿉??* ?곸슜:
- "??臾몄꽌???ъ슜???붽뎄瑜?80% 異⑹”. 誘명씉 ?? ?쒓? ?꾨씫??
- 諛섏꽦 寃곌낵瑜?AgentMemory???€????媛숈? ?좏삎 ?묒뾽 ??李멸퀬
---
## 6. ?뺣━
### ?듭떖 硫붿떆吏€
```
?뚢??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€???? ???? ?낃퀎 紐⑤뱺 ?먯씠?꾪듃 猷⑦봽??"1諛섎났 = 1 LLM ?몄텧" ???? 寃€利?Review)??媛뺤젣?섎뒗 ?꾪궎?띿쿂???대뵒?먮룄 ?놁뿀?? ???? ???? AX Copilot?€ "寃€利?媛뺤젣"瑜??꾪궎?띿쿂 ?섏??먯꽌 援ы쁽 ???? ??臾몄꽌 ?덉쭏 蹂댁쬆??李⑤퀎???ъ씤?? ???? ???붴??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€??```
### 鍮꾧탳 ?붿빟
| ??ぉ | OpenHands | Claw Code | AX Copilot |
|------|-----------|-------------|------------|
| 諛섎났??LLM ?몄텧 | 1??| 1??| 1??+ 寃€利?1??|
| 怨꾪쉷 ?앹꽦 | ??| ??| ??PlanMode |
| 寃€利?媛뺤젣 | ??| ??| ??PostToolVerification |
| ?먭린 諛섏꽦 | ??| ??| ??Self-Reflection |
| 而⑦뀓?ㅽ듃 ?뺤텞 | ??| ??| ??ContextCondenser |
| ?ъ슜???뱀씤 | SecurityAnalyzer | 沅뚰븳 ?꾨\?꾪듃 | UserDecisionCallback |
| 吏꾪뻾瑜?異붿쟻 | ??| ??| ??TaskDecomposer |
| ?쇰뱶諛??숈뒿 | ??| ??| ??FeedbackContext |
### ?뚰겕?뚮줈???꾩껜 鍮꾧탳??
```
OpenHands:
?붿껌 ??[LLM] ??[?꾧뎄] ??[LLM] ??[?꾧뎄] ??[LLM: "??] ???묐떟
??寃€利??놁쓬
Claw Code:
?붿껌 ??[LLM] ??[?꾧뎄] ??[LLM] ??[?꾧뎄] ??[LLM: ?띿뒪?몃쭔] ???묐떟
??寃€利??놁쓬
AX Copilot (v1.7.1):
?붿껌 ??[怨꾪쉷 LLM] ???뱀씤 ??[LLM] ??[?꾧뎄] ??[?낃?利?LLM?? ??[LLM] ???묐떟
??PlanMode ???ㅽ뻾 ???앹꽦 ??媛뺤젣 ?뺤씤 ???꾨즺
```
---
*?묒꽦: AX Copilot 媛쒕컻?€ 쨌 2026-03-31*

View File

@@ -1,463 +0,0 @@
# AI ?먯씠?꾪듃 湲곗닠 ?숉뼢 ?몃???### 2026??3??| ?쒖옣 議곗궗 쨌 ?쇰Ц 遺꾩꽍 쨌 ?듭떖 湲곗닠 ?댁꽕
> **諛쒗몴 ?€??*: 湲곗닠?꾩썝
> **諛쒗몴??*: AX?곌뎄??AI?€
---
## 1. ?쒖옣 ?몃젋????AI 肄붾뵫 ?꾧뎄???꾩옱
### ?곗뾽 ?꾪솚: "??梨꾪똿" ??"?곗뒪?ы깙 ?먯씠?꾪듃"
2024?꾧퉴吏€ AI??釉뚮씪?곗? ?덉쓽 梨꾪똿(ChatGPT, Sigmoid.ai)??二쇰쪟?€?듬땲??
2026???꾩옱, **紐⑤뱺 二쇱슂 ?쒕퉬?ㅺ? ?곗뒪?ы깙/?곕????ㅼ씠?곕툕濡??꾪솚**?덉뒿?덈떎.
```
2024 2025 2026
?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€
??梨꾪똿 ?쒕? ?꾪솚湲? ?곗뒪?ы깙 ?먯씠?꾪듃 ?쒕?
?€?€?€?€?€?€?€?€?€?€?€?€?€ ?€?€?€?€?€?€ ?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€
肄붾뱶瑜?蹂듭궗?댁꽌 遺숈뿬?j린 Claw Code 異쒖떆 AI媛€ 濡쒖뺄 ?뚯씪?? 寃곌낵瑜??섎룞?쇰줈 ?곸슜 Cursor ?먯씠?꾪듃 紐⑤뱶 吏곸젒 ?쎄퀬, ?곌퀬, ?ㅽ뻾
?뚯씪???낅줈???ㅼ슫濡쒕뱶 Windsurf Cascade 鍮뚮뱶쨌?뚯뒪?맞텴it ?먮룞?? ?ㅽ뻾 ?섍꼍怨??꾩쟾 遺꾨━ GitHub Copilot Agent ?댁뒋?믪퐫?쒋넂PR ?먮룞??```
**???곗뒪?ы깙?멸??**
| ??AI???쒓퀎 | ?곗뒪?ы깙 AI???대쾿 |
|-------------|-------------------|
| 肄붾뱶瑜?蹂듭궗?댁꽌 遺숈뿬?j린 | **?꾨줈?앺듃 ?꾩껜瑜?AI媛€ 吏곸젒 ?먯깋** |
| 寃곌낵瑜??섎룞?쇰줈 ?곸슜 | **?뚯씪??AI媛€ 吏곸젒 ?섏젙** |
| 蹂꾨룄 釉뚮씪?곗? ???꾪솚 | **?곗쿂/?⑥텞?ㅻ줈 利됱떆 ?몄텧** |
| ?ㅽ뻾 ?섍꼍怨?遺꾨━ | **鍮뚮뱶쨌?뚯뒪?맞텴it??AI媛€ 吏곸젒 ?ㅽ뻾** |
> **?듭떖**: AI媛€ ?ㅼ젣 ?앹궛?깆쓣 ?믪씠?ㅻ㈃ **?ъ슜?먯쓽 ?ㅼ젣 ?곗씠?곗뿉 吏곸젒 ?묎렐**?댁빞 ?⑸땲??
### ?쒖옣 洹쒕え?€ 梨꾪깮瑜?
- 媛쒕컻?먯쓽 **85%媛€ AI 肄붾뵫 ?꾧뎄瑜??쇱긽 ?ъ슜** (GitHub Survey 2026)
- ?⑥닚 ?먮룞?꾩꽦 ??**?먯쑉 ?먯씠?꾪듃**濡?鍮좊Ⅴ寃??꾪솚 以?- 二쇱슂 ?뚮젅?댁뼱 媛?**?먯씠?꾪듃 吏€??寃쎌웳**???듭떖 ?꾩옣
---
## 2. 二쇱슂 ?쒕퉬???꾪솴怨??ъ??붾떇
### ?쒕퉬?ㅻ퀎 ?ъ???留?
```
怨좎닔以€ ?먯쑉?? ?? Claw Code ?? ??Cursor
?? ?? ??Windsurf
?? GitHub Copilot ?뤴봻
?? ?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€ ???€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€
?곕???湲곕컲 ?? IDE ?듯빀
?? Raycast ?뤴봻 ??Flow Launcher
?? ?⑥닚 ?꾧뎄
```
### Claw Code (Sigmoid) ???곕????먯씠?꾪듃??湲곗?
| ?듭떖 湲곕뒫 | ?ㅻ챸 |
|-----------|------|
| **SWE-bench 80.8%** | ?낃퀎 理쒓퀬 ?뚰봽?몄썾???붿??덉뼱留?踰ㅼ튂留덊겕 ?ъ꽦 |
| **?쒕툕?먯씠?꾪듃 10?€ ?숈떆** | 蹂듭옟???묒뾽??10媛?蹂묐젹 ?먯씠?꾪듃濡?遺꾪븷 ?ㅽ뻾 |
| **Plan Mode** | ?ㅽ뻾 ??怨꾪쉷 ?섎┰ ???ъ슜???뱀씤 ???ㅽ뻾. ?ㅼ닔瑜??ъ쟾??諛⑹? |
| **MCP ?꾨줈?좎퐳** | Model Context Protocol ???몃? ?꾧뎄 ?곌껐 ?쒖? 吏곸젒 ?쒖젙 |
| **Skills** | 留덊겕?ㅼ슫 湲곕컲 ?ъ궗???뚰겕?뚮줈???뺤쓽 |
| **Hooks** | ?꾧뎄 ?ㅽ뻾 ?꾪썑???ъ슜???ㅽ겕由쏀듃瑜??먮룞 ?ㅽ뻾 |
| **1M ?좏겙 而⑦뀓?ㅽ듃** | Opus 4.6 紐⑤뜽濡??€洹쒕え 肄붾뱶踰좎씠???꾩껜瑜???踰덉뿉 遺꾩꽍 |
### Cursor ??IDE ?듯빀 ?먯씠?꾪듃???좊몢
| ?듭떖 湲곕뒫 | ?ㅻ챸 |
|-----------|------|
| **硫€?고뙆???먯씠?꾪듃** | ?꾨줈?앺듃 ?꾩껜瑜??댄빐?섍퀬 ?щ윭 ?뚯씪???숈떆 ?섏젙 |
| **諛깃렇?쇱슫???먯씠?꾪듃 8媛?* | ?대씪?곕뱶?먯꽌 8媛??먯씠?꾪듃瑜?蹂묐젹 ?ㅽ뻾?섏뿬 ?묒뾽 遺꾩궛 |
| **Tab ?먮룞?꾩꽦** | ?ㅼ쓬 肄붾뱶 ?먮쫫???덉륫 ??Tab ??踰덉쑝濡??뱀씤 |
| **?꾨줈?앺듃 洹쒖튃** | `.cursorrules` ?뚯씪濡??꾨줈?앺듃蹂?AI ?됰룞??而ㅼ뒪?곕쭏?댁쭠 |
| **硫€?고뙆??Diff** | 蹂€寃쎈맂 紐⑤뱺 ?뚯씪?????붾㈃?먯꽌 ?뚯씪蹂??뚰겕蹂??뱀씤/嫄곕? |
| **?щ떇 硫붾え由?* | ?ъ슜???쇰뱶諛?湲곕컲?쇰줈 肄붾뵫 ?ㅽ??쇱쓣 ?먮룞 ?숈뒿 |
| **LSP ?듯빀** | ?몄뼱 ?쒕쾭 ?꾨줈?좎퐳濡?肄붾뱶 援ъ“瑜??섎? 湲곕컲 遺꾩꽍 |
### GitHub Copilot ??媛쒕컻 ?뚯씠?꾨씪???먮룞??
| ?듭떖 湲곕뒫 | ?ㅻ챸 |
|-----------|------|
| **肄붾뵫 ?먯씠?꾪듃** | ?댁뒋 ?좊떦 ??肄붾뱶 ?묒꽦 ??PR ?앹꽦 ???뚯뒪?멸퉴吏€ ?먮룞 ?뚯씠?꾨씪??|
| **?먮룞 PR ?앹꽦** | ?댁뒋 踰덊샇留??좊떦?섎㈃ 肄붾뱶 蹂€寃?+ PR???먮룞 ?앹꽦 |
| **諛섎났 ?뚯뒪???섏젙** | ?뚯뒪???ㅽ뙣 ???먯씤 遺꾩꽍 ??肄붾뱶 ?섏젙 ???ъ떎?됱쓣 ?먮룞 諛섎났 |
| **Multi-Agent** | 肄붾뱶由щ럭쨌?뚯뒪?맞룸Ц???묒꽦??媛곴컖 ?꾨떞?섎뒗 ?먯씠?꾪듃 ?묒뾽 |
### Windsurf ??而⑦뀓?ㅽ듃 吏€??
| ?듭떖 湲곕뒫 | ?ㅻ챸 |
|-----------|------|
| **Cascade** | 蹂듭옟???묒뾽???④퀎蹂꾨줈 遺꾪빐?섏뿬 硫€?곗뒪???먯씠?꾪듃媛€ ?ㅽ뻾 |
| **48?쒓컙 ?먮룞 ?몃뜳??* | 肄붾뱶踰좎씠?ㅻ? 48?쒓컙 二쇨린濡??먮룞 遺꾩꽍, 愿€???뚯씪???ъ쟾 ?섏쭛 |
| **?곸냽 硫붾え由?* | ?몄뀡???앸굹???댁쟾 ?묒뾽 湲곗뼲???좎?, ?꾨줈?앺듃 而⑦뀓?ㅽ듃 ?꾩쟻 ?숈뒿 |
| **釉뚮씪?곗? ?듯빀** | ???섏씠吏€ ?댁슜???먯씠?꾪듃媛€ 吏곸젒 李몄“?섏뿬 肄붾뱶??諛섏쁺 |
### Raycast ???곗쿂 + AI ?듯빀 (macOS)
| ?듭떖 湲곕뒫 | ?ㅻ챸 |
|-----------|------|
| **1,500+ ?뺤옣 ?앺깭怨?* | 而ㅻ??덊떚 湲곕컲 ?뺤옣 ?꾨줈洹몃옩 ?ㅽ넗??|
| **Auto 紐⑤뜽** | ?묒뾽 ?좏삎???곕씪 GPT/Sigmoid/Gemini 以?理쒖쟻 紐⑤뜽 ?먮룞 ?좏깮 |
| **AI ?ㅻ땲??* | `;email {?섏떊?? {二쇱젣}` ??AI媛€ ?대찓??珥덉븞??利됱떆 ?앹꽦 |
| **由ъ튂 ?대┰蹂대뱶** | ?대?吏€쨌留곹겕 ?꾨━酉걔룹퐫???섏씠?쇱씠?멸? ?덈뒗 怨좉툒 ?대┰蹂대뱶 |
### ?쒕퉬?ㅻ퀎 湲곕뒫 鍮꾧탳 留ㅽ듃由?뒪
| 湲곕뒫 | Claw Code | Cursor | Copilot | Windsurf | Raycast |
|------|:-----------:|:------:|:-------:|:--------:|:-------:|
| ?먯씠?꾪듃 猷⑦봽 | ??| ??| ??| ??| ??|
| MCP ?꾨줈?좎퐳 | ??| ??| ??| ??| ??|
| ?쒕툕?먯씠?꾪듃 (蹂묐젹) | 10?€ | 8媛?| ?ㅼ쨷 | ??| ??|
| Plan Mode | ??| ??| ??| ??| ??|
| LSP 肄붾뱶 遺꾩꽍 | ?먯껜 | ??| ??| ??| ??|
| ?먯씠?꾪듃 硫붾え由?| ??| ??| ??| ??| ??|
| ?꾨줈?앺듃 洹쒖튃 | ??| ??| ??| ??| ??|
| ?먮룞 ?뚯뒪???섏젙 | ??| ??| ??| ??| ??|
| ?곗쿂 ?듯빀 | ??| ??| ??| ??| ??|
| ?ㅽ봽?쇱씤 ?숈옉 | ??| ??| ??| ??| ??|
---
## 3. ?듭떖 湲곗닠 媛쒖슂 ???먯씠?꾪듃瑜?援ъ꽦?섎뒗 7?€ 異?
Agentic Coding Survey (arXiv 2025)??AI 肄붾뵫 ?먯씠?꾪듃??湲곗닠 吏€?뺤쓣 **7?€ 異?*?쇰줈 ?뺣━?⑸땲??
| # | 湲곗닠 異?| ?듭떖 吏덈Ц | ?€???쒕퉬??|
|---|---------|-----------|-------------|
| 1 | **怨꾪쉷 (Planning)** | ?대뼡 ?쒖꽌濡??묒뾽??寃껋씤媛€? | Claw Code Plan Mode |
| 2 | **?꾧뎄 ?ъ슜 (Tool Use)** | ?뚯씪쨌寃€?됀룸퉴?쒕? ?대뼸寃??몄텧?섎뒗媛€? | ?꾩껜 (Function Calling) |
| 3 | **硫붾え由?(Memory)** | ?댁쟾 ?묒뾽???대뼸寃?湲곗뼲?섎뒗媛€? | Windsurf, Cursor |
| 4 | **?깆같 (Reflection)** | ?ㅽ뙣瑜??대뼸寃?遺꾩꽍?섍퀬 ?ъ떆?꾪븯?붽?? | Claw Code |
| 5 | **?묒뾽 (Multi-Agent)** | ?щ윭 ?먯씠?꾪듃媛€ ?대뼸寃?遺꾩뾽?섎뒗媛€? | GitHub Copilot, Claw Code |
| 6 | **寃€??(Retrieval)** | 愿€??肄붾뱶瑜??대뼸寃?李얜뒗媛€? | Cursor, Windsurf |
| 7 | **寃€利?(Verification)** | 寃곌낵媛€ 留욌뒗吏€ ?대뼸寃??뺤씤?섎뒗媛€? | GitHub Copilot |
?댄븯 ?뱀뀡?먯꽌 媛?湲곗닠??**?숈닠 洹쇨굅, ?묐룞 ?먮━, ?곸슜 ?쒕퉬?? ?④낵**瑜??ㅻ챸?⑸땲??
---
## 4. 湲곗닠蹂??곸꽭
### 4-1. Function Calling ???먯씠?꾪듃??"?먭낵 諛?
**媛쒕뀗**: LLM?€ ?띿뒪?몃쭔 異쒕젰?????덉뒿?덈떎. ?뚯씪???쎄굅??肄붾뱶瑜??ㅽ뻾?섎뒗 寃껋? 遺덇??ν빀?덈떎.
Function Calling?€ LLM??**"???꾧뎄瑜????뚮씪誘명꽣濡??몄텧?댁쨾"?쇰뒗 ?붿껌?쒕? JSON?쇰줈 異쒕젰**?섎㈃, ?깆씠 ?ㅼ젣濡??ㅽ뻾?섎뒗 援ъ“?낅땲??
```
?뚢??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€???? ??????LLM ???? ?ъ슜??硫붿떆吏€ + ?꾧뎄 紐⑸줉 (JSON Schema) ???? "??以묒뿉 ??寃??덉쑝硫?JSON?쇰줈 異쒕젰?? ???붴??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?р??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?? ???뚢??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€???? ??LLM ???띿뒪??異쒕젰 (?닿쾶 ?꾨?) ???? { "tool": "file_write", ???? "arguments": { "path": "report.html",???? "content": "<h1>蹂닿퀬??/h1>..." ???? } ???? } ???? ???닿쾬??洹몃깷 ?띿뒪?? ?ㅼ젣 ?뚯씪??留뚮뱺 ???? 嫄??꾨떂. ???붴??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?р??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?? ???뚢??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€???? ???????ㅼ젣 ?ㅽ뻾 ???? 1. JSON ?뚯떛 ???? 2. File.WriteAllText() ?ㅽ뻾 ???? 3. 寃곌낵瑜??ㅼ떆 LLM?먭쾶 ?꾨떖 ???? 4. LLM???ㅼ쓬 ?됰룞 寃곗젙 ???붴??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€??```
**?낃퀎 ?쒖?**: OpenAI, Sigmoid, Google, Ollama ??**紐⑤뱺 LLM API**媛€ ?숈씪??諛⑹떇.
"Function Calling" ?먮뒗 "Tool Use"?쇨퀬 遺덈━硫? 2024???댄썑 ?먯씠?꾪듃???듭떖 ?명봽??
| LLM ?쒕퉬??| ?꾧뎄 ?몄텧 諛⑹떇 |
|-----------|--------------|
| Ollama / vLLM | OpenAI ?명솚 tools ?뚮씪誘명꽣 |
| Gemini | functionDeclarations |
| Sigmoid | tool_use 釉붾줉 |
**紐⑤뜽 ?깅뒫???곕Ⅸ 李⑥씠**: ?꾧뎄 ?몄텧?€ LLM???щ컮瑜?JSON??異쒕젰?댁빞 ?섎?濡?紐⑤뜽 ?깅뒫???섏〈?⑸땲??
| 紐⑤뜽 ?섏? | ?꾧뎄 ?몄텧 ?뺥솗??| ?덉떆 |
|----------|:---:|------|
| ?€??紐⑤뜽 | ???뺥솗 | Sigmoid Opus, GPT-4, Gemini Pro |
| 以묓삎 紐⑤뜽 | ?좑툘 ?€遺€遺?OK | Gemini Flash, Qwen-30B |
| 寃쎈웾 紐⑤뜽 | ??醫낆쥌 ?ㅽ뙣 | Gemini Flash Lite, ?뚰삎 濡쒖뺄 紐⑤뜽 |
**愿€???쇰Ц**: SWE-Agent v2 (Yang et al., Princeton 2025) ??**Agent-Computer Interface (ACI)** ?ㅺ퀎
---
### 4-2. Plan Mode ??怨꾪쉷 ???ㅽ뻾
**媛쒕뀗**: ?먯씠?꾪듃媛€ ?꾧뎄瑜?利됱떆 ?ㅽ뻾?섏? ?딄퀬, **癒쇱? 援ъ“?붾맂 ?ㅽ뻾 怨꾪쉷???앹꽦 ???ъ슜?먭? 寃€???섏젙/?뱀씤 ???뱀씤 ???ㅽ뻾**?섎뒗 ?⑦꽩.
```
?ъ슜???붿껌: "?몄쬆 紐⑤뱢??JWT濡?援먯껜?댁쨾"
?? ???뚢? 怨꾪쉷 ?섎┰ (?꾧뎄 ?몄텧 李⑤떒) ?€?€?€?€?€?€?€?€?€?€?€?€?€?€???? 1. ?꾩옱 ?몄쬆 濡쒖쭅 遺꾩꽍 (grep, file_read) ???? 2. JWT ?쇱씠釉뚮윭由??ㅼ튂 (process) ???? 3. ?좏겙 ?앹꽦/寃€利?紐⑤뱢 ?묒꽦 (file_write) ???? 4. 湲곗〈 ?몄뀡 濡쒖쭅 援먯껜 (file_edit) ???? 5. ?⑥쐞 ?뚯뒪???묒꽦 諛??ㅽ뻾 (test_loop) ???? 6. Git 而ㅻ컠 (git_tool) ???붴??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?р??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?? ?? [?뱀씤] [?섏젙] [痍⑥냼] ???ъ슜??寃€?? ?? ???뱀씤
怨꾪쉷?€濡??쒖감 ?ㅽ뻾
```
**???꾩슂?쒓??** ??FeatureBench (Sigmoid 2025)
| 踰ㅼ튂留덊겕 | AI ?깅뒫 | ?섎? |
|----------|:------:|------|
| SWE-bench (踰꾧렇 ?섏젙) | **80%+** | ?먯씠?꾪듃媛€ 留ㅼ슦 ?섑븯???곸뿭 |
| FeatureBench (?좉린??援ы쁽) | **11~12%** | ?먯씠?꾪듃媛€ ?꾩쭅 ?대젮???곸뿭 |
> ?먯씠?꾪듃??**"湲곗〈 肄붾뱶 ?섏젙"?€ ?섑븯吏€留?"?덈줈??湲곕뒫 ?ㅺ퀎"???멸컙 媛먮룆???꾩닔**.
> Plan Mode?????쒓퀎瑜??몄젙?섍퀬 **?멸컙-猷⑦봽(Human-in-the-Loop)** 瑜??꾩젣濡??ㅺ퀎???⑦꽩.
**?곸슜 ?쒕퉬??*: Claw Code (Plan Mode), GitHub Copilot Workspace
---
### 4-3. Reflexion ???ㅽ뙣?먯꽌 諛곗슦???먯씠?꾪듃
**?쇰Ц**: Reflexion: Language Agents with Verbal Reinforcement Learning (Shinn et al., NeurIPS 2023)
**?듭떖 ?꾩씠?붿뼱**: ?먯씠?꾪듃媛€ ?ㅽ뙣?섎㈃ **"???ㅽ뙣?덈뒗吏€" ?먯뿰?대줈 援ъ“?붾맂 ?깆같臾몄쓣 ?앹꽦**?섍퀬, ?대? 硫붾え由ъ뿉 ?€?ν븯???ㅼ쓬 ?쒕룄???쒖슜?⑸땲??
```
?먯씠?꾪듃 ?ㅽ뻾
?? ???ㅽ뻾 寃곌낵 愿€李? ?? ?쒋??€ ?깃났 ???꾨즺
?? ?붴??€ ?ㅽ뙣 ??援ъ“?붾맂 ?먭린 ?깆같 (Self-Reflection)
?? ?? "?뚯씪 寃쎈줈瑜??곷?寃쎈줈濡?吏€?뺥뻽?쇰굹 ?묒뾽 ?대뜑媛€
?? ?ㅻⅨ ?꾩튂?€?? ?ㅼ쓬?먮뒗 ?덈? 寃쎈줈瑜??ъ슜?섍굅?? ?? 癒쇱? ?꾩옱 ?묒뾽 ?붾젆?곕━瑜??뺤씤?댁빞 ?쒕떎."
?? ?? ?깆같 寃곌낵瑜?硫붾え由ъ뿉 ?€?? ?? ?? ?ㅼ쓬 ?쒕룄???깆같 寃곌낵 二쇱엯 ???ъ떆??```
**?④낵**:
| 踰ㅼ튂留덊겕 | ?쇰컲 ?먯씠?꾪듃 | Reflexion ?곸슜 | ?μ긽 |
|----------|:-----------:|:-------------:|:----:|
| HumanEval (Python) | 80.1% | **91.0%** | +10.9% |
| MBPP (Python) | 72.4% | **77.1%** | +4.7% |
| AlfWorld (?묒뾽 ?섑뻾) | 75% | **97%** | +22% |
**?듭떖 李⑥씠**: 湲곗〈???⑥닚 ?ъ떆??媛숈? ?꾨\?꾪듃濡??ㅼ떆 ?ㅽ뻾)?€ ?щ━, **?ㅽ뙣 ?먯씤??遺꾩꽍???띿뒪?몃? ?ㅼ쓬 ?꾨\?꾪듃??異붽?**?섏뿬 媛숈? ?ㅼ닔瑜?諛섎났?섏? ?딆쓬.
**?곸슜 ?쒕퉬??*: Claw Code (?먮윭 ???먮룞 ?깆같), GitHub Copilot (諛섎났 ?섏젙 猷⑦봽)
---
### 4-4. Agent-Computer Interface (ACI) ??LLM???꾪븳 ?꾧뎄 ?ㅺ퀎
**?쇰Ц**: SWE-Agent: Agent-Computer Interfaces Enable Automated Software Engineering (Yang et al., Princeton 2024-2025)
**?듭떖 ?꾩씠?붿뼱**: ?먯씠?꾪듃???깅뒫?€ LLM 紐⑤뜽 ?먯껜蹂대떎 **LLM???ъ슜?섎뒗 ?꾧뎄???ㅺ퀎**???ш쾶 醫뚯슦?⑸땲?? ?щ엺???꾪븳 UI(GUI)媛€ ?꾨땶, **LLM???꾪빐 理쒖쟻?붾맂 ?꾧뎄 ?명꽣?섏씠??ACI)** 瑜??ㅺ퀎?댁빞 ?⑸땲??
**ACI ?ㅺ퀎 ?먯튃**:
| ?먯튃 | ?섏걶 ?ㅺ퀎 | 醫뗭? ?ㅺ퀎 (ACI) |
|------|----------|----------------|
| 異쒕젰 媛꾧껐??| `ls -la` ?꾩껜 異쒕젰 (?섎갚 以? | ?꾩슂???뺣낫留?援ъ“?뷀븯??諛섑솚 |
| 紐낇솗???뚮씪誘명꽣 | 蹂듭옟???뚮옒洹?議고빀 | JSON Schema濡??뺤쓽??紐낇솗???뚮씪誘명꽣 |
| ?먮윭 硫붿떆吏€ | ?ㅽ깮 ?몃젅?댁뒪 ?꾩껜 | ?먯씤 + ?닿껐 諛⑸쾿????以꾨줈 ?붿빟 |
| ?곹깭 ?쇰뱶諛?| "?꾨즺" | "3媛??뚯씪 ?섏젙, ?뚯뒪??5/5 ?듦낵" |
**?④낵**: ?숈씪??LLM 紐⑤뜽?대씪??ACI瑜????ㅺ퀎?섎㈃ SWE-bench?먯꽌 **12~23%p ?깅뒫 ?μ긽**.
**?곸슜 ?쒕퉬??*: Claw Code (而ㅼ뒪?€ CLI ?꾧뎄), SWE-Agent (?꾩슜 ?꾧뎄 ??
---
### 4-5. CodeAct ??肄붾뱶濡??됰룞?섎뒗 ?먯씠?꾪듃
**?쇰Ц**: CodeAct: Code Actions for Multi-Turn Agent Interactions (Wang et al., 2024)
**?듭떖 ?꾩씠?붿뼱**: ?먯씠?꾪듃???됰룞(Action)??JSON ?꾧뎄 ?몄텧 ?€??**?ㅽ뻾 媛€?ν븳 肄붾뱶**濡??쒗쁽?⑸땲??
```
?쇰컲 ?꾧뎄 ?몄텧 (JSON) CodeAct (肄붾뱶)
?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€ ?€?€?€?€?€?€?€?€?€?€?€?€?€?€
{"tool": "search", import os
"args": {"query": "auth"}} results = []
for f in os.listdir('src'):
{"tool": "file_read", if 'auth' in f.lower():
"args": {"path": "src/auth.py"}} with open(f'src/{f}') as fh:
results.append(fh.read())
??2踰덉쓽 ?꾧뎄 ?몄텧 ?꾩슂 ??1踰덉쓽 肄붾뱶 ?ㅽ뻾?쇰줈 蹂듭옟??濡쒖쭅 ?쒗쁽
```
**?④낵**: 硫€?고꽩 ?€?붿뿉???묒뾽 ?깃났瑜?**20%+ ?μ긽**. 蹂듭옟??議곌굔 遺꾧린, 諛섎났, ?덉쇅 泥섎━瑜???踰덉뿉 ?쒗쁽?????덉뼱 ?꾧뎄 ?몄텧 ?잛닔媛€ 以꾧퀬 ?뺥솗?꾧? ?щ씪媛?
**?곸슜 ?쒕퉬??*: Claw Code (bash ?꾧뎄), OpenCode, Aider (肄붾뱶 ?ㅽ뻾 ?먯씠?꾪듃)
---
### 4-6. ?먯씠?꾪듃 硫붾え由????몄뀡???섏뼱??湲곗뼲?섎뒗 AI
**媛쒕뀗**: ?€?붽? ?앸굹硫?紐⑤뱺 臾몃㎘???щ씪吏€??湲곗〈 LLM怨??щ━, **?꾨줈?앺듃 ?섎챸 二쇨린 ?꾩껜??嫄몄퀜 ?숈뒿???댁슜???좎?**?섎뒗 援ъ“.
```
?몄뀡 1: "???꾨줈?앺듃??camelCase瑜??곌퀬, ?뚯뒪?몃뒗 Jest瑜??ъ슜?⑸땲??
?? ???€???몄뀡 2: (???€?? AI媛€ ?먮룞?쇰줈 camelCase + Jest ?ㅽ??쇰줈 肄붾뱶 ?묒꽦
?? ???꾩쟻
?몄뀡 N: ?꾨줈?앺듃???꾪궎?띿쿂, 愿€濡€, ?섏궗寃곗젙 ?대젰??紐⑤몢 湲곗뼲
```
**硫붾え由?怨꾩링** (CrewAI/LangChain ?곌뎄 湲곕컲):
| 怨꾩링 | ??븷 | ?덉떆 |
|------|------|------|
| **?④린 湲곗뼲** | ?꾩옱 ?€?붿쓽 ?꾧뎄 ?몄텧 ?대젰 | "諛⑷툑 auth.py瑜??쎌뿀?쇰땲 ?ㅼ떆 ???쎌뼱???? |
| **?먰뵾?뚮뱶 湲곗뼲** | 怨쇨굅 ?묒뾽???깃났/?ㅽ뙣 寃쏀뿕 | "吏€?쒕쾲?????⑦꽩?쇰줈 ?섎땲源?鍮뚮뱶 ?ㅽ뙣?덉뿀?? |
| **?곸냽 湲곗뼲** | ?꾨줈?앺듃 洹쒖튃, 肄붾뵫 愿€濡€ | "???꾨줈?앺듃????긽 ESLint瑜??듦낵?댁빞 ?? |
**?곸슜 ?쒕퉬??*: Windsurf (?곸냽 硫붾え由?, Cursor (?щ떇 硫붾え由?, Claw Code (Sigmoid.md ?꾨줈?앺듃 ?뚯씪)
---
### 4-7. MCP (Model Context Protocol) ???꾧뎄 ?곌껐 ?쒖?
**?쒖젙**: Sigmoid (2025??12??
**媛쒕뀗**: LLM ?먯씠?꾪듃媛€ ?몃? ?꾧뎄/?쒕퉬?ㅼ뿉 ?묎렐?섎뒗 **?쒖? ?꾨줈?좎퐳**.
媛??쒕퉬?ㅻ쭏???ㅻⅨ ?곕룞 諛⑹떇???곕뒗 ?€?? **?섎굹???쒖??쇰줈 ?듭씪**.
```
?뚢??€?€?€?€?€?€?€?€?€?€?€?€?€?? JSON-RPC 2.0 ?뚢??€?€?€?€?€?€?€?€?€?€?€?€?€???? AI ?먯씠?꾪듃 ???꾟??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€???? MCP ?쒕쾭 A ?? (JIRA)
?? (MCP ?대씪?댁뼵?? ?? ?? ???? ???꾟??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€???? MCP ?쒕쾭 B ?? (Slack)
?? ?? ?? ???? ???꾟??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€???? MCP ?쒕쾭 C ?? (DB 議고쉶)
?붴??€?€?€?€?€?€?€?€?€?€?€?€?€?? ?붴??€?€?€?€?€?€?€?€?€?€?€?€?€?? ?? ?쒋??€ ?쒕쾭???꾧뎄(tools) 紐⑸줉 ?먮룞 諛쒓껄
?쒋??€ ?먯씠?꾪듃 ?꾧뎄濡??먮룞 ?섑븨 (LLM?먭쾶 援щ텇 ?놁씠 ?몄텧)
?붴??€ LLM???댁옣 ?꾧뎄?€ ?숈씪?섍쾶 ?몄텧
```
**LLM ?낆옣?먯꽌**: ?댁옣 ?꾧뎄?€ MCP ?꾧뎄??援щ텇???놁뒿?덈떎.
```
?꾧뎄 紐⑸줉 (LLM?먭쾶 ?꾨떖):
file_read ???댁옣
file_write ???댁옣 LLM?€ ??援щ텇?? jira_search ??MCP 紐⑤쫭?덈떎.
slack_send ??MCP 洹몃깷 紐⑸줉?먯꽌
db_query ??MCP 怨⑤씪???몄텧??肉?
```
**?낃퀎 梨꾪깮**: Claw Code, Cursor, GitHub Copilot, OpenCode ??紐⑤뱺 二쇱슂 ?쒕퉬?ㅺ? 吏€??
---
### 4-8. LSP (Language Server Protocol) ???섎? 湲곕컲 肄붾뱶 遺꾩꽍
**?쒖젙**: Microsoft
**媛쒕뀗**: ?띿뒪??寃€??grep)???꾨땶 **肄붾뱶???섎? 援ъ“**瑜?湲곕컲?쇰줈 遺꾩꽍.
```
?띿뒪??寃€??(grep) LSP 湲곕컲 遺꾩꽍
?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€ ?€?€?€?€?€?€?€?€?€?€?€?€?€?€
"authenticate" 湲€???ы븿 以?諛섑솚 ?⑥닔 ?뺤쓽 ?꾩튂 ?뺥솗??諛섑솚
??二쇱꽍/臾몄옄?댁뿉 ?덈뒗 寃껊룄 ?ы븿 ??"???⑥닔瑜??몄텧?섎뒗 怨? 紐⑸줉
???숈쓽??"auth", "login") ?꾨씫 ???€?? ?쒓렇?덉쿂, 李몄“ 愿€怨?遺꾩꽍
???몄씠利덇? 留롮쓬 ???뺥솗???믪쓬
```
**?곸슜 ?쒕퉬??*: Cursor (OmniSharp, pyright ??, GitHub Copilot, Windsurf
---
### 4-9. Multi-Agent ????븷 湲곕컲 ?먯씠?꾪듃 ?€
**媛쒕뀗**: ?⑥씪 ?먯씠?꾪듃 ?€??**??븷???ㅻⅨ ?щ윭 ?먯씠?꾪듃媛€ 硫붿떆吏€瑜?二쇨퀬諛쏆쑝硫??묒뾽**.
```
?뚢??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€???? ?ㅼ??ㅽ듃?덉씠??(Orchestrator) ???? "JWT ?몄쬆 紐⑤뱢濡?援먯껜?댁쨾" ???? ???? ?뚢??€?€?€?€?€?€?€?€?€???뚢??€?€?€?€?€?€?€?€?€???뚢??€?€?€?€?€?€?€?€?€?????? ??肄붾뱶 ?묒꽦 ?????뚯뒪?? ????肄붾뱶 由щ럭?????? ???먯씠?꾪듃 ?????먯씠?꾪듃 ?????먯씠?꾪듃 ?????? ?붴??€?€?€?€?р??€?€?€???붴??€?€?€?р??€?€?€?€???붴??€?€?€?р??€?€?€?€?????? ???묒꽦 ?꾨즺 ???뚯뒪???ㅽ뙣 ??由щ럭 ???? ?붴??€?€?€?€?€?€?€?? ???꾟??€?€?€?€?€?€?€ ?? ???? ?? ???? ?섏젙 ???ы뀒?ㅽ듃 ???듦낵 ???붴??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€??```
**?곸슜 ?쒕퉬??*: Claw Code (?쒕툕?먯씠?꾪듃 10?€), Cursor (諛깃렇?쇱슫???먯씠?꾪듃 8媛?, GitHub Copilot (Multi-Agent)
---
## 5. 援ы쁽 諛⑸쾿 ???먯씠?꾪듃???ㅽ뻾 援ъ“
### ?먯씠?꾪듃 猷⑦봽 (Agent Loop)
紐⑤뱺 AI 肄붾뵫 ?먯씠?꾪듃???듭떖 ?꾪궎?띿쿂??**?숈씪??諛섎났 猷⑦봽**?낅땲??
```
?ъ슜???붿껌
?? ???뚢??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€???? 諛섎났 (理쒕? N??: ???? ???? ??LLM?먭쾶 ?꾩넚 ???? (?ъ슜??硫붿떆吏€ + ?꾧뎄 紐⑸줉 + ?대젰) ???? ???? ??LLM ?묐떟 ?섏떊 ???? ?쒋??€ ?띿뒪?몃쭔 ??醫낅즺 (理쒖쥌 ?듬?) ???? ?붴??€ ?꾧뎄 ?몄텧 JSON ????쑝濡? ???? ???? ???꾧뎄 ?ㅽ뻾 ???? 쨌 寃쎈줈 寃€利?(?묒뾽 ?대뜑 ??) ???? 쨌 沅뚰븳 ?뺤씤 (Ask/Auto/Deny) ???? 쨌 李⑤떒 ?뺤옣??寃€?? ???? 쨌 ?ㅽ뻾 ??寃곌낵瑜??대젰??異붽? ???? ???? ??寃곌낵瑜??ㅼ떆 ?좊줈 (?ㅼ쓬 諛섎났) ???? ???? ?덉쟾?μ튂: ???? 쨌 理쒕? 諛섎났 ?잛닔 ?쒗븳 ???? 쨌 ?곗냽 ?ㅻ쪟 ???먮룞 以묐떒 ???? 쨌 痍⑥냼 ?좏겙?쇰줈 ?ъ슜??以묐떒 吏€?? ???붴??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€??```
### ?ㅽ궗 ?쒖뒪?????낅Т 吏€?쒖꽌
?ㅽ궗?€ **LLM?먭쾶 二쇰뒗 ?낅Т 吏€?쒖꽌**?낅땲?? `.skill.md` ?뚯씪 ?섎굹濡??뺤쓽?⑸땲??
```yaml
---
name: report-writer
label: 蹂닿퀬???묒꽦
allowed-tools: # ???ㅽ궗???ъ슜?????덈뒗 ?꾧뎄瑜??쒗븳
- file_read
- folder_map
- html_create
---
## 吏€?쒖궗??1. ?묒뾽 ?대뜑???곗씠???뚯씪??癒쇱? ?뺤씤?섏꽭??2. ?듭떖 吏€?쒕? 異붿텧?섏꽭??3. ?꾨Ц?곸씤 蹂닿퀬?쒕? HTML濡??묒꽦?섏꽭??```
> ?ㅽ궗?€ ?꾧뎄瑜?異붽??섍굅????젣????**?놁뒿?덈떎**. "LLM ?쒖뒪???꾨\?꾪듃"濡쒕쭔 ?묐룞?섎ʼn, ?ㅼ젣 ?꾧뎄 紐⑸줉?€ ?깆씠 愿€由ы빀?덈떎. ?곕씪???낆꽦 ?ㅽ궗??濡쒕뱶?대룄 **?깆쓽 蹂댁븞 寃쎄퀎瑜??섏쓣 ???놁뒿?덈떎**.
**?쒖?**: Sigmoid??**SKILL.md** ?ㅽ뵂 ?щ㎎(agentskills.io)???쒖젙?섏뿬 ?ㅽ궗 ?명솚?깆쓣 ?쒖???
---
## 6. ?ъ슜???곗씠??蹂댄샇
### ?몃? ?쒕퉬?ㅼ쓽 蹂댁븞 援ъ“
| ?쒕퉬??| ?ㅽ뻾 ?섍꼍 | 寃⑸━ 諛⑹떇 | ?꾪뿕 ?붿냼 |
|--------|-----------|-----------|-----------|
| **Claw Code** | ?곕???(濡쒖뺄 PC) | ?놁쓬 | ?섎せ??`rm -rf` ?ㅽ뻾 媛€??|
| **Cursor** | IDE ?댁옣 | ?꾨줈?앺듃 ?대뜑 ?쒖젙 | ?곕???紐낅졊?€ ?쒗븳 ?놁쓬 |
| **Devin / Codex** | **Docker 而⑦뀒?대꼫** | ?꾩쟾 寃⑸━ | 而⑦뀒?대꼫 諛??묎렐 遺덇? |
| **GitHub Copilot Workspace** | **?대씪?곕뱶 VM** | ?쒕쾭 寃⑸━ | 濡쒖뺄 ?뚯씪 ?묎렐 ?먯껜 遺덇? |
> **??Docker?**: ?곕????먯씠?꾪듃(Claw Code)??`rm -rf /`, `curl | bash` 媛숈? ?꾪뿕 紐낅졊??LLM???ㅽ뻾?????덉뒿?덈떎. Devin/Codex???대? ?닿껐?섍린 ?꾪빐 Docker 而⑦뀒?대꼫 ?덉뿉?쒕쭔 肄붾뱶瑜??ㅽ뻾?⑸땲??
### ?щ궡 ?섍꼍?먯꽌??蹂댁븞 ?먯튃
?щ궡?먯꽌 AI ?먯씠?꾪듃瑜??댁쁺?섎젮硫?Docker ?€??**???덈꺼?먯꽌 3以?諛⑹뼱**媛€ ?꾩슂?⑸땲??
```
諛⑹뼱 ?? ?뚰겕?ㅽ럹?댁뒪 寃⑸━
?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€
?ъ슜??PC ?꾩껜 ?붿뒪?? ?쒋??€ C:\Windows\ ???슟 李⑤떒
?쒋??€ C:\Program Files\ ???슟 李⑤떒
?쒋??€ C:\Users\...\AppData\ ???슟 李⑤떒
?붴??€ D:\Projects\MyProject\ ?????묒뾽 ?대뜑 (?ъ슜??吏€??
?붴??€ AI媛€ ?쎄퀬 ?????덈뒗 ?좎씪???곸뿭
諛⑹뼱 ?? ?뚯씪 ?묎렐 ?숈쓽 (3?④퀎 沅뚰븳)
?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€
쨌 Ask ???뚯씪?????뚮쭏???ъ슜???뺤씤 ?앹뾽
쨌 Auto ???묒뾽 ?대뜑 ???먮룞 ?덉슜 (?숇젴?먯슜)
쨌 Deny ??紐⑤뱺 ?뚯씪 ?섏젙 李⑤떒 (?쎄린留??덉슜)
諛⑹뼱 ?? ??젣 ?꾧뎄 ?먯껜媛€ ?놁쓬
?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€
쨌 file_read (?쎄린) ?? 쨌 file_write (?앹꽦/??뼱?곌린) ?? 쨌 file_edit (遺€遺??섏젙) ?? 쨌 file_delete ???꾧뎄 ?먯껜媛€ 議댁옱?섏? ?딆쓬 ?? 쨌 .exe, .dll, .sys ???ㅽ뻾 ?뚯씪 ?앹꽦 李⑤떒
```
> **?ㅺ퀎 ?먯튃**: LLM??"???뚯씪 ??젣???쇨퀬 ?먮떒?대룄, ?ㅽ뻾???꾧뎄媛€ ?놁쑝誘€濡?**臾쇰━?곸쑝濡???젣 遺덇???*.
---
## 7. 寃곕줎 ??湲곗닠 諛⑺뼢 ?쒖떆
### 2026??10?€ 湲곗닠 ?숉뼢 ?붿빟
| # | ?숉뼢 | 洹쇨굅 | ?곹뼢??|
|---|------|------|:------:|
| 1 | **?곗뒪?ы깙 ?ㅼ씠?곕툕 ?꾪솚** | Claw Code쨌Cursor쨌Windsurf 紐⑤몢 濡쒖뺄 ?ㅽ뻾 | ?끸쁾??|
| 2 | **?먯쑉 ?먯씠?꾪듃 ?꾪솚** | ?먮룞?꾩꽦 ???댁뒋?믪퐫?쒋넂PR ?먮룞???뚯씠?꾨씪??| ?끸쁾??|
| 3 | **怨꾪쉷 ???ㅽ뻾 (Human-in-the-Loop)** | FeatureBench 11% ???멸컙 媛먮룆 ?꾩닔 ?몄떇 ?뺤궛 | ?끸쁾??|
| 4 | **?깆같 猷⑦봽 (Reflexion)** | NeurIPS 2023 ???ㅽ뙣 遺꾩꽍?믪옱?쒕룄濡??뺥솗??91% | ?끸쁾??|
| 5 | **硫€???먯씠?꾪듃 ?묒뾽** | Claw Code 10?€, Cursor 8媛?蹂묐젹 ?ㅽ뻾 | ?끸쁾??|
| 6 | **?곸냽 硫붾え由?* | ?몄뀡?믫봽濡쒖젥???섎챸 ?꾩껜 湲곗뼲 ?좎? | ?끸쁾??|
| 7 | **?쒖? ?꾨줈?좎퐳 (MCP, LSP)** | Sigmoid MCP ?쒖젙, ???쒕퉬??梨꾪깮 | ?끸쁾??|
| 8 | **ACI ?꾧뎄 ?ㅺ퀎** | SWE-Agent ???꾧뎄 ?ㅺ퀎留뚯쑝濡?12~23%p ?깅뒫 李⑥씠 | ?끸쁾??|
| 9 | **?곗쿂 + AI ?듯빀** | Raycast ???⑥텞?ㅻ줈 AI 利됱떆 ?몄텧 | ?끸쁿??|
| 10 | **?ㅽ봽?쇱씤 AI** | ?ㅽ듃?뚰겕 ?놁씠 濡쒖뺄 紐⑤뜽濡?湲곕낯 ?묒뾽 泥섎━ | ?끸쁿??|
### ?듭떖 硫붿떆吏€
```
??AI 肄붾뵫 ?꾧뎄媛€ "蹂댁“ ?꾧뎄"?먯꽌 "?먯쑉 ?먯씠?꾪듃"濡??꾪솚?섏뿀?듬땲??
???먯씠?꾪듃???듭떖 湲곗닠(怨꾪쉷쨌?꾧뎄쨌硫붾え由?룹꽦李걔룻삊???€ ?숈닠?곸쑝濡?寃€利앸릺?덉뒿?덈떎.
??洹몃윭??FeatureBench 11%媛€ 蹂댁뿬二쇰벏, ?멸컙 媛먮룆?€ ?ъ쟾???꾩닔?낅땲??
???щ궡 ?섍꼍?먯꽌???곗씠??蹂댄샇(?뚰겕?ㅽ럹?댁뒪 寃⑸━, 沅뚰븳 ?쒖뼱)媛€ ?꾩젣 議곌굔?낅땲??
????湲곗닠?ㅼ쓣 ?щ궡 ?섍꼍??鍮좊Ⅴ寃??곸슜?섎뒗 寃껋씠 寃쎌웳?μ쓽 ?듭떖?낅땲??
```
---
### 李멸퀬 臾명뿄
| ?쇰Ц/?먮즺 | 異쒖쿂 | ?듭떖 湲곗뿬 |
|-----------|------|-----------|
| Reflexion: Language Agents with Verbal Reinforcement Learning | Shinn et al., NeurIPS 2023 | ?먭린 ?깆같濡?肄붾뱶 ?앹꽦 ?뺥솗??91% ?ъ꽦 |
| SWE-Agent: Agent-Computer Interfaces Enable Automated Software Engineering | Yang et al., Princeton 2024 | ACI ?ㅺ퀎 ?먯튃, SWE-bench 80%+ |
| CodeAct: Code Actions for Multi-Turn Agent Interactions | Wang et al., 2024 | 肄붾뱶 湲곕컲 ?됰룞?쇰줈 ?깃났瑜?20%+ ?μ긽 |
| A Survey on Agentic AI for Software Engineering | arXiv 2025 | ?먯씠?꾪듃 肄붾뵫 7?€ 湲곗닠 異?泥닿퀎??|
| FeatureBench: Can AI Implement New Features? | Sigmoid Research, 2025 | ?좉린??援ы쁽 11% ???멸컙 媛먮룆 ?꾩닔 洹쇨굅 |
| Model Context Protocol Specification | Sigmoid, 2025 | ?꾧뎄 ?곌껐 ?쒖? ?꾨줈?좎퐳 |
| SKILL.md Agent Skills Open Format | agentskills.io, 2025 | ?먯씠?꾪듃 ?ㅽ궗 ?쒖? ?щ㎎ |
---
*諛쒗몴 ?먮즺 ?묒꽦: AX?곌뎄??AI?€ | 臾몄쓽: ?대? 硫붿떊?€*

105
docs/TOOL_PARITY_REPORT.md Normal file
View File

@@ -0,0 +1,105 @@
# Tool/Slash Parity Report
Generated: 2026-04-04 02:06:25
## Summary
- AX slash count: 85
- claw-code slash count: 7
- Common: 7
- AX only: 78
- claw-code only: 0
## Common
- /clear
- /exit
- /help
- /init
- /mcp
- /memory
- /permissions
## AX Only
- /add-dir
- /advisor
- /agents
- /allowed-tools
- /branch
- /btw
- /build
- /chrome
- /color
- /commit
- /compact
- /config
- /context
- /copy
- /cost
- /desktop
- /diff
- /doctor
- /effort
- /explain
- /export
- /fast
- /feedback
- /files
- /fix
- /heapdump
- /hooks
- /ide
- /init-verifiers
- /install-github-app
- /install-slack-app
- /keybindings
- /login
- /logout
- /mobile
- /model
- /new
- /output-style
- /passes
- /plan
- /plugin
- /pr
- /pr-comments
- /privacy-settings
- /rate-limit-options
- /release-notes
- /reload-plugins
- /remote-env
- /rename
- /reset
- /resume
- /review
- /rewind
- /sandbox-toggle
- /search
- /security-review
- /session
- /settings
- /skills
- /stats
- /status
- /statusline
- /stickers
- /structure
- /summary
- /tag
- /tasks
- /terminal-setup
- /test
- /theme
- /thinkback
- /thinkback-play
- /translate
- /ultrareview
- /upgrade
- /usage
- /verify
- /vim
## claw-code Only
## Notes
- claw-code source baseline: claw-code/en/quickstart.md
- AX source baseline: src/AxCopilot/Views/ChatWindow.xaml.cs

View File

@@ -1,674 +0,0 @@
# AX Commander 사용 매뉴얼 (v1.0.3)
> 사내 전용 런처 프로그램 — 키보드 하나로 파일·명령·클립보드·계산까지
---
## 목차
1. [시작하기](#1-시작하기)
2. [기본 사용법](#2-기본-사용법)
3. [명령어 프리픽스 가이드](#3-명령어-프리픽스-가이드)
4. [파일 및 앱 검색](#4-파일-및-앱-검색)
5. [파일 액션 서브메뉴](#5-파일-액션-서브메뉴)
6. [Large Type](#6-large-type)
7. [클립보드 합치기](#7-클립보드-합치기)
8. [설정 변경](#8-설정-변경)
9. [잠금 해제 사용시간 알림](#9-잠금-해제-사용시간-알림)
10. [전체 키보드 단축키 표](#10-전체-키보드-단축키-표)
11. [자주 묻는 질문](#11-자주-묻는-질문)
> **v1.0 정식 릴리스** — 30개+ 명령어, 9개 테마(모양 포함), 클립보드 DPAPI 암호화, 글로벌 캡처 단축키, 잠금 해제 알림, 다국어(ko/en/ja/zh/vi), 텍스트 통계·즐겨찾기·파일 이름변경·시스템 모니터·프로젝트 스캐폴딩, AX Agent AI 대화(프롬프트 카드, 코드 구문 강조, 토큰 사용량, 타이핑 효과, 지연 캡처)
---
## 1. 시작하기
### 설치 방법
| 방법 | 파일 | 설명 |
|------|------|------|
| **오프라인 인스톨러** | `AxCommander_Setup.exe` (~136MB) | 모든 것 내장, 인터넷 불필요. 설치 경로 선택, 바로가기, 프로그램 등록 |
| **온라인 인스톨러 (경량)** | `AxCommander_Setup_Online.exe` (**~1MB**) | .NET 4.8 기반 (Windows 기본). .NET 8 Runtime 없으면 자동 다운로드 설치 |
| **직접 실행** | `AxCommander\` 폴더 | 폴더째 복사 후 `AxCommander.exe` 실행 (설치 과정 없음) |
### 런처 열기
프로그램이 백그라운드에서 실행 중인 상태에서 기본 단축키를 누릅니다.
```
기본 단축키: Alt + Space
```
화면 중앙 상단에 런처 창이 나타납니다.
### 런처 닫기
- `Esc`
- 런처 창 밖을 클릭
### 시스템 트레이
작업 표시줄 우측 트레이 아이콘을 우클릭하면 메뉴가 나타납니다.
| 메뉴 항목 | 아이콘 | 기능 |
|----------|--------|------|
| AX Commander 열기 | ⚡ | 런처 창 표시 |
| 설정 | ⚙ | 설정 창 열기 |
| 사용 통계 | 📊 | 런처 사용 현황 통계 창 열기 |
| 플러그인 재로드 | 🔌 | 외부 플러그인 다시 불러오기 |
| 로그 폴더 열기 | 📁 | 오류 로그 폴더를 탐색기로 열기 |
| 정보 | | 개발자 정보 및 버전 확인 |
| Windows 시작 시 자동 실행 | 💡 | 전구 아이콘 — 활성화되면 **앰버색으로 빛나는** 전구 표시. 체크 시 Windows 로그인 시 자동 시작 등록/해제 |
| 종료 | ✕ | 프로그램 완전 종료 |
> 트레이 메뉴 디자인은 현재 테마 색상을 자동으로 따릅니다. Dark 테마면 어두운 배경, Light 테마면 밝은 배경으로 표시됩니다.
---
## 2. 기본 사용법
### 검색하고 실행하기
1. `Alt+Space`로 런처를 엽니다
2. 원하는 파일명, 앱 이름, 또는 명령어를 입력합니다
3. `↑` / `↓` 방향키로 결과를 탐색합니다
4. `Enter`를 눌러 실행합니다
```
예시:
"chrome" → Google Chrome 실행
"보고서" → 보고서.xlsx 파일 열기
"다운" → 다운로드 폴더 열기
```
### 자동완성
결과 목록에서 항목이 선택된 상태에서 `Tab`을 누르면 해당 항목의 이름이 입력창에 채워집니다.
---
## 3. 명령어 프리픽스 가이드
특수 문자를 맨 앞에 입력하면 해당 기능 모드로 전환됩니다.
입력창 좌측에 컬러 배지가 표시되어 현재 모드를 알려줍니다.
| 프리픽스 | 모드 | 예시 |
|---------|------|------|
| `@` | URL 별칭 열기 | `@gh` → GitHub 열기 |
| `~` | 폴더 별칭 열기 | `~dl` → 다운로드 폴더 열기 |
| `>` | 배치/명령 실행 | `>build` → 빌드 스크립트 실행 |
| `$` | 클립보드 텍스트 변환 | `$json` → 클립보드 내용 JSON 정렬 |
| `!` | 워크스페이스 관리 | `!save work` → 현재 창 배치 저장 |
| `#` | 클립보드 히스토리 | `#` → 최근 복사 내역 표시 |
| `;` | 텍스트 스니펫 | `;addr` → 회사 주소 붙여넣기 |
| `=` | 계산기·단위·통화 변환 | `=100 USD to KRW`, `=100km in miles` |
| `?` | 웹 검색 (10개 엔진) | `? 검색어` → 기본 엔진, `?n 검색어` → 네이버, `?g` 구글, `?y` 유튜브, `?nw` 나무위키 등 |
| `/` | 시스템 명령·타이머·알람 | `/timer 5m`, `/alarm 14:30`, `/lock` |
| `emoji` | 이모지 피커 | `emoji 하트` → ❤️ 클립보드 복사 |
| `color` | 색상 변환기 | `color #FF5500` → HEX/RGB/HSL/HSV |
| `recent` | 최근 파일 | `recent 보고서` → 최근 문서 검색 |
| `note` | 빠른 메모 | `note 내일 회의` → 저장 / `note` → 목록 |
| `uninstall` | 앱 제거 | `uninstall chrome` → 제거 실행 |
| `kill` | 프로세스 종료 | `kill chrome` → 크롬 프로세스 강제 종료 |
| `media` | 미디어 제어 | `media pause` → 재생/일시정지 |
| `info` 또는 `*` | 시스템 정보 | `info` → IP·배터리·볼륨 현황 (`*`로도 동일하게 사용 가능) |
| `cap` *(변경 가능)* | 화면 캡처 | `cap region` → 영역 선택, `cap window` → 창 캡처, `cap scroll` → 스크롤, `cap screen` → 전체 화면. Shift+Enter → 지연 캡처 |
| `pick` | 스포이드 색상 추출 | `pick` → 스포이드 모드, 클릭으로 HEX 색상 코드 추출 |
| `date` | 날짜 계산 · D-day | `date +30d`, `date 2026-12-25`, `date unix` |
| `svc` | 서비스 관리 | `svc` → 서비스 목록, `svc restart clipboard` → 클립보드 재시작 |
| `stats` | 텍스트 통계 분석 | `stats` → 클립보드 텍스트 글자·단어·줄 수 분석 |
| `fav` | 즐겨찾기 | `fav` → 목록, `fav add 보고서 C:\work\report.xlsx` → 등록 |
| `rename` | 파일 일괄 이름변경 | `rename C:\work\*.xlsx 보고서_{n}` → 순번 이름변경 |
| `monitor` | 시스템 리소스 모니터 | `monitor` → CPU·메모리·디스크·프로세스 현황 |
| `scaffold` | 프로젝트 스캐폴딩 | `scaffold webapi` → 프로젝트 폴더 구조 생성 |
| `pipe` | 클립보드 파이프라인 | `pipe upper > trim > b64e` → 변환 체이닝 |
| `journal` | 업무 일지 자동 생성 | `journal` → 오늘 사용 앱/명령어 기반 마크다운 보고서 |
| `routine` | 루틴 자동화 | `routine morning` → 등록된 앱/폴더/URL 일괄 실행 |
| `batch` | 텍스트 일괄 처리 | `batch number` → 줄번호, `batch sort` → 정렬 |
| `diff` | 텍스트/파일 비교 | `diff` → 클립보드 2개 비교, 파일 선택 비교 지원 |
| `win` | 윈도우 스위처 | `win chrome` → 열린 창 검색 후 즉시 전환 |
| `help` | 도움말 | `help` → 카테고리별 페이지 전체 기능 목록 창 |
---
## 4. 파일 및 앱 검색
프리픽스 없이 텍스트를 입력하면 인덱싱된 파일과 앱을 검색합니다.
### 검색 범위
- 바탕화면
- Windows 시작 메뉴 (설치된 앱)
- 설정에서 추가한 인덱스 경로
### 한국어 초성 검색 지원
| 입력 | 검색되는 예시 |
|------|-------------|
| `ㅂㄱㅅ` | 보고서.xlsx |
| `ㅅㅈ` | 사진 폴더, 설정 |
| `ㄱㅅ` | 개선안.docx |
### 빠른 실행 별칭
설정 → 빠른 실행 탭에서 자주 쓰는 파일/폴더/URL에 단축 키워드를 등록할 수 있습니다.
```
예시 등록:
키워드: vscode → C:\...\Code.exe
키워드: gh → https://github.com (@ 없이도 사용 가능)
키워드: work → C:\Projects\
```
---
## 5. 파일 액션 서브메뉴
파일이나 앱을 선택한 후 `→` 키를 누르면 해당 항목에 대한 액션 메뉴가 열립니다.
### 진입 방법
1. 런처에서 파일 또는 앱을 검색합니다
2. 원하는 항목을 `↑` / `↓`로 선택합니다
3. **입력 커서가 텍스트 맨 끝에 있는 상태**에서 `→` 키를 누릅니다
4. 상단에 파란색 breadcrumb 바가 나타나며 액션 목록이 표시됩니다
```
← 보고서_최종.xlsx 에 대한 액션 · Esc로 돌아가기
```
### 제공 액션
| 액션 | 설명 |
|------|------|
| 경로 복사 | 파일의 전체 경로를 클립보드에 복사 |
| 파일 탐색기에서 열기 | 탐색기에서 해당 파일을 선택된 상태로 열기 |
| 관리자 권한으로 실행 | UAC 권한 상승 후 실행 (파일에만 표시) |
| 터미널에서 열기 | Windows Terminal 또는 명령 프롬프트로 해당 경로 열기 |
### 돌아가기
- `Esc`: 이전 검색 결과로 복귀 (이전에 입력한 텍스트 자동 복원)
- 액션 선택 후 `Enter`: 액션 실행 후 런처 자동 닫힘
---
## 6. Large Type
선택된 텍스트를 전체 화면으로 크게 표시합니다. 발표, 화면 공유, 빠른 메모 확인에 유용합니다.
### 사용법
1. 결과 목록에서 항목을 선택합니다
2. `Shift+Enter`를 누릅니다
3. 전체 화면 검은 오버레이 위에 텍스트가 크게 표시됩니다
### 표시 내용
| 선택 항목 유형 | Large Type으로 표시되는 내용 |
|--------------|---------------------------|
| 계산기 결과 (`=`) | 계산 결과 숫자 |
| 클립보드 히스토리 (`#`) | 복사된 텍스트 전체 내용 |
| 그 외 모든 항목 | 항목 제목 |
### 닫기
- `Esc`
- 화면 아무 곳이나 클릭
- 우상단 `×` 버튼
> **팁**: `=3.14159265`를 계산기로 입력한 뒤 `Shift+Enter`를 누르면 파이 값을 크게 표시할 수 있습니다.
---
## 7. 클립보드 합치기
클립보드 히스토리에서 여러 항목을 골라 한 번에 합쳐서 복사합니다.
### 사용법
1. `#`을 입력해 클립보드 히스토리 모드로 진입합니다
2. `Shift+↓` 또는 `Shift+↑`로 합치고 싶은 항목을 선택합니다
- 선택할 때마다 하단 힌트 바에 선택 개수가 표시됩니다
- 같은 키를 다시 누르면 선택이 해제됩니다
3. `Shift+Enter`를 눌러 합치기를 실행합니다
4. 선택한 항목들이 줄바꿈(`\n`)으로 연결되어 클립보드에 복사됩니다
```
예시 결과:
항목 1: "회의 안건"
항목 2: "담당자: 홍길동"
항목 3: "일시: 2026-03-24"
→ 클립보드에 복사되는 내용:
회의 안건
담당자: 홍길동
일시: 2026-03-24
```
### 힌트 바
선택된 항목이 있으면 화면 하단에 보라색 힌트 바가 나타납니다:
```
✓ 2개 선택됨 · Shift+Enter로 합치기 · Esc로 취소
```
### 선택 취소
- `Esc`: 모든 선택을 취소하고 런처 닫기
- 런처를 다시 열면 선택이 초기화됩니다
> **주의**: 클립보드 합치기 선택 항목이 있는 상태에서 `Shift+Enter`를 누르면 Large Type 대신 **합치기**가 실행됩니다.
---
## 8. 설정 변경
`Ctrl+,` 또는 시스템 트레이 → 설정으로 설정 창을 엽니다.
### 일반 탭
#### 글로벌 단축키 변경
현재 등록된 단축키 배지를 클릭하면 녹화 모드로 전환됩니다.
```
[클릭] → 녹화 중... → 원하는 키 조합 입력 → 자동 저장
```
- 최소 하나의 보조 키(`Ctrl`, `Alt`, `Shift`, `Win`)가 포함되어야 합니다
- `Esc`를 누르면 녹화를 취소합니다
- 지원 예시: `Alt+Space`, `Ctrl+Alt+K`, `Win+Space`
#### 기본 검색 엔진
`?` 프리픽스로 검색할 때 사용할 기본 검색 엔진을 선택합니다.
| 옵션 | 검색 엔진 |
|------|---------|
| Google (기본) | www.google.com |
| Naver | search.naver.com |
| DuckDuckGo | duckduckgo.com |
| YouTube | youtube.com |
| Wikipedia | ko.wikipedia.org |
특정 엔진을 직접 지정하려면 `?g 검색어`, `?n 검색어` 형식으로 입력할 수 있습니다.
#### 런처 위치
런처 창이 화면에 나타나는 위치를 선택합니다.
| 옵션 | 위치 |
|------|------|
| 상단 중앙 (기본) | 화면 상단 20% 지점 |
| 정중앙 | 화면 정가운데 |
| 하단 중앙 | 화면 하단 75% 지점 |
#### 최대 결과 수
검색 결과로 표시할 최대 항목 수를 설정합니다 (기본: 7개).
#### 창 투명도
런처 창의 불투명도를 조정합니다 (0.5 ~ 1.0).
### 테마 탭
9가지 내장 테마 중 클릭하면 **즉시 미리보기**가 적용됩니다.
저장하지 않고 닫으면 이전 테마로 자동 복원됩니다.
| 테마 | 특징 |
|------|------|
| System | Windows 다크/라이트 모드 자동 연동 |
| Dark | 기본 다크 모드 — 부드러운 라운딩 |
| Light | 밝은 화이트 테마 |
| OLED | 순수 검정 배경 (OLED 화면 최적화) — 가장 둥근 모양 |
| Nord | 차분한 북유럽 블루 계열 — 약간 각진 느낌 |
| Monokai | 에디터 스타일 컬러 — 직각에 가까운 모양 |
| Catppuccin | 파스텔 톤 — 둥근 모양 |
| Sepia | 따뜻한 베이지 계열 — 클래식한 각진 느낌 |
| Alfred | Alfred 앱 영감 다크 |
| Alfred Light | Alfred 앱 영감 라이트 |
| Custom | 색상 편집 탭에서 직접 지정 |
> 각 테마는 **색상뿐 아니라 창·항목의 모서리 라운딩 비율도 다르게** 설정됩니다. OLED가 가장 둥글고, Monokai·Sepia가 가장 각집니다.
### 스니펫 탭 (`;` 프리픽스)
자주 입력하는 문구를 등록합니다. 런처에서 `;키워드`로 검색 후 `Enter`를 누르면 현재 포커스된 창에 텍스트가 입력됩니다.
#### 글로벌 스니펫 자동 확장
탭 최상단의 토글을 켜면 **런처를 열지 않아도** 모든 앱에서 `;키워드 + Space 또는 Enter`를 입력하는 순간 자동으로 텍스트가 치환됩니다.
```
토글 OFF: 런처에서만 스니펫 사용 가능
토글 ON: 어떤 앱에서든 ;addr + Space → 회사 주소로 자동 치환
```
**동적 변수 사용 가능**:
| 변수 | 치환 내용 |
|------|----------|
| `{date}` | 오늘 날짜 (예: 2026-03-24) |
| `{time}` | 현재 시간 (예: 14:30) |
| `{datetime}` | 날짜+시간 |
| `{year}` / `{month}` / `{day}` | 연/월/일 |
```
예시 스니펫:
키: sign
내용: 안녕하세요, {date} 작성한 홍길동입니다.
```
### 클립보드 탭
| 설정 | 설명 |
|------|------|
| 클립보드 히스토리 활성화 | `#` 모드 사용 여부 |
| 최대 보관 개수 | 저장할 히스토리 항목 수 (기본: 50개) |
| 보안 제외 패턴 | 신용카드·주민번호 등 민감 데이터 자동 차단 패턴 |
### 시스템 탭
`/` 프리픽스 시스템 명령의 표시 여부를 항목별로 켜거나 끌 수 있습니다.
### 빠른 실행 탭
키워드 → 파일/URL/폴더 단축키를 추가/삭제합니다.
| 타입 | 예시 |
|------|------|
| 앱 | `vscode``C:\...\Code.exe` |
| URL | `gh``https://github.com` |
| 폴더 | `dl``%USERPROFILE%\Downloads` |
### 배치 명령 탭
`>` 프리픽스 명령 단축키를 관리합니다.
| 항목 | 설명 |
|------|------|
| 키워드 | `>` 이후 입력할 키워드 (예: `build`, `test`) |
| 명령어 | 실행할 PowerShell 또는 cmd 명령어 |
| 창 표시 | 체크 시 터미널 창이 화면에 표시됨 |
```
예시 등록:
키워드: build → dotnet build (창 표시: ✓)
키워드: open → explorer . (창 표시: ✗)
```
### 캡처 탭
화면 캡처(`cap`) 기능의 세부 설정을 변경합니다.
캡처 결과는 보안 정책에 따라 **클립보드에만 복사**되며, 파일로 저장하는 기능은 제공하지 않습니다.
| 설정 | 설명 |
|------|------|
| 캡처 프리픽스 | `cap` 대신 사용할 다른 단어를 입력합니다 (예: `sc`, `screenshot`). 변경 후 저장하면 즉시 적용됩니다 |
| 글로벌 캡처 단축키 사용 | 런처를 열지 않고 단축키만으로 바로 캡처합니다 (기본: **비활성화**) |
| 캡처 단축키 | 글로벌 단축키 키 조합 (기본: `PrintScreen`). 클릭 후 원하는 키를 누르면 변경됩니다 |
| 단축키 실행 모드 | 단축키를 눌렀을 때 실행할 캡처 모드 — 전체 화면 / 활성 창 / 영역 선택 |
| 스크롤 캡처 대기 시간 | 스크롤 캡처 시 프레임 간 대기 시간 (80~500ms). 느린 페이지에서 누락이 발생하면 값을 높이세요 |
#### 지연 캡처 (Shift+Enter)
캡처 모드에서 항목을 선택한 상태로 `Shift+Enter`를 누르면 지연 캡처 타이머 선택 화면이 표시됩니다.
1. `cap`을 입력해 캡처 모드로 진입합니다
2. 원하는 캡처 모드(영역 선택, 활성 창, 스크롤, 전체 화면)를 선택합니다
3. `Shift+Enter`를 누르면 타이머 선택 목록(3초/5초/10초)이 표시됩니다
4. 원하는 시간을 선택하고 `Enter`를 누르면 카운트다운 알림 후 캡처가 실행됩니다
> **팁**: 메뉴가 숨겨져야 하는 상황이나 특정 UI 상태를 캡처할 때 유용합니다.
#### 영역 선택 캡처 (cap region) 키보드 미세조정
마우스 드래그로 영역을 선택한 뒤 키보드로 미세 조정할 수 있습니다:
| 키 | 동작 |
|----|------|
| `←` `→` `↑` `↓` | 선택 영역 1px 미세 조정 |
| `Shift+방향키` | 10px 단위 조정 |
| `Enter` | 현재 선택 확정 |
| `Esc` | 취소 |
### 알림 탭
PC 잠금 해제 시 오늘 누적 사용 시간을 알려주는 팝업 기능을 설정합니다.
| 설정 | 설명 |
|------|------|
| 잠금 해제 알림 활성화 | 기능 전체를 켜거나 끕니다 |
| 표시 위치 | 팝업이 나타날 화면 모서리를 선택합니다 (우하단/좌하단/우상단/좌상단) |
| 표시 간격 | 알림을 너무 자주 표시하지 않도록 최소 간격을 설정합니다 (30분/1시간/2시간/4시간) |
| 자동 닫힘 | 팝업이 자동으로 닫히기까지의 시간을 설정합니다 (5~30초) |
### 설정 내보내기 / 불러오기
설정 창 하단 좌측의 **내보내기** / **불러오기** 버튼으로 설정을 공유할 수 있습니다.
| 기능 | 설명 |
|------|------|
| 내보내기 | 현재 settings.json을 `.axsettings` 파일로 저장 |
| 불러오기 | `.axsettings` 파일에서 설정을 덮어쓰기 (앱 재시작 필요) |
> 동료에게 설정 파일을 공유하면 동일한 단축키, 스니펫, 별칭을 즉시 사용할 수 있습니다.
### 예약어 충돌 방지
캡처 프리픽스, 빠른 실행 키워드, 배치 명령 키워드가 시스템 예약어(=, ?, #, $, ;, help, cap 등)와 충돌하면 **저장이 거부되고 알림 팝업**이 표시됩니다.
### Windows 시작 시 자동 실행
트레이 아이콘 우클릭 → **Windows 시작 시 자동 실행** 항목을 체크/해제합니다.
- 체크 시: Windows 로그인할 때마다 AX Commander가 자동으로 시작됩니다
- 해제 시: 수동으로 EXE를 실행해야 합니다
- 설정은 Windows 레지스트리(`HKCU\...\Run`)에 저장되며 관리자 권한이 필요하지 않습니다
### 정보 창
트레이 아이콘 우클릭 → **정보**를 클릭하면 개발자 정보와 버전을 확인할 수 있습니다.
- 상단에 **다이아몬드 픽셀 보석** 앱 아이콘이 표시됩니다 (Blue/Green/Red/Green 4색 보석 컷 디자인)
- 개발자 이름을 클릭하면 마스코트 이미지가 오버레이로 표시됩니다
---
## 9. 잠금 해제 사용시간 알림
PC 잠금을 해제할 때 오늘 하루 누적 사용 시간을 작은 팝업으로 알려주는 기능입니다.
### 팝업 내용
```
┌─────────────────────────────────┐
│ 오늘 누적 사용 시간 │
│ 3시간 42분 │
│ │
│ "삶이란 자전거를 타는 것과 같다. │
│ 계속 움직여야 균형을 잡을 수 있다" │
│ — 아인슈타인│
└─────────────────────────────────┘
```
- 매번 잠금 해제 시 표시되는 것이 아니라, **설정한 간격 이상** 시간이 지난 경우에만 나타납니다
- 팝업은 런처와 완전히 별개로 동작하며 포커스를 빼앗지 않습니다
- 클릭하거나 설정한 시간이 지나면 자동으로 닫힙니다
### 활성화 방법
`설정(Ctrl+,)`**알림 탭** → "잠금 해제 알림 활성화" 토글을 켭니다.
### 팝업 위치 설정
| 옵션 | 위치 |
|------|------|
| 우하단 (기본) | 화면 오른쪽 아래 모서리 |
| 좌하단 | 화면 왼쪽 아래 모서리 |
| 우상단 | 화면 오른쪽 위 모서리 |
| 좌상단 | 화면 왼쪽 위 모서리 |
---
## 10. 전체 키보드 단축키 표
### 런처 창
| 단축키 | 동작 |
|--------|------|
| `Alt+Space` | 런처 열기 / 닫기 (기본, 변경 가능) |
| `↑` / `↓` | 결과 목록 위아래 이동 |
| `Enter` | 선택 항목 실행 |
| `Shift+Enter` | Large Type 표시 / 병합 대기 항목 있으면 합치기 실행 / 캡처 모드에서는 지연 캡처(3초/5초/10초) 타이머 선택 |
| `→` | 파일 액션 서브메뉴 진입 (커서가 텍스트 끝에 있을 때) |
| `Shift+↓` | 현재 항목 병합 선택/해제 후 다음 항목으로 이동 |
| `Shift+↑` | 현재 항목 병합 선택/해제 후 이전 항목으로 이동 |
| `Tab` | 선택 항목 제목을 입력창에 자동완성 |
| `Esc` | 액션 서브메뉴 중이면 이전으로 / 아니면 런처 닫기 |
| `Ctrl+,` | 설정 창 열기 |
### Large Type 창
| 단축키 | 동작 |
|--------|------|
| `Esc` | 닫기 |
| 마우스 클릭 | 닫기 |
---
## 11. 자주 묻는 질문
**Q. 단축키를 눌러도 런처가 열리지 않습니다.**
다른 프로그램이 같은 단축키를 사용하고 있을 수 있습니다. 트레이 아이콘에 경고 알림이 표시됩니다. 설정(`Ctrl+,`) → 일반 탭에서 단축키를 변경하세요.
---
**Q. 검색해도 파일이 나오지 않습니다.**
파일이 인덱스 경로에 포함되어 있지 않을 수 있습니다. 설정 → 일반 탭에서 인덱스 경로를 추가하세요 (기본: 바탕화면, 시작 메뉴).
또한 해당 파일의 확장자가 검색 확장자 목록에 포함되어야 합니다. 설정 → 일반 탭 하단의 **검색할 확장자** 섹션에서 확장자를 추가할 수 있습니다. 기본값에는 실행 파일, 문서, 이미지, 텍스트 파일이 포함되어 있습니다. 폴더도 검색 가능하며 Enter로 탐색기에서 열 수 있습니다.
인덱스는 앱 시작 시 자동으로 빌드되며, 이후 파일/폴더 변경을 감지해 자동 갱신됩니다. 설정 저장 시 인덱스가 재빌드되며 프로그레스바가 표시됩니다.
---
**Q. 클립보드 히스토리(`#`)에 내용이 보이지 않습니다.**
설정 → 클립보드 탭에서 "클립보드 히스토리 활성화"가 켜져 있는지 확인하세요. 또한 복사한 내용이 보안 제외 패턴(신용카드 번호 등)에 해당하면 자동으로 저장되지 않습니다.
> **보안 참고**: 클립보드 히스토리는 Windows DPAPI 암호화로 저장됩니다. 현재 Windows 사용자 계정에서만 복호화할 수 있으며, 다른 사용자나 PC에서는 파일을 열어도 내용을 볼 수 없습니다.
---
**Q. 계산기(`=`)에서 어떤 수식을 사용할 수 있나요?**
| 종류 | 예시 |
|------|------|
| 기본 연산 | `=100*12+50` |
| 거듭제곱 | `=2^10` |
| 나머지 | `=17%5` |
| 수학 함수 | `=sqrt(144)`, `=sin(pi/2)` |
| 로그 | `=log(1000)`, `=ln(e)` |
| 상수 | `pi`, `e` |
| 16진수 | `=0xFF+1` |
| 과학적 표기 | `=1.5e3*2` |
| 단위 변환 | `=100km in miles`, `=32f in c`, `=5lb to kg` |
| 통화 변환 | `=100 USD to KRW`, `=50 EUR in JPY` (실시간 환율) |
---
**Q. 타이머는 어떻게 사용하나요?**
`/` 프리픽스를 사용합니다:
| 입력 | 동작 |
|------|------|
| `/timer 5m` | 5분 후 트레이 알림 |
| `/timer 1h30m` | 1시간 30분 후 알림 |
| `/timer 30s 회의 준비` | 30초 후 "회의 준비" 알림 |
| `/alarm 14:30` | 오후 2시 30분에 알림 (지나면 다음날로 자동 설정) |
Enter로 시작하면 백그라운드에서 카운트가 진행되고, 완료 시 트레이 아이콘에서 풍선 알림이 나타납니다.
---
**Q. 이모지를 빠르게 복사하려면?**
`emoji` 를 입력한 뒤 검색어를 입력하세요:
```
emoji 하트 → ❤️ 빨간 하트, 🧡 주황 하트, 💜 보라 하트 …
emoji 웃음 → 😀 😂 🤣 …
emoji thumbs → 👍 👎
emoji → 자주 쓰는 이모지 30개 기본 표시
```
Enter를 누르면 해당 이모지가 클립보드에 복사됩니다.
---
**Q. `→` 키를 눌러도 액션 메뉴가 열리지 않습니다.**
두 가지 조건을 모두 충족해야 합니다:
1. 검색 결과 중 파일 또는 앱 항목이 선택되어 있어야 합니다 (URL, 스니펫, 계산기 결과 불가)
2. 입력 커서가 텍스트의 **맨 끝**에 위치해 있어야 합니다 (`End` 키로 이동 후 시도)
---
**Q. 플러그인을 추가하려면 어떻게 하나요?**
DLL 플러그인은 `IActionHandler` 인터페이스를 구현한 후 트레이 → 설정 → (settings.json의 `plugins` 배열)에 경로를 등록합니다. 등록 후 트레이 → 플러그인 재로드를 클릭하면 즉시 적용됩니다.
---
**Q. `cap` 명령어를 다른 이름으로 바꾸려면?**
설정(`Ctrl+,`) → **캡처 탭** → "캡처 프리픽스" 입력란에 원하는 단어를 입력한 뒤 저장합니다. 예) `sc``sc screen`, `sc window`.
---
**Q. 잠금 해제 알림이 너무 자주 나타납니다.**
설정(`Ctrl+,`) → **알림 탭** → "표시 간격"을 더 긴 시간(2시간 또는 4시간)으로 변경하세요.
---
**Q. `*` 입력이 `info`와 같은 건가요?**
네, `*` 단독 입력 또는 `* ip`, `* battery`처럼 사용하면 `info`, `info ip`와 완전히 동일하게 동작합니다.
---
**Q. `help`는 어떻게 사용하나요?**
- `help` → 전체 기능 목록 창 열기
- `help 계산` → 계산 관련 명령어만 필터
- `help clip` → 클립보드 관련 명령어만 필터
- 항목 선택 후 `Enter` → 해당 예시를 클립보드에 복사
---
**Q. 설정이나 히스토리 파일은 어디에 저장되나요?**
모든 데이터는 `%APPDATA%\AxCommander\` 폴더에 저장됩니다. EXE 파일 옆에는 아무것도 생성되지 않으므로 USB나 네트워크 드라이브에서 실행해도 깨끗합니다.
| 파일 | 설명 | 자동 삭제 |
|------|------|----------|
| `settings.json` | 전체 설정 | 수동 |
| `clipboard_history.dat` | 클립보드 히스토리 (DPAPI 암호화) | 최대 개수 제한 |
| `logs/app-*.log` | 일별 로그 | **14일** 후 자동 삭제 |
| `stats/*.json` | 일별 사용 통계 | **30일** 후 자동 삭제 |
| `favorites.json` | 즐겨찾기 | 수동 |
| `routines.json` | 루틴 정의 | 수동 |
| `notes.txt` | 빠른 메모 | 수동 (`note clear`로 삭제) |
---
*AX Commander — 사내 전용 프로그램*

View File

@@ -1,244 +0,0 @@
const fs = require("fs");
const { Document, Packer, Paragraph, TextRun, Table, TableRow, TableCell,
Header, Footer, AlignmentType, LevelFormat, HeadingLevel,
BorderStyle, WidthType, ShadingType, PageNumber, PageBreak,
TabStopType, TabStopPosition } = require("docx");
const border = { style: BorderStyle.SINGLE, size: 1, color: "D0D0D0" };
const borders = { top: border, bottom: border, left: border, right: border };
const cellMargins = { top: 80, bottom: 80, left: 120, right: 120 };
function h1(text) {
return new Paragraph({ heading: HeadingLevel.HEADING_1, children: [new TextRun(text)] });
}
function h2(text) {
return new Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun(text)] });
}
function h3(text) {
return new Paragraph({ heading: HeadingLevel.HEADING_3, children: [new TextRun(text)] });
}
function p(text, opts = {}) {
return new Paragraph({ spacing: { after: 120 }, children: [new TextRun({ text, ...opts })] });
}
function bold(text) {
return new TextRun({ text, bold: true });
}
function para(...runs) {
return new Paragraph({ spacing: { after: 120 }, children: runs });
}
function bullet(text, ref = "bullets") {
return new Paragraph({ numbering: { reference: ref, level: 0 }, spacing: { after: 60 },
children: [new TextRun(text)] });
}
function bulletBold(label, desc) {
return new Paragraph({ numbering: { reference: "bullets", level: 0 }, spacing: { after: 60 },
children: [new TextRun({ text: label, bold: true }), new TextRun(` ${desc}`)] });
}
function featureTable(rows) {
const colW = [1800, 2400, 5160];
return new Table({
width: { size: 9360, type: WidthType.DXA },
columnWidths: colW,
rows: [
new TableRow({ children: ["Category", "Prefix", "Description"].map((t, i) =>
new TableCell({ borders, width: { size: colW[i], type: WidthType.DXA }, margins: cellMargins,
shading: { fill: "2E3A8C", type: ShadingType.CLEAR },
children: [new Paragraph({ children: [new TextRun({ text: t, bold: true, color: "FFFFFF", font: "Malgun Gothic", size: 20 })] })] }))
}),
...rows.map(([cat, prefix, desc]) =>
new TableRow({ children: [cat, prefix, desc].map((t, i) =>
new TableCell({ borders, width: { size: colW[i], type: WidthType.DXA }, margins: cellMargins,
children: [new Paragraph({ children: [new TextRun({ text: t, font: "Malgun Gothic", size: 20, ...(i === 1 ? { font: "Consolas" } : {}) })] })] }))
})
)
]
});
}
const doc = new Document({
styles: {
default: { document: { run: { font: "Malgun Gothic", size: 22 } } },
paragraphStyles: [
{ id: "Heading1", name: "Heading 1", basedOn: "Normal", next: "Normal", quickFormat: true,
run: { size: 36, bold: true, font: "Malgun Gothic", color: "1A1B2E" },
paragraph: { spacing: { before: 360, after: 200 }, outlineLevel: 0 } },
{ id: "Heading2", name: "Heading 2", basedOn: "Normal", next: "Normal", quickFormat: true,
run: { size: 28, bold: true, font: "Malgun Gothic", color: "2E3A8C" },
paragraph: { spacing: { before: 280, after: 160 }, outlineLevel: 1 } },
{ id: "Heading3", name: "Heading 3", basedOn: "Normal", next: "Normal", quickFormat: true,
run: { size: 24, bold: true, font: "Malgun Gothic", color: "4B5EFC" },
paragraph: { spacing: { before: 200, after: 120 }, outlineLevel: 2 } },
]
},
numbering: {
config: [
{ reference: "bullets",
levels: [{ level: 0, format: LevelFormat.BULLET, text: "\u2022", alignment: AlignmentType.LEFT,
style: { paragraph: { indent: { left: 720, hanging: 360 } } } }] },
{ reference: "numbers",
levels: [{ level: 0, format: LevelFormat.DECIMAL, text: "%1.", alignment: AlignmentType.LEFT,
style: { paragraph: { indent: { left: 720, hanging: 360 } } } }] },
]
},
sections: [{
properties: {
page: {
size: { width: 11906, height: 16838 },
margin: { top: 1440, right: 1260, bottom: 1440, left: 1260 }
}
},
headers: {
default: new Header({ children: [
new Paragraph({ children: [
new TextRun({ text: "AX Commander \u2014 Blog Post", font: "Malgun Gothic", size: 16, color: "999999" })
], alignment: AlignmentType.RIGHT })
]})
},
footers: {
default: new Footer({ children: [
new Paragraph({ alignment: AlignmentType.CENTER, children: [
new TextRun({ text: "Page ", font: "Malgun Gothic", size: 16, color: "999999" }),
new TextRun({ children: [PageNumber.CURRENT], font: "Malgun Gothic", size: 16, color: "999999" })
]})
]})
},
children: [
// ?€?€?€ ?€?댄? ?€?€?€
new Paragraph({ spacing: { after: 80 }, alignment: AlignmentType.CENTER, children: [
new TextRun({ text: "AX Commander", font: "Malgun Gothic", size: 48, bold: true, color: "1A1B2E" })
]}),
new Paragraph({ spacing: { after: 40 }, alignment: AlignmentType.CENTER,
border: { bottom: { style: BorderStyle.SINGLE, size: 6, color: "4B5EFC", space: 8 } },
children: [
new TextRun({ text: "\ud0a4\ubcf4\ub4dc \ud558\ub098\ub85c \ubaa8\ub4e0 \uc5c5\ubb34\ub97c \uc81c\uc5b4\ud558\ub294 \uc0ac\ub0b4 \uc804\uc6a9 \ub7f0\ucc98", font: "Malgun Gothic", size: 26, color: "555577" })
]}),
new Paragraph({ spacing: { after: 300 }, alignment: AlignmentType.CENTER, children: [
new TextRun({ text: "\ubc31\uc2b9\uc7ac \u00b7 AX\uc5f0\uad6c\uc18c AI\ud300 \u00b7 SW Architect", font: "Malgun Gothic", size: 20, color: "888899" })
]}),
// ?€?€?€ 1. ?쒕Ц ?€?€?€
h1("1. \uc65c \ub9cc\ub4e4\uc5c8\ub294\uac00"),
p("\uc5c5\ubb34 \uc911 \uac00\uc7a5 \ub9ce\uc774 \ubc18\ubcf5\ud558\ub294 \ub3d9\uc791\uc774 \ubb50\ub0d0\uace0 \ubb3c\uc73c\uba74, \ub300\ubd80\ubd84\uc758 \uc0ac\ubb34\uc9c1 \uc9c1\uc6d0\uc774 \uc774\ub807\uac8c \ub300\ub2f5\ud569\ub2c8\ub2e4:"),
bullet("\uc571\uc744 \ucc3e\uc544\uc11c \uc2e4\ud589\ud558\uae30"),
bullet("\ud30c\uc77c\uc744 \ucc3e\uc544\uc11c \uc5f4\uae30"),
bullet("\ud074\ub9bd\ubcf4\ub4dc\uc5d0\uc11c \ubcf5\uc0ac\ud55c \ub0b4\uc6a9 \ub2e4\uc2dc \ucc3e\uae30"),
bullet("\uacc4\uc0b0\uae30 \uc5f4\uace0 \uac04\ub2e8\ud55c \uacc4\uc0b0\ud558\uae30"),
p("\uc774 \ubaa8\ub4e0 \ub3d9\uc791\uc5d0 \ub9c8\uc6b0\uc2a4\ub97c \ub4e4\uace0, \ud0d0\uc0c9\uae30\ub97c \uc5f4\uace0, \ud074\ub9ad\ud558\uace0\u2026 \ud0a4\ubcf4\ub4dc\uc5d0\uc11c \uc190\uc744 \ub5bc \uc218\uac00 \uc5c6\uc2b5\ub2c8\ub2e4."),
para(bold("AX Commander"), new TextRun("\ub294 \uc774 \ubb38\uc81c\ub97c \ud574\uacb0\ud569\ub2c8\ub2e4. Alt+Space \ud55c \ubc88\uc73c\ub85c \ubaa8\ub4e0 \uac83\uc744 \ud0a4\ubcf4\ub4dc\ub85c \uc81c\uc5b4\ud560 \uc218 \uc788\ub294 \ub7f0\ucc98\uc785\ub2c8\ub2e4.")),
p("\ud2b9\ud788 \uc774 \ud504\ub85c\uc81d\ud2b8\ub294 LLM(Sigmoid)\uacfc \ud568\uaed8 \uae30\ud68d\ubd80\ud130 \uad6c\ud604\uae4c\uc9c0 \uc9c4\ud589\ud55c \uc0ac\ub840\ub85c, AI\uc640 \ud611\uc5c5\ud558\ub294 \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uac1c\ubc1c\uc758 \uc2e4\uc81c \uacbd\ud5d8\uc744 \ub2f4\uace0 \uc788\uc2b5\ub2c8\ub2e4."),
new Paragraph({ children: [new PageBreak()] }),
// ?€?€?€ 2. AX Commander?€? ?€?€?€
h1("2. AX Commander\ub780?"),
para(new TextRun({ text: "Alt+Space", bold: true, font: "Consolas" }), new TextRun("\ub97c \ub204\ub974\uba74 \ud654\uba74 \uc0c1\ub2e8\uc5d0 \uae54\ub054\ud55c \ub7f0\ucc98 \ucc3d\uc774 \ub098\ud0c0\ub0a9\ub2c8\ub2e4. \uc5ec\uae30\uc5d0 \uc6d0\ud558\ub294 \uba85\ub839\uc744 \uc785\ub825\ud558\uba74 \ub429\ub2c8\ub2e4.")),
bullet("\uc571 \uc774\ub984\uc744 \uce58\uba74 \uc571\uc774 \uc2e4\ud589\ub429\ub2c8\ub2e4"),
bullet("= \ub97c \uce58\uba74 \uacc4\uc0b0\uae30\uac00 \ub429\ub2c8\ub2e4"),
bullet("# \uc744 \uce58\uba74 \ud074\ub9bd\ubcf4\ub4dc \ud788\uc2a4\ud1a0\ub9ac\uac00 \ub098\ud0c0\ub0a9\ub2c8\ub2e4"),
bullet("cap screen \uc744 \uce58\uba74 \ud654\uba74\uc774 \ucea1\ucc98\ub429\ub2c8\ub2e4"),
bullet("win chrome \uc744 \uce58\uba74 \ud06c\ub86c \ucc3d\uc73c\ub85c \uc989\uc2dc \uc804\ud658\ub429\ub2c8\ub2e4"),
p("\ud504\ub9ac\ud53d\uc2a4(\uc811\ub450\uc5b4) \uae30\ubc18\uc73c\ub85c 40\uac1c \uc774\uc0c1\uc758 \uba85\ub839\uc5b4\ub97c \uc9c0\uc6d0\ud558\uba70, \ud55c\uad6d\uc5b4 \ucd08\uc131 \uac80\uc0c9\ub3c4 \ub429\ub2c8\ub2e4 (\u3145\u3137 \u2192 \uc124\uc815)."),
// ?€?€?€ 3. ?듭떖 湲곕뒫 ?€?€?€
h1("3. \ud575\uc2ec \uae30\ub2a5 \uc18c\uac1c"),
p("AX Commander\ub294 \ub2e8\uc21c\ud55c \uc571 \ub7f0\ucc98\uac00 \uc544\ub2d9\ub2c8\ub2e4. \uc544\ub798\ub294 \uce74\ud14c\uace0\ub9ac\ubcc4 \uc8fc\uc694 \uae30\ub2a5\uc785\ub2c8\ub2e4."),
h3("\uac80\uc0c9"),
bullet("\ud37c\uc9c0 \uac80\uc0c9: \uc571/\ud30c\uc77c\uba85\uc744 \uc77c\ubd80\ub9cc \uc785\ub825\ud574\ub3c4 \ucc3e\uc544\uc90c"),
bullet("\ud55c\uad6d\uc5b4 \ucd08\uc131: \u3147\u314e\u3134 \u2192 \uc544\ud55c\uae00 \uac80\uc0c9"),
bullet("\uc2e4\ud589 \ube48\ub3c4 \ud559\uc2b5: \uc790\uc8fc \uc4f0\ub294 \uc571\uc774 \uc0c1\ub2e8\uc73c\ub85c"),
h3("\uacc4\uc0b0 \u00b7 \ubcc0\ud658"),
bullet("= sqrt(144), = 0xFF + 1, = 100km in miles"),
bullet("= 100 USD to KRW (\uc2e4\uc2dc\uac04 \ud658\uc728)"),
bullet("date +30d (30\uc77c \ud6c4 \ub0a0\uc9dc), date unix (\ud0c0\uc784\uc2a4\ud0ec\ud504)"),
h3("\ud074\ub9bd\ubcf4\ub4dc"),
bullet("# \ud788\uc2a4\ud1a0\ub9ac: \ubcf5\uc0ac \uc774\ub825 \uac80\uc0c9 \u00b7 \uc7ac\uc0ac\uc6a9 \u00b7 \ubcd1\ud569"),
bullet("$ \ubcc0\ud658: JSON \uc815\ub82c, Base64, URL \uc778\ucf54\ub529 \ub4f1 12\uc885"),
bullet("pipe \ud30c\uc774\ud504\ub77c\uc778: pipe upper > trim > b64e"),
bullet("batch \uc77c\uad04 \ucc98\ub9ac: \uc904\ubc88\ud638, \uc815\ub82c, \uc911\ubcf5\uc81c\uac70, \ucebc\ub2f8\uc138 \uac10\uc2f8\uae30"),
bullet("DPAPI \uc554\ud638\ud654: \ud074\ub9bd\ubcf4\ub4dc \ud788\uc2a4\ud1a0\ub9ac \ud30c\uc77c\uc774 \ud604\uc7ac Windows \uacc4\uc815\uc5d0\uc11c\ub9cc \ubcf5\ud638\ud654 \uac00\ub2a5"),
h3("\uac1c\ubc1c\uc790 \ub3c4\uad6c"),
bullet("json format / minify / validate"),
bullet("encode base64 / url / sha256"),
bullet("color #FF5500 \u2192 HEX/RGB/HSL/HSV 4\uc885 \ubcc0\ud658"),
bullet("port 3000 \u2192 \uc810\uc720 \ud504\ub85c\uc138\uc2a4 \ud655\uc778"),
bullet("env PATH \u2192 \ud658\uacbd\ubcc0\uc218 \uac80\uc0c9"),
bullet("pick \u2192 \uc2a4\ud3ec\uc774\ub4dc\ub85c \ud654\uba74 \uc0c9\uc0c1 HEX \ucf54\ub4dc \ucd94\ucd9c"),
h3("\ud654\uba74 \ucea1\ucc98"),
bullet("cap screen / window / scroll / region"),
bullet("\uc2a4\ud3ec\uc774\ub4dc(pick): \ub3cb\ubcf4\uae30 + \uc2e4\uc2dc\uac04 HEX \ud45c\uc2dc + 5\ucd08 \uacb0\uacfc\ucc3d"),
bullet("\uae00\ub85c\ubc8c \ub2e8\ucd95\ud0a4(PrintScreen \ub4f1) \uc9c0\uc6d0"),
bullet("\ubcf4\uc548: \ud074\ub9bd\ubcf4\ub4dc\uc5d0\ub9cc \ubcf5\uc0ac (\ud30c\uc77c \uc800\uc7a5 \uae30\ub2a5 \uc5c6\uc74c)"),
h3("\ucc3d \uad00\ub9ac \u00b7 \uc2dc\uc2a4\ud15c"),
bullet("! save/restore: \ucc3d \ubc30\uce58 \uc2a4\ub0c5\uc0f7"),
bullet("snap left/right/full: \ucc3d \ubd84\ud560 \ub808\uc774\uc544\uc6c3"),
bullet("win: \uc5f4\ub9b0 \ucc3d \uac80\uc0c9 \u2192 \uc989\uc2dc \uc804\ud658 (Alt+Tab \ub300\uccb4)"),
bullet("/lock, /timer 5m, /alarm 14:30"),
bullet("svc: Windows \uc11c\ube44\uc2a4 \uad00\ub9ac + \ud074\ub9bd\ubcf4\ub4dc \uac15\uc81c \uc7ac\uc2dc\uc791"),
h3("\uc5c5\ubb34 \uc790\ub3d9\ud654"),
bullet("journal: \uc624\ub298 \uc0ac\uc6a9\ud55c \uc571/\uba85\ub839\uc5b4 \uae30\ubc18 \uc5c5\ubb34 \uc77c\uc9c0 \ub9c8\ud06c\ub2e4\uc6b4 \uc790\ub3d9 \uc0dd\uc131"),
bullet("routine: \ucd9c\uadfc/\ud1f4\uadfc \ub8e8\ud2f4 \ub4f1\ub85d \u2192 \ud55c \ubc88\uc5d0 \uc2e4\ud589"),
bullet("scaffold: \ud504\ub85c\uc81d\ud2b8 \ud3f4\ub354 \uad6c\uc870 \ud15c\ud50c\ub9bf \uc77c\uad04 \uc0dd\uc131"),
new Paragraph({ children: [new PageBreak()] }),
// ?€?€?€ 4. 蹂댁븞 ?€?€?€
h1("4. \ubcf4\uc548 \u2014 \uc0ac\ub0b4 \uc804\uc6a9 \uc6d0\uce59"),
p("AX Commander\ub294 \uc0ac\ub0b4 \uc804\uc6a9 \ud504\ub85c\uadf8\ub7a8\uc73c\ub85c, \uc678\ubd80 \ub124\ud2b8\uc6cc\ud06c \ud1b5\uc2e0\uc744 \uc77c\uccb4 \ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4."),
bullet("\uc678\ubd80 HTTP/HTTPS \ud638\ucd9c \uae08\uc9c0 \u2014 HttpClient, WebClient \ub4f1 \uc0ac\uc6a9 \ubd88\uac00"),
bullet("\uc678\ubd80 SDK \uc5f0\ub3d9 \uae08\uc9c0 \u2014 \ud074\ub77c\uc6b0\ub4dc AI, SaaS \ub77c\uc774\ube0c\ub7ec\ub9ac \ubd88\uac00"),
bullet("\ud074\ub9bd\ubcf4\ub4dc \ud788\uc2a4\ud1a0\ub9ac \u2014 Windows DPAPI \uc554\ud638\ud654 (CurrentUser \ubc94\uc704)"),
bullet("\ud654\uba74 \ucea1\ucc98 \u2014 \ud074\ub9bd\ubcf4\ub4dc\uc5d0\ub9cc \ubcf5\uc0ac, \ud30c\uc77c \uc800\uc7a5 \uae30\ub2a5 \uc644\uc804 \uc81c\uac70"),
bullet("\uc2dc\uc2a4\ud15c \uba85\ub839 \u2014 \uc7ac\uc2dc\uc791/\uc885\ub8cc \ub4f1 \uc704\ud5d8 \uba85\ub839 \uc2e4\ud589 \uc804 2\ub2e8\uacc4 \ud655\uc778 \ub2e4\uc774\uc5bc\ub85c\uadf8"),
// ?€?€?€ 5. ?뚮쭏 ?€?€?€
h1("5. \ud14c\ub9c8 \uc2dc\uc2a4\ud15c"),
p("9\uac1c \ub0b4\uc7a5 \ud14c\ub9c8(Dark, Light, OLED, Nord, Monokai, Catppuccin, Sepia, Alfred, Alfred Light) + \ucee4\uc2a4\ud140 \ud14c\ub9c8\ub97c \uc9c0\uc6d0\ud569\ub2c8\ub2e4."),
bullet("\uac01 \ud14c\ub9c8\ub294 \uc0c9\uc0c1\ubfd0 \uc544\ub2c8\ub77c \ubaa8\uc11c\ub9ac \ub77c\uc6b4\ub529 \ube44\uc728\ub3c4 \ub2e4\ub985\ub2c8\ub2e4 (OLED\uac00 \uac00\uc7a5 \ub465\uae00\uace0, Monokai\uac00 \uac00\uc7a5 \uac01\uc9d0)"),
bullet("\ucee4\uc2a4\ud140 \ud14c\ub9c8\ub294 14\uac1c \uc0c9\uc0c1 + \ubaa8\uc11c\ub9ac \ub77c\uc6b4\ub529 \uc2ac\ub77c\uc774\ub354\ub85c \uc790\uc720\ub86d\uac8c \ud3b8\uc9d1"),
bullet("\ud2b8\ub808\uc774 \uba54\ub274\ub3c4 \ud604\uc7ac \ud14c\ub9c8\ub97c \uc790\ub3d9\uc73c\ub85c \ub530\ub77c\uac10"),
// ?€?€?€ 6. 湲곗닠 ?ㅽ깮 ?€?€?€
h1("6. \uae30\uc220 \uc2a4\ud0dd"),
bullet(".NET 8, WPF (UseWPF=true), WinForms (ColorDialog/FolderBrowser \ub4f1 \uc81c\ud55c\uc801 \uc0ac\uc6a9)"),
bullet("P/Invoke: SetWindowPos, PrintWindow, GlobalMemoryStatusEx, EnumWindows, GetPixel \ub4f1 Windows API \uc9c1\uc811 \ud638\ucd9c"),
bullet("\ub2e8\uc77c EXE \ubc30\ud3ec: Self-Contained + PublishSingleFile + IncludeNativeLibrariesForSelfExtract"),
bullet("\ubcf4\uc548: DPAPI(System.Security.Cryptography.ProtectedData), HKCU \ub808\uc9c0\uc2a4\ud2b8\ub9ac"),
bullet("\ud14c\uc2a4\ud2b8: xUnit 2.9.0 + FluentAssertions (57\uac1c \ub2e8\uc704 \ud14c\uc2a4\ud2b8)"),
// ?€?€?€ 7. 留덈Т由??€?€?€
h1("7. \ub9c8\ubb34\ub9ac \u2014 LLM\uacfc \ud568\uaed8 \ub9cc\ub4e0 \ud504\ub85c\uc81d\ud2b8"),
p("AX Commander\ub294 \uae30\ud68d\ubd80\ud130 \uad6c\ud604, \ud14c\uc2a4\ud2b8, \ubb38\uc11c\ud654\uae4c\uc9c0 LLM(Sigmoid)\uacfc \ud568\uaed8 \uc9c4\ud589\ud55c \ud504\ub85c\uc81d\ud2b8\uc785\ub2c8\ub2e4."),
bullet("\uae30\ud68d: Alfred, Raycast \ub4f1 \uae30\uc874 \ub7f0\ucc98\uc758 \uc7a5\uc810\uc744 \ubd84\uc11d\ud558\uace0, \uc0ac\ub0b4 \ud658\uacbd\uc5d0 \ub9de\ub294 \uae30\ub2a5 \uc120\ubcc4"),
bullet("\uad6c\ud604: WPF + P/Invoke \uae30\ubc18\uc73c\ub85c \uc678\ubd80 \uc758\uc874\uc131 \uc5c6\uc774 40\uac1c+ \uae30\ub2a5 \uad6c\ud604"),
bullet("\uac80\uc218: \ucf54\ub4dc \ub9ac\ubdf0, \uc624\ub958 \ubd84\uc11d, \ubcf4\uc548 \uc810\uac80, \uc131\ub2a5 \ucd5c\uc801\ud654\ub97c LLM\uacfc \ud568\uaed8 \ubc18\ubcf5"),
bullet("\ubb38\uc11c: \uac1c\ubc1c \ubb38\uc11c, \uc0ac\uc6a9\uc790 \ub9e4\ub274\uc5bc, \ube14\ub85c\uadf8 \uae00\uae4c\uc9c0 LLM\uc774 \uc791\uc131"),
p(""),
para(new TextRun({ text: "\uac1c\uc778\uc801\uc73c\ub85c \ub290\ub080 \uac83\uc740, LLM\uc740 \u2018\ucf54\ub4dc \uc0dd\uc131\uae30\u2019\uac00 \uc544\ub2c8\ub77c \u2018\ud568\uaed8 \uc0dd\uac01\ud558\ub294 \ub3d9\ub8cc\u2019\uc5d0 \uac00\uae5d\ub2e4\ub294 \uac83\uc785\ub2c8\ub2e4.", italics: true })),
para(new TextRun({ text: "\u201c\uc774 \uae30\ub2a5\uc740 \uc774\ub807\uac8c \ud558\uba74 \uc5b4\ub5a0\ub0d0?\u201d \u201c\uc774 \ubd80\ubd84\uc740 \ubcf4\uc548 \ub9ac\uc2a4\ud06c\uac00 \uc788\uc5b4\u201d \u201c\uc0ac\uc6a9\uc790\uac00 \uc774\ub807\uac8c \uc4f0\uba74 \ubb38\uc81c\ub420 \uc218 \uc788\uc5b4\u201d \u2014 \uc774\ub7f0 \ud53c\ub4dc\ubc31\uc744 \uc8fc\uace0\ubc1b\uc73c\uba70 \ud504\ub85c\uc81d\ud2b8\ub97c \uc644\uc131\ud588\uc2b5\ub2c8\ub2e4.", italics: true })),
p(""),
p("AX Commander v1.0 \u2014 \ubaa8\ub4e0 \uc5c5\ubb34\ub97c \ud0a4\ubcf4\ub4dc \ud558\ub098\ub85c.", { bold: true }),
new Paragraph({ spacing: { before: 400 },
border: { top: { style: BorderStyle.SINGLE, size: 2, color: "CCCCCC", space: 8 } },
children: [
new TextRun({ text: "\ubc31\uc2b9\uc7ac \u00b7 AX\uc5f0\uad6c\uc18c AI\ud300 \u00b7 SW Architect \u00b7 www.swarchitect.net", size: 18, color: "999999" })
]
}),
]
}]
});
Packer.toBuffer(doc).then(buffer => {
fs.writeFileSync("E:\\AX Commander\\docs\\AX_Commander_釉붾줈洹??뚭컻湲€.docx", buffer);
console.log("Blog post DOCX created successfully!");
});

View File

@@ -0,0 +1,63 @@
$ErrorActionPreference = "Stop"
$repoRoot = Split-Path -Parent $PSScriptRoot
$chatWindow = Join-Path $repoRoot "src\AxCopilot\Views\ChatWindow.xaml.cs"
$clawQuickstart = Join-Path $repoRoot "claw-code\en\quickstart.md"
$outFile = Join-Path $repoRoot "docs\TOOL_PARITY_REPORT.md"
if (-not (Test-Path $chatWindow)) {
throw "ChatWindow.xaml.cs not found: $chatWindow"
}
$axSlash = Select-String -Path $chatWindow -Pattern '^\s*\["/[^"]+"\]\s*=' |
ForEach-Object {
if ($_.Line -match '^\s*\["(/[^"]+)"\]\s*=') { $Matches[1] }
} |
Where-Object { -not [string]::IsNullOrWhiteSpace($_) } |
Sort-Object -Unique
$clawSlash = @()
if (Test-Path $clawQuickstart) {
$clawSlash = Select-String -Path $clawQuickstart -Pattern '^\|\s*`/[^`]+`\s*\|' |
ForEach-Object {
if ($_.Line -match '`\s*(/[a-zA-Z0-9\-]+)\s*`') { $Matches[1] }
} |
Where-Object { $_.StartsWith("/") } |
Sort-Object -Unique
}
$axOnly = $axSlash | Where-Object { $clawSlash -notcontains $_ }
$common = $axSlash | Where-Object { $clawSlash -contains $_ }
$clawOnly = $clawSlash | Where-Object { $axSlash -notcontains $_ }
$lines = New-Object System.Collections.Generic.List[string]
$lines.Add("# Tool/Slash Parity Report")
$lines.Add("")
$lines.Add("Generated: $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')")
$lines.Add("")
$lines.Add("## Summary")
$lines.Add("- AX slash count: $($axSlash.Count)")
$lines.Add("- claw-code slash count: $($clawSlash.Count)")
$lines.Add("- Common: $($common.Count)")
$lines.Add("- AX only: $($axOnly.Count)")
$lines.Add("- claw-code only: $($clawOnly.Count)")
$lines.Add("")
$lines.Add("## Common")
foreach ($s in $common) { $lines.Add("- $s") }
$lines.Add("")
$lines.Add("## AX Only")
foreach ($s in $axOnly) { $lines.Add("- $s") }
$lines.Add("")
$lines.Add("## claw-code Only")
foreach ($s in $clawOnly) { $lines.Add("- $s") }
$lines.Add("")
$lines.Add("## Notes")
$lines.Add("- claw-code source baseline: claw-code/en/quickstart.md")
$lines.Add("- AX source baseline: src/AxCopilot/Views/ChatWindow.xaml.cs")
Set-Content -Path $outFile -Value $lines -Encoding UTF8
Write-Output "Generated: $outFile"

View File

@@ -7,7 +7,7 @@
<Nullable>annotations</Nullable> <Nullable>annotations</Nullable>
<AssemblyName>AxCopilot_Setup</AssemblyName> <AssemblyName>AxCopilot_Setup</AssemblyName>
<ApplicationIcon>..\AxCopilot\Assets\icon.ico</ApplicationIcon> <ApplicationIcon>..\AxCopilot\Assets\icon.ico</ApplicationIcon>
<Version>1.7.2</Version> <Version>0.7.3</Version>
<ApplicationManifest>app.manifest</ApplicationManifest> <ApplicationManifest>app.manifest</ApplicationManifest>
</PropertyGroup> </PropertyGroup>
@@ -23,3 +23,4 @@
</EmbeddedResource> </EmbeddedResource>
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@@ -15,7 +15,7 @@ namespace AxCopilot.Installer.Offline
public class SetupForm : Form public class SetupForm : Form
{ {
private const string AppName = "AX Copilot"; private const string AppName = "AX Copilot";
private const string AppVer = "1.7.2"; private const string AppVer = "0.7.3";
private const string Org = "AX\uC5F0\uAD6C\uC18C AI\uD300"; private const string Org = "AX\uC5F0\uAD6C\uC18C AI\uD300";
private const string RegUn = @"Software\Microsoft\Windows\CurrentVersion\Uninstall\AxCopilot"; private const string RegUn = @"Software\Microsoft\Windows\CurrentVersion\Uninstall\AxCopilot";
private const string RegRun = @"Software\Microsoft\Windows\CurrentVersion\Run"; private const string RegRun = @"Software\Microsoft\Windows\CurrentVersion\Run";
@@ -322,3 +322,4 @@ namespace AxCopilot.Installer.Offline
} }
} }
} }

View File

@@ -1,17 +1,17 @@
{ {
"format": 1, "format": 1,
"restore": { "restore": {
"E:\\AX Copilot\\src\\AxCopilot.Installer\\AxCopilot.Installer.csproj": {} "E:\\AX Copilot - Codex\\src\\AxCopilot.Installer\\AxCopilot.Installer.csproj": {}
}, },
"projects": { "projects": {
"E:\\AX Copilot\\src\\AxCopilot.Installer\\AxCopilot.Installer.csproj": { "E:\\AX Copilot - Codex\\src\\AxCopilot.Installer\\AxCopilot.Installer.csproj": {
"version": "1.7.2", "version": "0.7.3",
"restore": { "restore": {
"projectUniqueName": "E:\\AX Copilot\\src\\AxCopilot.Installer\\AxCopilot.Installer.csproj", "projectUniqueName": "E:\\AX Copilot - Codex\\src\\AxCopilot.Installer\\AxCopilot.Installer.csproj",
"projectName": "AxCopilot_Setup", "projectName": "AxCopilot_Setup",
"projectPath": "E:\\AX Copilot\\src\\AxCopilot.Installer\\AxCopilot.Installer.csproj", "projectPath": "E:\\AX Copilot - Codex\\src\\AxCopilot.Installer\\AxCopilot.Installer.csproj",
"packagesPath": "C:\\Users\\admin\\.nuget\\packages\\", "packagesPath": "C:\\Users\\admin\\.nuget\\packages\\",
"outputPath": "E:\\AX Copilot\\src\\AxCopilot.Installer\\obj\\", "outputPath": "E:\\AX Copilot - Codex\\src\\AxCopilot.Installer\\obj\\",
"projectStyle": "PackageReference", "projectStyle": "PackageReference",
"configFilePaths": [ "configFilePaths": [
"C:\\Users\\admin\\AppData\\Roaming\\NuGet\\NuGet.Config", "C:\\Users\\admin\\AppData\\Roaming\\NuGet\\NuGet.Config",

View File

@@ -12,11 +12,11 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("AxCopilot_Setup")] [assembly: System.Reflection.AssemblyCompanyAttribute("AxCopilot_Setup")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.7.2.0")] [assembly: System.Reflection.AssemblyFileVersionAttribute("0.7.3.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.7.2")] [assembly: System.Reflection.AssemblyInformationalVersionAttribute("0.7.3+90c2f15e96cd44446ccbe1d9aa4a63ef4c3fb7e4")]
[assembly: System.Reflection.AssemblyProductAttribute("AxCopilot_Setup")] [assembly: System.Reflection.AssemblyProductAttribute("AxCopilot_Setup")]
[assembly: System.Reflection.AssemblyTitleAttribute("AxCopilot_Setup")] [assembly: System.Reflection.AssemblyTitleAttribute("AxCopilot_Setup")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.7.2.0")] [assembly: System.Reflection.AssemblyVersionAttribute("0.7.3.0")]
// MSBuild WriteCodeFragment 클래스에서 생성되었습니다. // MSBuild WriteCodeFragment 클래스에서 생성되었습니다.

View File

@@ -1 +1 @@
9fc97ba95fb895eafec34720944a95d7ef26ca1178a342b4d606134cf9a22f91 8c3c9e0cfb9d88f32c6ea168c4f5fa33f33d90f240b1e012d903f5d9e3fb23a7

View File

@@ -6,7 +6,7 @@ build_property.ApplicationHighDpiMode =
build_property.ApplicationUseCompatibleTextRendering = build_property.ApplicationUseCompatibleTextRendering =
build_property.ApplicationVisualStyles = build_property.ApplicationVisualStyles =
build_property.RootNamespace = AxCopilot.Installer build_property.RootNamespace = AxCopilot.Installer
build_property.ProjectDir = E:\AX Copilot\src\AxCopilot.Installer\ build_property.ProjectDir = E:\AX Copilot - Codex\src\AxCopilot.Installer\
build_property.EnableComHosting = build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop = build_property.EnableGeneratedComInterfaceComImportInterop =
build_property.CsWinRTUseWindowsUIXamlProjections = false build_property.CsWinRTUseWindowsUIXamlProjections = false

View File

@@ -8,3 +8,13 @@ E:\AX Copilot\src\AxCopilot.Installer\obj\Release\net48\AxCopilot.Installer.Asse
E:\AX Copilot\src\AxCopilot.Installer\obj\Release\net48\AxCopilot.Installer.csproj.CoreCompileInputs.cache E:\AX Copilot\src\AxCopilot.Installer\obj\Release\net48\AxCopilot.Installer.csproj.CoreCompileInputs.cache
E:\AX Copilot\src\AxCopilot.Installer\obj\Release\net48\AxCopilot_Setup.exe E:\AX Copilot\src\AxCopilot.Installer\obj\Release\net48\AxCopilot_Setup.exe
E:\AX Copilot\src\AxCopilot.Installer\obj\Release\net48\AxCopilot_Setup.pdb E:\AX Copilot\src\AxCopilot.Installer\obj\Release\net48\AxCopilot_Setup.pdb
E:\AX Copilot - Codex\src\AxCopilot.Installer\bin\Release\net48\AxCopilot_Setup.exe.config
E:\AX Copilot - Codex\src\AxCopilot.Installer\bin\Release\net48\AxCopilot_Setup.exe
E:\AX Copilot - Codex\src\AxCopilot.Installer\bin\Release\net48\AxCopilot_Setup.pdb
E:\AX Copilot - Codex\src\AxCopilot.Installer\obj\Release\net48\AxCopilot.Installer.csproj.AssemblyReference.cache
E:\AX Copilot - Codex\src\AxCopilot.Installer\obj\Release\net48\AxCopilot.Installer.GeneratedMSBuildEditorConfig.editorconfig
E:\AX Copilot - Codex\src\AxCopilot.Installer\obj\Release\net48\AxCopilot.Installer.AssemblyInfoInputs.cache
E:\AX Copilot - Codex\src\AxCopilot.Installer\obj\Release\net48\AxCopilot.Installer.AssemblyInfo.cs
E:\AX Copilot - Codex\src\AxCopilot.Installer\obj\Release\net48\AxCopilot.Installer.csproj.CoreCompileInputs.cache
E:\AX Copilot - Codex\src\AxCopilot.Installer\obj\Release\net48\AxCopilot_Setup.exe
E:\AX Copilot - Codex\src\AxCopilot.Installer\obj\Release\net48\AxCopilot_Setup.pdb

View File

@@ -12,13 +12,13 @@
"C:\\Users\\admin\\.nuget\\packages\\": {} "C:\\Users\\admin\\.nuget\\packages\\": {}
}, },
"project": { "project": {
"version": "1.7.2", "version": "0.7.3",
"restore": { "restore": {
"projectUniqueName": "E:\\AX Copilot\\src\\AxCopilot.Installer\\AxCopilot.Installer.csproj", "projectUniqueName": "E:\\AX Copilot - Codex\\src\\AxCopilot.Installer\\AxCopilot.Installer.csproj",
"projectName": "AxCopilot_Setup", "projectName": "AxCopilot_Setup",
"projectPath": "E:\\AX Copilot\\src\\AxCopilot.Installer\\AxCopilot.Installer.csproj", "projectPath": "E:\\AX Copilot - Codex\\src\\AxCopilot.Installer\\AxCopilot.Installer.csproj",
"packagesPath": "C:\\Users\\admin\\.nuget\\packages\\", "packagesPath": "C:\\Users\\admin\\.nuget\\packages\\",
"outputPath": "E:\\AX Copilot\\src\\AxCopilot.Installer\\obj\\", "outputPath": "E:\\AX Copilot - Codex\\src\\AxCopilot.Installer\\obj\\",
"projectStyle": "PackageReference", "projectStyle": "PackageReference",
"configFilePaths": [ "configFilePaths": [
"C:\\Users\\admin\\AppData\\Roaming\\NuGet\\NuGet.Config", "C:\\Users\\admin\\AppData\\Roaming\\NuGet\\NuGet.Config",

View File

@@ -1,8 +1,8 @@
{ {
"version": 2, "version": 2,
"dgSpecHash": "szcmjiT3MpM=", "dgSpecHash": "v+ANqQ5yVSI=",
"success": true, "success": true,
"projectFilePath": "E:\\AX Copilot\\src\\AxCopilot.Installer\\AxCopilot.Installer.csproj", "projectFilePath": "E:\\AX Copilot - Codex\\src\\AxCopilot.Installer\\AxCopilot.Installer.csproj",
"expectedPackageFiles": [], "expectedPackageFiles": [],
"logs": [] "logs": []
} }

View File

@@ -14,7 +14,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyDescriptionAttribute("SDK for building AX Copilot plugins")] [assembly: System.Reflection.AssemblyDescriptionAttribute("SDK for building AX Copilot plugins")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+9f25d92808b4f98a7ffa19fb6da350ada44e207a")] [assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+90c2f15e96cd44446ccbe1d9aa4a63ef4c3fb7e4")]
[assembly: System.Reflection.AssemblyProductAttribute("AxCopilot.SDK")] [assembly: System.Reflection.AssemblyProductAttribute("AxCopilot.SDK")]
[assembly: System.Reflection.AssemblyTitleAttribute("AxCopilot.SDK")] [assembly: System.Reflection.AssemblyTitleAttribute("AxCopilot.SDK")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]

View File

@@ -1 +1 @@
9707b9574f19cf4c53b6aaaa8739e385a35fc150e40983feeaf78eb5d53acddb fe643baa0b3aa63a4c30d8f3720ddc6ee1e3efafce544cdedde148ae30c8d136

View File

@@ -1,33 +1,9 @@
E:\AX Commander\src\AxCopilot.SDK\bin\Debug\net8.0-windows\AxCopilot.SDK.deps.json
E:\AX Commander\src\AxCopilot.SDK\bin\Debug\net8.0-windows\AxCopilot.SDK.dll
E:\AX Commander\src\AxCopilot.SDK\bin\Debug\net8.0-windows\AxCopilot.SDK.pdb
E:\AX Commander\src\AxCopilot.SDK\obj\Debug\net8.0-windows\AxCopilot.SDK.GeneratedMSBuildEditorConfig.editorconfig
E:\AX Commander\src\AxCopilot.SDK\obj\Debug\net8.0-windows\AxCopilot.SDK.AssemblyInfoInputs.cache
E:\AX Commander\src\AxCopilot.SDK\obj\Debug\net8.0-windows\AxCopilot.SDK.AssemblyInfo.cs
E:\AX Commander\src\AxCopilot.SDK\obj\Debug\net8.0-windows\AxCopilot.SDK.csproj.CoreCompileInputs.cache
E:\AX Commander\src\AxCopilot.SDK\obj\Debug\net8.0-windows\AxCopilot.SDK.dll
E:\AX Commander\src\AxCopilot.SDK\obj\Debug\net8.0-windows\refint\AxCopilot.SDK.dll
E:\AX Commander\src\AxCopilot.SDK\obj\Debug\net8.0-windows\AxCopilot.SDK.pdb
E:\AX Commander\src\AxCopilot.SDK\obj\Debug\net8.0-windows\ref\AxCopilot.SDK.dll
E:\AX Copilot\src\AxCopilot.SDK\bin\Debug\net8.0-windows\AxCopilot.SDK.deps.json
E:\AX Copilot\src\AxCopilot.SDK\bin\Debug\net8.0-windows\AxCopilot.SDK.dll
E:\AX Copilot\src\AxCopilot.SDK\bin\Debug\net8.0-windows\AxCopilot.SDK.pdb
E:\AX Copilot\src\AxCopilot.SDK\obj\Debug\net8.0-windows\AxCopilot.SDK.GeneratedMSBuildEditorConfig.editorconfig
E:\AX Copilot\src\AxCopilot.SDK\obj\Debug\net8.0-windows\AxCopilot.SDK.AssemblyInfoInputs.cache
E:\AX Copilot\src\AxCopilot.SDK\obj\Debug\net8.0-windows\AxCopilot.SDK.AssemblyInfo.cs
E:\AX Copilot\src\AxCopilot.SDK\obj\Debug\net8.0-windows\AxCopilot.SDK.csproj.CoreCompileInputs.cache
E:\AX Copilot\src\AxCopilot.SDK\obj\Debug\net8.0-windows\AxCopilot.SDK.dll
E:\AX Copilot\src\AxCopilot.SDK\obj\Debug\net8.0-windows\refint\AxCopilot.SDK.dll
E:\AX Copilot\src\AxCopilot.SDK\obj\Debug\net8.0-windows\AxCopilot.SDK.pdb
E:\AX Copilot\src\AxCopilot.SDK\obj\Debug\net8.0-windows\ref\AxCopilot.SDK.dll
E:\AX Copilot - Codex\src\AxCopilot.SDK\bin\Debug\net8.0-windows\AxCopilot.SDK.deps.json E:\AX Copilot - Codex\src\AxCopilot.SDK\bin\Debug\net8.0-windows\AxCopilot.SDK.deps.json
E:\AX Copilot - Codex\src\AxCopilot.SDK\bin\Debug\net8.0-windows\AxCopilot.SDK.dll E:\AX Copilot - Codex\src\AxCopilot.SDK\bin\Debug\net8.0-windows\AxCopilot.SDK.dll
E:\AX Copilot - Codex\src\AxCopilot.SDK\bin\Debug\net8.0-windows\AxCopilot.SDK.pdb
E:\AX Copilot - Codex\src\AxCopilot.SDK\obj\Debug\net8.0-windows\AxCopilot.SDK.GeneratedMSBuildEditorConfig.editorconfig E:\AX Copilot - Codex\src\AxCopilot.SDK\obj\Debug\net8.0-windows\AxCopilot.SDK.GeneratedMSBuildEditorConfig.editorconfig
E:\AX Copilot - Codex\src\AxCopilot.SDK\obj\Debug\net8.0-windows\AxCopilot.SDK.AssemblyInfoInputs.cache E:\AX Copilot - Codex\src\AxCopilot.SDK\obj\Debug\net8.0-windows\AxCopilot.SDK.AssemblyInfoInputs.cache
E:\AX Copilot - Codex\src\AxCopilot.SDK\obj\Debug\net8.0-windows\AxCopilot.SDK.AssemblyInfo.cs E:\AX Copilot - Codex\src\AxCopilot.SDK\obj\Debug\net8.0-windows\AxCopilot.SDK.AssemblyInfo.cs
E:\AX Copilot - Codex\src\AxCopilot.SDK\obj\Debug\net8.0-windows\AxCopilot.SDK.csproj.CoreCompileInputs.cache E:\AX Copilot - Codex\src\AxCopilot.SDK\obj\Debug\net8.0-windows\AxCopilot.SDK.csproj.CoreCompileInputs.cache
E:\AX Copilot - Codex\src\AxCopilot.SDK\obj\Debug\net8.0-windows\AxCopilot.SDK.dll E:\AX Copilot - Codex\src\AxCopilot.SDK\obj\Debug\net8.0-windows\AxCopilot.SDK.dll
E:\AX Copilot - Codex\src\AxCopilot.SDK\obj\Debug\net8.0-windows\refint\AxCopilot.SDK.dll E:\AX Copilot - Codex\src\AxCopilot.SDK\obj\Debug\net8.0-windows\refint\AxCopilot.SDK.dll
E:\AX Copilot - Codex\src\AxCopilot.SDK\obj\Debug\net8.0-windows\AxCopilot.SDK.pdb
E:\AX Copilot - Codex\src\AxCopilot.SDK\obj\Debug\net8.0-windows\ref\AxCopilot.SDK.dll E:\AX Copilot - Codex\src\AxCopilot.SDK\obj\Debug\net8.0-windows\ref\AxCopilot.SDK.dll

Some files were not shown because too many files have changed in this diff Show More