> **강사용 정답본** · 학생 저장소에는 수업 뒤에 올립니다. 학생용은 [VIBE-REQ-TCOST.md](VIBE-REQ-TCOST.md)(요청서) → [VIBE-Q-TCOST.md](VIBE-Q-TCOST.md).
> 강사가 직접 만든 본: [tcost/](tcost/README.md) (2026-10-28, Claude Code가 아래 SPEC · IMP-PLAN을 보고 직접 씀, 테스트 13개). CLI 에이전트에 아래 요청문을 보내 재지는 않았습니다. 강사 바이브 코딩 시간은 6절에 수업 때 적습니다.
## 1. `Doc/TODO.md` 예
```markdown
# tcost TODO
## 만들고 싶은 것
어느 폴더에서나 `tcost`로 LLM을 부르기 전에 글 · 워크플로우의 토큰과 비용을 계산하고,
테스트 보고서의 실제 사용량을 모아 한 달을 예상하는 도구. 화면(TUI)도, 다른 프로그램용 결과도. OpenAI는 부르지 않음.
## 요청의 말 → 할 일
| # | 요청의 말 | 할 일 | 꼭 · 나중 |
| --- | --- | --- | --- |
| ① | 글 파일의 토큰 · 모델마다 비용 | 토큰 수, 한 번 · 1,000번 | 꼭 |
| ② | 출력도 | 출력 토큰을 가정해 더함 | 꼭 |
| ③ | 단가는 파일로, 날짜 · 출처, 한 달 넘으면 알림 | 단가 파일 · 오래됨 알림 | 꼭 |
| ④ | 워크플로우의 LLM 단계 | 노드 · 모델 · 고정 지시문 토큰 | 나중 |
| ⑤ | 보고서 모으기 | 합 · 평균 · 모델별 · 사람별 · 시간대별 | 꼭 |
| ⑥ | 한 달에 얼마 | 평균 × 하루 × 일하는 날 | 꼭 |
| ⑦ | 두 모델 나란히 | 몇 % 싼지 | 나중 |
| ⑧ | 화면 | 탭 셋 · 막대 | 꼭 |
| ⑨ | 예산이면 하루 몇 번 | 예산 ÷ 한 번 비용 | 나중 |
| ⑩ | 다른 프로그램 · 넘으면 실패 | JSON · 종료 코드 | 나중 |
| ⑪ | 폴더 통째로 | 글 · 워크플로우 · 보고서로 나눔 | 나중 |
| ⑫ | 없는 모델은 0원 아님 | 오류 · 목록 | 나중 |
| 끝 | OpenAI를 부르지 않기 | 토큰은 이 컴퓨터에서, 테스트도 | 꼭 |
## 걱정되는 것
- 내가 센 토큰과 OpenAI가 센 토큰이 다를 수 있다 → 보고서의 prompt_tokens와 비교
- 평균의 분모 (요청 수 · 호출 수)
- 보고서에 usage가 없는 결과 (400 · 429 · 요약)
- 오늘 날짜에 따라 달라지는 테스트
```
## 2. `Doc/SPEC.md` 요점
VIBE-Q의 요구 표(R1~R14)와 같습니다. 학생 SPEC과 비교할 때 자주 빠지는 것:
| 자주 빠지는 것 | 왜 필요한가 |
| --- | --- |
| 비용 식 · 반올림을 데이터 API 계약과 같게 (소수 8자리) | 보고서의 `cost_usd`와 나란히 놓으려면 |
| 평균은 요청 수로 | `calls`로 나누면 한 달이 작게 나옴 (Lab 03 과제 1) |
| `usage`가 없는 결과는 **건너뛰고 수를 알림** | 건너뛴 것을 0원으로 세면 평균이 작아짐 |
| "오늘"을 함수에 넘김 | 날짜 알림 테스트가 날마다 같게 |
| 고정 지시문만 센다고 밝힘 | 실제 입력(질문 · FAQ 포함)보다 작게 나옴 |
| 단가 파일을 패키지에 함께 | `uv tool install` 뒤 다른 폴더에서 단가를 못 찾음 |
## 3. `Doc/IMP-PLAN.md`
[tcost/Doc/IMP-PLAN.md](tcost/Doc/IMP-PLAN.md) — 엔진 1단계(R1 · R2 · R3 · R13) → 엔진 2단계(R5 · R6) → TUI 1단계(R8) → 설치(R14) → 엔진 3단계(R4 · R7 · R12) → 엔진 4단계(R9 · R10 · R11).
- 풀이 거리: 미리 계산은 질문 글만 셌고, 실제는 지시문 · FAQ가 더해져 조금 더 큽니다. "부르기 전 계산은 **하한**에 가깝다"는 것, 그래서 `tcost workflow`(고정 지시문)와 `count`(질문)를 **더해** 어림해야 한다는 것을 짚습니다.
- 처음 만든 본은 폴더의 `.md`를 모두 지시문으로 셌습니다. 75일차 폴더를 열면 실습 문서 · 결과 기록까지 "지시문"으로 나와 쓸 수 없어서, 글 파일을 `.txt` · `.prompt`로 좁히고 화면은 폴더 여럿(`tcost reference runs`)을 받게 바꿨습니다. **요청서의 ⑪ "알아서 나눠"가 무엇을 뜻하는지는 직접 써 봐야 드러난다**는 예입니다.
## 6. 강사 바이브 코딩 (8교시, 수업 때 적음)
| 주제 | 요청문 요지 | 걸린 시간 · 결과 |
| --- | --- | --- |
| 실제와 맞춰 보기 | "보고서의 질문 글을 세어 prompt_tokens와 차이를 % 로" | |
| 캐시 입력 단가 | "cached_tokens 가 있으면 cached input 단가로" | |
| 비용 관문 붙이기 | "tcost workflow --max-usd 를 tver save 앞에" | |