ci-gate-forgery-test
CI 게이트가 정말로 실패할 수 있는지, 잘못된 입력·빈 입력·없는 입력을 먹여 증명하는 도구입니다.
어떤 문제를 푸나The problem
한 번도 실패하는 모습을 본 적 없는 게이트는 장식입니다. 변이 테스트가 코드를 망가뜨려 테스트를 시험한다면, 이 도구는 입력을 망가뜨려 게이트를 시험합니다.
게이트마다 명령, 나쁜 예시, 좋은 예시를 JSON 명세로 적어 두면 위조한 나쁜 입력에서 실패하는지, 좋은 입력에서 통과하는지, 빈 입력과 없는 입력에서 통과해 버리지 않는지를 자동으로 확인합니다.
이런 분께 맞습니다Who it is for
린트·검사 스크립트를 CI 게이트로 쓰는 개발자, 초록 불이 켜졌다고 믿어도 되는지 확인하고 싶은 사람.
무엇을 하나What it does
- 나쁜 예시는 실패해야 하고 좋은 예시는 통과해야 합니다.
- 빈 입력은 '아무것도 재지 못했다'로 처리해야 하며 통과하면 눈먼 게이트로 보고합니다.
- 명령 해석기와 게이트 스크립트가 실제로 있는지 배선도 확인합니다.
- 예외 항목마다 사유가 있어야 하고 사유 없는 예외는 보고합니다.
- 종료 코드 0은 모든 사례가 정상, 1은 눈먼 게이트나 시끄러운 게이트가 있음, 2는 명세 오류입니다.
직접 돌려 본 출력Real output
저장소의 examples 폴더를 실행한 결과입니다.
$ bash examples/demo.sh
# A gate that really detects TODOs: every forged case behaves
$ python3 scripts/forge_test.py examples/spec.json
[ok ] no-todo (correct) wiring python3 resolves
[ok ] no-todo (correct) wiring no_todo_good.py exists
[ok ] no-todo (correct) forgery bad fixture fixtures/bad: exit 1
[ok ] no-todo (correct) false-positive good fixture fixtures/good: exit 0
[ok ] no-todo (correct) vacuity empty input: exit 3 (0 would mean 'nothing measured = clean')
[ok ] no-todo (correct) vacuity missing input: exit 2
[ok ] no-todo (correct) exemption legacy/: reason given
all gates behaved
[exit 0]
알아둘 한계Limits
- 현실적인 나쁜 예시는 직접 제공해야 합니다. 도구가 만들어 주지는 않습니다.
- 명세에 적힌 명령은 그대로 실행되므로(셸 없이) 신뢰하는 명세만 돌리십시오.
받아서 쓰기Get it
# 저장소를 받습니다
git clone https://github.com/Kein-chronicle/ci-gate-forgery-test.git
# Claude Code 스킬로 쓰려면 이 폴더 이름으로 받습니다
git clone https://github.com/Kein-chronicle/ci-gate-forgery-test.git ~/.claude/skills/gate-forgery-test
정보Info
- 분류Category
- 검증과 게이트Review gates
- 형태Type
- 명령줄 도구Command-line tool
- 라이선스License
- MIT
- 필요한 것Requires
- Python 3.10 이상, bash
- 저장소Repository
- ci-gate-forgery-test
- 토픽Topics
testingquality-gatesciclaude-codeclaude-skillsagent-skillsmutation-testingtest-quality
2026-10-18 기준: 저장소의 테스트를 로컬에서 실행해 통과했고, 예제 출력은 저장소의 examples 폴더를 실제로 실행한 결과입니다.