Hooks (훅)
AIRGAP Assistant의 이벤트 훅 설정 및 활용
개요
Hooks는 AIRGAP Assistant에서 특정 이벤트가 발생할 때 자동으로 실행되는 명령어 또는 스크립트를 정의하는 기능입니다. 반복적인 후처리 작업을 자동화하여 작업 효율을 높일 수 있습니다.
지원되는 이벤트 유형
| 이벤트 | 발생 시점 | 활용 예시 |
|---|---|---|
onSave | AI가 파일을 저장한 후 | 포맷터 실행, 린트 검사 |
onFileCreate | AI가 새 파일을 생성한 후 | 파일 헤더 추가, 인덱스 업데이트 |
onCommit | 체크포인트 커밋 생성 후 | 변경 로그 갱신 |
onTaskStart | AI 태스크 시작 시 | 환경 변수 로드, 상태 초기화 |
onTaskEnd | AI 태스크 완료 시 | 결과 로깅, 정리 작업 |
훅 설정 방법
.clinerules 파일 내에 ## Hooks 섹션을 추가하여 훅을 정의합니다.
# .clinerules
## Hooks
### onSave
- 저장된 파일이 .ts 또는 .tsx 확장자인 경우 `npx prettier --write` 명령을 실행한다.
- 저장된 파일이 .py 확장자인 경우 `black` 포맷터를 실행한다.
### onFileCreate
- 새 TypeScript 파일에 프로젝트 라이선스 헤더를 추가한다.
- 컴포넌트 파일 생성 시 같은 디렉터리에 테스트 파일 템플릿을 함께 생성한다.
### onTaskEnd
- 수행한 작업 내용을 CHANGELOG.md에 기록한다.
훅 실행 방식
훅에 정의된 명령은 AI가 해당 이벤트를 감지했을 때 자동으로 제안합니다. 자동 승인이 설정되어 있지 않으면 각 훅 실행 전에 사용자 확인을 요청합니다.
AI: 파일 utils.ts를 저장했습니다.
onSave 훅에 따라 prettier를 실행할까요? [승인/거부]
팁: 자동 승인 설정에서 명령어 실행을 허용하면 훅이 별도 확인 없이 실행됩니다. 안전한 명령(포맷터, 린터 등)에 대해서만 자동 승인을 활성화하는 것을 권장합니다.
훅 활용 예시
코드 품질 자동화
### onSave
- ESLint 검사를 실행하고 자동 수정 가능한 항목은 수정한다.
- TypeScript 타입 체크를 실행하여 타입 오류를 보고한다.
프로젝트 정리
### onTaskEnd
- 생성된 임시 파일을 정리한다.
- 변경된 파일 목록과 요약을 출력한다.
보안 고려사항
에어갭 환경에서 훅을 사용할 때 다음 사항에 유의하세요.
- 실행 명령 검토: 훅에 등록된 명령이 의도하지 않은 동작을 하지 않는지 확인합니다.
- 권한 관리: 시스템 파일을 수정하거나 관리자 권한이 필요한 명령은 훅에 등록하지 마세요.
- 스크립트 출처 확인: 외부에서 가져온
.clinerules파일의 훅 내용을 반드시 검토한 후 사용합니다.
주의: 신뢰할 수 없는 출처의 규칙 파일을 그대로 사용하면 의도하지 않은 명령이 실행될 수 있습니다. 항상 훅 내용을 직접 확인하세요.
관련 문서
- Rules (규칙) - AI 행동 규칙 설정
- Workflows (워크플로우) - 자동화 워크플로우
- 자동 승인 - 자동 승인 설정