| name | post-edit-test-guard |
| description | 파일을 편집할 때마다 그 파일과 연관된 테스트만 자동으로 돌려서 회귀(regression)를 즉시 잡아내는 훅(hook) 기반 루프입니다. 사용자가 "편집할 때마다 관련 테스트 자동 실행", "파일 고치면 바로 연관 테스트 돌려줘", "회귀 조기 감지 훅", "post-edit test guard", "run related tests after every edit", "test guard on save"처럼 편집-테스트 가드를 걸고 싶을 때 사용하세요. 이벤트 기반이라 Claude Code에서는 hooks 설정이 필요합니다. (구분: 커밋 직전 차단은 looping:pre-commit-guard, 머지 직후 스모크는 looping:post-merge-regression-guard, 전체 스위트를 수동으로 green까지 돌리는 건 looping:test-until-green) |
편집 후 테스트 가드 (Post-Edit Test Guard)
파일 편집 후 연관 테스트를 돌려 회귀를 조기에 잡는 훅 기반 루프.
| 항목 | 값 |
|---|
| 카테고리 | 테스트(Testing) |
| 트리거 | 이벤트(event) — file_edit(파일 편집) 발생 시 |
| 종료 조건(Exit) | 편집 묶음마다 연관 테스트가 종료 코드 0 |
| 매 반복 체크 명령 | npm test -- --findRelatedTests <편집된 파일> |
| 설치 파일 | 있음 — 훅 설정 필요 |
| 가드레일 | 강화됨(Hardened) |
| 지원 에이전트 | Claude Code · Cursor |
이 루프는 언제 쓰나
큰 변경을 진행할 때 "방금 고친 파일이 다른 걸 깨뜨렸나?"를 매번 수동으로 확인하기 번거로울 때 씁니다. 편집이 일어날 때마다 그 파일과 연관된 최소 테스트 집합만 자동으로 돌려, 회귀를 다음 변경으로 넘어가기 전에 잡습니다. 전체 스위트를 매번 돌리는 것보다 빠르고, 실패의 원인이 방금 한 편집이라는 게 분명합니다.
루프 흐름
〔파일 편집 시〕→ 편집된 파일 감지 → 연관 테스트 실행 →〔피드백 게이트〕
연관 테스트 통과? → 아니오: 다음 편집 전에 수정 / 예: 계속 진행
매 반복(pass)마다 하는 일
- 편집된 파일 감지 — 직전 턴에 어떤 소스 파일이 편집됐는지 식별합니다.
- 연관 테스트 실행 — 편집된 파일에 연관된 가장 작은 테스트 부분집합을 돌립니다. 실패하면 계속 진행하기 전에 고칩니다.
npm test -- --findRelatedTests
가드레일 (점수 조작 방지 규칙)
- 체크 명령이나 종료 기준을 고쳐서 억지로 성공시키지 않는다.
- 체크를 건너뛰거나 우회해서 종료 조건을 통과시키지 않는다.
- 여러 번 반복해도 막히면, 지표를 조작하지 말고 멈추고 블로커를 보고한다.
- 스위트를 통과시키려고 테스트를 약화·삭제·skip 하지 않는다.
- 진짜 단언을 항상 통과하는 껍데기 테스트로 바꾸지 않는다.
- green으로 만들려고 테스트를 땜질하기보다 프로덕션 코드를 고치는 쪽을 택한다.
Claude Code에서 실행하기
이 루프는 이벤트(훅) 기반입니다. 원본 사이트는 .cursor/·.claude/ 훅 번들 zip을 제공하지만, Claude Code에서는 .claude/settings.json의 hooks로 직접 설정하는 것이 가장 깔끔합니다.
방법 1 — 프롬프트만으로(설정 없이) 가드 켜기
아래를 붙여넣으면, 이번 세션 동안 에이전트가 편집할 때마다 스스로 연관 테스트를 돌립니다.
"편집 후 테스트 가드(Post-Edit Test Guard)" 루프를 켭니다.
목표: 파일을 한 묶음 편집할 때마다, 연관 테스트가 통과해야 다음으로 넘어간다.
매 반복 사이 실행: npm test -- --findRelatedTests <편집된 파일>
종료 조건: 연관 테스트가 종료 코드 0일 때.
1단계: 편집 후 연관 테스트를 돌린다. 실패하면 더 변경하기 전에 고친다.
방법 2 — .claude/settings.json 훅으로 영구 자동화 (권장)
편집 도구(Edit/Write) 사용 후 자동으로 연관 테스트가 돌도록 PostToolUse 훅을 등록합니다.
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write|MultiEdit",
"hooks": [
{ "type": "command", "command": "npm test -- --findRelatedTests $CLAUDE_FILE_PATHS 2>&1 | tail -40" }
]
}
]
}
}
저장 후 Claude Code 세션을 재시작하면 훅이 등록됩니다. 훅 출력(테스트 실패)이 에이전트에게 전달되므로, 위 kickoff를 한 번 붙여넣어 "실패하면 다음 편집 전에 고친다"는 규칙을 알려 두면 됩니다.
참고: 훅은 "언제 깨어날지"를 자동화하고, kickoff는 "매 회차 무엇을 할지"를 정의합니다. 둘은 보완 관계입니다.
팁 / 변형
- 테스트 러너 교체:
--findRelatedTests는 Jest 기능입니다. Vitest는 vitest related, 파이썬은 pytest --picked(pytest-picked) 등으로 바꾸세요.
- 연관 루프: 커밋 직전 차단은
looping:pre-commit-guard, 머지 직후 스모크는 looping:post-merge-regression-guard.
원본 영어 kickoff (loops.elorm.xyz 원문)
Install and run the "Post-Edit Test Guard" loop.
Goal: after each batch of file edits, related tests must pass before continuing.
Between iterations run: npm test -- --findRelatedTests <edited files>
Exit when: related tests exit 0.
Step 1: After edits, run related tests. If they fail, fix before making more changes.
출처: https://loops.elorm.xyz/loops/post-edit-test-guard