discover-productlisted
Install: claude install-skill kohj1018/agentic-dev-harness
이 skill은 메인 세션이 R0~R4 라운드를 직접 운전하는 절차서다.
무거운 추론(R0의 페르소나 후보, R1의 pain inventory)은 architect 단발 sub-call로 위임한다.
R0~R3 산출물은 메인 컨텍스트에 누적시키지 않고 `docs/10-charter/DISCOVERY.md`에 누적 적재한다.
**트레이드오프 명시** — 이 skill은 의도적으로 fork 격리를 풀고 메인 세션이 사용자 인터랙션을 직접 운전한다. R0~R3 산출물은 `DISCOVERY.md`에 적재해 메인 컨텍스트 부담을 최소화하지만, 라운드 요약 일부는 메인에 남는다. 종료 후 사용자가 `/clear` 또는 새 세션으로 컨텍스트를 정리할 것을 권장한다.
**Codex**: 본 skill은 wrapper 미보유(자연어 호출) — Codex에서는 "Follow `.claude/skills/discover-product/SKILL.md`"로 호출한다(목록 SSOT = README, ADR-010#amend-3·#amend-4).
입력:
- `$ARGUMENTS`에 자연어 설명이 들어온다.
- `--fast` 플래그가 있으면 R0의 페르소나 후보 제시·선택을 건너뛰고 R3(가정 정리)도 생략한 채 R1+R2+R4만 도는 단축 흐름. 단, R1은 페르소나 입력이 필요하므로 다음 절차로 페르소나를 확보한다:
1. `$ARGUMENTS`에 페르소나가 한 줄이라도 명시되어 있으면 그것을 그대로 사용한다(예: `--fast 회고 SaaS — 페르소나: 직장인 개인 사용자`).
2. 명시되지 않았으면 architect 단발 sub-call로 페르소나 후보 1개를 *자동 선정*하고, 해당 페르소나를 가정으로 표시해 R1을 진행한다(출력에 "이 페르소나는 fast 모드의 R0 사용자 확인 단계를 생략한 자동 선정 결과이며, 가정으로 취급한다"를 명시).
3. 사용자가 마음에 들지 않으면 `/discover-product` (fast 없이)로 재실행하면 된다는 안내를 출력에 포함.
사용자 응답 수단:
- 라운드별 응답은 자연어로만 받는다(`AskUserQuestion`은 [공식 문서](https://code.claude.com/docs/en/agent-sdk/user-input)의 Limitations 섹션 기준 sub-agent에서 사용 불가).
- 매 라운드 끝에 `skip` / `good` / `refine: ...`로 응답할 수 있다.
라운드 출력 포맷 (ADR-046 출력 스타일 — 사용자-facing 표면만 압축, 내부 분석·DISCOVERY.md 적재 내용은 불변):
각 라운드는 다음 고정 포맷으로 압축해 출력한다.
```
이번 결정: <1~2줄>
확인 필요: <있으면 ≤3개, 없으면 생략>
답변: skip / good / refine: …
```
단, 사용자가 *선택해야 하는* 옵션(R0 페르소나 후보·R1 pain 목록 등)은 선택 가능하도록 보존한다 — 압축은 framing·서술에만 적용하고 선택지 자체는 빠뜨리지 않는다(A