calculatorlisted
Install: claude install-skill 0seobee-seon/seon-tools
# Calculator
## 왜 이 스킬이 필요한가
언어 모델은 긴 곱셈, 연쇄 퍼센트, 단위 환산에서 **조용히** 틀립니다. 틀린 답이 그럴듯하게 보이기 때문에 사용자가 잡아내기 어렵습니다. 그래서 이 스킬의 규칙은 하나입니다: **숫자는 머리로 계산하지 말고 코드로 계산한다.**
계산 엔진은 이 스킬 기준 디렉토리의 `scripts/calc.py`입니다 (스킬 로드 시 안내되는 절대 경로 사용). 표준 라이브러리만 쓰므로 설치할 것이 없습니다.
```bash
python "<skill-dir>/scripts/calc.py" "1234 * 5678"
```
`python`이 없으면 `python3`로 시도하세요. 처음 쓸 때 동작이 의심되면 `--selftest`로 33개 검증을 돌려볼 수 있습니다.
## 작업 흐름
1. **식으로 옮긴다.** 사용자의 말을 하나의 식으로 번역합니다. 중간값을 손으로 계산해 다음 단계에 넣지 마세요 — 한 줄에 이어 붙이거나 `-v`로 변수를 넘기면 반올림 오차가 끼어들 여지가 없습니다.
2. **실행한다.** 여러 값이 필요하면 `-`(stdin) 배치 모드로 한 번에 처리합니다.
3. **자릿수를 확인한다.** 결과의 크기가 상식과 맞는지 봅니다. 어긋나면 단위나 퍼센트 해석을 잘못한 것이지 산술 실수가 아닙니다 — 식을 다시 읽으세요.
4. **식과 함께 답한다.** 사용자가 검증할 수 있도록 사용한 식을 보여주고, 반올림했다면 어디서 했는지 밝히세요. 큰 수를 문장에 인용할 때는 `--comma`로 자리수를 끊어 받아 그대로 옮겨 적으세요 — 자릿수를 눈으로 세다가 틀리는 걸 막아줍니다.
정확한 값과 반올림한 값이 다를 때는 둘 다 제시하는 편이 안전합니다. 예: "정확히는 1,085,342.7원, 원 단위로 끊으면 1,085,343원."
## 기본 사용법
```bash
# 단일 식
python calc.py "8_400_000 * 1.037**12"
# 자리수 구분 (문장에 인용할 때)
python calc.py --comma "2**100"
# 변수 (중간 반올림 방지)
python calc.py -v pv=250000000 -v apr=3.62 "pmt(pv, apr/12, 360)"
# 여러 줄 배치 - 앞 줄에서 정의한 변수를 뒷 줄에서 쓸 수 있음
printf 'net = 12500000\nvat = net * 0.1\nnet + vat\n' | python calc.py -
# 유효숫자 / 소수점 자리 지정
python calc.py --sig 6 "sqrt(2) * 100"
python calc.py --dp 2 "1000 / 7"
# 기계가 읽을 출력
python calc.py --json "pct(37, 250)"
```
## 연산 모드
| 모드 | 언제 쓰나 |
|---|---|
| `--mode decimal` (기본) | 돈, 퍼센트, 일상적인 십진 계산. `0.1 + 0.2`가 정확히 `0.3`이고, 정수만 나오는 연쇄 계산은 임의 정밀도