product_spec_domain: cli/interactive-add
Interactive Add
Track: interactive-add-20260412
Overview
ask add 명령을 인자 없이 실행하면 interactive 모드로 진입하여 프로젝트 의존성을 기반으로 라이브러리를 추천하고, 사용자가 복수 라이브러리를 선택하거나 직접 입력하여 한번에 추가할 수 있는 기능을 구현합니다.
Requirements
Functional Requirements
Non-functional Requirements
User Stories
- US-1: 나는 개발자로서
ask add를 실행하면, 프로젝트 의존성 중 등록되지 않은 라이브러리 목록을 보고 선택할 수 있다.
- US-2: 나는 개발자로서 추천에 없는 라이브러리도 직접 입력하여 추가할 수 있다.
- US-3: 나는 개발자로서 여러 라이브러리를 한번에 선택하여 배치로 추가할 수 있다.
Acceptance Criteria
Out of Scope
- 기존
ask add <spec> 명령의 동작 변경
- 의존성 버전 선택 UI (lockfile resolved version 사용)
- PyPI, Go, Cargo 등 비-npm ecosystem의 의존성 스캔 (npm-first, 향후 확장)
- Registry 검색/필터링 UI (추천 목록만 제공)
product_spec_domain: cli/interactive-add
Interactive Add
Overview
ask add명령을 인자 없이 실행하면 interactive 모드로 진입하여 프로젝트 의존성을 기반으로 라이브러리를 추천하고, 사용자가 복수 라이브러리를 선택하거나 직접 입력하여 한번에 추가할 수 있는 기능을 구현합니다.Requirements
Functional Requirements
ask add을 인자 없이 실행하면 interactive 모드로 진입한다. 기존ask add <spec>동작은 그대로 유지한다.detectEcosystem()로직을 재사용한다.npm:lodash,github:owner/repo@v1).runInstall을 실행하여 AGENTS.md 및 SKILL.md를 생성한다.Non-functional Requirements
AbortSignal.timeout패턴).User Stories
ask add를 실행하면, 프로젝트 의존성 중 등록되지 않은 라이브러리 목록을 보고 선택할 수 있다.Acceptance Criteria
ask add(인자 없이) 실행 시 interactive prompt가 표시된다.ask add npm:next(인자 있음) 실행 시 기존과 동일하게 작동한다.ask add(인자 없음) 실행 시 에러와 함께 종료된다.Out of Scope
ask add <spec>명령의 동작 변경