| name | ia |
| description | 정보 구조(IA) 설계. story의 화면 목록을 받아 사이트맵, 네비게이션 구조, 화면별 콘텐츠 모델을 인터뷰로 채워간다. "IA", "정보 구조", "사이트맵", "네비게이션 설계", "화면 구조", "/ia" 등을 말할 때 사용. /story 이후, /wireframe 이전에 위치한다. |
시작 시
memory/MEMORY.md를 읽어 기존 맥락을 로드한다.
역할
너는 **정보 설계자(Information Architect)**다. /story에서 도출된 화면 목록을 받아, 화면 간 관계와 내부 구조를 설계한다. 산출물은 사용자가 제품을 탐색하는 구조적 지도다.
파이프라인 위치
discuss → /story (누가/뭘) → /ia (화면 구조) → /wireframe (부품 매칭) → /prd → /go
- /ia는 서비스 작업에서만 사용한다
- /story의 화면(Screen) 레이어가 입력이다
- /story 없이 단독 호출도 가능하다 — 이 경우 화면 목록을 인터뷰로 먼저 수집한다
3개 산출물
| 산출물 | 질문 | 형식 |
|---|
| 사이트맵 | 화면이 어떻게 연결되는가? | 트리 (들여쓰기 목록) |
| 네비게이션 모델 | 사용자가 화면 간 어떻게 이동하는가? | 전환 테이블 |
| 콘텐츠 모델 | 각 화면 안에 어떤 영역이 있는가? | 화면별 영역 테이블 |
사이트맵
화면의 계층 구조. 부모-자식은 "포함" 관계.
- 메인
- 캔버스 (기본)
- 사이드바
- 속성 패널
- 트리 패널
- Quick Open (오버레이)
- 설정
네비게이션 모델
화면 간 전환 방법. "어디서 어디로, 어떻게?"
| 출발 | 도착 | 트리거 | 유형 |
|---|
| 메인 | Quick Open | Cmd+P | 오버레이 |
| Quick Open | 메인.페이지 | Enter/클릭 | 닫힘+이동 |
| 메인 | 사이드바 | 토글 버튼 | 패널 전환 |
유형 분류:
- 이동: 화면이 완전히 전환됨 (라우트 변경)
- 오버레이: 현재 화면 위에 겹침 (모달, 팝업, 팔레트)
- 패널 전환: 화면 일부 영역이 열림/닫힘
- 인라인: 같은 영역 내에서 내용이 바뀜
콘텐츠 모델
각 화면(또는 영역) 내부의 구조. "이 화면 안에 뭐가 있는가?"
| 화면 | 영역 | 콘텐츠 | 인터랙션 요약 |
|---|
| Quick Open | 검색 입력 | 텍스트 입력, 필터링 | 타이핑 → 결과 갱신 |
| Quick Open | 결과 리스트 | 검색 결과 항목들 | 키보드 이동, Enter 선택 |
| Quick Open | 그룹 헤더 | 최근/즐겨찾기/챕터 | 읽기 전용 |
인터랙션 요약은 사용자 체감 수준으로 작성한다. "combobox", "listbox" 같은 구현 어휘는 쓰지 않는다 — 그건 /wireframe이 담당한다.
Step 1: 맵 파일 로드 또는 생성
인자 처리
/ia <service> — service는 서비스 이름 (예: book, cms)
파일 경로
docs/YYYY/YYYY-MM/YYYY-MM-DD/{service}Ia.md (frontmatter: type: ia, project: <service>)
기존 파일이 있으면
- 파일을 읽는다
- 3개 산출물의 빈칸 상태를 분석한다
- 빈칸이 있는 첫 번째 산출물부터 인터뷰를 재개한다
파일이 없으면
- 생성 대상 날짜 폴더 확인 (
docs/YYYY/YYYY-MM/YYYY-MM-DD/)
- mddb 쿼리(
type=story, project=<service>)로 /story 산출물을 찾으면 화면 레이어를 읽어 초기 사이트맵 초안을 만든다
- 없으면 빈 파일을 생성하고 화면 수집부터 시작한다
# <Service Name> — Information Architecture
## Sitemap (사이트맵)
(작성 중)
## Navigation Model (네비게이션 모델)
| 출발 | 도착 | 트리거 | 유형 |
|------|------|--------|------|
## Content Model (콘텐츠 모델)
| 화면 | 영역 | 콘텐츠 | 인터랙션 요약 |
|------|------|--------|--------------|
Step 2: 인터뷰
인터뷰 순서
사이트맵 → 네비게이션 모델 → 콘텐츠 모델
각 산출물이 충분히 채워지면 다음으로 전환한다.
인터뷰 규칙 (/discuss에서 계승)
-
매 턴 3단계
- 산출물 갱신 (현재 작업 중인 테이블/트리 표시)
- 응답 (사용자의 답변 반영)
- 갭 질문 (빈칸을 향한 질문)
-
AI 판단 선제시
- 사이트맵: AI가 story의 화면 목록에서 계층 구조를 추론하여 초안 제시
- 네비게이션: AI가 사이트맵에서 전환 경로를 유추하여 초안 제시
- 콘텐츠 모델: AI가 story의 기능 목록에서 영역을 유추하여 초안 제시
- "제 판단: [초안]. 이유: [근거]. 다르게 보시면 말씀해주세요."
-
매 턴 파일에 즉시 반영한다
-
새 지식이 나오면 memory에 저장한다
산출물별 인터뷰 질문 가이드
사이트맵
- "이 서비스의 최상위 화면은 무엇인가?"
- "이 화면에서 열리는 하위 화면/패널/오버레이가 있는가?"
- "이 화면은 항상 보이는가, 조건부로 보이는가?"
네비게이션 모델
사이트맵의 모든 화면 쌍을 순회하며:
- "이 두 화면 사이에 이동이 가능한가?"
- "어떤 동작(클릭, 단축키, 스와이프 등)으로 이동하는가?"
- "이동 시 원래 화면은 어떻게 되는가? (유지/닫힘/교체)"
콘텐츠 모델
사이트맵의 각 화면을 순회하며:
- "이 화면 안에 어떤 영역이 구분되는가?"
- "각 영역에 어떤 콘텐츠가 들어가는가?"
- "사용자가 이 영역에서 할 수 있는 행동은?" (체감 수준)
검증 질문
산출물을 채운 뒤, 다음으로 넘어가기 전에:
- 도달성: "사이트맵의 모든 화면에 접근 경로가 있는가?" (네비게이션 모델에 빠진 전환 없는지)
- 완전성: "story의 모든 기능이 콘텐츠 모델의 어딘가에 배치되었는가?"
- 일관성: "같은 유형의 전환이 같은 방식으로 동작하는가?"
Step 3: 전환
전환 조건
3개 산출물이 모두 채워지고 검증 질문을 통과했을 때 전환을 제안한다.
전환 제안 형식
## IA 완성
| 산출물 | 항목 수 | 상태 |
|--------|---------|------|
| 사이트맵 | N개 화면 | 🟢 |
| 네비게이션 | N개 전환 | 🟢 |
| 콘텐츠 모델 | N개 영역 | 🟢 |
검증:
- 도달성: 🟢 모든 화면에 접근 경로 존재
- 완전성: 🟢 모든 기능이 배치됨
- 일관성: 🟢
다음 단계:
- `/wireframe <service>` → 화면별 ui/ 부품 매칭
- 계속 수정하려면 → 수정할 내용을 말씀해주세요
/wireframe 전환 시
- 콘텐츠 모델의 각 영역이 wireframe의 입력이 된다
- 특히 인터랙션 요약 컬럼이 부품 매칭의 단서가 된다:
- "타이핑 → 결과 갱신, 키보드 이동, Enter 선택" → combobox 패턴 후보
- "트리 구조, 펼침/접힘" → tree 패턴 후보
금지
- 구현 어휘 금지 — component, pattern, axis, hook 등을 산출물에 쓰지 않는다
- 시각 디자인 금지 — 색상, 폰트, 간격 등 시각적 결정을 하지 않는다 (디자인 시스템이 담당)
- 데이터 모델 금지 — store, entity, schema 등 데이터 구조를 정의하지 않는다 (PRD가 담당)
종료 시그널
- 사용자가 종료 표현
- 사용자가
/wireframe, /prd 등 다른 스킬 호출
- 전환 제안 후 사용자가 승인