Optimization save-scenario

사용자 대화에서 도출된 시나리오/요구사항을 체계적으로 마크다운 파일로 저장한다.

install
source · Clone the upstream repo
git clone https://github.com/sunLeee/optimization
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/sunLeee/optimization "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.claude/skills/process/save-scenario" ~/.claude/skills/sunleee-optimization-save-scenario && rm -rf "$T"
manifest: .claude/skills/process/save-scenario/SKILL.md
source content

시나리오 저장 스킬

목적

사용자와의 대화에서 도출된 시나리오, 요구사항, 결정사항을 체계적으로 마크다운 파일로 저장합니다. 이를 통해 프로젝트의 요구사항 이력을 추적하고, 다른 문서와의 연결성을 유지합니다.

지침

1. 시나리오 추출

현재 대화에서 다음 요소를 식별합니다:

  • 요구사항: 사용자가 원하는 기능이나 결과
  • 결정사항: 대화 중 합의된 기술적/비즈니스적 결정
  • 제약조건: 구현 시 고려해야 할 제한사항
  • 관련 문서: 참조해야 할 기존 문서나 코드

2. 저장 위치

시나리오 파일은 다음 경로에 저장합니다:

docs/references/scenarios/YYYY-MM-DD_{scenario_name}.md
  • YYYY-MM-DD
    : 현재 날짜
  • scenario_name
    : 사용자 제공 또는 대화 내용에서 추론

3. 파일 생성 절차

  1. 대화 컨텍스트 분석
  2. 핵심 요소 추출 (요약, 상세, 결정사항)
  3. 관련 문서 링크 식별
  4. 템플릿에 맞춰 마크다운 생성
  5. docs/references/scenarios/
    디렉토리 확인 (없으면 생성)
  6. 파일 저장
  7. 저장 완료 메시지 출력

AskUserQuestion 활용 지점

지점 1: 시나리오 카테고리 분류

시점: 시나리오 저장 전 카테고리 결정

AskUserQuestion:
  questions:
    - question: "이 시나리오의 카테고리를 선택해주세요"
      header: "카테고리"
      multiSelect: false
      options:
        - label: "Feature - 기능 요구사항 (권장)"
          description: "사용자 기능, UI/UX 요구사항"
        - label: "Technical - 기술 결정"
          description: "기술 스택, 아키텍처 선택"
        - label: "Business - 비즈니스 요구사항"
          description: "비즈니스 목표, KPI, 제약조건"
        - label: "Integration - 통합 시나리오"
          description: "외부 시스템 연동, API 통합"

지점 2: 상태 설정

시점: 시나리오 저장 시 초기 상태 결정

AskUserQuestion:
  questions:
    - question: "시나리오의 초기 상태를 설정해주세요"
      header: "상태"
      multiSelect: false
      options:
        - label: "Draft - 초안 (권장)"
          description: "검토 필요 | 변경 가능 | 미확정"
        - label: "Reviewed - 검토 완료"
          description: "검토 완료 | 승인 대기"
        - label: "Approved - 승인됨"
          description: "구현 진행 가능 | 확정"

템플릿

# {시나리오 제목}

## 메타데이터

| 항목 | 내용 |
|------|------|
| 날짜 | YYYY-MM-DD |
| 작성자 | Claude Code |
| 상태 | Draft / Reviewed / Approved |

## Summary

{1-3문장으로 시나리오 핵심 요약}

## Details

### 배경

{시나리오가 도출된 맥락 설명}

### 요구사항

1. {요구사항 1}
2. {요구사항 2}
3. ...

### 제약조건

- {제약조건 1}
- {제약조건 2}

## Decisions

결정된 사항들을 체크리스트로 관리합니다.

- [ ] {결정사항 1}
- [ ] {결정사항 2}
- [ ] {결정사항 3}

## Related Documents

### Upstream (이 시나리오의 근거)

- {상위 문서 링크 1}
- {상위 문서 링크 2}

### Downstream (이 시나리오가 영향을 주는 문서)

- {하위 문서 링크 1}
- {하위 문서 링크 2}

## Notes

{추가 메모, 향후 고려사항}

---

*Generated by save-scenario skill*

예제

예제 1: 기본 사용

입력:

/save-scenario 로그인-기능-요구사항

대화 컨텍스트:

사용자: 로그인 기능에 OAuth 지원이 필요해요. Google과 GitHub 로그인을 지원해야 합니다. Claude: 네, OAuth 2.0 기반으로 구현하겠습니다. 세션 관리는 JWT를 사용할까요? 사용자: 네, JWT로 해주세요. 토큰 만료 시간은 24시간으로요.

출력 파일:

docs/references/scenarios/2026-01-21_로그인-기능-요구사항.md

# 로그인 기능 요구사항

## 메타데이터

| 항목 | 내용 |
|------|------|
| 날짜 | 2026-01-21 |
| 작성자 | Claude Code |
| 상태 | Draft |

## Summary

OAuth 2.0 기반의 소셜 로그인 기능 구현. Google과 GitHub 로그인을 지원하며, JWT를 통한 세션 관리를 수행.

## Details

### 배경

사용자 인증 시스템 구축을 위해 소셜 로그인 기능이 필요함.

### 요구사항

1. OAuth 2.0 기반 인증 구현
2. Google 로그인 지원
3. GitHub 로그인 지원
4. JWT 기반 세션 관리

### 제약조건

- 토큰 만료 시간: 24시간

## Decisions

- [x] 인증 프로토콜: OAuth 2.0
- [x] 세션 관리: JWT
- [x] 토큰 만료: 24시간
- [ ] 리프레시 토큰 정책 (미정)

## Related Documents

### Upstream

- tasks/requirements.md#인증

### Downstream

- src/auth/oauth.py (구현 예정)
- docs/architecture/auth-flow.md (작성 예정)

## Notes

- 리프레시 토큰 정책은 추후 논의 필요
- PKCE 적용 여부 검토 필요

---

*Generated by save-scenario skill*

예제 2: 시나리오 이름 자동 추론

입력:

/save-scenario

대화 내용에서 핵심 키워드를 추출하여 자동으로 파일명을 생성합니다.

대화 컨텍스트:

사용자: 대시보드에 실시간 차트가 필요해요. WebSocket으로 데이터를 받아서 Chart.js로 렌더링하면 될 것 같아요.

출력 파일:

docs/references/scenarios/2026-01-21_실시간-대시보드-차트.md

예제 3: 기술 결정 시나리오

입력:

/save-scenario 데이터베이스-선택

대화 컨텍스트:

사용자: PostgreSQL과 MongoDB 중에서 고민 중이에요. Claude: 관계형 데이터가 많고 트랜잭션이 중요하다면 PostgreSQL을 추천합니다. 사용자: 맞아요, 트랜잭션이 중요해요. PostgreSQL로 하겠습니다.

출력 파일:

docs/references/scenarios/2026-01-21_데이터베이스-선택.md

# 데이터베이스 선택

## 메타데이터

| 항목 | 내용 |
|------|------|
| 날짜 | 2026-01-21 |
| 작성자 | Claude Code |
| 상태 | Draft |

## Summary

프로젝트 메인 데이터베이스로 PostgreSQL 선택. 트랜잭션 지원과 관계형 데이터 처리 요구사항 충족.

## Details

### 배경

프로젝트 데이터베이스 선택을 위한 기술 검토 진행.

### 요구사항

1. 트랜잭션 지원 필수
2. 관계형 데이터 처리
3. 안정성과 성숙도

### 제약조건

- 클라우드 환경 호환성 필요

## Decisions

- [x] 메인 DB: PostgreSQL
- [ ] ORM 선택 (미정)
- [ ] 마이그레이션 도구 (미정)

## Related Documents

### Upstream

- 초기 기술 스택 논의

### Downstream

- docs/adr/ADR-001-database-selection.md (작성 예정)
- config/database.yaml (설정 예정)

## Notes

- MongoDB는 로그 저장용으로 추후 검토 가능
- ADR 문서로 결정 이력 공식화 필요

---

*Generated by save-scenario skill*

연관 스킬

스킬관계설명
[@skills/prd-workflow/SKILL.md]호출처PRD 워크플로우에서 호출
[@skills/sync-docs/SKILL.md]후속저장된 시나리오를 기반으로 관련 문서 업데이트
[@skills/doc-prd/SKILL.md]후속시나리오들을 종합하여 PRD 문서 생성
[@skills/doc-adr/SKILL.md]후속기술 결정 시나리오를 ADR로 공식화

Changelog

날짜버전변경 내용
2026-01-211.1.1관련 스킬 섹션 추가 (prd-workflow 역참조)
2026-01-211.1.0전체 한국어화 (Instructions → 지침)
2026-01-211.0.0초기 생성