Skip to content

feat: 예산 초과 시 사용액·권장값 표시 및 --no-max-budget 추가 (#13) - #14

Merged
serithemage merged 6 commits into
mainfrom
feat/issue-13-budget-guidance
Sep 23, 2026
Merged

serithemage merged 6 commits into
mainfrom
feat/issue-13-budget-guidance

Conversation

@serithemage

Copy link
Copy Markdown
Contributor

Closes #13

변경 요약

  • 에러 메시지: Claude 예산 초과 시 SDK가 보고한 사용액, 한도, 턴 수와 재시도용 --max-budget 권장값을 표시한다. 권장값은 사용액과 한도 중 큰 값의 2배를 $0.50 단위로 올림한 값이다. 중단된 실행은 완료까지 필요한 총비용을 알 수 없기 때문에 여유를 두었다.
  • 기본값: 일반 분석과 --diagnose의 기본 --max-budget을 0.50에서 2.00으로 올렸다. 상수 DEFAULT_MAX_BUDGET_USD는 src/engines/selection.ts에 두고 analyzer에서 다시 export한다.
  • --no-max-budget: 예산을 Infinity로 표현하고, SDK 호출 시 maxBudgetUsd를 생략한다. Codex에는 달러 예산 제한이 없으므로 --engine codex와 함께 써도 거부하지 않는다.
  • 문서: README(영문·한글), docs/process-diagnosis.md의 옵션 표와 예상 비용 설명을 갱신했다.

CLI 출력 예시

분석 예산을 초과했습니다 (사용: $0.53 / 한도: $0.50, 37턴). --max-budget 1.50 이상으로 다시 실행해 보세요.
  --max-budget <number>    Claude-only maximum budget in USD (default: "2.00")
  --no-max-budget          Run Claude without a budget cap

테스트

  • npx tsc --noEmit 통과
  • npm test 181개 통과 (사용액 표시, 사용액 누락 시 폴백, 무제한 예산의 SDK 옵션 생략, 진단 CLI의 --no-max-budget 매핑 테스트 추가)

🤖 Generated with Claude Code

serithemage and others added 6 commits September 23, 2026 07:59
- engines/ 디스패처와 격리된 read-only Codex CLI 어댑터 추가
- 캐시 키와 진단 스냅샷에 엔진 정보를 보존하고, 엔진이 다른 비교/재개는 거부
- 설정 파일(engine 필드), 리포트, 문서, OpenSpec 변경안과 구현 계획 추가

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- CLAUDE.md 전용 내용(개요, 카테고리 가중치, 채점 규칙, 데이터 흐름)을 AGENTS.md로 병합
- CLAUDE.md는 @AGENTS.md import만 남겨 Claude Code와 Codex가 같은 지침을 읽도록 함
- 존재하지 않는 src/checks/ 안내 제거, 모듈 목록을 실제 구조에 맞춤

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- 예산 초과 에러에 SDK가 보고한 사용액, 한도, 턴 수와 재시도용 --max-budget 권장값을 표시
- 일반 분석과 --diagnose의 기본 예산을 $0.50에서 $2.00으로 상향 (상수는 engines/selection.ts로 통합)
- --no-max-budget 옵션 추가: SDK에 예산 상한을 넘기지 않으며, 달러 제한이 없는 Codex에서도 허용

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- 진단 후속 단계가 남은 예산을 초과해도 에러의 사용액·한도·권장값을 전체 실행 기준으로 표시
- --no-max-budget 실행에서 SDK가 비용을 보고하지 않아도 예산이 0으로 바뀌어 인터뷰를 건너뛰지 않도록 수정

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@serithemage

Copy link
Copy Markdown
Contributor Author

코드 리뷰 반영 (커밋: fix: 코드 리뷰 반영):

  1. 다단계 진단의 예산 안내 오류: 진단 두 번째 단계는 남은 예산만 받는데, 이 단계가 예산을 초과하면 에러가 남은 금액을 사용자 한도로 표시하고 더 작은 재시도 값을 권장했습니다. 이제 EngineRequest.budgetTotalUsd/budgetSpentUsd로 전체 한도와 이전 단계 사용액을 전달해, 예를 들어 사용: $2.01 / 한도: $2.00, 권장 4.50처럼 전체 실행 기준으로 안내합니다.
  2. 무제한 예산이 0으로 바뀌는 문제: --no-max-budget 실행에서 SDK가 total_cost_usd를 보고하지 않으면 예산이 0으로 바뀌어 인터뷰를 건너뛰었습니다. 예산이 무제한이면 그대로 유지하도록 고쳤습니다.

두 결함 모두 회귀 테스트를 추가했으며 npm test 183개가 통과했습니다.

@serithemage
serithemage merged commit f3ab47d into main Sep 23, 2026
3 checks passed
@serithemage
serithemage deleted the feat/issue-13-budget-guidance branch September 23, 2026 02:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

예산 초과 시 사용액 표시, 기본 예산 상향, 예산 무제한 옵션 추가

1 participant