Kiro IDE 자동화와 확장
Steering, Hooks, Skills, MCP, Custom Agents
Kiro IDE 자동화와 확장
Steering · Hooks · Skills · MCP · Custom Agents
규칙은 파일에, 실행은 AI에게
프로젝트 규칙 주입부터 외부 도구 연결까지
자동화 오버뷰
Steering · Hooks · Skills · MCP · Custom Agents
자동화 5장치
다섯 장치가 규칙 → 자동화 → 확장 3계층으로 AI를 제어하는 구조
자동화를 이루는 5가지 장치
Steering·Hooks·Skills·MCP·Custom Agents가 계층을 이뤄 동작합니다.
- Steering — 규칙 상시 주입
- Hooks — 이벤트 자동 실행
- Skills·MCP — JIT 지식·외부 도구
- Custom Agents — 역할 위임
설정은 한 번, 적용은 계속입니다 — .kiro/를 Git으로 공유하면 팀 전체가 같은 자동화를 씁니다.
핵심 기능 자동화 파이프라인
규칙 주입에서 외부 도구 연결까지 일관된 흐름
-
1
Steering
- 마크다운 규칙을 AI 컨텍스트에 항상 주입
- 코딩 표준, 아키텍처 결정, 보안 정책
- 프로젝트 규칙의 단일 소스
-
2
Hooks
- 이벤트(파일 저장, 도구 호출, 태스크 완료) 시 자동 실행
- 린트, 테스트, 빌드를 사람 개입 없이 반복
- JSON으로 선언적 정의
-
3
Skills
- description 매칭으로 필요한 지식만 JIT 로딩
- 컨텍스트 윈도우 절약하며 전문성 제공
- 도메인 가이드, API 레퍼런스 관리
-
4
MCP
- 외부 도구를 프로토콜 표준으로 연결
- AWS, GitHub, Figma 등 API를 에이전트가 직접 호출
- Powers = MCP + Steering + 문서 패키지
-
5
Custom Agents
- 전문 역할 하위 에이전트 정의
- 복잡한 작업을 메인 에이전트가 자동 위임
- 최소 권한 원칙으로 안전한 분업
흐름은 규칙 → 자동화 → 확장입니다 — Steering이 기준을, Hooks가 반복을, 나머지가 능력을 맡습니다.
3계층 제어 구조
규칙 → 자동화 → 확장
규칙 계층 — Steering
프로젝트 전체에 적용되는 불변 규칙. AI가 코드 생성 시 항상 참조. 마크다운으로 작성하여 누구나 읽고 수정 가능.
자동화 계층 — Hooks
이벤트 기반 자동 실행. 사람이 반복하던 린트/테스트/포맷을 트리거에 연결. JSON으로 선언적 정의.
확장 계층 — Skills + MCP + Agents
외부 지식, 도구, 전문 에이전트로 능력을 확장. 필요할 때만 활성화되어 컨텍스트 효율 극대화.
규칙은 항상, 자동화는 이벤트가 올 때, 확장은 필요할 때만 활성화됩니다 — 적용 시점이 세 계층을 가르는 기준입니다.
Steering
always · fileMatch · manual · auto
Steering
프로젝트 규칙을 AI 컨텍스트에 주입하는 방법 — 적용 시점을 가르는 4가지 모드
Steering
.kiro/steering/*.md 마크다운 규칙이 코드 생성의 기준이 됩니다.
- always — 모든 세션 자동 로딩
- fileMatch — 파일 패턴 매칭
- manual — #태그 명시 로드
- auto — description 요청 매칭
코드 리뷰에서 반복되는 피드백이 보이면 규칙 파일로 코드화합니다 — 다음부터는 AI가 지킵니다.
Steering 4가지 모드
규칙 적용 시점을 제어하는 방법
always
- 모든 세션에 자동 로딩
- 코딩 표준, 보안 정책, 아키텍처 결정
- 컨텍스트에 항상 포함 — 토큰 소비
fileMatch
- 특정 파일 편집 시에만 활성화
- 테스트 파일 규칙, API 엔드포인트 규칙 등
- 파일 패턴에 해당하지 않으면 컨텍스트 불포함
manual
- #태그로 필요할 때 명시적 로드
- 도메인 특화 규칙, 드문 시나리오 대응
- 컨텍스트 효율 최대화
auto
- 요청 내용이 description과 매칭될 때 자동 포함
- Skills의 JIT 로딩과 같은 원리
- 자주 쓰지만 항상은 아닌 규칙에 적합
전부 always로 두면 토큰을 계속 씁니다 — 적용 시점을 나누는 것이 4모드의 이유입니다.
Steering 실전 예시
팀의 코드 리뷰 피드백을 규칙으로 코드화
---
inclusion: always
description: 프로젝트 코딩 규칙
---
# 코딩 규칙
## TypeScript
- strict 모드 필수, any 금지
- 함수 반환 타입 명시
- enum 대신 const assertion
## React
- CloudScape 컴포넌트 우선
- CSS Modules 사용 (Tailwind 금지)
- 접근성: aria-label 필수
## 테스트
- 새 기능에 unit test 동반
- mock보다 실제 구현 우선
- describe 블록으로 시나리오 그루핑
Hooks
이벤트 기반 자동 실행
Hooks
이벤트가 발생하면 자동으로 실행 — trigger와 action의 조합
Hooks
.kiro/hooks/의 JSON이 저장·도구 호출·태스크 완료에 자동으로 반응합니다.
- trigger 10종 — PostFileSave 등
- action — command · agent
- 린트·테스트를 저장마다 자동
- 자연어로 Hook 생성 가능
결정론적 작업은 command, 판단이 필요한 작업은 agent 액션으로 겁니다.
Hooks 이벤트와 액션
PostFileSave부터 Stop까지 trigger 10종 — 발생 시점별 활용 예시
.kiro/hooks/ 디렉토리에 JSON으로 정의합니다. "이 이벤트가 발생하면 → 이 명령을 실행"하는 규칙. 자연어로 Hook을 생성할 수도 있습니다 (IDE 1.0+).
| 트리거 (trigger) | 발생 시점 | 활용 예시 |
|---|---|---|
| PostFileCreate / PostFileSave / PostFileDelete | 파일 생성·저장·삭제 시 | 라이선스 헤더 삽입, ESLint + Prettier |
| UserPromptSubmit | 프롬프트 전송 시 | 민감정보 검사, 컨텍스트 주입 |
| PreToolUse / PostToolUse | 도구 호출 전·후 | 위험 도구 검증, 호출 로깅 |
| PreTaskExec / PostTaskExec | 태스크 시작 전·완료 후 | 환경 검증, 테스트 실행 |
| SessionStart / Stop | 세션 시작 · 에이전트 응답 종료 시 | 환경 준비, 마무리 요약 |
Hook JSON 구조 — trigger + action
.kiro/hooks/ 디렉토리에 JSON으로 정의하는 version v1 + hooks 배열 — 저장 시 린트(command)와 타입 에러 점검(agent) 두 예시
{
"version": "v1",
"hooks": [
{
"name": "lint-on-save",
"trigger": "PostFileSave",
"matcher": ".*\\.tsx?$",
"action": {
"type": "command",
"command": "npx eslint --fix ."
}
},
{
"name": "typecheck-on-save",
"trigger": "PostFileSave",
"matcher": "src/.*",
"action": {
"type": "agent",
"prompt": "수정된 파일의 타입 에러를 확인하고 고쳐주세요"
}
}
]
}
- "version": "v1" + "hooks" 배열 — 한 파일에 여러 Hook 정의 가능
- "trigger" — 발생 이벤트. PostFileSave 등 10종
- "matcher" — 파일 경로·도구명을 거르는 단일 정규식 (글롭·배열 아님)
- "action" — command(셸 명령 실행) 또는 agent(prompt를 에이전트에 자동 전달) 2종
command vs agent
action의 2가지 유형 — 서로 다른 실행 방식
command
- 터미널 명령 직접 실행
- 결정론적 — 항상 같은 결과
- 빠른 실행 (ms 단위)
- eslint, prettier, tsc 등
린트, 포맷, 빌드처럼 정해진 도구를 반복 실행할 때. 예측 가능하고 빠릅니다.
agent
- AI에게 프롬프트로 지시
- 비결정론적 — 컨텍스트에 따라 다름
- 느린 실행 (초 단위)
- 코드 리뷰, 문서 생성, 에러 분석
판단이 필요한 작업에 사용. "이 변경이 올바른지 확인해줘" 같은 열린 질문에 적합합니다.
정해진 도구의 반복은 command, 열린 판단은 agent입니다.
Skills
description 매칭 · JIT 로딩 · 컨텍스트 절약
Skills
필요할 때만 로딩되는 지식 — description 매칭 기반 JIT 패턴
Skills
프롬프트가 description과 매칭될 때만 컨텍스트에 로딩됩니다.
- description 매칭 — keywords 필드 없음
- JIT 로딩 — 토큰 절약
- Steering(항상) vs Skills(선택)
- .kiro/skills/*.md 프론트매터
항상 지킬 규칙은 Steering에, 주제가 나올 때 참조할 지식은 Skills에 둡니다.
Skills 동작 흐름
프롬프트 입력 → description 매칭 → JIT 로딩 → 응답 생성의 4단계
-
1
프롬프트 입력
- 사용자가 질문이나 요청을 입력
- "DynamoDB 테이블 설계해줘"
- "Lambda 배포 방법 알려줘"
-
2
description 매칭
- Skills 메타데이터(description)와 프롬프트 매칭
- "DynamoDB" → dynamodb-guide.md 활성화
- 매칭 안 되면 로딩하지 않음
-
3
JIT 로딩
- 매칭된 Skills만 컨텍스트에 추가
- 다른 Skills는 토큰을 소비하지 않음
- Steering(항상)과의 핵심 차이점
-
4
응답 생성
- Skills 지식을 참조하여 정확한 응답 생성
- 최신 API, 모범 사례가 자동 적용
- 할루시네이션 감소
매칭되지 않으면 로딩되지 않습니다 — description이 곧 활성화 조건입니다.
Steering vs Skills
항상 적용 vs 상황별 활성화
Steering
- 모든 세션에 항상 로딩
- 코딩 표준, 아키텍처 결정
- 짧고 핵심적인 규칙
- 컨텍스트 항상 차지
프로젝트 전체에 적용되는 불변 규칙. "이것은 항상 지켜라"라는 의미.
Skills
- description 매칭 시에만 로딩
- AWS 서비스 가이드, 도메인 지식
- 상세하고 풍부한 참조 문서
- 필요할 때만 컨텍스트 사용
"이 주제가 나오면 참조해라"라는 의미. 토큰을 절약하면서 전문성을 제공합니다.
"항상 지켜라"는 Steering, "이 주제면 참조해라"는 Skills입니다.
Skill 파일 구조
.kiro/skills/*.md — 프론트매터 + 본문
---
name: dynamodb-guide
description: DynamoDB 테이블 설계와 쿼리 최적화 가이드 —
NoSQL 단일 테이블 설계, 파티션 키 선택, GSI 설계 시 활성화
---
# keywords 필드는 없음 — 매칭 단서는 description에 녹여 쓴다
# DynamoDB 설계 가이드
## 단일 테이블 설계 원칙
- 접근 패턴을 먼저 정의하고, 그에 맞게 키를 설계
- PK(파티션 키) + SK(정렬 키) 조합으로 1:N 관계 표현
- GSI는 최대 20개 — 쿼리 패턴마다 하나씩
## 파티션 키 선택 기준
- 높은 카디널리티 (고유 값이 많을수록 좋음)
- 균등한 접근 분포 (핫 파티션 방지)
- 예: userId, orderId, deviceId
## 비용 최적화
- On-Demand: 트래픽 예측 어려울 때
- Provisioned + Auto Scaling: 안정적 트래픽
- TTL로 불필요한 항목 자동 삭제
MCP
stdio · streamable-http · Powers
MCP
외부 도구를 표준 프로토콜로 연결 — 로컬 stdio와 원격 streamable-http
MCP
AWS·GitHub·Figma 같은 외부 도구를 에이전트가 직접 호출합니다.
- stdio — 로컬 CLI 프로세스
- streamable-http — 원격·OAuth
- Powers — MCP+Steering+문서 패키지
- AWS IaC · Figma · Netlify
개별 MCP를 조립하는 대신 Powers로 도구·규칙·문서를 한 번에 설치할 수도 있습니다.
MCP 2가지 전송 방식
stdio는 로컬 프로세스 실행, streamable-http는 OAuth 원격 연결 — 기준은 도구의 위치
stdio
- 로컬 CLI 프로세스를 MCP 서버로 실행
- 설치된 도구(awslabs, uvx)를 직접 호출
- JSON-RPC over stdin/stdout
- 인증 불필요 — 로컬 프로세스 권한 상속
streamable-http
- 원격 HTTP 엔드포인트에 연결
- OAuth 인증으로 보안 접근
- 팀 전체가 동일 서버 공유 가능
- AgentCore Gateway로 관리형 배포
로컬 도구는 stdio, 팀이 공유하는 원격 서버는 streamable-http로 연결합니다.
Powers — 원클릭 확장 패키지
MCP + Steering + 문서를 한 번에 설치
AWS IaC Power
CDK/CloudFormation 가이드 + AWS MCP Server + 보안 규칙을 한 번에 설치. 인프라 코드 작성에 즉시 활용.
Figma Power
Figma MCP Server + 디자인 시스템 규칙. 디자인 파일에서 직접 컴포넌트 코드를 생성.
Netlify Power
Netlify 배포 MCP + CI/CD 규칙. 프론트엔드 프로젝트를 빌드→배포→프리뷰까지 자동화.
MCP 서버만 붙이는 것이 아니라 Steering 규칙과 문서까지 함께 설치되는 것이 Powers입니다.
Custom Agents
역할 · 도구 제한 · 위임
Custom Agents
역할·도구·권한을 파일로 정의하는 전문 에이전트 — 최소 권한 분업
Custom Agents
.kiro/agents/*.md에 역할과 권한을 정의하면 메인 에이전트가 위임합니다.
- .kiro/agents/*.md — 역할 정의
- tools 카테고리 제한 — read·write·shell
- permissions.rules — capability deny
- 읽기 전용 리뷰어 · 쓰기 구현자
에이전트에게 전부를 주지 않습니다 — 역할에 필요한 최소 권한만 열어 안전하게 분업합니다.
Custom Agent 정의 파일
.kiro/agents/*.md로 전문 에이전트 생성
---
description: 보안 취약점을 분석하는 읽기 전용 리뷰어
tools:
- read
- web
permissions:
rules:
- capability: fs_write
effect: deny
- capability: shell
effect: deny
---
# 보안 리뷰어
## 역할
코드 변경에서 보안 취약점을 식별합니다.
## 지시사항
- OWASP Top 10 기준으로 검증
- 인증/인가 로직에 집중
- 발견 시 심각도(Critical/High/Medium/Low)와 수정 제안 포함
- 코드를 직접 수정하지 않음 (읽기 전용)
- description — 메인 에이전트가 위임(delegation) 여부를 판단하는 매칭 기준
- tools — 허용 도구 카테고리. read·web만 → 읽기 전용 리뷰어
- permissions.rules — fs_write·shell을 deny로 이중 차단. 최소 권한 원칙
- 본문 마크다운 — 역할·지시사항이 하위 에이전트의 시스템 프롬프트가 됨
에이전트별 역할과 도구
최소 권한 원칙으로 안전한 분업
| 에이전트 | 역할 | 허용 도구 (카테고리) | 파일 쓰기 |
|---|---|---|---|
| security-reviewer | 보안 취약점 분석 | read, web | ✗ (fs_write deny) |
| test-writer | 테스트 코드 생성 | read, write | ✓ (*.test.* 패턴만) |
| doc-generator | API 문서 자동 생성 | read, write | ✓ (docs/ 패턴만) |
| infra-deployer | CDK 배포 실행 | read, shell | ✗ |
리뷰어는 읽기만, 구현자는 패턴 안에서만 — 권한 표가 곧 안전 설계입니다.
한번 설정하면 프로젝트 전체에 적용