원클릭으로
ask-user-question-rules
AskUserQuestion 호출 시 질문/옵션 작성 규칙. 다른 스킬이 prerequisite로 로드하여 사용. 사용자가 "무슨 말이야?"로 되묻거나 "충분하다"만 누르는 의례화 패턴 차단.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
AskUserQuestion 호출 시 질문/옵션 작성 규칙. 다른 스킬이 prerequisite로 로드하여 사용. 사용자가 "무슨 말이야?"로 되묻거나 "충분하다"만 누르는 의례화 패턴 차단.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
현재 worktree를 최신 production 기반 새 branch로 in-place 전환해야 할 때 사용한다. "/to-production", "production으로 옮겨", "production 바라보게", "hotfix로 다시 쌓아" 요청에 사용한다. 기존 작업 commit은 backup 후 cherry-pick하고, 새 worktree가 필요하면 /wt fork --hotfix가 담당한다.
열린 PR의 리뷰 코멘트나 changes requested에 대해 부모/현재 대화와 작업 내역을 확인한 뒤, 표면적 답변이 아니라 근본 원인을 판단해 코드 수정·커밋·푸시·스레드 답글·review re-request까지 수행해야 할 때 사용한다. `--push-only` 모드에서는 코멘트/re-request 없이 커밋·푸시 후 수동 게시용 답글 초안을 세션에서 다듬는다. "PR 코멘트 대응", "리뷰 대응", "이거 대응작업-커밋-푸시-코멘트까지", "근본적으로 대응", "대응할 게 없으면 근거 코멘트" 요청에 사용한다.
Local guide for using interactive_shell in this repo. Prefer it for dev servers, TUI apps, REPLs, database shells, log viewers, and commands that need a visible terminal overlay. Do not use it for subagent-style delegation; use the subagent tool for that.
열린 PR의 GitHub Actions/CI 실패를 분석해 원인을 분류하고, 코드·generated artifact·테스트·환경 문제를 근본 대응한 뒤 검증, 커밋, push까지 수행해야 할 때 사용한다. "CI 실패 대응", "체크 실패 봐줘", "Actions 실패 고쳐줘", "pr-checks 실패", "ci-ship" 요청에 사용한다.
PR을 만들기 전 또는 remote에 올리기 전, 변경사항을 의도 단위로 커밋하고 lint/typecheck/test/build 같은 사전 검증을 통과시킨 뒤 push해야 할 때 사용한다. "ship 해줘", "커밋해서 푸시", "올리기 전에 검증", "push 준비" 요청에 사용한다.
PR/구현 검증을 PM·비개발자도 이해할 수 있는 캡처 중심 HTML 리포트로 만든다. Jira/Notion/Slack/와이어프레임/PR test plan 같은 기획 근거를 사용자-facing 동작과 매핑하고, 핵심 UI 흐름은 스크린샷/GIF를 primary evidence로 증명한다. 로직/API/DB/code diff 검증은 하단 기술 보조 검증으로 정리한다. 기본은 로컬 확인용이며 업로드/PR 업데이트는 명시 요청 시에만 한다.
| name | ask-user-question-rules |
| description | AskUserQuestion 호출 시 질문/옵션 작성 규칙. 다른 스킬이 prerequisite로 로드하여 사용. 사용자가 "무슨 말이야?"로 되묻거나 "충분하다"만 누르는 의례화 패턴 차단. |
이 규칙은 /frame, /decide, /verify 등 사용자에게 결정을 묻는 모든 스킬에 자동 적용된다.
AskUserQuestion은 특정 UI 컴포넌트만을 뜻하지 않는다. Pi 환경에서 native interactive UI가 없거나 약하면 번호형 텍스트 메뉴로 같은 의사결정 게이트를 구현한다.
과거 분석에서 다음 어색한 패턴들이 확인됐다. 이 규칙을 어기면 사용자가 "무슨 말이야?"로 되묻거나, "충분하다"만 누르는 의례화가 발생한다.
AskUserQuestion은 “짧은 질문만 던지는 도구”가 아니다. 질문 제목은 짧게 유지하되, 사용자가 무엇을 판단해야 하는지 알 수 있도록 판단 맥락 카드를 함께 제공한다.
| 규칙 | 좋은 예 | 나쁜 예 |
|---|---|---|
| 짧은 질문 제목 + 판단 맥락 카드 | 제목: "검증 범위 선택" + 현재 이해/막힌 결정/추천/선택 후 변화 | "어떻게 할까요?"만 출력 |
| 맥락은 구조화해서 보여주기 | 현재 이해 / 막힌 결정 / 왜 중요한가 / 추천 / 선택 후 달라지는 것 / 질문 | 배경을 생략하거나 긴 산문으로 뭉개기 |
| 하나의 결정만 묻기 | "guard 위치를 어디까지 둘까요?" | "guard 위치 + 테스트 범위 + 후속 PR 여부" 동시 결정 |
| 결정 결과가 달라져야 함 | 선택마다 frame/decision/verify/구현이 달라짐 | 선택해도 같은 행동으로 귀결 |
질문 제목: {짧은 제목}
현재 이해:
- {코드/문서/사용자 발화로 확인한 사실}
- {아직 가정인 부분은 가정이라고 표시}
막힌 결정:
{지금 사용자가 선택해야 다음 행동/성공 기준이 달라지는 지점}
왜 중요한가:
{선택에 따라 달라지는 구현 범위, 검증 축, 위험, 롤백 비용}
추천:
{추천안이 있으면 이유와 함께 제시. 없으면 이 섹션을 생략}
선택 후 달라지는 것:
- A를 고르면: {달라지는 점}
- B를 고르면: {달라지는 점}
질문:
{한 가지 결정 질문}
규칙:
question은 짧은 제목만 써도 된다. 단, 맥락 카드 없이 제목만 단독으로 묻지 않는다.markdown/본문 영역에 두고, question 필드는 짧은 제목 한 줄로만 보낸다. question에 카드 전체를 넣어 타이틀처럼 렌더링되게 만들지 않는다.현재 이해 / 막힌 결정 / 선택 후 달라지는 것은 보여준다.인터랙티브 선택 UI를 사용할 수 없으면 아래 형식을 사용한다.
질문 제목: 검증 축 선택
현재 이해:
- 이번 변경은 UI와 데이터 저장 경로를 모두 건드립니다.
- 전체 verify-report를 바로 돌리면 비용이 크므로 먼저 닫을 축을 골라야 합니다.
막힌 결정:
어떤 축을 먼저 PASS 증거로 닫을지에 따라 실행할 검증과 캡처 범위가 달라집니다.
선택 후 달라지는 것:
- UI 동작: 화면 캡처/사용자 플로우를 먼저 확인
- 데이터 정합성: 저장/조회/API 응답을 먼저 확인
- 권한 경계: role별 접근 가능/불가 조건을 먼저 확인
- 범위 축소: 이번 PR에서 제외할 항목을 먼저 확정
질문:
어떤 검증 축을 우선할까요?
1. UI 동작 — 사용자가 보는 흐름을 캡처로 확인
2. 데이터 정합성 — 저장/조회/API 응답을 우선 확인
3. 권한 경계 — 접근 가능/불가 조건을 우선 확인
4. 범위 축소 — 이번 PR에서 제외할 항목을 먼저 확정
답은 번호로 주세요. 예: `1` 또는 `1,3`
규칙:
1, 2, 1,3처럼 답하면 해당 option을 선택한 것으로 간주하고 바로 진행한다.multiSelect: true에 해당하는 질문만 쉼표 복수 선택을 허용한다.(명백) 근거가 있는 질문/frame에서 목표·범위·성공 기준·검증 축을 좁힐 때는 AI가 보기엔 명백한 추천안도 묻는다. 이때 (명백: ...)은 질문을 생략하는 면죄부가 아니라, 사용자가 “내가 놓친 게 있나?”라고 혼동하지 않도록 판단 근거를 보여주는 주석이다.
질문 제목: 범위 선택
현재 이해:
- 요청의 핵심은 버튼 노출 조건입니다.
- 다만 실패 메시지 포함 여부에 따라 성공 기준과 검증 범위가 달라집니다.
막힌 결정:
직접 증상만 고칠지, 실패 경로까지 이번 성공 기준에 포함할지 정해야 합니다.
추천:
(명백: 실패 메시지까지 포함해야 사용자가 보는 취소 흐름이 닫힙니다.)
2번을 추천합니다.
선택 후 달라지는 것:
- 1번: 버튼 조건만 테스트하고 실패 메시지는 범위 밖으로 남김
- 2번: 버튼 조건과 실패 메시지를 함께 success criteria에 넣음
- 3번: 예약 상태 전환 전체를 추가 조사해 작업 무게가 커짐
질문:
이번 범위를 어디까지 잡을까요?
1. 버튼 노출 조건만 수정 — 최소 범위
2. 버튼 조건 + 실패 메시지까지 수정 — 추천
3. 예약 상태 전환 전체 점검 — 넓은 범위
규칙:
(명백)은 질문 본문 앞에 두고, 옵션 안에는 결론처럼 넣지 않는다.(명백)을 붙여도 질문으로 만들지 않는다.| 규칙 | 좋은 예 | 나쁜 예 |
|---|---|---|
| 짧은 명령형 또는 짧은 명사형 (30자 이내 권장) | "그대로 진행 / 재고 / 멈춤" | "차단상태에서 외부 X 재수신 → PopConfirm 두 번 노출 가능 (사용자 혼란). 현재 자주 발생 안 됨." |
| 옵션 형식 통일 | 모두 명령형: "진행 / 재고 / 멈춤" | 진술문 + 명령형 혼합 |
| 옵션 안에 결론 미리 적기 금지 | "옵션 A — 처리 방식 1" | "옵션 A — 처리됨 (이미 코드에 반영)" |
| 상호 배타 (mutually exclusive) | "A / B / C" 명확히 다른 선택 | "A / A의 변형 / 절충" 같은 미묘한 차이 |
| 옵션 4개 이내 권장 | 2~4개 | 5개 이상 (인지 부담) |
| 사실 진술을 옵션으로 만들지 않음 | "이 시나리오를 처리할까요?" + [예/아니오/follow-up] | "이 시나리오는 자주 발생 안 함" (이건 옵션 아니라 진술) |
| "충분하다 — 다음 단계로 진행" 같은 통과용 옵션 금지 | 검증 결과는 본문에 보고, 사용자 결정 필요한 것만 옵션화 | 처리된 항목 나열 + "충분하다" |
도전 질문 만들 때:
/frame에서는 “성공 기준이 모호한가 / 롤백 비용 큰 선택은 뭔가 / 무엇을 안 할지 정했나”를 흔드는 독립 질문으로 사용한다./decide에서는 모든 결정에 tradeoff challenge를 수행하되 low/medium/high/ask_first 강도만 조절한다.[성공 기준에 추가 / 범위 밖으로 명시 / 먼저 탐색], decide에서는 [선택 유지 / 보완 후 유지 / 재고 / frame으로 돌아가기]처럼 선택 후 canonical 기록이 달라져야 한다.스킬 안에서 한국어를 생성할 때:
같은 세션에서 동일한 메뉴를 연속 두 번 띄우지 않는다.
"이전 옵션에서 X를 보완하여 다시 묻습니다:"검증/엣지 케이스 분류 결과 모든 항목이 처리됨이면:
AskUserQuestion 호출 직전 다음 자문:
체크리스트 항목 중 하나라도 NO면 질문을 다시 작성한다.