--- name: customize description: Customize Discord-only EJClaw behavior, routing, integrations, prompts, or commands. --- # EJClaw Customization 이 스킬은 현재 디스코드 전용 EJClaw를 기준으로 동작합니다. 새 채널 추가보다 기존 디스코드 흐름, 러너, 프롬프트, 스케줄링, 도구 연결을 직접 수정하는 쪽을 우선합니다. ## 진행 순서 1. 요청을 `행동 변경`, `명령 추가`, `도구 연동`, `설정/배포`, `프롬프트 수정` 중 어디에 속하는지 먼저 정리합니다. 2. 영향 범위를 좁힙니다. 3. 관련 파일만 수정합니다. 4. 가능하면 바로 검증합니다. ## 자주 보는 수정 지점 - `src/channels/discord.ts` - 디스코드 메시지 파싱, 멘션 규칙, 첨부파일 처리, 음성 전사 - `src/index.ts` - 오케스트레이션, 세션 명령, 라우팅, 상태 갱신 - `src/session-commands.ts` - `/compact`, `/clear` 같은 세션 명령 - `src/db.ts` - 등록 그룹, 세션, 스케줄, 마이그레이션 - `src/config.ts` - 서비스 식별값, 디렉터리, 타임아웃, 기능 플래그 - `src/agent-runner.ts` - 에이전트 실행과 환경 변수 전달 - `runners/agent-runner/src/index.ts` - Claude Code 쪽 허용 도구와 MCP - `runners/codex-runner/src/index.ts` - Codex 쪽 실행 경로 - `setup/register.ts` - 디스코드 채널 등록 - `groups/global/CLAUDE.md` 및 각 그룹의 `CLAUDE.md` - 프롬프트/운영 규칙 ## 요청별 가이드 ### 동작을 바꾸고 싶을 때 - 응답 조건, 멘션 처리, 첨부파일 처리: `src/channels/discord.ts` - 세션 명령, 상태머신, 런루프: `src/index.ts`, `src/session-commands.ts` - 페르소나/응답 스타일: `groups/global/CLAUDE.md` ### 도구나 MCP를 붙일 때 - 러너에 실제 도구 허용과 MCP 설정을 추가합니다. - Claude Code 쪽은 `runners/agent-runner/src/index.ts`를 먼저 보고, 필요하면 `src/agent-runner.ts`의 env 전달 범위를 같이 수정합니다. - 그룹별 사용 규칙은 해당 `CLAUDE.md`에 문서화합니다. ### 새 명령을 만들 때 - 먼저 슬래시 명령인지, 자연어 규칙인지 구분합니다. - 슬래시/예약 명령이면 `src/session-commands.ts`와 `src/index.ts` 경로를 봅니다. - 자연어 지시만으로 충분하면 프롬프트 문서만 수정합니다. ### 등록/배포 흐름을 바꿀 때 - 설치/검증 단계는 `setup/*` - 서비스 동작은 `setup/service.ts` - 그룹 등록 형식은 `setup/register.ts` ## 검증 원칙 작게 바꿨으면 최소 이 정도는 확인합니다. ```bash npm run typecheck npm test ``` 러너나 실행 경로를 건드렸으면 추가로 확인합니다. ```bash npm run build:runners npm run setup -- --step verify ```