에이전트는 그럴듯한 코드를 빠르게 작성하며, 그중 일부는 신중한 엔지니어라면 절대 사용하지 않을 꼼수들을 포함합니다: 빨간색을 피하기 위해 건너뛴 테스트, 무시된 오류, 남겨진 스텁, 타입 검사를 억제한 경우, 기존 코드베이스에 이미 존재하는 기능을 중복으로 구현하는 경우 등입니다.안티-슬롭검사는 모든 변경 사항에서 이러한 문제를 찾아내어 귀하가 확인하기 전에 해당 변경 사항을 개발자 에이전트에게 다시 보냅니다.
이는 귀하의품질 정책내에 포함된 하나의 검사일 뿐이며 별도의 점수로 평가되지는 않습니다. 해당 변경 사항이 차단 요소를 전혀 도입하지 않으면 검사를 통과합니다.
검출 대상
규칙들은 그룹으로 분류됩니다. 각 규칙은차단, 권고하거나정보.
- 테스트— 집중적으로 실행되어야 할 테스트가 건너뛰어지거나 삭제된 경우, 어서션이 제거되거나 약화된 경우, 실패할 수 없는 테스트 등이 해당됩니다.
- 억제 사항— 새로 추가된 린트 비활성화 설정, 타입 무시 처리 및
any형변환. - 빌드 및 CI— 테스트 단계가 제거되거나 무력화되고, 임계값이 낮아지며 "테스트 없이도 통과" 상태가 되는 경우 등이 해당됩니다.
- 테스트 증거— 캐시된 결과를 실제 실행 결과로 오인하거나, 테스트가 전혀 실행되지 않았는데도 완료된 것으로 보고되는 경우 등이 해당됩니다.
- 프로덕션 코드— 디버그용 잔여물, 플레이스홀더, 모의 데이터, 사람을 위한 메모, 테스트 코드가 프로덕션에 포함되는 경우 등이 해당됩니다.
- 오류 처리— 오류가 무시되거나, 실패를 숨기는 대체 로직이 적용되거나, 허용 범위가 무제한으로 설정되는 경우 등이 해당됩니다.
- 주석, 아키텍처, 종속성, 변경 범위, 보안, 캐싱및에이전트 활동 내역— 테스트가 실패한 직후에 해당 테스트를 수정하는 등 에이전트가 수행한 작업의 기록입니다.
각 규칙의 상세 페이지는품질 → 검사 → 안티-슬롭에서 확인할 수 있으며, 해당 규칙이 어떤 상황에 적용되고 왜 중요한지 설명되어 있습니다.
변경 사항에서 새로 도입된 항목만이 검사를 차단합니다.
대부분의 저장소에는 이미 이러한 패턴들이 일부 포함되어 있습니다. 안티-슬롭은 모든 발견 사항을 세 가지 그룹으로 분류합니다:
- 신규 도입— 이번 변경 사항에서 새로 생긴 항목.
- 수정 대상— 이미 존재하지만 변경 사항에서 수정하는 라인이나 함수 내에 위치한 항목.
- 기존 존재— 저장소의 다른 곳에 이미 존재하는 항목.
차단 규칙에 해당하는 신규 도입 발견 사항만이 검사를 실패시킵니다. 수정 대상 및 기존 존재 발견 사항은 기술 부채로 기록되지만, 관련 없는 작업을 방해하지는 않습니다. 코드를 옮기는 것은 신규 도입으로 간주되지 않으며, 복사하는 경우에만 신규 도입으로 인정됩니다.
발견된 항목
- 권고형 게이트
검토자 에이전트
- 연결된 스캐너
처리 대상 항목
수정 가능한 항목
개발자에게 재작업으로 다시 전달됩니다.
기타 모든 항목
pull request에 첨부됩니다.
해결 완료
수정 완료
이 변경 사항으로 문제가 해결되었습니다.
승인 완료
실제로는 문제가 없으며 조치가 필요하지 않습니다. 그 이유를 명시해 주세요.
무시 처리됨
오탐지이거나 해당 규칙이 적용되지 않습니다. 그 이유를 명시해 주세요.
정책에 추가하기
품질 → 정책에서 정책을 열고선택하여안티-슬롭 프리셋 추가하세요. 이렇게 하면 다섯 가지 요구 사항이 추가됩니다:
- 테스트가 변경 사항을 여전히 입증해야 합니다.
- 미완성 코드나 테스트용 코드가 배포되어서는 안 됩니다.
- 새로운 구조적 부채가 발생해서는 안 됩니다.
- 변경 사항의 범위가 명확하고 기존 코드베이스의 스타일과 일치해야 합니다.
- 새로 추가되는 종속성은 실제로 사용 가능하고 신뢰할 수 있어야 합니다.
정책을 게시하면 연결된 모든 프로젝트의 다음 실행 시에 해당 검사가 포함됩니다.
변경 관리 방식 선택하기
이 방식은 개발자 에이전트에게 변경 사항이 얼마나 광범위하게 적용될 수 있는지를 알려줍니다:
- 외과적 수술— 사양에 명시된 범위만 처리하며, 다른 문제들은 보고만 하고 수정하지 않습니다.
- 균형 잡힌(기본값) — 변경 사항이 수정하는 라인에서 발생하는 사소한 문제도 함께 수정합니다.
- 복원형— 변경 사항이 수정하는 함수 내에 존재하는 발견 사항도 정리합니다.
에이전트는 제출하기 전에 동일한 규칙을 준수합니다. 에이전트는 먼저 관리자가 지정한 방식과 격리된 패턴들을 확인하고, 편집할 때마다 즉시 적용되는 빠른 규칙들을 따른 뒤, QA 단계 전에 차단되는 발견 사항을 수정할 기회를 한 번 얻습니다.
코드베이스에 맞게 맞춤 설정하기
- 규칙 재정의— 검사 설정에서 특정 규칙을 비활성화하거나, 차단 대신 권고로 설정할 수 있습니다.
- 규칙 팩— 사용자가 직접 정의한 패턴, 금지된 임포트 및 종속성, 파일 크기 제한, 또는 기존에 사용하던 도구(SARIF)의 결과 등을 포함합니다. 팩은 버전 관리되며, 정책에서는 사용할 버전을 고정합니다.
- 격리 처리— 더 이상 복사되지 않도록 하려는 패턴들로, 각각 대체할 항목이 함께 지정됩니다. 에이전트는 이러한 패턴의 확산을 방지하도록 지시받으며, 새로 복사된 사본은 자동으로 표시됩니다.
- 저장소 파일 —
.coroid/anti-slop.yml을 저장소에 추가하면 규칙을 추가하거나 생성된 파일 및 외부 라이브러리 경로를 제외할 수 있습니다. 이 파일은 변경 사항의 기준점에서 읽히므로, 변경 사항 자체에서 규칙을 완화할 수 없으며 편집 시에는 승인이 필요합니다.
발견 사항 및 면제 사항
발견 사항은품질 → 발견 사항, 검사 결과에 따라 필터링됩니다. 특정 발견 사항을 수락하려면 사유를 명시하여 면제 처리할 수 있으며, 해당 면제 내역은 정확한 발견 사항과 연계되어 기록됩니다. 에이전트는 자신이 생성한 발견 사항을 면제할 수 없습니다. 에이전트가 테스트 결과가 잘못되었다고 판단하여 코드를 변경하는 경우, 검사가 통과되기 전에 반드시 리뷰어의 승인을 받아야 합니다.
규칙 판단
두 가지 규칙이 모델에 한 번에 한 줄씩 질문을 던집니다. 하나는 표시된 코드로는 불가능한 상황을 확인하는 방어적 검사이고, 다른 하나는 인접한 코드와 상충하는 주석을 찾아내는 규칙입니다. 이 규칙들은 단지 권고만 제공할 뿐 차단 기능은 없습니다.규칙 판단 기능 활성화새로운 검사에 대해 해당 기능이 기본적으로 활성화되며, 실행당 결정 가능 횟수가 제한됩니다. 검사 설정에서 이 기능을 비활성화할 수 있습니다.
자체 운영 에이전트
동일한 규칙들을 사용자가 직접 운영하는 에이전트에게도 적용할 수 있습니다:
- AGENTS.md 코드 조각을 다운로드하세요, 그곳에서기술 부채탭의품질 → 검사 → 안티슬롭, 프로젝트의 변경 관리 규칙, 격리 정책 및 주요 규칙을 에이전트 지침에 붙여넣을 수 있는 섹션으로 제공합니다.
- Coroid MCP 서버를 통해
anti_slop_rules게시된 정책과 규칙을 설명합니다anti_slop_scan동기화된 프로젝트의 특정 브랜치를 읽기 전용 모드로 스캔합니다.