Skip to content

feat: Claude Code Hooks 옵저빌리티 통합 #104

Description

@dohapark81

목표

Claude Code Hooks를 활용하여 CrewX의 옵저빌리티를 에이전트 내부 도구 호출 레벨까지 확장합니다.

배경

구현 범위

Phase 1: Hooks 인프라 구축

  • hooks/ 디렉토리 생성 및 스크립트 작성
    • log-tool-use.js (PostToolUse 핸들러)
    • validate-tool-use.js (PreToolUse 검증)
    • finalize-session.js (Stop 핸들러)
  • TracingService 확장 (logToolCall 메서드 추가)
  • 환경변수 전달 로직 (CREWX_TASK_ID)

Phase 2: traces.db 스키마 확장

  • tool_calls 테이블 생성
    • id, task_id, tool_name, files, input, output, duration_ms, timestamp
  • 인덱스 추가 (task_id, tool_name)
  • 마이그레이션 스크립트 작성

Phase 3: crewx init 통합

  • crewx init --with-hooks 옵션 추가
  • ~/.config/claude/settings.json 자동 생성/업데이트
  • 훅 스크립트 절대 경로 주입
  • 설치 검증 로직

Phase 4: CLI 조회 기능

  • crewx trace tools <task-id> 명령어
  • crewx trace file <file-path> 명령어
  • 출력 포맷팅

기술 스택

  • Node.js (훅 스크립트)
  • better-sqlite3 (traces.db 연동)
  • Claude Code Hooks API

예상 소요

  • Phase 1-2: 2일
  • Phase 3-4: 1-2일
  • 총 3-4일

차별화 포인트

  • 다른 CLI 에이전트 프레임워크에 없는 CrewX만의 기능
  • 에이전트 작업 추적의 완전성 (CLI + Tool 레벨)
  • 디버깅/감사/학습에 유용

참고 문서

  • 검토 문서: Slack 스레드 (1768470699.107939)
  • 기존 TracingService: packages/cli/src/services/tracing.service.ts

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions