llm-adaptation-fidelity-check
원본을 각색한 글이 충실한지 문자열과 숫자로 검사합니다. 인용 그대로, 지어낸 문장·숫자 없음, 누락 선언을 봅니다.
어떤 문제를 푸나The problem
LLM이 원본을 고쳐 쓸 때의 실패는 구체적입니다. 인용이 바뀌고, 어디서도 나온 적 없는 숫자가 생기고, 분량을 채우는 군더더기가 붙고, 문단이 몰래 빠집니다. 이 검사는 또 다른 모델이 아니라 문자열과 숫자 비교로 그것을 확인합니다.
check_fidelity.py는 시나리오 문단이 원본에서 온 것인지(P1), 인용이 그대로인지(P2), 문장이 문단에 매핑되는지(P4), 군더더기 비율(P5), 숫자가 원본에 있는지(P6), 핵심 유지(P7), 누락 선언(P10)을 검사합니다.
이런 분께 맞습니다Who it is for
영상 대본이나 요약처럼 원본을 각색하는 자동 파이프라인에서 사실 왜곡을 막고 싶은 사람.
무엇을 하나What it does
- 숫자는 자릿수 경계로 비교해 '13' 안의 '3'을 일치로 보지 않습니다.
- 빈 인용이나 빈 core_keys는 아무것도 확인하지 않은 것이므로 실패입니다.
- 의역 모드는 글자쌍과 낱말 두 가지로 비교합니다. 한국어도 낱말 단위로 봅니다.
- style_lint.py는 금지 표현을 따옴표 밖에서만 찾고, 대소문자와 줄바꿈을 무시합니다.
직접 돌려 본 출력Real output
저장소의 examples 폴더를 실행한 결과입니다.
$ bash examples/demo.sh
# A faithful adaptation of a source text
$ python3 scripts/check_fidelity.py tests/fixtures/good.json tests/fixtures/source.txt
[PASS] P1 paragraphs are verbatim from the source
[PASS] P2 quotes verbatim
[PASS] P3 no additions
[PASS] P4 every sentence maps to a paragraph
[PASS] P5 framing bounded
[PASS] P6 numbers exist in source
[PASS] P7 core kept
[PASS] P10 dropped == declared
[exit 0]
알아둘 한계Limits
- 의미를 이해하지 못합니다. 부정이나 뜻을 뒤집은 의역은 놓칠 수 있어서 부주의한 추가를 잡는 용도이지 적대적 변형을 막는 용도가 아닙니다.
- 숫자는 아라비아 숫자만 비교합니다.
받아서 쓰기Get it
# 저장소를 받습니다
git clone https://github.com/Kein-chronicle/llm-adaptation-fidelity-check.git
# Claude Code 스킬로 쓰려면 이 폴더 이름으로 받습니다
git clone https://github.com/Kein-chronicle/llm-adaptation-fidelity-check.git ~/.claude/skills/source-fidelity-gates
정보Info
- 분류Category
- 게임·미디어 제작Games & media
- 형태Type
- 명령줄 도구Command-line tool
- 라이선스License
- MIT
- 필요한 것Requires
- Python 3.10 이상
- 저장소Repository
- llm-adaptation-fidelity-check
- 토픽Topics
contentfact-checkingllm-evaluationadaptationeditorialquality-gatesclaude-skillsagent-skills
2026-10-18 기준: 저장소의 테스트를 로컬에서 실행해 통과했고, 예제 출력은 저장소의 examples 폴더를 실제로 실행한 결과입니다.