2.1 KiB
2.1 KiB
tscan · 강사가 수업 준비 때 직접 만든 본 (2026-10-26)
정답 자료 · 학생 저장소에는 수업 뒤 VIBE-A-TSCAN.md와 함께 올립니다. 이 본은 강사가 CLI 에이전트에 단계 요청문을 보내 만든 것이 아니라, Claude Code가 VIBE-A의 SPEC · IMP-PLAN을 보고 직접 썼습니다. 학생이 만든 것과 파일 구성이 달라도 됩니다. 요구 R1~R14의 확인 방법이 같으면 됩니다.
설치 · 실행
cd ~/aio-01d4-stu/Last3Mon/73/tscan
uv sync && uv run pytest -q # 가짜 비밀 테스트 12개 (가짜 값은 테스트 안에서 만듦)
uv tool install --editable . # 어느 폴더에서나 tscan (R14)
cd /tmp && tscan --help
| 하고 싶은 것 | 명령 |
|---|---|
| 폴더 검사 (글자) | tscan scan <폴더> --plain · 요약 --summary · 다른 프로그램용 --json |
| 화면(TUI) | tscan <폴더> ([i] 무시 목록에, [r] 다시, [q] 끝) |
| 커밋 전 검사 | tscan staged (찾으면 종료 코드 1) |
| 훅 | tscan install-hook · tscan uninstall-hook (남의 훅은 건드리지 않음) |
| 지난 커밋 | tscan history --max 200 |
| 무시 | .tscanignore: path:line · kind:glob · glob |
| 사용자 모양 | .tscan.toml 또는 ~/.tscan/rules.toml: [[rule]] name = "employee_id", pattern = 'E-\d{6}' |
종료 코드: 0 없음, 1 찾음, 2 오류 (저장소가 아님, 남의 훅).
파일
| 파일 | 하는 일 |
|---|---|
src/tscan/scanner.py |
종류별 정규식(경계), 가리기, 글자 정리(NFKC), 한 줄 가리기(미리 보기) |
src/tscan/files.py |
폴더 훑기 · 건너뛰기, .env 값, 무시 목록, 사용자 모양 |
src/tscan/gitscan.py |
staged(index 내용), 훅 설치 · 해제, 지난 커밋 |
src/tscan/cli.py |
명령줄, --plain · --json · --summary, 종료 코드 |
src/tscan/app.py |
Textual 화면 (worker, 가린 미리 보기, [i]) |
tests/conftest.py |
가짜 비밀을 테스트 안에서 이어 붙여 임시 폴더 · 임시 저장소에 |