테마
Scene D · Agent Hook 자동화
💡 이 실습에서 사용하는 Agent Hooks의 개념과 원리는 기능 카탈로그 · Agent Hooks에서 자세히 볼 수 있습니다.
목표
Agent Hook을 생성하여 에이전트가 파일을 저장할 때 코드 품질 검사가 자동으로 실행되도록 설정합니다. 반복 작업의 자동화를 체험합니다.
사전 준비
- Scene C5 완료 (구현된 To-Do 앱 존재)
- 또는 Scene A 완료된
vibe-todo폴더에서도 실습 가능
해볼 것
1단계: Agent Hook 생성
- Kiro 패널에서 Agent Hooks 섹션 클릭
- 생성 버튼 클릭
- 아래 프롬프트를 입력:
Agent Hook 생성 프롬프트
text
JavaScript 파일을 저장할 때마다 다음을 자동으로 검사하고 개선 제안을 해주는 Hook을 만들어주세요:
1. 코드 스타일 검사 (들여쓰기, 세미콜론 등)
2. 변수명 개선 제안
3. 주석 추가 필요 부분 식별
4. 성능 최적화 가능 부분 찾기
5. 접근성 개선 사항 (HTML/CSS 관련)
트리거: 파일 저장
대상 파일: *.js, *.html, *.css2단계: Hook 테스트
채팅에서 Kiro에게 테스트용 파일 변경을 요청합니다.
text
현재 프로젝트의 JavaScript 파일(예: `js/script.js`)에 작은 주석을 하나 추가해주세요.→ Kiro가 파일을 저장한 뒤 Hook이 실행되며 코드 품질 검사 결과와 개선 제안이 표시됩니다. 편집기에서 사람이 직접 Ctrl+S / Cmd+S로 저장한 변경은 File Save Hook의 테스트가 아닙니다.
3단계: 할 일 앱 전용 Hook 생성 (선택)
할 일 앱 코드 파일 저장 시 다음을 자동으로 검사하는 Hook을 만들어주세요:
- 로컬 스토리지 사용법 검증
- 접근성 속성 누락 확인 (aria-label)
- 모바일 반응형 CSS 검사
- 사용자 입력 검증 로직
- 에러 처리 코드 존재 여부
트리거: 파일 저장
대상: todo-app/**/*4단계: 수동 품질 리포트 Steering 만들기 (선택)
새 IDE에서는 Manual-trigger Hook을 만들 수 없습니다. 온디맨드 검사에는 inclusion: manual Steering 파일을 사용합니다. .kiro/steering/project-quality-report.md를 만들고 다음을 작성합니다.
markdown
---
inclusion: manual
---
전체 프로젝트를 검토해 다음을 짧은 리포트로 정리한다.
- 사용하지 않는 CSS 클래스
- 중복 코드
- 파일 구조 개선 후보
- 성능 개선 후보
각 발견에는 확인한 파일 경로와 근거 위치를 함께 적는다.채팅에서 /project-quality-report를 호출한 뒤 다음을 요청합니다.
text
현재 프로젝트를 검사하고 수동 품질 리포트를 작성해주세요.수동 포함 Steering은 필요할 때만 호출되므로, 모든 파일 저장마다 전체 프로젝트 검사를 반복하지 않습니다.
기대 결과
.kiro/hooks/폴더에 Hook 파일 생성 (예:code-quality-checker.json)- 에이전트가 대상 파일을 저장하면 자동으로 코드 검사 실행
- 반복적인 품질 관리가 자동화됨
- Agent Hook 생성 완료필수
- `.kiro/hooks/` 에 Hook 파일 존재필수
- 에이전트의 파일 저장 후 자동 실행 확인필수
- 코드 품질 검사 결과 확인필수
- 수동 품질 리포트 Steering 호출선택
⚠️ 흔한 실수
- 트리거 조건 오설정 — 파일 패턴을
*.*처럼 너무 넓게 잡으면 모든 저장에서 Hook이 실행되어 작업이 느려집니다. 반대로 패턴이 너무 좁으면(app.js만) 다른 파일 변경 시 실행되지 않습니다. 대상 파일 패턴은 목적에 맞게 적절히 설정하세요.
🚨 문제 해결
- Hook이 실행되지 않음: 편집기에서 직접 저장한 것은 File Hook을 실행하지 않습니다. 채팅에서 Kiro에게 대상 파일 수정을 요청한 뒤 파일 패턴과 Hook 활성화 상태를 확인하세요.
- 너무 느림: 대상 파일 범위를 좁히거나(
*.js만), 검사 항목을 줄여서 여러 Hook으로 분리. - 결과가 기대와 다름: 지시사항을 더 구체적으로 수정. 예시 코드와 기대 결과를 포함해주면 더 정확합니다.