Communitygithub.com

챌린지-플랜

실행 전 다중 에이전트의 적대적 검토를 통해 계획과 명세서를 강화하는 에이전트 스킬 및 CLI 도구입니다. Claude Code/Codex 구독만 있으면 사용 가능하며 별도 API 키가 필요하지 않습니다.

챌린지-플랜란 무엇인가요?

이 스킬은 실제 실행 전에 계획이나 명세서에 대해 다중 CLI 기반의 교차 검증을 수행하여 재작업을 줄여줍니다. `writing-plans → challenge-plans → executing-plans`라는 워크플로우에 자연스럽게 끼워질 수 있으며, 단일 문서(명세서, diff, 일반 계획 등)를 입력받아 6가지 상태(승인, 조건부 승인 등)와 생존한 이의제기(검증됨/미검증)를 출력합니다. `--type spec|diff|plan`으로 다양한 입력 유형을 지원하고, `--profile fast|standard|deep`으로 검토 깊이를 조절하며, `--lang ko`와 같은 언어 코드로 현지화된 리뷰를 제공합니다. 자체 AI 모델을 가지고 있지 않아 Claude Code나 Codex CLI의 구독이 필수이며, `challenge-plans doctor` 명령어로 백엔드 로그인 상태를 확인할 수 있습니다.

지원 대상✓Claude Code✓Codex CLI~Cursor
npx skills add hiadrianchen/challenge-plans

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

챌린지-플랜은(는) 무엇을 하나요?

실행 전 다중 에이전트의 적대적 검토를 통해 계획/명세서를 강화하여 재작업을 줄입니다. 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 상태인 것이 없으면, 맹목적으로 재시도하지 말고 사용자에게 물어본 후, 다음 중 하나로 라우팅하세요:

  1. Claude 또는 ChatGPT 구독은 있지만 CLI가 없거나 로그아웃된 경우 → doctor가 출력하는 정확한 단계를 안내하세요 (설치하거나, claude → /login, 또는 codex에 로그인).
  2. 구독이 없지만 원하는 경우 → 구독 안내 (Claude Pro/Max 또는 ChatGPT) 후 CLI를 설치하고 로그인하도록 안내하세요.
  3. 구독이 없고 원하지 않는 경우 → 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을 사용하세요.

관련 스킬