Strong foundation with clear verb-noun naming (lotto_status, lotto_results, lotto_draw, lotto_buy_precheck, lotto_buy, lotto_deposit). All 6 tools have substantive descriptions (100-300+ chars) explaining WHAT, WHEN, and consequences. Input schemas present with proper Pydantic Field constraints (ge/le/enum). Tool annotations correctly applied (readOnlyHint, destructiveHint). Key gaps: output schemas not formally documented in code; error handling lacks recovery guidance; some parameter descriptions could be more explicit about constraints and dependencies.
로또 6/45 자동번호를 실제 구매한다 (실제 결제). 사람이 elicitation 프롬프트에 결제 금액을 직접 입력해야만 실행된다. 같은 회차를 여러 번 나눠 살 수 있지만 합계는 회차당 한도까지이며, 한도를 넘기는 우회 수단은 없다 (남은 게임 수는 lotto_buy_precheck 로 확인한다).
구매 사전 점검 (드라이런). 게이트 판정과 다음 단계만 알려주고 절대 구매하지 않는다. 회차당 한도가 남아 있으면 이미 구매한 회차라도 남은 만큼 더 살 수 있다. 남은 게임 수는 `round_remaining_games` 에 담긴다.
예치금 충전용 가상계좌를 발급한다. **실제 이체는 사람이 은행에서 해야 한다.** 이 호출만으로는 돈이 움직이지 않는다. 발급된 계좌로 입금하면 예치금이 충전된다.
공개 추첨 결과를 조회한다. 로그인이 필요 없다.
구매 내역과 당첨 결과를 조회한다. 등수는 서버가 계산한 값이다. `round_no` 를 주면 조회 창을 사이트 상한(3개월)까지 넓힌다 — 기본 14일로는 지난 회차를 찾지 못해 "내역 없음"만 나온다. 그보다 오래된 회차는 사이트가 조회를 허용하지 않는다. 실제 조회 창은 반환값의 `window` 에 담긴다.
예치금 잔액·구매 한도·건전구매 서약 유효성을 조회한다.
Output schemas not formally documented. Return types are inferred from code (dict[str, Any]) but no structured schema definitions visible for downstream tool chaining. lotto_results returns 'window' and 'tickets' but LLM cannot see field types or required fields.
Error handling lacks recovery guidance. Code catches LottoError, RoundLimitError, UsageError but returns only error code + message. No actionable next steps (e.g., 'Try lotto_buy_precheck first' or 'Deposit funds via lotto_deposit').
Parameter constraint documentation incomplete. 'days' param has min/max in schema but description does not explicitly state '1-91 days' or explain why 91 is the limit (site constraint). 'amount' enum is declared but description says '허용값: 5,000, 10,000...' in Korean, non-English descriptions reduce LLM clarity.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | <=2025-11-25 | v2 |
Confirmation/elicitation pattern mentioned in lotto_buy docstring ('사람이 elicitation 프롬프트에 결제 금액을 직접 입력해야만 실행된다') but no explicit confirmation tool or dry-run variant visible. Code references require_human_approval but mechanism not shown.
Pagination not implemented. lotto_results returns all tickets in a single response without limit or cursor. Large result sets could exhaust context window. No mention of max result count in description.