챌린지-플랜은(는) 무엇을 하나요?
실행 전 다중 에이전트의 적대적 검토를 통해 계획/명세서를 강화하여 재작업을 줄입니다. writing-plans → challenge-plans → executing-plans 워크플로우에 삽입됩니다.
사용 시기 (라우팅 신호)
- 입력이 단일 초안 문서(명세서/계획/diff/설계 문서/ADR)이고 의도가 "검토 / 결함 찾기 / 실행 가능성 확인 / 강화 / QA"인 경우 → 이 스킬 사용.
- 에이전트가 작업을 완료하고 사용자에게 결정 또는 QA를 막 요청하려는 경우 → 먼저 이 스킬을 실행하고 교차 검토 권장 사항을 제시하세요.
- 입력이 선택할 수 있는 2개 이상의 옵션인 경우 → 형제 스킬인
weigh-options(숙의/투표)를 사용하세요. 이 스킬은 해당하지 않습니다.
실행
# PyPI에서 설치 (pip install challenge-plans) — 콘솔 명령어를 바로 사용 가능:
challenge-plans doctor # 먼저 어댑터 로그인 상태 확인
challenge-plans run <artifact> --type spec --profile standard --sink markdown # 계획/명세서 검토
challenge-plans run <artifact> --type spec --profile standard --sink markdown --lang ko # 현지화된 출력
# 코드 diff 게이트: git diff > change.diff && challenge-plans run change.diff --type diff --sink markdown
# 소스 체크아웃에서 직접 실행하는 경우 (pip 설치 아님): PYTHONPATH=src python3 -m challenge_plans.cli <args>
--type spec|diff|plan(decision평가 기준은 아직 보류 중 — 의도적으로 종료 코드 2로 종료).diff는 원시git diff를 검토합니다.plan은 (개발 명세서뿐만 아니라) 여행, 출시, 채용 등 모든 계획을 도메인 중립적 실패 유형(누락된 성공 기준 / 무시된 제약 / 해결되지 않은 위험 / 순서 차이 / 명시되지 않은 가정 / 목표 불일치 / 되돌릴 수 없음 / 대비책 없음)과 실행 가능성·위험·목표 정렬 관점으로 검토합니다. 모두 동일한 판정 파이프라인을 실행합니다.--profile fast|standard|deep,--sink stdout|markdown,--enforce(비승인 판정 시 0이 아닌 종료 코드 반환; 기본 조언 모드는 0으로 종료).--lang <코드>(기본값en): 사용자 언어로 리뷰 내용을 작성합니다. 예:--lang ko. 사용자 언어에 맞게 이 값을 설정하면 전체 리뷰가 현지화되어 반환됩니다. JSON 키 / 열거형 /L12-15앵커는 안정적으로 유지됩니다.CHALLENGE_PLANS_LANG환경 변수를 내보내는 것과 동일합니다.- 출력: 6가지 상태 판정 + 생존한 이의제기.
[sev✓]= 다중 패밀리 Verifier 확인됨, 강제 차단 가능;[sev?]= 미확인, 참고용.
백엔드가 준비되지 않은 경우
challenge-plans는 최소 하나의 로그인된 구독 CLI가 필요합니다 (자체 모델이 없으며 API 키를 사용하지 않습니다). doctor에서 ready 상태인 것이 없으면, 맹목적으로 재시도하지 말고 사용자에게 물어본 후, 다음 중 하나로 라우팅하세요:
- Claude 또는 ChatGPT 구독은 있지만 CLI가 없거나 로그아웃된 경우 →
doctor가 출력하는 정확한 단계를 안내하세요 (설치하거나,claude→/login, 또는codex에 로그인). - 구독이 없지만 원하는 경우 → 구독 안내 (Claude Pro/Max 또는 ChatGPT) 후 CLI를 설치하고 로그인하도록 안내하세요.
- 구독이 없고 원하지 않는 경우 → challenge-plans가 구독 없이는 실행될 수 없다고 설명하고 중단하세요 — 반복하지 마세요.
doctor는 이미 백엔드별 해결 방법과 이 안내를 함께 출력합니다. 사용자에게 이 정보를 표시하고 조용히 실패하지 마세요.
사용자에게 제시하기
판정 + 생존한 이의제기(✓ 검증됨 vs ? 미검증) + 누락된 필수 항목을 "제 교차 검토 권장 사항"으로 표시한 후 사용자가 결정하도록 하세요. 맨손으로 결정을 넘기지 마세요. 전체 내용은 README.md를 참조하세요.
계획 수립 스킬과의 조합
- superpowers (
writing-plans → executing-plans):writing-plans가 계획 파일(기본 경로docs/superpowers/plans/<date>-<feature>.md— 실제 경로 확인)을 저장한 후,executing-plans전에challenge-plans run <plan> --type spec을 실행하세요. 이는 superpowers에 내장된plan-document-reviewer와 동일한 실행 전 검토 지점을 차지하지만, 다중 CLI 교차 패밀리 검증으로 수행됩니다. 생존한 이의제기는 계획에 다시 반영한 후 실행하세요. - grill-me (mattpocock/skills): 상호 보완적이며 더 이른 단계에서 사용합니다 — 계획이 형성되는 동안 사용자와 대화형으로 정렬합니다 (파일 출력 없음). 작성된 계획/PRD가 존재한 후에 challenge-plans를 실행하세요.
- challenge-plans는 자동으로 호출되지 않습니다. 호출하는 에이전트가 이 지점에 연결합니다.
--type plan/decision평가 기준은 아직 보류 중입니다 — 오늘날에는 계획과 유사한 산문에 대해--type spec을 사용하세요.