product-maplisted
Install: claude install-skill chacheum/chageun
# 제품 지도
제품의 기능과 화면 구조를 한 곳에 모아 두어, 브레인스토밍·계획·구현의 모든 단계에서 같은 기준으로 참조하고 갱신한다. 지도가 최신 상태를 유지하면 기능 누락·이름 불일치·화면 중복 같은 혼선을 방지할 수 있다.
---
## 산출물 1. 기능 명세 (docs/feature-spec.md)
기능을 하나씩 정의하는 가벼운 기능정의서다. **YAML 블록 하나**로 관리하며, 기능이 생기거나 상태가 바뀌면 해당 항목만 추가·수정한다.
> **표가 아니라 YAML ��� 이유.** 마크다운 표는 `설명`·`비고` 안에 `|` 가 한 글자만 들어가도 그 뒤 칸이 통째로 한 칸씩 밀린다. 그런데 밀려도 표는 멀쩡히 그려져서 아무도 모른다 — 실측 2026-08-10, 실제 프로젝트 지도 3벌 251개 기능 중 1개가 밀린 채였고 그 행은 `사용자`부터 `비고`까지 다섯 칸이 통째로 한 칸씩 밀려 있었다(사람도 스크립트도 몇 달 못 봤다). ⚠ 앞서 여기 "6곳 455개 중 10개"라고 적었던 건 **틀린 셈**이다 — 같은 저장소 사본을 두 번 세고, 규격 밖 값 경고까지 밀린 행으로 합쳤다. YAML 은 칸마다 이름이 붙어 있어 이 사고가 구조적으로 안 생긴다.
**칸 고정(8개):** `id` · `기능명` · `설명` · `사용자` · `우선순위` · `상태` · `화면` · `비고`. **빈 값도 `""` 로 반드시 적는다**(칸을 빼면 나중에 "안 적은 것"과 "비어 있는 것"을 구분 못 한다). 옛 표의 `관련 화면` 칸이 여기선 `화면` 이다 — 이름만 짧아졌고 뜻은 같다.
```yaml
features:
- id: F-01
기능명: 회원가입
설명: 이메일·비밀번호로 신규 계정 생성
사용자: 비로그인 사용자
우선순위: 높음
상태: 완료
화면: 인증/회원가입
비고: 이메일 인증 포함
- id: F-02
기능명: 대시보드 요약
설명: 핵심 지표를 한눈에 표시
사용자: 로그인 사용자
우선순위: 높음
상태: 개발중
화면: 대시보드
비고: 차트 라이브러리 검토 중
- id: F-03
기능명: 알림 설정
설명: 수신 채널·빈도 선택
사용자: 로그인 사용자
우선순위: 낮음
상태: 기획중
화면: 설정/알림
비고: ""
```
**따옴표 규칙 — 아래 셋에 하나도 안 걸릴 때만 맨값으로 둔다. 애매하면 감싼다.**
1. **맨 앞 글자**가 `- ? : , [ ] { } # & * ! | > ' " % @ ` ~` 중 하나면 감싼다.
2. 값 **안에** `:` 나 `#` 이 있거나 **끝이 공백**이면 감싼다.
3. **다른 뜻으로 읽히는 값**이면 감싼다 — 특수문자가 없어도 YAML 은 뜻을 바꾼다. `2026-09-01` 은 날짜, `no`·`off`·`yes`·`true` 는 참/거짓, `null`·`~` 는 빈 ��, `007`·`1.5` 는 숫자로